Taxa de aprendizado
Em aprendizado de máquina e estatística, a taxa de aprendizado é um parâmetro de ajuste em um algoritmo de otimização que determina o tamanho do passo a cada iteração enquanto se move em direção a um mínimo de uma função de perda. Como influencia até que ponto informações recém-adquiridas substituem informações antigas, representa metaforicamente a velocidade com que um modelo de aprendizado de máquina "aprende". Na literatura de controle adaptativo, a taxa de aprendizado é comumente referida como ganho.
Ao definir uma taxa de aprendizado, há um trade-off entre a taxa de convergência e o overshooting. Enquanto a direção de descida é geralmente determinada a partir do gradiente da função de perda, a taxa de aprendizado determina o tamanho do passo dado nessa direção. Uma taxa de aprendizado muito alta fará o aprendizado pular sobre os mínimos, mas uma taxa muito baixa fará com que demore demais para convergir ou fique preso em um mínimo local indesejável.
Para alcançar convergência mais rápida, evitar oscilações e não ficar preso em mínimos locais indesejáveis, a taxa de aprendizado é frequentemente variada durante o treinamento, seja de acordo com um agendamento de taxa de aprendizado ou usando uma taxa de aprendizado adaptativa. A taxa de aprendizado e seus ajustes também podem diferir por parâmetro, caso em que é uma matriz diagonal que pode ser interpretada como uma aproximação do inverso da matriz Hessiana no método de Newton. A taxa de aprendizado está relacionada ao comprimento do passo determinado pela busca de linha inexata em métodos quasi-Newton e algoritmos de otimização relacionados.
Agendamentos de taxa de aprendizado
Um agendamento de taxa de aprendizado altera a taxa de aprendizado durante o treinamento e é mais frequentemente alterado entre épocas ou iterações. Isso é feito principalmente com dois parâmetros: decaimento e momentum. Existem muitos agendamentos diferentes de taxa de aprendizado, mas os mais comuns são baseados em tempo, baseados em passos e exponenciais.
O decaimento serve para estabilizar o aprendizado em um bom lugar e evitar oscilações, uma situação que pode surgir quando uma taxa de aprendizado constante muito alta faz o aprendizado saltar para frente e para trás sobre um mínimo. O decaimento é controlado por um hiperparâmetro.
O momentum é análogo a uma bola rolando ladeira abaixo; queremos que a bola se estabilize no ponto mais baixo da colina (correspondente ao menor erro). O momentum acelera o aprendizado (aumentando a taxa de aprendizado) quando o gradiente da função de custo está na mesma direção por um longo período e também evita mínimos locais ao "passar por cima" de pequenas elevações. O momentum é controlado por um hiperparâmetro análogo à massa da bola, que deve ser escolhido manualmente - muito alto e a bola passará por cima dos mínimos que desejamos encontrar; muito baixo e ela não cumprirá seu propósito. A fórmula para incorporar o momentum é mais complexa do que para o decaimento, mas é mais frequentemente incorporada em bibliotecas de deep learning, como Keras.
Agendamentos baseados em tempo
Agendamentos baseados em tempo alteram a taxa de aprendizado dependendo da taxa de aprendizado da iteração anterior. Com o decaimento, a fórmula matemática para a taxa de aprendizado é:
η_{n+1} = η₀ / (1 + d n)
onde η é a taxa de aprendizado, η₀ é a taxa de aprendizado original, d é um parâmetro de decaimento e n é o passo da iteração.
Agendamentos baseados em passos
Agendamentos baseados em passos alteram a taxa de aprendizado de acordo com alguns passos predefinidos. Com o decaimento, a fórmula de aplicação é aqui definida como:
η_n = η₀ d^(⌊(1+n)/r⌋)
onde η_n é a taxa de aprendizado na iteração n, η₀ é a taxa de aprendizado inicial, d é o quanto a taxa de aprendizado deve mudar a cada queda (0,5 corresponde a uma redução pela metade) e r corresponde à taxa de queda, ou com que frequência a taxa deve ser reduzida (10 corresponde a uma queda a cada 10 iterações). A função piso (⌊…⌋) aqui reduz o valor de sua entrada para 0 para todos os valores menores que 1.
Agendamentos exponenciais
Agendamentos exponenciais são semelhantes aos baseados em passos, mas em vez de passos, uma função exponencial decrescente é usada. Com o decaimento, a fórmula matemática é:
η_n = η₀ e^(−d n)
onde d é um parâmetro de decaimento.
Taxa de aprendizado adaptativa
O problema com os agendamentos de taxa de aprendizado é que eles dependem de hiperparâmetros que devem ser escolhidos manualmente para cada sessão de aprendizado e podem variar muito dependendo do problema em questão ou do modelo usado. Para combater isso, existem muitos tipos diferentes de algoritmos de gradiente descendente adaptativo, como Adagrad, Adadelta, RMSprop e Adam, que geralmente são incorporados em bibliotecas de deep learning, como Keras.
Aquecimento e agendamentos cíclicos
Além dos agendamentos de decaimento clássicos, o treinamento moderno de modelos grandes frequentemente emprega agendamentos de aquecimento e cíclicos. O aquecimento começa com uma taxa de aprendizado pequena e a aumenta gradualmente ao longo de algumas épocas, o que ajuda a estabilizar o treinamento na fase inicial, especialmente para modelos baseados em Transformer (architecture). Agendamentos cíclicos, como o annealing por cosseno, variam periodicamente a taxa de aprendizado entre um valor mínimo e máximo, o que pode ajudar a escapar de mínimos locais e, às vezes, melhorar a generalização.
Considerações práticas
A escolha do agendamento de taxa de aprendizado pode afetar significativamente o treinamento de modelos de redes neurais. Por exemplo, no treinamento de modelos de linguagem de grande escala, uma prática comum é usar um aquecimento linear seguido de um decaimento por cosseno. Essa abordagem é usada por organizações como OpenAI e Google DeepMind em seus treinamentos em larga escala. A taxa de aprendizado inicial é frequentemente definida com base em regras empíricas ou executando um localizador de taxa de aprendizado, que testa uma variedade de valores ao longo de algumas iterações.
Relação com algoritmos de otimização
O agendamento da taxa de aprendizado está intimamente ligado à escolha do algoritmo de otimização. Estruturas de aprendizado de máquina, como TensorFlow e PyTorch, fornecem agendadores integrados que podem ser combinados com otimizadores como SGD, Adam ou RMSprop. A interação entre o agendador e o estado interno do otimizador (por exemplo, buffers de momentum no Adam) é importante; por exemplo, reduzir a taxa de aprendizado abruptamente demais pode fazer o otimizador ultrapassar o ponto ideal.
História e desenvolvimento
O conceito de ajustar a taxa de aprendizado durante o treinamento remonta aos primeiros trabalhos em inteligência artificial e aprendizado de máquina. Pesquisadores como Thomas Dietterich e Michael Jordan contribuíram para a compreensão fundamental da otimização em aprendizado. Na década de 2010, o avanço do deep learning trouxe atenção renovada aos agendamentos, com artigos sobre taxas de aprendizado cíclicas e aquecimento se tornando amplamente citados.