QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-29 11:37 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
梯度下降是最基本但使用最多的优化算法。它在线性回归和分类算法中大量使用。神经网络中的反向传播也使用梯度下降算法。5 Z$ ^( b- m9 p  V& _, V2 ^
+ a& i; \; R2 N& Y5 I4 t
梯度下降是一种一阶优化算法,它依赖于损失函数的一阶导数。它计算应该改变权重的方式,以便函数可以达到最小值。通过反向传播,损失从一层转移到另一层,模型的参数(也称为权重)根据损失进行修改,从而使损失最小化。
5 B$ M8 b  A, E, J+ V) _  o" O: s6 [8 U& q& I
优点:
* A& ^5 X, c# K  U% ?" ^0 b7 s7 M
容易计算。
3 U2 n9 b4 ^  I; ?+ u易于实施。7 o( f" t% S% r1 K
容易理解。
( G0 y7 a( x8 }% L缺点:: x6 A& @4 I) S

$ Q# ^; N8 N" |% u3 |可能陷入局部最小值。
7 ?4 G. o! i5 T# g在计算整个数据集的梯度后,权重会发生变化。因此,如果数据集太大,可能需要数年时间才能收敛到最小值。
6 k- T! g( I! t需要大内存来计算整个数据集的梯度& H; e* ?! r) @% r$ x7 z9 i
随机梯度下降' n  G/ ~3 I# t' ]
它是梯度下降的变体。它尝试更频繁地更新模型的参数。在这种情况下,模型参数在计算每个训练示例的损失后会发生变化。因此,如果数据集包含 1000 行,SGD 将在数据集的一个循环中更新模型参数 1000 次,而不是像梯度下降中那样更新一次。" h% G7 t8 k. @% P
+ Z3 }& \% {/ T1 D8 X' {! l
θ=θ−α⋅∇J(θ;x(i);y(i)) ,其中 {x(i) ,y(i)} 是训练样本
9 |7 v7 a. A, e# x. i1 M
2 B0 d6 ?" _5 w由于模型参数更新频繁,参数在不同强度下具有较大的方差和损失函数波动。7 Y- m# b/ G, }5 Z3 ^! o4 l

( U- P  C- J" p* f0 C优点:
; B+ j2 E* Z" p0 a* c4 w" j6 U: Y# y* R5 c+ j; q( u
因此,频繁更新模型参数可以在更短的时间内收敛。
6 Z1 Y1 H4 }" y/ D0 N, d需要更少的内存,因为不需要存储损失函数的值。
. x' a7 J6 A8 G$ z% P( m5 t可能会得到新的最小值。2 D( E+ s# s8 [8 u, X
缺点:
9 s2 V, t9 R* `+ d$ G9 y; b( Z; p) c' G
模型参数的高方差。0 x1 `& q9 ?8 v/ R( \
即使在达到全局最小值后也可能射击。- E3 |6 S$ j8 B- D- U4 i% ?
要获得与梯度下降相同的收敛性,需要慢慢降低学习率的值。# `6 G" c' C% ~. y& }, {
小批量梯度下降
; k& q% z$ v! ^. A( y0 E8 }6 U8 J它是梯度下降算法所有变体中最好的。它是对 SGD 和标准梯度下降的改进。它在每批次后更新模型参数。因此,数据集被分成不同的批次,每批次之后,参数都会更新。
' s0 b/ P5 I2 h; l6 L9 M
$ O$ O# o& P2 \: p  tθ=θ−α⋅∇J(θ; B(i)),其中 {B(i)} 是训练样本的批次。
% x& j: R& |; [; T/ S7 \7 I7 s9 d8 k* \- V: g( i3 i) j% u  w* n
优点:
. u; r! ?- v! X2 Z  r
9 I: o( X" F" {经常更新模型参数并且方差也较小。
- n. ]: X* e) }, G9 [6 B. b需要中等的内存
& H( }0 r+ P: V- ], u所有类型的梯度下降都有一些挑战:9 k0 c( G1 ^, q1 ?$ L

: ~* Z4 M; [4 y$ x0 ~- F7 k选择学习率的最佳值。如果学习率太小,梯度下降可能需要很长时间才能收敛。2 P2 y2 N& f- {. ^
对所有参数都有一个恒定的学习率。可能有一些参数我们不想以相同的速率改变。
+ c! t9 @4 N! v+ b* b2 H% ~* g3 q  ^可能会陷入局部极小值。& e; o' c# E7 b4 S2 t
其它优化算法
7 p9 c6 Z& N4 m7 o  y具体我就不再详细介绍,其它优化器如下:& v4 \/ l' J0 [" @; R$ ]' e, }

" J, p  U1 f6 Q' D4 K: c6 XMomentum
. D- F( J1 u/ R# B- `# nNesterov Accelerated Gradient! ?' h2 _5 t9 `/ q" r
Adagrad
9 i+ x; d2 M$ N5 FAdaDelta5 @9 y0 J* ]( S. n4 C( g- Q
Adam3 K0 a& o$ t% ]9 b
各个优化算法比较动态图
  L  H( Q5 o' p; }2 z. j7 l  c( j VeryCapture_20231129112215.gif
. ]+ v: s/ e3 c  ?6 W; A6 `+ [% Y0 y( m/ j  _, h: w
. d% [/ m  }& v, Y3 c4 l
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-7-10 17:40 , Processed in 0.356827 second(s), 53 queries .

回顶部