数学建模社区-数学中国

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

作者: 2744557306    时间: 2023-11-29 11:37
标题: 训练神经网络的各种优化算法
梯度下降是最基本但使用最多的优化算法。它在线性回归和分类算法中大量使用。神经网络中的反向传播也使用梯度下降算法。* \+ W  ?" Y2 M$ B4 `

* p$ V) j- V* ?( u. J( u梯度下降是一种一阶优化算法,它依赖于损失函数的一阶导数。它计算应该改变权重的方式,以便函数可以达到最小值。通过反向传播,损失从一层转移到另一层,模型的参数(也称为权重)根据损失进行修改,从而使损失最小化。
4 u( H' s- X( i, d: i& a. @' M4 S1 a
优点:; t( L$ C& s. a2 L0 S7 ]

3 K  |. }$ c0 u! V0 {容易计算。+ a. d4 R9 e' U6 e( r! p! p' K; I
易于实施。9 q5 N0 w# f+ r  y9 E
容易理解。
4 U% x' W6 M) @6 |7 j5 d- D缺点:
2 `4 `; _9 Q$ y, T
( B+ C$ d. [& M9 |) P6 D8 U可能陷入局部最小值。2 c5 ]* l  V" F3 `6 c2 u
在计算整个数据集的梯度后,权重会发生变化。因此,如果数据集太大,可能需要数年时间才能收敛到最小值。
, ^8 s7 O1 D9 X( V5 w需要大内存来计算整个数据集的梯度' ~  e5 U% n; g2 D8 a7 K. o8 i
随机梯度下降* S. u  _/ `- F5 i
它是梯度下降的变体。它尝试更频繁地更新模型的参数。在这种情况下,模型参数在计算每个训练示例的损失后会发生变化。因此,如果数据集包含 1000 行,SGD 将在数据集的一个循环中更新模型参数 1000 次,而不是像梯度下降中那样更新一次。2 Y2 Z6 c7 S* M! a5 m% s

$ E( Y4 ?) i$ |  z) Y/ O- ^θ=θ−α⋅∇J(θ;x(i);y(i)) ,其中 {x(i) ,y(i)} 是训练样本
& I& C3 R, T* d8 {9 Y7 [4 _4 t: w7 T
由于模型参数更新频繁,参数在不同强度下具有较大的方差和损失函数波动。) l! N$ E- C% `. V  q# c

) g3 X  ~% o4 r8 {$ P2 H( \优点:
; i* k5 B8 m6 M6 V( `. P" C- z; I2 v' a1 T+ Q$ h8 o2 u* f
因此,频繁更新模型参数可以在更短的时间内收敛。
2 ~* a3 A) A# d( [, V需要更少的内存,因为不需要存储损失函数的值。
0 a! F% G7 c, K) K# Q可能会得到新的最小值。
: `# e: D, L4 W( H- F4 ?缺点:  W$ I* ?, |) Q5 W# J

/ r7 v3 q# ~7 S7 u+ L模型参数的高方差。
5 e/ ?7 s: G. ?, _! a即使在达到全局最小值后也可能射击。
7 ~2 f! L- o( \" F3 ^要获得与梯度下降相同的收敛性,需要慢慢降低学习率的值。
( k8 W- ^- v- [! M小批量梯度下降
0 k$ t  |; ~0 x% O它是梯度下降算法所有变体中最好的。它是对 SGD 和标准梯度下降的改进。它在每批次后更新模型参数。因此,数据集被分成不同的批次,每批次之后,参数都会更新。. S9 N$ @" M% m0 @; I. \+ ?
8 P& C0 p3 o9 A1 K7 D+ ]* Y
θ=θ−α⋅∇J(θ; B(i)),其中 {B(i)} 是训练样本的批次。
2 p$ w; H* f- o  h
0 U7 p/ \6 z6 o6 Z优点:
: S3 R* Y& ?5 N8 r! f
9 P: P& C; C; w" p! b- [; u经常更新模型参数并且方差也较小。' T* ?3 N4 d' R- r. l+ _
需要中等的内存' I" S4 H- Y8 r. f! Q# ?
所有类型的梯度下降都有一些挑战:* B; i4 ]  w* M! {8 |( r3 M8 k
: x& B* W/ X+ `& d  V6 ^; t
选择学习率的最佳值。如果学习率太小,梯度下降可能需要很长时间才能收敛。
0 M; G4 d% V( V9 A  y对所有参数都有一个恒定的学习率。可能有一些参数我们不想以相同的速率改变。; N: B$ \9 o! M: A
可能会陷入局部极小值。, h! @5 ?" {  y8 {7 t* F% l
其它优化算法
# n( R$ S. d; e具体我就不再详细介绍,其它优化器如下:6 K! i5 V! W: U' e1 \) P, M: _

6 \6 ^" l) C% z: Z5 ~! l/ UMomentum
7 Z; p/ A% M  p! f5 xNesterov Accelerated Gradient
' v: M! I, o: v$ ~Adagrad! X, c( h8 S- k/ t% }) I* [0 h
AdaDelta
" e& H# S, M6 D+ R4 RAdam3 c& {! K  c+ x, N
各个优化算法比较动态图' ]! A" j. p$ U( J7 q: n
VeryCapture_20231129112215.gif 2 o4 x8 _6 \6 H" ~) M" |

( E/ V5 o8 `$ K: D$ x( Y$ R
5 f- W2 `/ j" B5 [# J5 _$ q) M




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