Otimizadores (SGD, Adam, RMSprop)

1.1.2.4.4 – Arquiteturas CNN Profundas (Deep CNNs)
1.1.2.4.4.8 – Tecnicas de Treinamento
1.1.2.4.4.8.1 – Backpropagation
1.1.2.4.4.8.2 – Funcoes de Custo (Cross-Entropy, MSE)
1.1.2.4.4.8.3 – Otimizadores (SGD, Adam, RMSprop)
1.1.2.4.4.8.4 – Regularizacao (Dropout, Data Augmentation)
LEGENDA
Principal
Ramo
Metodo
Problemas
Modelo
Arquitetura

Otimizadores são algoritmos que atualizam os pesos das redes neurais. Eles determinam como o gradiente descendente é aplicado. Primeiramente, a escolha do otimizador impacta velocidade e qualidade da convergência. Diferentes otimizadores oferecem diferentes vantagens e desvantagens. Por exemplo, o SGD é simples, mas pode ser lento. O Adam, por outro lado, é rápido e robusto para muitos problemas. Consequentemente, entender os otimizadores é crucial para treinar redes eficientemente. Portanto, este guia explica os três otimizadores mais populares.

sgd (stochastic gradient descent) e momentum

O SGD é o otimizador mais fundamental e simples. Ele atualiza os pesos usando o gradiente do erro em relação a cada peso. Primeiramente, a regra de atualização é:

\( w_{t+1} = w_t – \eta \nabla L(w_t) \)
A taxa de aprendizado (η) controla o tamanho do passo. Uma desvantagem é que o SGD pode oscilar em vales estreitos. O momentum resolve este problema acumulando gradientes passados. A atualização com momentum é:
\( v_{t+1} = \beta v_t + \nabla L(w_t) \)
\( w_{t+1} = w_t – \eta v_{t+1} \)
O momentum suaviza as atualizações e acelera a convergência. Por exemplo, ele ajuda a atravessar platôs e regiões planas. Utilize SGD com momentum quando precisar de máxima generalização. Ele frequentemente alcança melhor desempenho em conjuntos de teste do que otimizadores adaptativos.

rmsprop: taxas de aprendizado adaptativas por parâmetro

O RMSprop adapta a taxa de aprendizado para cada parâmetro individualmente. Ele foi desenvolvido para lidar com gradientes não-estacionários. Primeiramente, ele mantém uma média móvel dos quadrados dos gradientes. A fórmula é:

\( E[g^2]_t = \beta E[g^2]_{t-1} + (1-\beta) g_t^2 \)
Em seguida, a atualização do peso é:
\( w_t = w_{t-1} – \frac{\eta}{\sqrt{E[g^2]_t + \epsilon}} g_t \)
Parâmetros com gradientes grandes têm taxas de aprendizado reduzidas. Parâmetros com gradientes pequenos, por outro lado, têm taxas aumentadas. O RMSprop é especialmente útil para redes recorrentes (RNNs). Ele também funciona bem em problemas com gradientes esparsos. Contudo, o RMSprop pode ser sensível aos hiperparâmetros. Experimente diferentes valores de β (tipicamente 0.9) e η.

adam: combinando momentum e rmsprop

O Adam (Adaptive Moment Estimation) é hoje o otimizador mais popular. Ele combina as vantagens do momentum e do RMSprop. Primeiramente, ele mantém duas médias móveis: momento (m) e variância (v). As atualizações são:

\( m_t = \beta_1 m_{t-1} + (1-\beta_1) g_t \)
\( v_t = \beta_2 v_{t-1} + (1-\beta_2) g_t^2 \)
Ambas as médias são corrigidas para o viés inicial:
\( \hat{m}_t = \frac{m_t}{1-\beta_1^t}, \quad \hat{v}_t = \frac{v_t}{1-\beta_2^t} \)
A regra de atualização final é:
\( w_t = w_{t-1} – \eta \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon} \)
O Adam é robusto à escolha dos hiperparâmetros. Valores padrão (η=0.001, β1=0.9, β2=0.999) funcionam bem para muitos problemas. Utilize Adam para a maioria das aplicações de deep learning. Ele converge rapidamente e é fácil de usar. Contudo, para tarefas com poucos dados, SGD pode generalizar melhor.

Deixe um comentário