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.



