QQ登录

只需要一步,快速开始

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

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

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-29 11:37 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
梯度下降是最基本但使用最多的优化算法。它在线性回归和分类算法中大量使用。神经网络中的反向传播也使用梯度下降算法。
) @3 y! H1 w4 A. q! B& i5 v4 p5 m: R  p( L0 z
梯度下降是一种一阶优化算法,它依赖于损失函数的一阶导数。它计算应该改变权重的方式,以便函数可以达到最小值。通过反向传播,损失从一层转移到另一层,模型的参数(也称为权重)根据损失进行修改,从而使损失最小化。
- I! i7 f3 s$ a% G- f
: y8 f7 [0 e2 v8 _8 m7 g4 r* n优点:) t) s1 a/ `- ~3 s) S
/ C! l6 q* v1 }6 |0 h6 i% I; ^
容易计算。# [1 t: ]/ R' C& }0 ~& p2 J
易于实施。
; o8 R- X, [/ r' i' [) k容易理解。
1 t- X" Z0 G8 L7 A8 ^! t  U缺点:9 u3 o# O) F+ ]/ z' I

  x, A, L. R" `9 O6 W可能陷入局部最小值。' ?  e9 e3 Q* ^, D' G9 ]! m
在计算整个数据集的梯度后,权重会发生变化。因此,如果数据集太大,可能需要数年时间才能收敛到最小值。6 [+ k- b9 X: z$ B) T
需要大内存来计算整个数据集的梯度
3 G9 z5 l5 B' B/ m# }! e8 c4 @随机梯度下降5 m' X/ b8 j# @& e. U1 y: R; {
它是梯度下降的变体。它尝试更频繁地更新模型的参数。在这种情况下,模型参数在计算每个训练示例的损失后会发生变化。因此,如果数据集包含 1000 行,SGD 将在数据集的一个循环中更新模型参数 1000 次,而不是像梯度下降中那样更新一次。, h0 l  {; O+ B  V- ?$ e
6 v* `6 i1 D, F
θ=θ−α⋅∇J(θ;x(i);y(i)) ,其中 {x(i) ,y(i)} 是训练样本, q3 m4 K. s. ?9 N2 l9 u

2 B/ c3 c/ N% A; i. \# z* _) E/ [* M由于模型参数更新频繁,参数在不同强度下具有较大的方差和损失函数波动。7 T, S/ j, ]" w: X; }7 g( h$ P
' t! d0 T3 F' @# J% l
优点:
8 G4 r. G. }; |5 o
% ?- y$ ]. c: J  U- E6 o; V9 k因此,频繁更新模型参数可以在更短的时间内收敛。
1 ~0 H$ l" Q, B: d需要更少的内存,因为不需要存储损失函数的值。& f9 f0 ~# ?; n& @5 k% I0 G
可能会得到新的最小值。* w  L6 T3 ~" I0 ^
缺点:
$ p' k+ X! z+ Y( `. q0 _; N; U  A' ?* j0 F7 ^* k
模型参数的高方差。
1 M* K  F5 Z7 J- `8 y" S即使在达到全局最小值后也可能射击。# P8 t7 L" n+ h" X/ o' G7 B: N
要获得与梯度下降相同的收敛性,需要慢慢降低学习率的值。
3 [; |$ K! y/ t( k小批量梯度下降& J2 T$ x3 T& y+ X- ^
它是梯度下降算法所有变体中最好的。它是对 SGD 和标准梯度下降的改进。它在每批次后更新模型参数。因此,数据集被分成不同的批次,每批次之后,参数都会更新。5 v# I* F+ \6 t% @1 n; f$ ^
. g2 D5 F$ E3 T$ r8 f( [! a% q
θ=θ−α⋅∇J(θ; B(i)),其中 {B(i)} 是训练样本的批次。$ T! j  u) N$ H3 R
' R% z. c3 I* r8 d* `) H, V
优点:
5 o  A0 t: O# J* \1 `' M) e- `( Y* u5 _( \
经常更新模型参数并且方差也较小。5 V& X6 P  g( e: g# ~0 I  O2 S
需要中等的内存& R, ^- H# t7 g7 Q$ m1 J
所有类型的梯度下降都有一些挑战:! |) ^+ k: A( e/ P9 T

, U2 R# l! o: `选择学习率的最佳值。如果学习率太小,梯度下降可能需要很长时间才能收敛。2 L- G* V" h; t# t+ I% ?
对所有参数都有一个恒定的学习率。可能有一些参数我们不想以相同的速率改变。/ a0 r6 x$ g% ^
可能会陷入局部极小值。
/ ?( T; ~: U# i: v! S其它优化算法# |4 B( v7 b1 G1 [/ N
具体我就不再详细介绍,其它优化器如下:- j, G5 v: p% t, d, `% k2 u: ~5 i! `
; c9 H3 E; J% ]' M& S2 Y& o8 b) ]. h
Momentum, a  Q# j  I7 |0 o* M
Nesterov Accelerated Gradient: u& V, L# A" H+ {: m- N
Adagrad( ]. R3 i2 f/ J& h6 w0 j3 r
AdaDelta! Q1 k% k+ L" A8 z- L
Adam
: V. s. V( v& ~, m各个优化算法比较动态图
+ \, {" u" f) a6 n# P% y VeryCapture_20231129112215.gif 9 s  a6 h* Z3 c9 U+ b

9 D/ O: e' [" E% o  U
. I5 u" Q8 @# C# m7 G
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-4-13 00:59 , Processed in 0.807857 second(s), 54 queries .

回顶部