QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-29 11:37 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
梯度下降是最基本但使用最多的优化算法。它在线性回归和分类算法中大量使用。神经网络中的反向传播也使用梯度下降算法。+ c" j& s! N  H( W0 n

( M% P: R: F- h梯度下降是一种一阶优化算法,它依赖于损失函数的一阶导数。它计算应该改变权重的方式,以便函数可以达到最小值。通过反向传播,损失从一层转移到另一层,模型的参数(也称为权重)根据损失进行修改,从而使损失最小化。0 m- e( |8 e3 u3 t: ?1 @! ~) q
" H. Z' a' ^5 b( Q
优点:
5 u; E' p) T0 T+ ~2 V; E7 x6 u: y
容易计算。
4 V+ R0 Q0 q, ?- q+ u: b0 {易于实施。; l2 E, L+ c4 U! J- |
容易理解。* t5 ^# k- e0 @9 K
缺点:
" _/ |" E$ q+ q% O1 W: \( d" ?& N9 U8 o% D! B
可能陷入局部最小值。5 ~% e, X% V/ z8 P7 o; v: c
在计算整个数据集的梯度后,权重会发生变化。因此,如果数据集太大,可能需要数年时间才能收敛到最小值。; n) l- O( T, _5 ]! u
需要大内存来计算整个数据集的梯度
3 y) ~8 [+ {+ |9 y* b7 v随机梯度下降) V% g* p0 e2 ?
它是梯度下降的变体。它尝试更频繁地更新模型的参数。在这种情况下,模型参数在计算每个训练示例的损失后会发生变化。因此,如果数据集包含 1000 行,SGD 将在数据集的一个循环中更新模型参数 1000 次,而不是像梯度下降中那样更新一次。1 B* \( h+ d4 @
7 ]3 L, o' x. b6 d+ B
θ=θ−α⋅∇J(θ;x(i);y(i)) ,其中 {x(i) ,y(i)} 是训练样本- K+ E! I8 J! Q4 f: N  |
1 u" J0 F/ Q( ?6 U
由于模型参数更新频繁,参数在不同强度下具有较大的方差和损失函数波动。8 L) ^1 b1 S, V2 ?. J% k
, y& H% s6 M9 Z' ?; I, s" o
优点:
  ?7 k+ j3 H. S8 P' `; f
" r! [: @+ d( y* X因此,频繁更新模型参数可以在更短的时间内收敛。
6 ?! q8 l# A0 m. ~2 J! _: `& S需要更少的内存,因为不需要存储损失函数的值。
) z( r  [! P( Q1 F( ?6 g! D+ O可能会得到新的最小值。8 v/ @' |# }6 d3 d( T" G
缺点:' {/ p( y+ o8 r8 K4 `1 U1 D! B2 g

- v7 |* j) R3 q模型参数的高方差。+ K" x# @* a1 i3 ]- @' q7 I% W
即使在达到全局最小值后也可能射击。8 Q* T5 Q: ~6 ]/ {( M  Q
要获得与梯度下降相同的收敛性,需要慢慢降低学习率的值。( w, \6 u+ W$ U' g& y& j
小批量梯度下降
  o: e& e% ?8 P% _/ K' v它是梯度下降算法所有变体中最好的。它是对 SGD 和标准梯度下降的改进。它在每批次后更新模型参数。因此,数据集被分成不同的批次,每批次之后,参数都会更新。
) X0 h6 \9 X" L8 M( d; t  u: O3 ^- ~
θ=θ−α⋅∇J(θ; B(i)),其中 {B(i)} 是训练样本的批次。
* E. \  n8 @0 |; @5 C; d" t$ O# Z" U2 i
优点:* U! C4 f' J, e3 K$ E, O
; H* ?8 E4 u% _' t% ]4 I9 v6 V
经常更新模型参数并且方差也较小。
1 C9 T3 r8 L+ G" K: f+ }需要中等的内存
5 C4 M5 ^' V. u% {所有类型的梯度下降都有一些挑战:9 Y9 u" ?- E6 ]3 y. H

/ d1 {0 N& H7 [1 \1 m5 \选择学习率的最佳值。如果学习率太小,梯度下降可能需要很长时间才能收敛。
, d/ w# _6 J$ V0 K" j% ~* e- q对所有参数都有一个恒定的学习率。可能有一些参数我们不想以相同的速率改变。! ^, ~5 e/ T6 y# ]2 C; P$ D
可能会陷入局部极小值。( s5 F! @6 ?& s' }9 @
其它优化算法5 j& U. T+ _  K$ V3 J8 ~% Q
具体我就不再详细介绍,其它优化器如下:* @5 Z" k6 M6 S1 W; O1 k5 ~0 }8 {( x
' e3 j. k# I5 ~( P. C  O2 `
Momentum
- \! ]' s9 E% @/ q9 YNesterov Accelerated Gradient9 }/ i% U" n: Y7 w2 s% ]
Adagrad2 A7 {6 X' X: @* d
AdaDelta
3 m0 r0 y3 [% HAdam. ?$ ]+ F8 [( k5 c# r4 f6 q
各个优化算法比较动态图: U3 h* T" _, ?# J6 _& K& E
VeryCapture_20231129112215.gif ; N- d+ `* d! V
# b- \; R& W- y1 m2 U. K2 T1 j. ~
( @9 `6 K5 {2 H$ a
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-6-18 04:42 , Processed in 0.341294 second(s), 54 queries .

回顶部