数学建模社区-数学中国

标题: 训练神经网络的各种优化算法 [打印本页]

作者: 2744557306    时间: 2023-11-29 11:37
标题: 训练神经网络的各种优化算法
梯度下降是最基本但使用最多的优化算法。它在线性回归和分类算法中大量使用。神经网络中的反向传播也使用梯度下降算法。( S/ v; U  }0 b
4 O6 W+ ?) b, w
梯度下降是一种一阶优化算法,它依赖于损失函数的一阶导数。它计算应该改变权重的方式,以便函数可以达到最小值。通过反向传播,损失从一层转移到另一层,模型的参数(也称为权重)根据损失进行修改,从而使损失最小化。
9 t  E8 A, Y5 v- m: \3 `. [
: I0 {1 l7 k" I$ u优点:( d8 y. R+ F' [% ?
7 A/ A  b9 i6 ^" g2 h
容易计算。5 \( c- D+ e- a. {
易于实施。. I& o+ h5 N4 B* L9 L
容易理解。" x& g; Q3 V7 H: r1 `
缺点:
9 \+ X; v7 Q0 \- C/ {& z) k' u3 e2 S% K- n3 g8 C
可能陷入局部最小值。
+ k. j  Z$ T$ U! {& n在计算整个数据集的梯度后,权重会发生变化。因此,如果数据集太大,可能需要数年时间才能收敛到最小值。+ ]1 S) {& k1 j9 @6 {! i, A
需要大内存来计算整个数据集的梯度
( r" Z/ |- F, m- Y7 b2 h3 l随机梯度下降* \  p" V$ P1 U9 N0 @- V
它是梯度下降的变体。它尝试更频繁地更新模型的参数。在这种情况下,模型参数在计算每个训练示例的损失后会发生变化。因此,如果数据集包含 1000 行,SGD 将在数据集的一个循环中更新模型参数 1000 次,而不是像梯度下降中那样更新一次。
) J$ h- F/ H+ U
% }7 L- e8 T; k/ Dθ=θ−α⋅∇J(θ;x(i);y(i)) ,其中 {x(i) ,y(i)} 是训练样本4 J- g  J6 o! X3 H/ p  ]

: e/ T* }7 V, U( m* G8 H由于模型参数更新频繁,参数在不同强度下具有较大的方差和损失函数波动。
' ^! z, D' {# e9 K0 M# h/ W- W- c# y* d4 j2 ]
优点:' U0 R: O; ~8 n8 Y* ~

' h/ j  N+ a* y* B4 e( q因此,频繁更新模型参数可以在更短的时间内收敛。
* H  j) S$ q3 H0 B4 F% R5 A, Z( }需要更少的内存,因为不需要存储损失函数的值。
) w1 \% _& t/ i) T9 s( s5 X/ a) f可能会得到新的最小值。1 v% U+ N( A7 I% C/ e
缺点:0 ]" A6 I0 v3 h7 \* V2 h
$ }+ U3 _* q+ e" ]
模型参数的高方差。
8 C, Z; g. \8 n4 Z4 S即使在达到全局最小值后也可能射击。
' ?1 \/ v  w& X( Y$ x  C要获得与梯度下降相同的收敛性,需要慢慢降低学习率的值。
& e+ j: ~3 ~, {! b0 s3 E9 |$ I小批量梯度下降
+ X% n" x0 j) _, w它是梯度下降算法所有变体中最好的。它是对 SGD 和标准梯度下降的改进。它在每批次后更新模型参数。因此,数据集被分成不同的批次,每批次之后,参数都会更新。1 \6 X# Q, v& a, S* G3 ]
1 z$ ]2 p7 j' O0 b: R. ~3 P3 j
θ=θ−α⋅∇J(θ; B(i)),其中 {B(i)} 是训练样本的批次。
* v2 c. v% Z' Z5 k
+ e0 L0 H) n, m9 q  {优点:
* v" W' y2 a* b0 N. @" c5 W4 B, |! k0 L
经常更新模型参数并且方差也较小。8 L3 A1 _$ L  i9 F0 [& g4 V
需要中等的内存
( T* Y- E3 ?' E; l  J# l所有类型的梯度下降都有一些挑战:
* h8 {8 e* M+ B4 }  c: _+ A2 c  q  o0 n0 q- P7 z, f
选择学习率的最佳值。如果学习率太小,梯度下降可能需要很长时间才能收敛。2 Y3 t: H7 H3 y/ i; g  K3 ]$ s' K
对所有参数都有一个恒定的学习率。可能有一些参数我们不想以相同的速率改变。
% y8 r! O% Y5 r% r可能会陷入局部极小值。
, \3 X$ [# h% W其它优化算法
  l* F2 [+ V3 L+ \7 c  }* ~具体我就不再详细介绍,其它优化器如下:
- \. D% }" m$ f. K  [4 j6 H% n
! G: w/ t: q: T# f8 QMomentum" k% t/ [. G. `* Y0 a3 u
Nesterov Accelerated Gradient, n( y; A. U2 C1 H) V( P7 t
Adagrad
! t$ x7 `& S0 R& L7 \3 F$ }. E- O! VAdaDelta; H3 ?( g# Z; S, S
Adam
" k: z/ c( S# g* x+ V; r  u各个优化算法比较动态图" }( m5 N9 c- h
VeryCapture_20231129112215.gif 3 W8 I, _9 }5 x7 h, A( s

6 P5 H  f, Z9 w$ m4 u: h( O$ R$ J7 k1 {  z. O9 [# U' S" Y





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5