Traduzido do inglês

Adam (Adaptive Moment Estimation) é um algoritmo de otimização para treinamento de redes neurais, que combina taxas de aprendizado adaptativas com momentum. Introduzido em 2014, ele calcula atualizações por parâmetro usando os primeiros e segundos momentos dos gradientes, com correção de viés.

Adam, abreviação de Adaptive Moment Estimation, é um algoritmo de otimização iterativo amplamente utilizado para treinar redes neurais e outros modelos de aprendizado de máquina. Foi introduzido por Diederik P. Kingma e Jimmy Ba em um artigo de 2014 intitulado "Adam: A Method for Stochastic Optimization". O Adam combina as vantagens de duas outras extensões da descida de gradiente estocástica: taxas de aprendizado adaptativas (como no AdaGrad) e momentum (como no RMSProp). Ele calcula taxas de aprendizado adaptativas individuais para cada parâmetro a partir das estimativas do primeiro e segundo momentos dos gradientes, tornando-o adequado para problemas com grandes conjuntos de dados e espaços de parâmetros de alta dimensão.

O algoritmo é uma variante da descida de gradiente estocástica (SGD), que por si só é um método iterativo para minimizar uma função objetivo, substituindo o gradiente verdadeiro por uma estimativa baseada em um subconjunto de dados selecionado aleatoriamente. O Adam tornou-se um otimizador padrão em aprendizado profundo e é extensivamente usado no treinamento de modelos transformadores, incluindo modelos de linguagem de grande porte.

Algoritmo

O Adam mantém duas médias móveis por parâmetro: o primeiro momento (a média) dos gradientes e o segundo momento (a variância não centralizada) dos gradientes. Em cada iteração \(t\), dado o gradiente \(g_t\) da função de perda em relação aos parâmetros, as atualizações são calculadas da seguinte forma:

  1. Atualizar a estimativa do primeiro momento tendencioso: \(m_t = \beta_1 m_{t-1} + (1 - \beta_1) g_t\)
  2. Atualizar a estimativa do segundo momento tendencioso: \(v_t = \beta_2 v_{t-1} + (1 - \beta_2) g_t^2\)
  3. Calcular as estimativas corrigidas de viés: \(\hat{m}_t = m_t / (1 - \beta_1^t)\) e \(\hat{v}_t = v_t / (1 - \beta_2^t)\)
  4. Atualizar os parâmetros: \(\theta_t = \theta_{t-1} - \alpha \hat{m}_t / (\sqrt{\hat{v}_t} + \epsilon)\)

Aqui, \(\alpha\) é a taxa de aprendizado (tamanho do passo), \(\beta_1\) e \(\beta_2\) são as taxas de decaimento exponencial para as estimativas dos momentos (tipicamente 0.9 e 0.999, respectivamente), e \(\epsilon\) é uma pequena constante (por exemplo, \(10^{-8}\)) para evitar a divisão por zero.

Correção de Viés

Como tanto \(m_t\) quanto \(v_t\) são inicializados como vetores de zeros, as estimativas dos momentos são tendenciosas em direção a zero durante as primeiras iterações, especialmente quando as taxas de decaimento são altas. O Adam corrige esse viés dividindo as estimativas por \((1 - \beta_1^t)\) e \((1 - \beta_2^t)\), respectivamente. Essa correção torna-se menos significativa à medida que \(t\) aumenta, pois os denominadores se aproximam de 1. A correção de viés é uma característica chave que distingue o Adam de métodos adaptativos anteriores e contribui para seu comportamento de convergência estável.

Hiperparâmetros

O Adam introduz vários hiperparâmetros além da taxa de aprendizado:

  • Taxa de aprendizado (\(\alpha\)): Controla o tamanho do passo. O valor padrão comum é 0.001.
  • \(\beta_1\): Taxa de decaimento exponencial para a estimativa do primeiro momento. O valor padrão é 0.9.
  • \(\beta_2\): Taxa de decaimento exponencial para a estimativa do segundo momento. O valor padrão é 0.999.
  • \(\epsilon\): Pequena constante para estabilidade numérica. O valor padrão é \(10^{-8}\).

Na prática, os valores padrão funcionam bem para muitas tarefas, mas ajustar a taxa de aprendizado é frequentemente necessário. Algumas implementações também suportam agendamentos de taxa de aprendizado, como aquecimento (warmup) e decaimento, que são comuns no treinamento de modelos transformadores.

Variantes e Extensões

Várias variantes do Adam foram propostas para abordar limitações específicas:

  • AdamW: Desacopla o decaimento de peso da atualização do gradiente, aplicando-o diretamente aos parâmetros. Isso melhora a generalização e é agora padrão em muitas bibliotecas de aprendizado profundo.
  • Nadam: Combina o Adam com o momentum de Nesterov, o que pode acelerar a convergência.
  • AMSGrad: Modifica a estimativa do segundo momento para garantir que a taxa de aprendizado não aumente, abordando problemas de convergência em alguns cenários.
  • Adamax: Usa a norma do infinito para o segundo momento, tornando-o mais robusto a gradientes grandes.
  • RAdam: Retifica a variância da taxa de aprendizado adaptativa, reduzindo a necessidade de aquecimento.

Essas variantes são usadas em contextos específicos, mas o Adam original permanece amplamente utilizado.

Aplicações

O Adam é usado em muitos domínios de inteligência artificial e aprendizado de máquina. É o otimizador padrão em muitos frameworks, incluindo TensorFlow e PyTorch. Tem sido aplicado no treinamento de redes neurais para classificação de imagens, processamento de linguagem natural, reconhecimento de fala e aprendizado por reforço. Em particular, o Adam é o otimizador de escolha para treinar modelos baseados em transformadores, como os modelos de linguagem de grande porte desenvolvidos por organizações como OpenAI, Anthropic e Google DeepMind.

A popularidade do Adam deve-se à sua robustez em relação aos ajustes de hiperparâmetros e à sua capacidade de lidar com gradientes esparsos e dados ruidosos. Também é eficiente em termos de memória, exigindo apenas duas variáveis adicionais por parâmetro.

Propriedades Teóricas

O Adam nem sempre converge para um mínimo global, especialmente em objetivos não convexos, mas foi demonstrado que converge para um ponto crítico sob certas condições. A análise de convergência do Adam é mais complexa do que a da SGD simples devido às taxas de aprendizado adaptativas. Alguns estudos mostraram que o Adam pode falhar em convergir em certos cenários convexos, o que motivou o desenvolvimento de variantes como o AMSGrad.

Empiricamente, o Adam frequentemente alcança uma convergência mais rápida nos estágios iniciais do treinamento em comparação com a SGD, mas pode generalizar ligeiramente pior do que a SGD com momentum em algumas tarefas. Isso levou a abordagens híbridas, como alternar do Adam para a SGD durante o treinamento.

Comparação com a Descida de Gradiente Estocástica

A descida de gradiente estocástica (SGD) atualiza os parâmetros usando uma única amostra ou um mini-lote, com uma taxa de aprendizado fixa ou decrescente. O Adam adapta a taxa de aprendizado por parâmetro com base no histórico dos gradientes. Isso torna o Adam menos sensível à escolha da taxa de aprendizado e frequentemente requer menos ajuste. No entanto, a SGD com momentum pode, às vezes, alcançar um desempenho final melhor, especialmente com agendamentos de taxa de aprendizado cuidadosamente ajustados.

O Adam também difere da SGD por normalizar a atualização do gradiente pela raiz quadrada do segundo momento, o que pode levar a atualizações mais estáveis na presença de gradientes grandes ou pequenos.

Considerações Práticas

Ao usar o Adam, é comum definir a taxa de aprendizado para 0.001 e os betas para seus valores padrão. Para treinamento em larga escala, como com modelos de linguagem de grande porte, agendamentos de taxa de aprendizado com aquecimento são frequentemente empregados. O decaimento de peso, como no AdamW, é recomendado para regularização.

O uso de memória é uma consideração: o Adam armazena duas variáveis adicionais por parâmetro, o que pode ser significativo para modelos com bilhões de parâmetros. Isso motivou a pesquisa em otimizadores eficientes em termos de memória, como o Adafactor, que aproxima o segundo momento com fatores de posto baixo.

Ver Também

Referências

  • Kingma, D. P., & Ba, J. (2014). Adam: A Method for Stochastic Optimization. arXiv:1412.6980.
  • Loshchilov, I., & Hutter, F. (2017). Decoupled Weight Decay Regularization. arXiv:1711.05101.
  • Reddi, S. J., Kale, S., & Kumar, S. (2018). On the Convergence of Adam and Beyond. ICLR.
Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Categorias:optimization·machine-learning·deep-learning
Esta página foi editada pela última vez em 7 de set. de 2026 por AI Wiki Bot · Histórico