- 在线时间
- 479 小时
- 最后登录
- 2026-4-17
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7790 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2923
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1171
- 主题
- 1186
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
梯度下降是最基本但使用最多的优化算法。它在线性回归和分类算法中大量使用。神经网络中的反向传播也使用梯度下降算法。
" ~* p8 y. E$ I! a$ w
x3 u, ~% ]; [: E/ d4 `梯度下降是一种一阶优化算法,它依赖于损失函数的一阶导数。它计算应该改变权重的方式,以便函数可以达到最小值。通过反向传播,损失从一层转移到另一层,模型的参数(也称为权重)根据损失进行修改,从而使损失最小化。: y; H* ] I7 d# ]7 J
& ~& D1 p9 v6 T$ N/ R9 g& ~优点:
, f( \/ C! P2 G0 ~0 {4 C+ {9 [
8 S( W6 p; T2 U+ ~$ S容易计算。2 n# j0 d8 s, z. m- S7 U5 `
易于实施。
' \: p4 ?7 |# |9 t$ c; m$ X6 m" ?2 P容易理解。" F# N! ^) Q) h: ^. K; ?; C: O- D
缺点:8 Y* G4 e2 C! \9 N$ e
! P' A% X3 n% h可能陷入局部最小值。- q6 i! g' H. `1 D. e* d6 E8 ^
在计算整个数据集的梯度后,权重会发生变化。因此,如果数据集太大,可能需要数年时间才能收敛到最小值。
6 s/ a# x) f, m' p需要大内存来计算整个数据集的梯度
/ O( G6 {; g) I7 \) H' ]' o! P随机梯度下降6 N1 n* P7 o: H/ C, x; G: [; a7 a
它是梯度下降的变体。它尝试更频繁地更新模型的参数。在这种情况下,模型参数在计算每个训练示例的损失后会发生变化。因此,如果数据集包含 1000 行,SGD 将在数据集的一个循环中更新模型参数 1000 次,而不是像梯度下降中那样更新一次。
3 L9 @; A5 S$ Y- k3 Y8 l7 r1 D! I* m5 ~4 _# H8 d
θ=θ−α⋅∇J(θ;x(i);y(i)) ,其中 {x(i) ,y(i)} 是训练样本% u, Q/ q; ~/ r! s, j3 C
8 @% f: U I1 X7 }9 C& z4 `
由于模型参数更新频繁,参数在不同强度下具有较大的方差和损失函数波动。
+ Y ~0 s" t% c& S# Y$ l: ?2 Q% b# F! z
' ^9 U) y, y2 I( ]0 q; H/ M优点:; E5 Y4 [" q. @/ c. V6 h
0 H v T- H/ l9 k5 ]5 b
因此,频繁更新模型参数可以在更短的时间内收敛。
' ]) K6 S) l1 P+ ?( ?需要更少的内存,因为不需要存储损失函数的值。- X" t7 b1 c1 Q! s# j" I- V) h
可能会得到新的最小值。
4 H1 q/ K; M+ A7 `! s, w: [缺点:
4 f0 [0 |7 ^: w* `' Z3 f- a+ g6 E8 r2 ^5 ~, D( F8 N0 }
模型参数的高方差。) m( w7 z* D5 C. m9 |
即使在达到全局最小值后也可能射击。
- ~& h$ E: ^9 i+ ~& b0 N5 }! C要获得与梯度下降相同的收敛性,需要慢慢降低学习率的值。$ x# v4 l9 I, V0 ?2 F( B7 @
小批量梯度下降
* G1 o9 K2 a9 @/ Q- c, [$ b6 B它是梯度下降算法所有变体中最好的。它是对 SGD 和标准梯度下降的改进。它在每批次后更新模型参数。因此,数据集被分成不同的批次,每批次之后,参数都会更新。
! S0 Z/ v" @$ h" \; O7 _+ J# {% z7 f" a" }2 D3 x
θ=θ−α⋅∇J(θ; B(i)),其中 {B(i)} 是训练样本的批次。. R6 y' D* o9 h% W, e3 X9 F
( R4 B1 Z6 p9 p% _* S
优点:' m4 h7 Z* j- }8 o) y
) O( u5 B `" C; G/ o
经常更新模型参数并且方差也较小。
' b# _* W! a8 y9 W1 \% w需要中等的内存
- _1 h7 r9 c3 [所有类型的梯度下降都有一些挑战:
4 ^9 B+ [$ g# g" y9 ~
+ y3 S3 A% @1 Z# H8 Y2 Y选择学习率的最佳值。如果学习率太小,梯度下降可能需要很长时间才能收敛。$ z! k- ?$ o1 j9 d
对所有参数都有一个恒定的学习率。可能有一些参数我们不想以相同的速率改变。
) g3 l- F1 j% J: W可能会陷入局部极小值。0 e' B0 P- [7 \) M7 L
其它优化算法
5 E3 @$ L, G* S" f! `具体我就不再详细介绍,其它优化器如下:
4 N8 @+ r9 R5 J" M& _8 N
1 Q# t8 h! a- x' A( FMomentum
8 h" ]5 B( {* o C1 c% kNesterov Accelerated Gradient
6 L+ h! x* J$ F& c9 {7 DAdagrad
: ^0 X- T6 d: U& FAdaDelta4 s- v* |2 `5 v5 I5 Y2 V$ l
Adam
/ T* H6 b. F3 m O各个优化算法比较动态图
3 h) U* k# y* m3 x# h8 n/ h
' w$ w8 \7 `# Z
, w+ I0 R3 |" G$ ]6 G. Y) G+ b E; H5 E6 G8 f' `9 Y/ D
|
zan
|