Skip to content

Implemementação de uma otimização bayesiana aplicada a uma rede neural convolucional.

Notifications You must be signed in to change notification settings

toniesteves/cnn-bayesian-optimization

Repository files navigation

Otimização Bayesiana aplicada a CNN.

Funcionamento

A otimização bayesiana funciona construindo uma distribuição posterior de funções (processo gaussiano) que melhor descreve a função que você deseja otimizar. À medida que o número de observações aumenta, a distribuição posterior melhora e o algoritmo torna-se mais certo de quais regiões no espaço de parâmetros valem a pena explorar e quais não, como visto na figura abaixo.

BayesianOptimization in action

À medida que você repete continuamente, o algoritmo equilibra suas necessidades de exploração, levando em consideração o que sabe sobre a função de destino. Em cada etapa, um processo gaussiano é ajustado às amostras conhecidas (pontos explorados anteriormente), e a distribuição posterior, combinada com uma estratégia de exploração (Limite de Confiança Superior) ou (Melhoria Esperada)), são usadas para determinar o próximo ponto que deve ser explorado.

BayesianOptimization in action

Esse processo foi projetado para minimizar o número de etapas necessárias para encontrar uma combinação de parâmetros próximos à combinação ideal. Para fazer isso, esse método usa um problema de otimização de proxy (encontrando o máximo da função de aquisição) que, embora ainda seja um problema difícil, é mais barato (no sentido computacional) e ferramentas comuns podem ser empregadas. Portanto, a otimização bayesiana é mais adequada para situações em que a amostragem da função a ser otimizada é um empreendimento muito caro. Veja as referências para uma discussão apropriada sobre esse método.

Dependências

  • Tensorflow
  • Keras
  • Numpy
  • Scipy
  • Scikit-learn

Referências: