Inteligência artificial, sem ruído.
Tutoriais3 min

Não “jogue Adam no problema”: os perigos de usar o otimizador Adam sem entendê-lo

Por que os parâmetros padrão do Adam podem sabotar seu modelo de deep learning e como ajustes simples resolvem problemas de convergência.

Não “jogue Adam no problema”: os perigos de usar o otimizador Adam sem entendê-lo

Não “jogue Adam no problema”: os perigos de usar o otimizador Adam sem entender como ele funciona

Se você trabalha com deep learning, é quase certo que já usou — ou ainda usa — o otimizador Adam com os parâmetros padrão. A receita é conhecida: optim.AdamW(model.parameters(), lr=3e-4) e pronto. Mas um novo artigo no Towards Data Science mostra que essa confiança cega pode custar caro, especialmente em problemas com paisagens de otimização não-estacionárias.

O autor relata uma experiência humilhante: passou semanas depurando um modelo de reinforcement learning que simplesmente não convergia. Simplificou a arquitetura, adicionou e removeu camadas, trocou LSTMs por Transformers, gastou milhares de dólares em GPU em modo de busca de hiperparâmetros. A solução, quando finalmente a encontrou, foi mudar dois números: β₂ de 0,999 para 0,95 e β₁ de 0,9 para 0,5.

Como o Adam realmente funciona

O Adam (Kingma & Ba, 2015) foi projetado para resolver dois problemas simultaneamente: suavizar gradientes ruidosos e adaptar o tamanho do passo por parâmetro com base nas estatísticas observadas. Para isso, ele mantém duas estatísticas por parâmetro — o que significa o triplo do consumo de memória em comparação com o SGD simples.

Primeiro momento (momentum): uma média móvel exponencial dos gradientes passados, controlada por β₁. Valores mais baixos de β₁ (como 0,5) dão mais peso ao gradiente atual e menos ao histórico — crucial em paisagens de otimização que mudam rapidamente.

Segundo momento (velocidade adaptativa): uma média móvel do quadrado dos gradientes, controlada por β₂. Um β₂ de 0,999 dá peso enorme ao histórico distante, o que pode ser desastroso em reinforcement learning, onde a distribuição dos gradientes muda constantemente. Reduzir β₂ para 0,95 torna o otimizador muito mais reativo.

Onde o Adam falha de forma espetacular

  • Paisagens de otimização não-estacionárias: reinforcement learning, meta-learning e treinamento adversarial mudam a distribuição dos gradientes ao longo do tempo. O Adam padrão “lembra” de gradientes que já não são relevantes.
  • Overfitting de memória: em alguns casos, o acúmulo excessivo de gradientes passados faz o otimizador convergir para mínimos locais ruins — ele fica “preso” em uma direção que já foi boa, mas deixou de ser.
  • Problemas com gradientes esparsos: quando muitas features são raramente ativadas, o β₂ alto dilui o sinal dos gradientes relevantes entre ruído acumulado.

A intuição por trás dos parâmetros

O autor defende que a configuração do Adam não deveria ser um “import e esquece”. Para problemas com dinâmica rápida (RL, GANs, meta-learning), β₁ entre 0,5 e 0,7 e β₂ entre 0,9 e 0,95 costumam funcionar muito melhor que os defaults. Para visão computacional e NLP com grandes datasets estáveis, os valores padrão continuam sendo uma boa escolha.

A lição principal: entenda o problema que você está otimizando antes de escolher o otimizador. O Adam não é uma bala de prata — é uma ferramenta com parâmetros que existem por um motivo.


Descubra mais sobre noticiAI

Assine para receber nossas notícias mais recentes por e-mail.

R
Sobre o autorRedação Noticiai

Equipe editorial dedicada a explicar inteligência artificial com clareza, independência e contexto.