Retropropagação e Otimização
A retropropagação calcula eficientemente o gradiente da perda de uma rede em relação aos seus pesos, e os otimizadores baseados em gradiente utilizam esse gradiente para treinar a rede.
Definition
A retropropagação é um algoritmo que calcula o gradiente de uma função de perda em relação a cada peso em uma rede neural, propagando sinais de erro para trás através das camadas usando a regra da cadeia; a otimização então atualiza os pesos, tipicamente com gradiente descendente estocástico, para reduzir a perda.
Scope
Este tópico aborda como as redes profundas são treinadas: o algoritmo de retropropagação como uma aplicação da regra da cadeia para calcular gradientes camada por camada, o gradiente descendente estocástico e sua forma de mini-lote, métodos de momento e de taxa de aprendizado adaptativa, e os desafios práticos de gradientes evanescentes e explosivos, seleção da taxa de aprendizado e convergência em superfícies de perda não convexas.
Core questions
- Como a retropropagação calcula gradientes eficientemente?
- Por que o gradiente descendente estocástico é preferido para grandes conjuntos de dados?
- Como o momento e os métodos adaptativos aceleram o treinamento?
- O que causa gradientes evanescentes ou explosivos e como eles são mitigados?
Key theories
- Retropropagação via regra da cadeia
- Ao aplicar a regra da cadeia da saída para trás, o algoritmo reutiliza resultados intermediários para calcular todos os gradientes de peso em tempo proporcional à passagem para frente, tornando o treinamento de grandes redes viável.
- Gradiente descendente estocástico
- Estimar o gradiente a partir de pequenos lotes aleatórios torna cada atualização barata e introduz ruído útil, permitindo o treinamento em conjuntos de dados muito grandes e frequentemente melhorando a generalização.
- Métodos adaptativos e de momento
- O momento acumula gradientes passados para suavizar a descida, e os métodos adaptativos escalam o tamanho do passo por parâmetro, ambos acelerando a convergência nas superfícies de perda mal-condicionadas típicas de redes profundas.
Clinical relevance
A retropropagação com gradiente descendente estocástico é o motor por trás de essencialmente todo o aprendizado profundo moderno; compreender como os gradientes fluem explica tanto por que a profundidade era historicamente difícil de treinar quanto como as inovações em ativações, inicialização e otimizadores tornaram as redes muito profundas práticas.
History
A retropropagação foi derivada em vários contextos, incluindo a tese de Werbos de 1974, e foi trazida à proeminência por Rumelhart, Hinton e Williams em 1986. O gradiente descendente estocástico e, posteriormente, os otimizadores de momento e de taxa de aprendizado adaptativa tornaram-se os procedimentos de treinamento padrão, e abordar os gradientes evanescentes foi fundamental para treinar redes profundas e recorrentes.
Key figures
- David Rumelhart
- Geoffrey Hinton
- Ronald Williams
- Paul Werbos
Related topics
Seminal works
- rumelhart1986
- goodfellow2016
- bishop2006
Frequently asked questions
- O que a retropropagação realmente calcula?
- Ela calcula o gradiente da perda em relação a cada peso, ou seja, o quanto cada peso deve mudar para reduzir o erro. Isso é feito eficientemente propagando sinais de erro para trás, da camada de saída para a camada de entrada, usando a regra da cadeia.
- Por que treinar em pequenos lotes em vez de todos os dados de uma vez?
- Usar o conjunto de dados completo para cada atualização é caro e desnecessário. O gradiente descendente estocástico em mini-lotes estima o gradiente a partir de uma pequena amostra aleatória, tornando cada passo barato, permitindo muito mais atualizações e adicionando ruído que pode ajudar a escapar de soluções ruins.