QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-29 11:37 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
梯度下降是最基本但使用最多的优化算法。它在线性回归和分类算法中大量使用。神经网络中的反向传播也使用梯度下降算法。
- f, M% U$ ~2 `( Z) ]) I+ u' n
! }! Z7 m4 ^0 {7 A* e* u- l8 W梯度下降是一种一阶优化算法,它依赖于损失函数的一阶导数。它计算应该改变权重的方式,以便函数可以达到最小值。通过反向传播,损失从一层转移到另一层,模型的参数(也称为权重)根据损失进行修改,从而使损失最小化。
0 I( s0 t+ p# ~4 h, @9 |  @: ?  Z8 L1 Y) L5 }4 z
优点:
" E. c; v& g5 e' z5 [. ?+ @( \) L% S( T& N5 z5 d, L  h. v6 d
容易计算。# W: D6 Q9 W( q' Q5 O1 R
易于实施。6 W, q; {. H% s' \4 P7 Q7 X. `
容易理解。
  @9 v5 z" v) P) ~+ h缺点:
. C' E/ d( u' g* ~9 z- A6 c- k. A' A6 v5 x
可能陷入局部最小值。
# {) H% A- K# j. R2 b. Y% p在计算整个数据集的梯度后,权重会发生变化。因此,如果数据集太大,可能需要数年时间才能收敛到最小值。
0 I$ x- ]% J# r- I; Y' K需要大内存来计算整个数据集的梯度
. w, K$ h5 j6 X" n( q! o6 z! v随机梯度下降
5 I% f& y* T: {: x它是梯度下降的变体。它尝试更频繁地更新模型的参数。在这种情况下,模型参数在计算每个训练示例的损失后会发生变化。因此,如果数据集包含 1000 行,SGD 将在数据集的一个循环中更新模型参数 1000 次,而不是像梯度下降中那样更新一次。
! W  b! b1 J% X9 b& J+ E5 z1 a" ]
# C, @/ ?0 ?7 |0 y% }- R& m6 v8 w1 b* lθ=θ−α⋅∇J(θ;x(i);y(i)) ,其中 {x(i) ,y(i)} 是训练样本
# @. o( D/ H2 b/ E" i2 p- @4 j: u) L. ^' p/ [( W' ]
由于模型参数更新频繁,参数在不同强度下具有较大的方差和损失函数波动。
6 x6 h4 n% T( H
3 Z) i4 H, D! j0 d. X8 S优点:
" Z% v9 F$ R5 i* J* R5 D+ N1 z3 q- ~2 q" Y0 Q
因此,频繁更新模型参数可以在更短的时间内收敛。
7 O  U8 g$ J& n3 f0 P" b需要更少的内存,因为不需要存储损失函数的值。, W4 o/ Q' R6 ?9 p; R
可能会得到新的最小值。
; i: _7 F1 B* W1 F5 d缺点:
- o9 y+ {9 J; V1 j- c! c5 @6 L  C  c0 F0 T
模型参数的高方差。
3 x! c  O- V+ U即使在达到全局最小值后也可能射击。
6 k' ]) n6 q% B) _3 ~( _" c9 r. E要获得与梯度下降相同的收敛性,需要慢慢降低学习率的值。
6 f- @# D) ~6 U/ ~5 l- o2 D小批量梯度下降" M) u. a. T: @- F2 e3 Y. ?
它是梯度下降算法所有变体中最好的。它是对 SGD 和标准梯度下降的改进。它在每批次后更新模型参数。因此,数据集被分成不同的批次,每批次之后,参数都会更新。+ e9 f* z# j- m& E) G, r6 X2 }, N

2 U1 u) y- y5 \6 t% d; Q: E" j3 O* \θ=θ−α⋅∇J(θ; B(i)),其中 {B(i)} 是训练样本的批次。8 v$ X/ R& ^# r1 d! [2 C) s! H
; n& }1 v: j8 y3 g! X
优点:6 x. j4 ~% t( @; y9 ]4 O) R
: C  D2 ?7 I2 c9 s
经常更新模型参数并且方差也较小。
. d' l* K6 ?+ `8 k) ]+ v需要中等的内存1 ]$ _4 f/ }# d* u9 _( w. e
所有类型的梯度下降都有一些挑战:
+ f: }+ d1 b. f* B$ @
6 Q$ v& G# e1 @  @* T$ d: @- ~- w- R选择学习率的最佳值。如果学习率太小,梯度下降可能需要很长时间才能收敛。
4 a% U7 Y: B' }* J" F% R对所有参数都有一个恒定的学习率。可能有一些参数我们不想以相同的速率改变。
8 }' @2 Q, N' Z- Y0 M可能会陷入局部极小值。8 M( E" Y  _9 C$ k
其它优化算法
4 ]9 M1 V% L( e: ]# H具体我就不再详细介绍,其它优化器如下:* G3 ?+ X6 i* P& m
/ F* K4 n  o' F# z4 u
Momentum/ d/ i2 U5 [* @, k! p$ D
Nesterov Accelerated Gradient/ ]! z/ O! U' _8 b+ a6 S! w4 }
Adagrad
. O, B+ A- O% r: d4 Q, RAdaDelta
/ [, T* ^/ o5 Z# I  f: Y# M* D# vAdam( e6 V6 |5 }9 c& w# ~
各个优化算法比较动态图8 g* |) T  i% Y  l, ~
VeryCapture_20231129112215.gif
3 [9 C7 H4 v3 ~$ G" C# ^
1 v9 A  f$ {1 B" b. g) n. H' j" `4 X, n+ r
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-11 01:23 , Processed in 0.385956 second(s), 54 queries .

回顶部