数学建模社区-数学中国
标题:
训练神经网络的各种优化算法
[打印本页]
作者:
2744557306
时间:
2023-11-29 11:37
标题:
训练神经网络的各种优化算法
梯度下降是最基本但使用最多的优化算法。它在线性回归和分类算法中大量使用。神经网络中的反向传播也使用梯度下降算法。
' i3 H) f/ U/ F# s9 R
; T7 J; x9 f2 H
梯度下降是一种一阶优化算法,它依赖于损失函数的一阶导数。它计算应该改变权重的方式,以便函数可以达到最小值。通过反向传播,损失从一层转移到另一层,模型的参数(也称为权重)根据损失进行修改,从而使损失最小化。
% Q5 e5 E6 W E/ v) C4 g" N
" `8 f- u1 n2 V- W
优点:
! E- t# ^% |% }7 I) [3 U( ~9 L9 }
8 G% Y1 x) d) {+ ?$ Q. r
容易计算。
1 }5 s( }6 S+ F: O+ ~
易于实施。
}9 l8 h# O7 C" s1 j* \* s, Y
容易理解。
0 Q) ~6 S; n( |( h) Q9 q! R
缺点:
9 O. W6 N: H: J% }' E
, u4 m% z: D; N& g) l# ~
可能陷入局部最小值。
4 S2 [) v" r7 ^+ R: q9 C
在计算整个数据集的梯度后,权重会发生变化。因此,如果数据集太大,可能需要数年时间才能收敛到最小值。
; W2 H* k0 V# X2 s0 B
需要大内存来计算整个数据集的梯度
8 h2 q5 o* N9 v) }# @: y
随机梯度下降
8 b/ t4 W0 u5 v$ E9 q
它是梯度下降的变体。它尝试更频繁地更新模型的参数。在这种情况下,模型参数在计算每个训练示例的损失后会发生变化。因此,如果数据集包含 1000 行,SGD 将在数据集的一个循环中更新模型参数 1000 次,而不是像梯度下降中那样更新一次。
; K& [4 }; W( V" Y
/ H9 G2 W1 P7 k( Q
θ=θ−α⋅∇J(θ;x(i);y(i)) ,其中 {x(i) ,y(i)} 是训练样本
9 N# C0 M- o: X7 ]) h+ p( [+ y
0 K$ Q0 a4 E" V n7 E) w$ o9 n3 X
由于模型参数更新频繁,参数在不同强度下具有较大的方差和损失函数波动。
7 X0 I5 Q& v: F4 z/ I# N5 ~
9 ]$ B& `. y: A O3 B
优点:
' p9 c8 X( o) X' J& K
$ V9 `- _- L- y( a& U& l- V4 @6 |
因此,频繁更新模型参数可以在更短的时间内收敛。
( V3 u0 W$ f% F" x
需要更少的内存,因为不需要存储损失函数的值。
) x2 X+ ~8 k2 H; y: L/ L
可能会得到新的最小值。
* x, N! J9 o+ M" e) D5 ~, D% n
缺点:
2 G6 V& L( M. L1 j5 \
- z! J& s4 T; r" i) D4 ]
模型参数的高方差。
! r: X0 ]8 [# t# _5 {: j; @
即使在达到全局最小值后也可能射击。
8 e% Z" ~+ x ~9 A9 H) J* m5 x7 T2 p
要获得与梯度下降相同的收敛性,需要慢慢降低学习率的值。
3 R- \: D T* I5 A3 S
小批量梯度下降
# g6 @2 L# e) K) O, o
它是梯度下降算法所有变体中最好的。它是对 SGD 和标准梯度下降的改进。它在每批次后更新模型参数。因此,数据集被分成不同的批次,每批次之后,参数都会更新。
, L' W$ h7 I- {% U4 a) y% N) G
1 }, a* ` P" l" J# z% s
θ=θ−α⋅∇J(θ; B(i)),其中 {B(i)} 是训练样本的批次。
: _1 X. A6 _# {( |' k
( C! f5 ]) N5 K" ~+ D. r4 k
优点:
/ M1 Y9 @* |2 M) \: I$ u
4 C" J; A& Y) O! R5 [. ?! ?# t
经常更新模型参数并且方差也较小。
1 \& C6 F2 y% N) s
需要中等的内存
8 j( t& s A- ]# M2 G, z
所有类型的梯度下降都有一些挑战:
0 i. k/ X/ o: N4 ]" ^
/ ?+ @8 I) s9 \8 @0 z
选择学习率的最佳值。如果学习率太小,梯度下降可能需要很长时间才能收敛。
: ?) h1 ^ `3 ^. C- }
对所有参数都有一个恒定的学习率。可能有一些参数我们不想以相同的速率改变。
% \0 l% e8 z) w6 j* b4 F; `
可能会陷入局部极小值。
! T, c' x5 O" w( T
其它优化算法
: _2 c- f& h$ ]8 f9 j3 ]4 }
具体我就不再详细介绍,其它优化器如下:
: k H7 l4 B& M" p% {" R
8 q3 \9 u+ z3 O
Momentum
. f* A0 H; W; S _. n4 p
Nesterov Accelerated Gradient
! ^& j( E( M1 }5 C# x( i
Adagrad
1 M' }% ~! Y, G% _8 E
AdaDelta
, Z6 J; u( c2 Q: D0 s9 J( ~
Adam
7 P7 ]9 b% t/ z* ?$ c# z1 E
各个优化算法比较动态图
* j! A) j! r- B# R+ {$ x
2023-11-29 11:33 上传
下载附件
(1.09 MB)
$ X0 N6 Q( \& l! d* H, f
- y' p3 k- t, |$ i6 R
8 S0 Z0 T/ ~. j- l1 p: @
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5