数学建模社区-数学中国

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

作者: 2744557306    时间: 2023-11-29 11:37
标题: 训练神经网络的各种优化算法
梯度下降是最基本但使用最多的优化算法。它在线性回归和分类算法中大量使用。神经网络中的反向传播也使用梯度下降算法。
3 Q* `9 T1 U; ]8 Y& K3 o- m) K. G8 k) d0 d5 @
梯度下降是一种一阶优化算法,它依赖于损失函数的一阶导数。它计算应该改变权重的方式,以便函数可以达到最小值。通过反向传播,损失从一层转移到另一层,模型的参数(也称为权重)根据损失进行修改,从而使损失最小化。
. J* S( {  R- l2 b: }- L
& n' n# }& v* i8 V" o+ A$ v优点:: v2 \* K% {! |4 b9 P3 b% y1 {2 {6 z
& Q3 `" P! _& H, R# ^1 U
容易计算。
- h1 M( x' b! W: ~  @! H$ ^易于实施。
9 g8 L1 V* t, M8 P' ]9 v4 x容易理解。& e) S: }) F- y% ]
缺点:
: Z# z. b( L5 @* g
2 @- ~9 ?$ H( L: w. s8 d可能陷入局部最小值。, U/ v, I7 h! W5 }# V( H
在计算整个数据集的梯度后,权重会发生变化。因此,如果数据集太大,可能需要数年时间才能收敛到最小值。  a  ]+ `3 u+ i, u: I9 r7 Q7 _
需要大内存来计算整个数据集的梯度* L$ D+ O% D, K- k; |
随机梯度下降$ ~4 a( w$ w) g; ^
它是梯度下降的变体。它尝试更频繁地更新模型的参数。在这种情况下,模型参数在计算每个训练示例的损失后会发生变化。因此,如果数据集包含 1000 行,SGD 将在数据集的一个循环中更新模型参数 1000 次,而不是像梯度下降中那样更新一次。
- M. `! A0 U, W- k
: D( h4 @2 b0 Q4 R$ `/ |3 Q$ X" Jθ=θ−α⋅∇J(θ;x(i);y(i)) ,其中 {x(i) ,y(i)} 是训练样本
0 S( F. V# Q" k7 `& t6 p/ S; w; M$ F+ r/ M
由于模型参数更新频繁,参数在不同强度下具有较大的方差和损失函数波动。
3 G' e& Y5 a' B, I; n9 {# G8 y
( ~6 N, k4 y+ r( U2 h优点:
8 r5 ^* p  M& v0 f! V! Y: ?/ U/ ^9 i5 E2 j$ ~. s* N7 H4 R- Q
因此,频繁更新模型参数可以在更短的时间内收敛。
, b2 X6 D+ P7 m& q% R; e需要更少的内存,因为不需要存储损失函数的值。7 ~7 `+ ]$ J2 [7 o6 e4 {: I
可能会得到新的最小值。
! P% P) f# U: n3 ?& L: n0 ^缺点:5 |% L6 t1 P9 Y- K' n
$ z& T  b, z+ y9 K* D
模型参数的高方差。/ S5 d1 R: k, G+ K* l
即使在达到全局最小值后也可能射击。
# t7 q* e" L: M0 \5 Q8 `要获得与梯度下降相同的收敛性,需要慢慢降低学习率的值。
' d) `, x* s1 }1 N. Z' P  t小批量梯度下降
. O+ E8 X  U* c它是梯度下降算法所有变体中最好的。它是对 SGD 和标准梯度下降的改进。它在每批次后更新模型参数。因此,数据集被分成不同的批次,每批次之后,参数都会更新。; m) h8 K& D7 u4 n) A
( h$ V5 M: Z0 Z% R) O# ~( s! N
θ=θ−α⋅∇J(θ; B(i)),其中 {B(i)} 是训练样本的批次。% s, J, u3 o4 G3 C9 u* U

: q% G$ y- W' F) |优点:
4 i+ b3 w+ q9 z1 d3 x8 t2 |* Q7 |. r: A  W4 ]+ Z0 A: z
经常更新模型参数并且方差也较小。
& a! g0 ?+ o' X( l; t需要中等的内存
/ N& G$ ^7 L+ U5 q# h. a1 I所有类型的梯度下降都有一些挑战:( c4 V; ?; h$ z
# _+ k0 y! g- i4 y) _; j
选择学习率的最佳值。如果学习率太小,梯度下降可能需要很长时间才能收敛。
' j: d" e0 r) W: l; N5 E5 L7 \对所有参数都有一个恒定的学习率。可能有一些参数我们不想以相同的速率改变。5 A7 g4 f  l( s3 v$ [
可能会陷入局部极小值。
, b4 i+ L0 [: x* \$ \: X; p; \其它优化算法
) i. M7 m$ q3 W具体我就不再详细介绍,其它优化器如下:
: J5 I! Q/ g, H. j9 O& v( _# ~1 j/ N5 i
Momentum
9 a7 _1 m' D! g8 GNesterov Accelerated Gradient7 M" s& G) E  l
Adagrad
5 W% ]- y$ p5 V. L3 n% L* lAdaDelta) y( |, q+ l5 i' x* X& p( v
Adam
3 c8 K! _) H- t4 }5 C各个优化算法比较动态图
# L* b8 {# c2 i  T; f2 k, [ VeryCapture_20231129112215.gif
  ?: T+ E) |, j3 c. I9 c1 K
  s4 x8 t  ^- i. Z* V
0 e( c- F3 V7 T( P) V




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