QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2376|回复: 0
打印 上一主题 下一主题

训练神经网络的各种优化算法

[复制链接]
字体大小: 正常 放大

1192

主题

4

听众

2946

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-29 11:37 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
梯度下降是最基本但使用最多的优化算法。它在线性回归和分类算法中大量使用。神经网络中的反向传播也使用梯度下降算法。
  U; ~& r. N/ M( j$ o2 r$ l, w* F7 F% R0 q' E% R
梯度下降是一种一阶优化算法,它依赖于损失函数的一阶导数。它计算应该改变权重的方式,以便函数可以达到最小值。通过反向传播,损失从一层转移到另一层,模型的参数(也称为权重)根据损失进行修改,从而使损失最小化。: P: e' v& p4 p. N- i

1 O4 Z( w* v8 V/ f4 L$ b; j优点:
" m6 ?: |! z9 C! T* S8 S$ e2 Z, W% k9 f9 h) I0 ]; A9 P, |2 \
容易计算。
6 `: d5 U/ |, X9 m3 i; X: H0 u, j2 i易于实施。8 q' q8 ^- c# ]3 X4 Y* O; |* Z
容易理解。) m( Y. y2 L3 K; X% G9 S& D
缺点:
1 |& @( `/ c9 ?9 {8 h- ]% |5 m  d, ^. I
可能陷入局部最小值。
) J0 y3 q- t- V" d+ N3 k! ^' d在计算整个数据集的梯度后,权重会发生变化。因此,如果数据集太大,可能需要数年时间才能收敛到最小值。5 \6 L  b8 ]+ ?1 b$ m6 s: P( R3 P
需要大内存来计算整个数据集的梯度/ a6 y2 |& c* X* r6 y. l8 h  P4 ]+ u
随机梯度下降
& ?2 Z; t! q- `: H( u% n) `: a0 m它是梯度下降的变体。它尝试更频繁地更新模型的参数。在这种情况下,模型参数在计算每个训练示例的损失后会发生变化。因此,如果数据集包含 1000 行,SGD 将在数据集的一个循环中更新模型参数 1000 次,而不是像梯度下降中那样更新一次。
! R+ g8 ^  V/ G" A' t7 c) K, X) W4 }) \8 _- n2 G2 j/ t* W
θ=θ−α⋅∇J(θ;x(i);y(i)) ,其中 {x(i) ,y(i)} 是训练样本) w) g5 m9 W4 u/ F8 r6 e' M

8 d/ I  |0 K+ j由于模型参数更新频繁,参数在不同强度下具有较大的方差和损失函数波动。$ I) c$ I" N0 B  [; I% r! G
7 t6 e+ h! T* n
优点:
/ H; b- Y! V8 r2 J1 v1 n- B
. f, y4 ]( K% r9 }8 G因此,频繁更新模型参数可以在更短的时间内收敛。# |* O* ^6 b( L) \7 h
需要更少的内存,因为不需要存储损失函数的值。
$ }% X0 t9 U1 t# P. l. @7 q% l2 T可能会得到新的最小值。
5 O/ V4 l6 b+ K缺点:% H7 T$ d9 R/ q" q9 ~: d
5 d4 ~9 I3 a( a! C
模型参数的高方差。( E* Q8 b+ A$ M0 h5 @
即使在达到全局最小值后也可能射击。
: ^' d+ O( @* i2 L8 a5 d要获得与梯度下降相同的收敛性,需要慢慢降低学习率的值。
3 ]6 m; T+ I# K9 Y# z; r9 y! v小批量梯度下降" N4 Y$ H! c( {3 t' h: O
它是梯度下降算法所有变体中最好的。它是对 SGD 和标准梯度下降的改进。它在每批次后更新模型参数。因此,数据集被分成不同的批次,每批次之后,参数都会更新。+ j& o( W  h/ q% z

6 V# h& {8 b) O2 R! j0 J  \. ~θ=θ−α⋅∇J(θ; B(i)),其中 {B(i)} 是训练样本的批次。# d  d5 _; x+ z! T* z- |) k. x' C  R
- c- h$ n9 H* V- ~  f' {% M
优点:
3 y; B. a) ?% x9 F
; B6 i; D5 R: C6 W) ^经常更新模型参数并且方差也较小。/ g) @- r3 Z& D1 e& N" U9 h
需要中等的内存
. k8 }% U  A& z: ^所有类型的梯度下降都有一些挑战:
( Q/ k9 V7 z+ m3 t, @! u& c  x0 k: U, }  q6 D( r8 V
选择学习率的最佳值。如果学习率太小,梯度下降可能需要很长时间才能收敛。4 c! J  y5 a, G" `: ?
对所有参数都有一个恒定的学习率。可能有一些参数我们不想以相同的速率改变。+ Y$ ?8 u: ~# q& k
可能会陷入局部极小值。
4 R1 C8 r1 O" O. J- I% T8 N" _其它优化算法
9 O1 D! X6 H" ?具体我就不再详细介绍,其它优化器如下:' R' p2 ^/ ]3 k

6 p2 U8 Q! R  V5 @; y8 L( SMomentum
, [* V' r  n0 ?5 f4 q9 NNesterov Accelerated Gradient
  X8 D- G7 g2 I/ Y0 U8 E+ ?Adagrad7 p/ @1 [' D4 O# ~" N0 q# q
AdaDelta
/ V0 ^: B6 m( A) t, KAdam
" i3 b) A8 D: `: P# V各个优化算法比较动态图
& N8 A& A$ p7 M& M, O VeryCapture_20231129112215.gif 6 v; h  _" t( N9 s+ a2 s0 J8 }
. S( [3 [: A7 Z/ o$ T/ {

: @1 c! }. R) E3 j/ U& C+ J# Z2 `
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-8-26 07:33 , Processed in 0.343683 second(s), 53 queries .

回顶部