otimização nao convexa

Jacques Wainer

21/4/20

Geral - funções não convexas

Funções não convexas tem:

Talvez seja útil em distinguir mínimos locais de “ruídos” ou “ondinhas” por exemplo esta figura

Voce não vai poder evita os mínimos locais “grandes” mas voce quer evitar os mínimos devido a ondinhas.

Em aprendizado de maquina, achar o mínimo global não é tão importante. Normalmente o que você quer é um mínimo local (ou mesmo um ponto que não é o mínimo) mas com o valor da função baixo o suficiente.

Em outras áreas de engenharia e economia voce quer o mínimo global mesmo.

Problemas não convexos em ML

  1. otimização de redes neurais

  2. busca de hiperparametros em algoritmos

Descida do gradiente + momento + recomeço aleatório

Buscas informadas

Usam o resultado da função nos pontos explorados anteriormente para propor novos pontos de exploração.

Lembre-se do melhor ponto visto ate agora, e reporte ele ao final do tempo

Tem que balançar exploration - buscar regiões novas nunca vistas - com explotitation - procurar cuidadosamente em volta de pontos que parecem bons. Em portugues as duas palavras são traduzidas por exploração

outras:

PSO

wikipedia e um video

\[ \omega * v_{i,d} + \phi_1 * u_1 * (p_{i,d} - x_{i,d}) + \phi_2 * u_2 * (g_d - x_{i,d})\]

SA

wikipedia e um video

CMA-ES

wikipedia e video

Se baseia em distribuições gaussianas em n dimensões (n a dimensão do espaço de busca). A gaussiana tem uma media (que a um ponto no espaço) e uma matriz de covariância (quadrada e simetrica) que é a extensão da ideia de desvio padrão de uma gaussiana tradicional.

Bayesian optimization

\[EI(x) = E[max(f^* - \hat{f}(x)]\]

onde \(f^*\) é o mínimo até agora, e \(\hat{f}(x)\) é a distribuição de valores possíveis (segundo a surrogate function) para \(f(x)\).

AutoML

AutoML é a ideia de automaticamente buscar os hiperparametros de um conjunto de classificadores.

A parte central de AutoML é uma busca pelos melhores hiperparametros usando algum algoritmo de otimização no convexa pagina sobre AutoML

Otimização bayesiana parece ser a técnica mas comum para essa busca.

Na minha experiencia (1s2019), GP como surrogate function é muito lento.

Uma parte quente de autoML é a busca automática por arquiteturas de redes deep