Otimizadores (SGD, Adam, RMSprop)

Entregador

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.

Funções de Custo

programador

A função de custo mede o quão ruim é a predição da rede neural. Ela quantifica a diferença entre a saída prevista e o valor real. O objetivo do treinamento é minimizar esta função. Primeiramente, a escolha da função de custo impacta diretamente a convergência. Diferentes problemas exigem diferentes funções de custo. Por exemplo, classificação usa entropia cruzada, enquanto regressão usa erro quadrático médio. A função de custo guia o algoritmo de backpropagation. Consequentemente, ela determina como os pesos da rede são atualizados. Portanto, entender as funções de custo é essencial para o sucesso do treinamento.

erro quadrático médio (mse) para regressão

O erro quadrático médio (MSE) é a função de custo padrão para problemas de regressão. Ele calcula a média dos quadrados das diferenças entre predição e valor real. Primeiramente, a fórmula é MSE = (1/n) * Σ(yi – ŷi)². O quadrado penaliza erros grandes muito mais que erros pequenos. Por exemplo, um erro de 10 contribui com 100 para o custo. Um erro de 1, por outro lado, contribui com apenas 1. Esta propriedade torna o MSE sensível a outliers. Além disso, o MSE é diferenciável e convexo para modelos lineares. O gradiente do MSE é proporcional ao erro residual (yi – ŷi). Portanto, o MSE é ideal quando erros grandes são especialmente indesejáveis. Exemplos incluem previsão de preços de casas ou estoques.

entropia cruzada (cross-entropy) para classificação

A entropia cruzada é a função de custo padrão para problemas de classificação. Ela mede a dissimilaridade entre duas distribuições de probabilidade. Primeiramente, a fórmula para duas classes é: CE = -[y log(ŷ) + (1-y) log(1-ŷ)]. Para múltiplas classes, a fórmula se generaliza: CE = -Σ y_i log(ŷ_i). A entropia cruzada penaliza predições confiantes e erradas severamente. Por exemplo, se a rede tem 99% de confiança na classe errada, o custo explode. Esta propriedade acelera o aprendizado em comparação com o MSE. Além disso, a entropia cruzada funciona bem com a ativação softmax na última camada. O gradiente resultante é simples: (ŷ_i – y_i). Portanto, a entropia cruzada é a escolha padrão para classificação de imagens, texto e áudio.

quando utilizar cada função de custo

A escolha entre MSE e entropia cruzada depende do tipo de problema. Utilize MSE para problemas de regressão contínua. Por exemplo, prever a temperatura, idade ou preço de um produto. Outro caso é quando a saída é um único valor real. Utilize entropia cruzada para problemas de classificação discreta. Por exemplo, classificar imagens em gatos ou cachorros. Outra aplicação é classificação multiclasse, como dígitos de 0 a 9. A entropia cruzada também é usada em modelos de linguagem. Evite usar MSE para classificação com ativação sigmoid/softmax. O MSE causa gradientes vanishing e convergência lenta nestes casos. Em suma, regressão → MSE, classificação → entropia cruzada. Esta heurística simples funciona bem na maioria das aplicações práticas.

LinkedIn
Share
Instagram