深度学习--梯度下降算法(持续更新)

梯度下降(Gradient Descent,GD)算法


一.梯度下降

(一)基础

1.梯度

▽ f = ( ∂ f ∂ x , ∂ f ∂ y , ∂ f ∂ z ) \triangledown f=(\frac{\partial f}{\partial x},\frac{\partial f}{\partial y},\frac{\partial f}{\partial z}) f=(xf,yf,zf)
 

2.梯度下降

  • 梯度下降是最小化风险函数和损失函数的一种常用方法。梯度的方向实际就是函数在此点上升最快的方向,而往往需要的是损失函数的最小化,故有负号。
  • 在实际工作中,得到一组使得损失函数达到全局最小值是一种理想情况,更一般的情况是使得模型的准确度达到可接受范围的某个极小值。
     

3.梯度下降算法

θ 1 = θ 0 − α ▽ J ( θ 0 ) \theta_{1}=\theta_{0}-\alpha \triangledown J(\theta_{0}) θ1=θ0αJ(θ0)
其中, θ 1 \theta_{1} θ1 θ 1 \theta_{1} θ1表示位置始末, α \alpha α representa o tamanho do passo ou taxa de aprendizado,J ( θ ) J(\theta)J ( θ ) denota\thetaUma função de θ

As etapas reais do algoritmo:

  • Inicializar pesos e bias com valores aleatórios
  • Passe a entrada para a rede e obtenha o valor de saída
  • Calcule o erro entre os valores previstos e verdadeiros
  • Para cada neurônio que produz um erro, ajuste o valor (peso) correspondente para reduzir o erro
  • Repita as iterações até que o valor ótimo dos pesos da rede seja obtido

 
Código:
 

(2) Classificação

1. Batch Gradient Descent (BGD)

θ t + 1 = θ t − α ▽ J t ( θ ) \theta_{t+1}=\theta_{t}-\alpha \triangledown J_{t}(\theta)eut + 1=eutα Jt( θ )
假如以MSE作为损失函数,有
yi ^ = ∑ j = 0 mwjxi, j (w 0 = b, xi, 0 = 1) J (w) = 1 2 n ∑ i = 1 n (yi ^ − yi ) 2 ▽ J ( wj ) = ∂ J ( w ) ∂ wj = 1 n ∑ i = 1 n ( yi ^ − yi ) xi , jwj , t + 1 = wj , t − α ▽ J t ( wj ) , t = 1 , 2 , . . . \hat{y_{i}}=\sum_{j=0}^{m} w_{j} x_{i,j} (w_{0}=b, x_{i,0}=1)\\ J (w)= \frac {1} {2n} \sum_{i=1}^{n} ( \hat{y_{i}} -y_{i})^{2}\\ \triangledown J(w_{ j})=\frac{\parcial J(w)}{\parcial w_{j}}=\frac{1}{n} \sum_{i=1}^{n} ( \hat{y_{i} } -y_{i})x_{i,j}\\ w_{j,t+1}=w_{j,t}-\alpha \triangledown J_{t}(w_{j}),t=1, 2,...yeu^=j = 0mcjxeu , j( w0=b ,xeu , 0=1 )J ( w )=2 n1eu = 1n(yeu^yeu)2J ( wj)=wj∂J ( w ) _=n1eu = 1n(yeu^yeu) xeu , jcj , t + 1=cj , tα Jt( wj) ,t=1 ,2 ,. . .
Entre eles, j é o número de características dos dados, m é o número total de características, i é o número de amostras dos dados, n é o número total de amostras, t é o número de iterações época,yi ^ \hat{y_{i}}yeu^é o valor previsto, yi y_{i}yeué o valor real, J ( w ) J(w)J ( w ) éa função de custo
 
(1) Vantagens: a direção da descida é o gradiente médio geral e a solução ótima global pode ser obtida
(2) Desvantagens: todo o conjunto de amostras de dados precisa ser calculado e a velocidade será ser relativamente lento
(3) Características:

  • Para a atualização dos parâmetros, todas as amostras contribuem, então o cálculo é o gradiente máximo e a magnitude de uma atualização é grande
  • Quando não há muitas amostras, a velocidade de convergência será muito rápida
     

2. Descida de Gradiente em Minilote (MBGD)

Cada atualização usa k amostras e a distribuição das amostras de resposta até certo ponto
θ t + 1 = θ t − α k ∑ i = k ( t − 1 ) + 1 kt ▽ J i , t ( θ ) \theta_{ t +1}=\theta_{t}-\frac{\alpha}{k} \sum_{i=k(t-1)+1}^{kt} \triangledown J_{i,t}(\theta)eut + 1=eutkai = k ( t 1 ) + 1kt _Jeu , t( ) _
_
_ i ( wj ) = ∂ J i ( w ) ∂ wj = ( yi ^ − yi ) xi , jwj , t + 1 = wj , t − α k ∑ i = k ( t − 1 ) + 1 kt ▽ J i , t ( wj ) , t = 1 , 2 , 3 , . . . , [nk] \hat{y_{i}}=\sum_{j=0}^{m} w_{j} x_{i,j} (w_{0}=b, x_{i,0}=1 )\\ J_{i}(w)= \frac {1} {2} ( \hat{y_{i}} -y_{i})^{2}\\ \triangledown J_{i}(w_{j })=\frac{\parcial J_{i}(w)}{\parcial w_{j}}=( \hat{y_{i}} -y_{i})x_{i,j}\\ w_{ j,t+1}=w_{j,t}- \frac{\alpha}{k} \sum_{i=k(t-1)+1}^{kt}\triangledown J_{i,t}( w_{j}),t=1,2,3,...,[\frac{n}{k}]yeu^=j = 0mcjxeu , j(w0=b,xi,0=1)Ji(w)=21(yi^yi)2Ji(wj)=wjJi(w)=(yi^yi)xi,jwj,t+1=wj,tkαi=k(t1)+1ktJi,t(wj),t=1 ,2 ,3 ,. . . ,[kn]
Entre eles, j é o número de características dos dados, m é o número total de características, i é o número de amostras dos dados, n é o número total de amostras, t é o número de épocas de iterações, k é o número de amostras de lote tamanho do lote, yi ^ \hat{y_{i} }yeu^é o valor previsto, yi y_{i}yeué o valor real, J i ( w ) J_{i}(w)Jeu( w ) éa função de perda
 
(1) Vantagens: Garante a velocidade de treinamento e a precisão da convergência final
(2) Desvantagens: É difícil escolher uma taxa de aprendizado apropriada
 

3. Descida do Gradiente Estocástico (SGD)

Cada iteração atualiza os parâmetros, usando apenas uma amostra aleatória p
θ t + 1 = θ t − α ▽ J i = p , t ( θ ) , p ∈ [ 1 , 2 , . . . , n ] \theta_{t+ 1 }=\theta_{t}-\alpha \triangledown J_{i=p,t}(\theta),p \in [1,2,...,n]eut + 1=eutα Ji = p , t( eu ) ,p[ 1 ,2 ,. . . ,n ]
假如以MSE作为损失函数,有
yi ^ = ∑ j = 0 mwjxi , j ( w 0 = b , xi , 0 = 1 ) J i ( w ) = 1 2 ( yi ^ − yi ) 2 ▽ J i ( wj ) = ∂ J i ( w ) ∂ wj = ( yi ^ − yi ) xi , jwj , t + 1 = wj , t − α ▽ J i = p , t ( wj ) , 其 中 p ∈ [ 1 , 2 , . . . , n ] , t = 1 , 2 , . . . \hat{y_{i}}=\sum_{j=0}^{m} w_{j} x_{i,j} (w_{0}=b, x_{i,0}=1)\\ J_ {i}(w)= \frac {1} {2} ( \hat{y_{i}} -y_{i})^{2}\\ \triangledown J_{i}(w_{j})=\ frac{\parcial J_{i}(w)}{\parcial w_{j}}=( \hat{y_{i}} -y_{i})x_{i,j}\\ w_{j,t+ 1}=w_{j,t}- \alpha \triangledown J_{i=p,t}(w_{j}),其中p \in [1,2,...,n],t=1,2 ,...yeu^=j = 0mcjxeu , j( w0=b ,xeu , 0=1 )Jeu( w )=21(yeu^yeu)2Jeu( wj)=wjJeu( w )=(yeu^yeu) xeu , jcj , t + 1=cj , tα Ji = p , t( wj) ,onde p[ 1 ,2 ,. . . ,n ] ,t=1 ,2 ,. . .
Entre eles, j é o número de características dos dados, m é o número total de características, i é o número de amostras dos dados, n é o número total de amostras, t é o número de iterações época, p é a ordem das amostras aleatórias, yi ^ \hat{y_{i} }yeu^é o valor previsto, yi y_{i}yeué o valor real, J i ( w ) J_{i}(w)Jeu( w ) éa função de perda
 
(1) Vantagens: apenas o gradiente de uma amostra precisa ser calculado e a velocidade de treinamento é muito rápida
(2) Desvantagens: é fácil pular de um ótimo local para outro e a precisão diminui
(3) Características:

  • Quando há muitas amostras, a velocidade de convergência é rápida
  • Cada atualização usa uma amostra para aproximar todas as amostras, então o gradiente aproximado é calculado, mesmo com interferência, caindo em uma solução ótima local
     
3.1. Descida do gradiente estocástico médio (ASGD, SAG)

Se o MSE for usado como a função de perda e apenas uma amostra aleatória p for usada para atualizar o gradiente, haverá
yi , t ^ = ∑ j = 0 mwj , txi , j ( w 0 = b , xi , 0 = 1 ) J i , t ( w ) = 1 2 ( yi , t ^ − yi ) 2 ▽ J i , t ( wj ) = ∂ J i , t ( w ) ∂ wj = ( yi , t ^ − yi ) xi , j 初 始 化 : ▽ J i , t = 1 ( wj ) = ( ∑ j = 0 mwj , t = 1 xi , j − yi ) xi , jwj , t + 1 = wj , t − α n [ ▽ J i = p , t ( wj ) + ∑ i = 1 n ▽ J i ≠ p , t − 1 ( wj ) ] 其 中 p ∈ [ 1 , 2 , . . . , n ] , t = 1 , 2 , . . . \hat{y_{i,t}}=\sum_{j=0}^{m} w_{j,t} x_{i,j} (w_{0}=b, x_{i,0}=1 )\\ J_{i,t}(w)= \frac {1} {2} ( \hat{y_{i,t}} -y_{i})^{2}\\ \triangledown J_{i, t}(w_{j})=\frac{\parcial J_{i,t}(w)}{\parcial w_{j}}=( \hat{y_{i,t}} -y_{i}) x_{i,j}\\ 初始化:\triangledown J_{i,t=1}(w_{j})=(\sum_{j=0}^{m} w_{j,t=1} x_{i ,j}-y_{i})x_{i,j}\\ w_{j,t+1}=w_{j,t}- \frac{\alpha}{n} [\triangledown J_{i=p ,t}(w_{j})+\sum_{i=1}^{n}\triangledown J_{i\neq p,t-1}(w_{j})]\\ 其中p \in [1, 2,...,n],yeu , t^=j = 0mcj , txeu , j( w0=b ,xeu , 0=1 )Jeu , t( w )=21(yeu , t^yeu)2Jeu , t( wj)=wjJeu , t( w )=(yeu , t^yeu) xeu , jInicialização : Ji , t = 1( wj)=(j = 0mcj , t = 1xeu , jyeu) xeu , jcj , t + 1=cj , tna[ Ji = p , t( wj)+eu = 1nJeu= p , t 1( wj) ]onde p[ 1 ,2 ,. . . ,n ] ,t=1 ,2 ,. . .
Entre eles, j é o número de características dos dados, m é o número total de características, i é o número de amostras dos dados, n é o número total de amostras, t é o número de iterações época, k é o número de amostras em lote tamanho do lote, yi ^ \hat{y_{ i}}yeu^é o valor previsto, yi y_{i}yeué o valor real, J i ( w ) J_{i}(w)Jeu( w ) éa função de perda.
 
No método SGD, embora o problema do alto custo computacional seja evitado, o efeito do SGD costuma ser insatisfatório para treinamento de dados grandes, porque cada rodada de atualização de gradiente é completamente consistente com a rodada anterior. Dados não tem nada a ver com gradientes. O algoritmo de gradiente médio estocástico supera esse problema, mantém um gradiente antigo para cada amostra na memória, seleciona aleatoriamente a p-ésima amostra para atualizar o gradiente dessa amostra e mantém os gradientes de outras amostras inalterados e, em seguida, obtém o gradiente de todas média dos gradientes, que por sua vez atualiza os parâmetros.
 

3.2 Descida de Gradiente Estocástico com Momentum (SGD com Momentum) (SGDM)

 

3.3 SGDW

 

3.4 SGDWM

 

3.5 LR Cíclica

 

3.6 SGDR

 

2. Algoritmo de otimização de descida de gradiente

(1) Conhecimento teórico complementar

1. Média ponderada exponencialmente

V t = β V t − 1 + ( 1 − β ) θ t V_{t}=\beta V_{t-1}+(1-\beta)\theta _{t}Vt=b Vt - 1+( 1b ) eut
 

2. Correção de viés em média ponderada exponencialmente

V t = 1 1 − β t [ β V t − 1 + ( 1 − β ) θ t ] ( V 0 = 0 ) V_{t}=\frac{1}{1-\beta ^{t}}[\beta V_{t-1}+(1-\beta)\theta _{t}]\\ (V_{0}=0) Vt=1βt1[βVt1+(1β)θt](V0=0)

3.指数加权移动平均(exponentially weighted moving average)

主要是对前期数据进行修正,当 t → ∞ t\to \infty t时, β t → 0 \beta ^{t}\to0 βt0,即对后期数据影响不大
 

4.Nesterov加速算法

5.牛顿法

(二)动量优化算法

引入物理学中的动量思想,加速梯度下降,梯度下降在不变的维度上,参数更新变快,梯度有所改变时,更新参数变慢,这样就能够加快收敛并且减少动荡
 

1.动量momentum

Quando os parâmetros são atualizados, a direção atualizada anteriormente
vt + 1 = β vt + α ▽ J ( θ t ) θ t + 1 = θ t − vt + 1 v_{t+1}=\beta v_{t} é mantida até certo ponto +\alpha \triangledown J(\theta_{t})\\ \theta_{t+1}=\theta_{t}-v_{t+1}vt + 1=b vt+a J ( it)eut + 1=eutvt + 1
 
(1) Características:

  • Quando a direção do gradiente muda, o momento pode reduzir a velocidade de atualização do parâmetro, reduzindo assim o choque
  • Quando a direção do gradiente é a mesma, o momento pode acelerar as atualizações de parâmetros, acelerando assim a convergência
     

2. Gradiente Acelerado Nesterov (NAG)

A melhoria do momento é fazer uma correção quando o gradiente é atualizado. O método específico é adicionar o momento do momento anterior
vt + 1 = β vt − α ▽ J ( θ t + β vt ) θ t + 1 = θ ao gradiente atual J t + vt + 1 v_{t+1}=\beta v_{t}-\alpha \triangledown J(\theta_{t}+ \beta v_{t})\\ \theta_{t+ 1}=\theta_ {t}+v_{t+1}vt + 1=b vta J ( it+b vt)eut + 1=eut+vt + 1
Desvantagens:
Este algoritmo levará a uma velocidade de execução extremamente lenta, que é duas vezes mais lenta que o impulso; portanto, no processo de implementação real, quase ninguém usa diretamente esse algoritmo, mas usa uma versão deformada.
 
Processo de derivação:
Seja θ t ′ = θ t + β vt \theta'_{t}=\theta_{t}+ \beta v_{t}eut=eut+b vt,得
θ t + 1 = θ t + β vt − α ▽ J ( θ t + β vt ) \theta_{t+1}=\theta_{t}+\beta v_{t}-\alpha \triangledown J( \theta_{t}+ \beta v_{t})eut + 1=eut+b vta J ( it+b vt)
⇒ θ t + 1 ′ − β vt + 1 = θ t ′ − α ▽ J ( θ t ′ ) \Rightarrow\theta'_{t+1}-\beta v_{t+1}=\theta'_ {t}-\alpha \triangledown J(\theta'_{t})eut + 1b vt + 1=euta J ( it)
⇒ θ t + 1 ′ = θ t ′ + β [ β vt − α ▽ J ( θ t + β vt ) ] − α ▽ J ( θ t ′ ) \Rightarrow\theta'_{t+1}=\ theta'_{t}+\beta[\beta v_{t}-\alpha \triangledown J(\theta_{t}+ \beta v_{t})]-\alpha \triangledown J(\theta'_{t })eut + 1=eut+b [ b vta J ( it+b vt) ]a J ( it)
⇒ θ t + 1 ′ = θ t ′ + β 2 vt − α ( 1 + β ) ▽ J ( θ t ′ ) \Rightarrow\theta'_{t+1}=\theta'_{t}+\ beta^{2}v_{t}-\alpha(1+\beta) \triangledown J(\theta'_{t})eut + 1=eut+b2v_ _tum ( 1+b ) J ( it)
⇒ θ t + 1 = θ t + β 2 vt − α ( 1 + β ) ▽ J ( θ t ) \Rightarrow\theta_{t+1}=\theta_{t}+\beta^{2}v_{ t}-\alpha(1+\beta) \triangledown J(\theta_{t})eut + 1=eut+b2v_ _tum ( 1+b ) J ( it)
 
变形版本:
vt + 1 = β 2 vt − α ( 1 + β ) ▽ J ( θ t ) θ t + 1 = θ t + vt + 1 v_{t+1}=\beta^{2}v_{ t}-\alpha(1+\beta) \triangledown J(\theta_{t})\\ \theta_{t+1}=\theta_{t}+v_{t+1}vt + 1=b2v_ _tum ( 1+b ) J ( it)eut + 1=eut+vt + 1


insira a descrição da imagem aqui

Adicione uma descrição da imagem
Momentum: (azul) atualize o gradiente primeiro e, em seguida, dê um grande passo na direção do momento original
NAG: (verde) primeiro dê um grande passo na direção do momento original (marrom), depois calcule o gradiente (vermelho) e obtenha a linha verde corrigida
 

(3) Algoritmo de otimização de propagação

1. Propagação resiliente (Rprop)

 

2. Propagação da raiz quadrada média Propagação da raiz quadrada média (RMSprop)

Adadelta的一个特例,当ρ=0.5时,E就变为了求梯度平方和的平均数;如果再求根,就变成了RMS(均方根)
g t = ▽ J ( θ t ) G t = β G t − 1 + ( 1 − β ) g t 2 θ t + 1 = θ t − α G t + ε g t g_{t}=\triangledown J(\theta_{t})\\ G_{t}=\beta G_{t-1}+(1-\beta)g_{t}^{2}\\ \theta_{t+1}=\theta_{t}-\frac{\alpha}{\sqrt{G_{t}+\varepsilon}} g_{t} gt=J(θt)Gt=βGt1+(1β)gt2θt+1=θtGt+ε αgt
 
(1)特点:·RMSprop算是AdaGrad的一种发展,Adadelta的变体,效果趋于二者之间·适合处理非平稳目标,对RNN效果很好
 

(四)自适应学习率算法

1.自适应梯度Adaptive Gradient(AdaGrad)

gt = ▽ J ( θ t ) G t = G t − 1 + gt 2 θ t + 1 = θ t − α G t + ε gt g_{t}=\triangledown J(\theta_{t})\\ G_ {t}=G_{t-1}+g_{t}^{2}\\ \theta_{t+1}=\theta_{t}-\frac{\alpha}{\sqrt{G_{t}+ \varepsilon}} g_{t}gt=J ( it)Gt=Gt - 1+gt2eut + 1=eutGt+e agt
onde α \alphaα é a taxa de aprendizado, geralmente0,01 0,010 . 0 1 ;ε \varepsilonε é para evitar que o denominador seja 0, geralmente leva1 0 − 7 10^{-7}1 07
 
(1) Vantagens: No estágio inicial, na direção de um espaço de parâmetros mais suave, maior progresso será feito; para parâmetros com gradientes maiores, a taxa de aprendizado será menor. Para parâmetros com pequenos gradientes, o efeito é inverso. Desta forma, os parâmetros podem ser reduzidos um pouco mais rápido em um local suave, para não estagnar.
(2) Desvantagens: a taxa de aprendizado é reduzida prematura e excessivamente; por ser o quadrado do gradiente acumulado, o gradiente desaparecerá no estágio posterior
 

2. Adadelta See More

Restrições AdaGrad
podem ser usadas : E ( g 2 ) t = 0 = 0 , E ( h 2 ) t = 0 = 0 gt = ▽ J ( θ t ) E ( g 2 ) t = β E ( g 2 ) t − 1 + ( 1 − β ) gt 2 ht = E ( h 2 ) t − 1 + ε E ( g 2 ) t + ε gt E ( h 2 ) t = β E ( h 2 ) t − 1 + ( 1 − β ) ht 2 θ t + 1 = θ t − ht Teorema:E(g^{2})_{t=0}=0,E(h^{2})_{t=0}=0 \\ g_{t}=\triangledown J(\theta_{t})\\E(g^{2})_{t}=\beta E(g^{2})_{t-1}+( 1- \beta) g_{t}^{2}\\h_{t}= \frac {\sqrt{E(h^{2})_{t-1}+\varepsilon}}{\sqrt{E (g ^{2})_{t}+\varepsilon}} g_{t}\\ E(h^{2})_{t}=\beta E(h^{2})_{t-1 }+ (1-\beta) h_{t}^{2}\\\theta_{t+1}=\theta_{t}-h_{t}Inicialização : E ( g2 )t = 0=0 ,E ( h2 )t = 0=0gt=J ( it)E ( g2 )t=βE ( g _2 )t - 1+( 1b ) gt2ht=E ( g2 )t+e E ( h2 )t - 1+e gtE ( h2 )t=βE ( h _2 )t - 1+( 1b ) ht2eut + 1=eutht
onde ε \varepsilonε é para evitar que o denominador seja 0, geralmente leva1 0 − 6 10^{-6}1 06
 
(1) Características:

  • No início e no meio do treinamento, o efeito de aceleração é bom, muito rápido
  • Treino atrasado. Jitter repetidamente em torno de mínimos locais
  • Não confie na taxa de aprendizado global, definir manualmente uma taxa de aprendizado global não afetará o resultado final
     

3. Estimativa do momento adaptativo (Adam)

初 始 化 : m 0 = 0 , v 0 = 0 gt = ▽ J ( θ t ) mt = 1 1 − β 1 t [ β 1 mt − 1 + ( 1 − β 1 ) gt ] vt = 1 1 − β 2 t [ β 2 vt − 1 + ( 1 − β 2 ) gt 2 ] θ t + 1 = θ t − α vt + ε mt 初始化:m_{0}=0,v_{0}=0\\ g_{ t}=\triangledown J(\theta_{t})\\ m_{t}=\frac{1}{1-\beta_{1} ^{t}}[\beta_{1} m_{t-1} +(1-\beta_{1})g_{t}]\\ v_{t}=\frac{1}{1-\beta_{2} ^{t}}[\beta_{2} v_{t- 1}+(1-\beta_{2})g_{t}^{2}]\\ \theta_{t+1}=\theta_{t}-\frac{\alpha}{\sqrt{v_{t }}+\varepsilon} m_{t}inicialização : m0=0 ,v0=0gt=J ( it)mt=1b1t1[ b1mt - 1+( 1b1) gt]vt=1b2t1[ b2vt - 1+( 1b2) gt2]eut + 1=eutvt +eamt
onde α \alphaα é a taxa de aprendizado, geralmente0,001 0,0010 . 0 0 1 ;β 1 \beta_{1}b1e β 2 \beta_{2}b2é a constante de suavização ou taxa de decaimento, geralmente 0,9 e 0,9 respectivamente0,9 e 0,999 0,999 _0 . 9 9 9 ,ε \varepsilonε é para evitar que o denominador seja 0, geralmente leva1 0 − 8 10^{-8}1 08
 
(1) Explicação:

  • Adam também precisa encontrar a soma dos quadrados do gradiente v (ou seja, G em RMSPropz)
  • Atualize suavemente o gradiente usando a nova variável m
  • A soma dos gradientes quadrados do gradiente será atualizada com reservas
  • A soma dos gradientes quadrados do gradiente será atualizada com reservas

(2) Características:

  • Os parâmetros são relativamente estáveis
  • Bom para lidar com gradientes esparsos, bom para lidar com alvos não estacionários
  • Calcule diferentes taxas de aprendizado adaptativo para diferentes parâmetros
  • 也适用于大多非凸优化问题——适用于大数据集和高维空间
     
3.1 Adamax

Adam加入学习率上限
 

3.2 AdamW

Adam加入权重衰减
 

3.3 AMSGrad

 

3.4 Nadam

Adam中引入Nesterov加速效果
 

3.5 SparseAdam

针对稀疏(sparse)张量的Adam
 

3.6 AdaBound

 

(五)其他

1.SWATS

 

2.RAdam

 

3.Lookahead

 

4.Nesterov accelerated gradient (NAG)

 

方法对比

算法 优点 缺点 适用情况
批量梯度下降 目标函数为凸函数时,可以找到全局最优值 收敛速度慢,需要用到全部数据,内存消耗大 不适用于大数据集,不能在线更新模型
随机梯度下降 避免冗余数据的干扰,收敛速度加快,能够在线学习 更新值的方差较大,收敛过程会产生波动,可能落入极小值,选择合适的学习率比较困难 适用于需要在线更新的模型,适用于大规模训练样本情况
小批量梯度下降 降低更新值的方差,收敛较为稳定 选择合适的学习率比较困难
Momentum 能够在相关方向加速SGD,抑制振荡,从而加快收敛 需要人工设定学习率 适用于有可靠的初始化参数
Nesterov 梯度在大的跳跃后,进行计算对当前梯度进行校正 需要人工设定学习率
Adagrad 不需要对每个学习率手工地调节 仍依赖于人工设置一个全局学习率,学习率设置过大,对梯度的调节太大,中后期,梯度接近于0,使得训练提前结束 需要快速收敛,训练复杂网络时:适合处理稀疏梯度
Adadelta 不需要预设一个默认学习率,训练初中期,加速效果不错,很快,可以避免参数更新时两边单位不统一的问题 训练后期,反复在局部最小值附近抖动 需要快速收敛,训练复杂网络时
RMSprop 解决Adagrad激进的学习率缩减问题 依然依赖于全局学习率 需要快速收敛,训练复杂网络时;适合处理非平稳目标-对于RNN效果很好
Adam 对内存需求较小,为不同的参数计算不同的自适应学习率 需要快速收敛,训练复杂网络时;善于处理稀疏梯度和处理非平稳目标的优点,也适用于大多非凸优化-适用于大数据集和高维空间
  • Para dados esparsos, tente usar um método de otimização com taxa de aprendizado adaptável
  • SGD geralmente leva mais tempo para treinar, mas os resultados são mais confiáveis
  • Se você se preocupa com uma convergência mais rápida, é recomendável usar o método de otimização adaptativa da taxa de aprendizado
  • Adadelta, RMSprop, Adam são algoritmos relativamente semelhantes

O acima não está finalizado e precisa ser atualizado, é apenas para estudo pessoal, o contato de infração é excluído, se houver algum erro ou deficiência, por favor, aponte para melhoria.

Acho que você gosta

Origin blog.csdn.net/abc31431415926/article/details/127968430
Recomendado
Clasificación