otimização não convexa

Jacques Wainer

20/4/20

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

Algoritmos de gradiente funcionam em problemas não convexos?

Funcionam para problemas suaves de vários mínimos.

Não sei se funciona para problemas com ondinhas (o gradiente varia muito de ponto em ponto)

Não funcionam para problemas mais comuns em aprendizado de maquina pois

Algoritmos sem gradiente da aula passada devem funcionar

Noa sei nada sobre otimização estocástica

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 simétrica) 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