O recozimento por cosseno é um agendamento de taxa de aprendizado usado no treinamento de modelos de Machine learning, particularmente modelos de Deep learning. Ele ajusta a taxa de aprendizado durante a otimização seguindo uma curva de cosseno, começando de um valor inicial alto e diminuindo suavemente até um mínimo ao longo de um número especificado de épocas ou iterações. Essa abordagem é projetada para equilibrar a troca entre velocidade de convergência e estabilidade, ajudando os modelos a se estabelecerem em mínimos melhores da função de perda. O agendamento é amplamente adotado em pipelines modernos de treinamento para arquiteturas de Neural network, incluindo modelos baseados em Transformer (architecture), como Large language models, devido à sua simplicidade e eficácia.
Na otimização, a taxa de aprendizado determina o tamanho do passo dado em direção a um mínimo da função de perda. Uma taxa de aprendizado constante pode levar a convergência lenta ou oscilações, pois uma taxa muito alta pode ultrapassar os mínimos e uma taxa muito baixa pode estagnar. O agendamento por cosseno aborda isso fornecendo um decaimento gradual que reduz a taxa de aprendizado suavemente, permitindo ajustes mais finos conforme o treinamento progride. Diferente de agendamentos por etapas ou exponenciais, que reduzem a taxa abruptamente, o agendamento por cosseno oferece um decaimento contínuo e diferenciável que frequentemente resulta em dinâmicas de treinamento mais estáveis.
Formulação Matemática
O agendamento de cosseno é definido pela fórmula:
\eta_t = \eta_{min} + \frac{1}{2}(\eta_{max} - \eta_{min}) \left(1 + \cos\left(\frac{t \pi}{T}\right)\right)
onde \eta_t é a taxa de aprendizado na iteração ou época t, \eta_{max} é a taxa de aprendizado inicial, \eta_{min} é a taxa de aprendizado mínima (frequentemente definida como 0), e T é o número total de passos de treinamento em um ciclo. A função cosseno diminui de 1 a -1 conforme t vai de 0 a T, fazendo a taxa de aprendizado cair de \eta_{max} para \eta_{min} de maneira suave e curvada. Essa fórmula pode ser adaptada para reinicializações com aquecimento, onde o agendamento é redefinido periodicamente, como descrito abaixo.
O agendamento é tipicamente aplicado por época ou por lote, dependendo da implementação. Por exemplo, em frameworks como PyTorch e TensorFlow, funções integradas como torch.optim.lr_scheduler.CosineAnnealingLR implementam esse agendamento, permitindo que praticantes especifiquem a taxa de aprendizado inicial e o número de épocas. O decaimento suave ajuda a evitar mudanças abruptas que podem desestabilizar o treinamento.
Contexto Histórico
O recozimento por cosseno foi introduzido no contexto da pesquisa em Deep learning como uma alternativa aos agendamentos tradicionais, como decaimento baseado em tempo, em etapas e exponencial. Esses métodos mais antigos, embora eficazes, frequentemente exigem ajuste manual dos parâmetros de decaimento e podem ser sensíveis à escolha de hiperparâmetros. O agendamento cosseno foi popularizado por Ilya Loshchilov e Frank Hutter em seu artigo de 2017 "SGDR: Stochastic Gradient Descent with Warm Restarts," que propôs o uso de recozimento por cosseno com reinicializações periódicas para melhorar a convergência. Esse trabalho baseou-se em pesquisas anteriores sobre agendamentos de taxa de aprendizado, como a fórmula de decaimento baseado em tempo \eta_{n+1} = \eta_0 / (1 + dn), onde \eta_0 é a taxa inicial e d é um parâmetro de decaimento.
A ideia de variar a taxa de aprendizado durante o treinamento tem raízes na literatura de controle adaptativo, onde a taxa de aprendizado às vezes é chamada de ganho. Ao longo dos anos, pesquisadores exploraram muitos agendamentos, incluindo decaimento exponencial \eta_n = \eta_0 e^{-dn} e decaimento por etapas, mas o recozimento por cosseno ganhou força por sua capacidade de alcançar convergência mais rápida e melhor precisão em muitas tarefas.
Relação com Outros Agendamentos
O recozimento por cosseno difere dos agendamentos comuns de várias maneiras. Agendamentos baseados em tempo reduzem a taxa de aprendizado inversamente com o número de iterações, o que pode levar a taxas muito pequenas no final do treinamento. Agendamentos por etapas reduzem a taxa por um fator em intervalos predefinidos, o que pode causar mudanças súbitas. Agendamentos exponenciais decaem continuamente, mas muitas vezes rápido demais. O recozimento por cosseno, em contraste, fornece um decaimento gradual que não é nem rápido demais nem lento demais, e naturalmente permite uma fase de aquecimento se a taxa de aprendizado inicial for definida adequadamente.
O momentum, outro componente-chave na otimização, é frequentemente usado em conjunto com o recozimento por cosseno. O momentum ajuda a acelerar o aprendizado quando os gradientes estão em uma direção consistente e ajuda a evitar mínimos locais, semelhante a uma bola rolando sobre pequenos obstáculos. A combinação de momentum e um agendamento de decaimento de cosseno é comum no treinamento de modelos Transformer (architecture), onde o agendamento ajuda a estabilizar a otimização de grandes espaços de parâmetros.
Reinicializações com Aquecimento e Variantes
Uma variante notável do recozimento por cosseno é a técnica de reinicialização com aquecimento, onde o agendamento é redefinido após um ciclo, permitindo que a taxa de aprendizado volte a um valor mais alto. Isso é implementado no método SGDR, onde a taxa de aprendizado segue uma curva de cosseno ao longo de um ciclo T, então reinicia com um novo ciclo, frequentemente com um comprimento maior. Essa abordagem pode ajudar o modelo a escapar de mínimos locais e explorar diferentes regiões da paisagem de perda, levando a um desempenho melhor. A variante com reinicializações com aquecimento é particularmente útil em tarefas de Deep learning onde a superfície de perda não é convexa.
Outras variantes incluem o recozimento por cosseno com uma fase de aquecimento linear, onde a taxa de aprendizado aumenta de um valor baixo para o máximo inicial nas primeiras épocas, seguida de um decaimento por cosseno. Isso é frequentemente usado no treinamento de Large language models para evitar instabilidade no início do treinamento.
Aplicações em Inteligência Artificial Moderna
O recozimento por cosseno é extensivamente usado no treinamento de modelos de ponta em Artificial intelligence. Em pesquisa em Deep learning, é um padrão para muitas arquiteturas. Por exemplo, OpenAI e Google DeepMind empregaram agendamentos de cosseno no treinamento de modelos em larga escala, incluindo modelos baseados em Transformer (architecture). A técnica também é integrada em bibliotecas populares como PyTorch e TensorFlow, tornando-a acessível para praticantes.
Em visão computacional, o recozimento por cosseno demonstrou melhorar a precisão em conjuntos de dados de referência como CIFAR-10 e ImageNet. Em processamento de linguagem natural, é usado para treinar modelos como BERT e GPT, onde o agendamento ajuda a gerenciar a taxa de aprendizado em milhões de parâmetros. A técnica também é aplicada em modelos de Generative AI, incluindo modelos de difusão e GANs, para estabilizar o treinamento.
Vantagens e Limitações
A principal vantagem do recozimento por cosseno é seu decaimento suave, que reduz oscilações e ajuda o modelo a convergir para um bom mínimo. Ele também requer menos hiperparâmetros do que alguns outros agendamentos, pois os principais parâmetros são as taxas máxima e mínima e o comprimento do ciclo. No entanto, o agendamento não é adaptativo; ele não responde à paisagem de perda ou gradientes. Em contraste, métodos adaptativos como Adam ajustam a taxa de aprendizado com base em estatísticas de gradiente, o que pode ser mais robusto em certos cenários. O recozimento por cosseno é frequentemente usado em conjunto com esses otimizadores, aplicando a taxa global.
Uma limitação do recozimento por cosseno padrão é que o número total de épocas deve ser conhecido antecipadamente, pois o agendamento depende de T. Se o treinamento for estendido, o agendamento precisa ser ajustado. Além disso, a escolha do valor mínimo da taxa de aprendizado \eta_{min} pode impactar o desempenho, exigindo ajuste empírico. Apesar dessas limitações, a simplicidade e eficácia do método o tornam uma escolha padrão em muitos pipelines de treinamento modernos, especialmente quando combinado com técnicas como reinicializações com aquecimento para escapar de mínimos locais.
Veja Também
- learning rate
- optimization
- Neural network
- Deep learning
Referências
- Loshchilov, Ilya; Hutter, Frank (2017). "SGDR: Stochastic Gradient Descent with Warm Restarts." International Conference on Learning Representations.
- Géron, Aurélien (2019). Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow. O'Reilly Media.
- Smith, Leslie N. (2017). "Cyclical Learning Rates for Training Neural Networks." IEEE Winter Conference on Applications of Computer Vision.