- 在线时间
- 480 小时
- 最后登录
- 2026-6-1
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7823 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2934
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1174
- 主题
- 1189
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
梯度下降是最基本但使用最多的优化算法。它在线性回归和分类算法中大量使用。神经网络中的反向传播也使用梯度下降算法。
4 v$ s' O7 o! [$ L+ Y- e1 P2 W6 z2 U2 L, a- T, r
梯度下降是一种一阶优化算法,它依赖于损失函数的一阶导数。它计算应该改变权重的方式,以便函数可以达到最小值。通过反向传播,损失从一层转移到另一层,模型的参数(也称为权重)根据损失进行修改,从而使损失最小化。
' ^( Y- _: S/ J* U7 P3 C+ |* U% X% U7 R, c$ d" Q3 `! g+ B. I: {
优点:4 g) j9 i4 J# P
1 f" P& t6 W5 v- x+ G' c. J
容易计算。* {. f! n! d: ` ^* _+ x+ o
易于实施。* f" y9 P8 R- p2 T% A$ A+ _
容易理解。
- ~+ f# O& |0 R& _缺点:
* x7 ~) G4 j. H# Z9 i8 \1 w! r& j* j N% e* g: C
可能陷入局部最小值。! ?$ ?9 d p m2 E
在计算整个数据集的梯度后,权重会发生变化。因此,如果数据集太大,可能需要数年时间才能收敛到最小值。6 ^! `/ u3 v' q6 @: [
需要大内存来计算整个数据集的梯度* q, m% n3 G& {' G8 S" m
随机梯度下降
1 @0 @$ Z7 \6 k; o0 P( g* ]它是梯度下降的变体。它尝试更频繁地更新模型的参数。在这种情况下,模型参数在计算每个训练示例的损失后会发生变化。因此,如果数据集包含 1000 行,SGD 将在数据集的一个循环中更新模型参数 1000 次,而不是像梯度下降中那样更新一次。; {" G7 O9 |, S$ G$ i) v
3 [8 \ }5 f8 H, W
θ=θ−α⋅∇J(θ;x(i);y(i)) ,其中 {x(i) ,y(i)} 是训练样本
8 w5 m3 \ a) C7 L& o" H8 o6 I/ ~3 I% I1 w ^6 t
由于模型参数更新频繁,参数在不同强度下具有较大的方差和损失函数波动。
% s. q E4 z) w- m+ O0 G% \) H3 E4 G: f7 h
! k6 H' [7 Y# f9 u# Q" |9 W) w优点:' D X: w* T1 M; K u8 Y) |
+ J6 }( {; N# g
因此,频繁更新模型参数可以在更短的时间内收敛。
" A+ U: O2 _/ q- T需要更少的内存,因为不需要存储损失函数的值。
' Z: y! k0 p V. @ b4 F! K4 ~; g5 e可能会得到新的最小值。
; X' ^. s4 T5 f% D! X缺点:+ l z6 N% R8 j' L
D0 P+ Q+ f) ~+ R
模型参数的高方差。
: T" y- q9 V2 [ a3 j/ ]5 i! j9 m即使在达到全局最小值后也可能射击。8 t, L5 ]" w/ P3 r, {- t% w
要获得与梯度下降相同的收敛性,需要慢慢降低学习率的值。
0 X5 B4 G5 z+ z0 ]小批量梯度下降
" h J9 c# x4 w: c9 s- c# t它是梯度下降算法所有变体中最好的。它是对 SGD 和标准梯度下降的改进。它在每批次后更新模型参数。因此,数据集被分成不同的批次,每批次之后,参数都会更新。
; Z% c% }# F% L7 A8 t$ x B' J- m% @. f/ b! u
θ=θ−α⋅∇J(θ; B(i)),其中 {B(i)} 是训练样本的批次。; N: ^1 c: m: F% |
) [) B. x$ [ q* [( m优点:
! E; H, t' E! t ~5 U, y4 E+ d' v0 {* e: q
经常更新模型参数并且方差也较小。4 a. j* q, G) l( J
需要中等的内存
Y) h) W8 H: `3 D# F+ C( u所有类型的梯度下降都有一些挑战:
2 g- b+ g q: ]1 a" `4 O6 D. J2 L5 z/ ~' i! l) f
选择学习率的最佳值。如果学习率太小,梯度下降可能需要很长时间才能收敛。
" R& {% G, C$ ~+ X6 [' g9 m对所有参数都有一个恒定的学习率。可能有一些参数我们不想以相同的速率改变。
( d- D! T/ v" D) F! a4 L可能会陷入局部极小值。& S3 q6 ^" ]5 I" W
其它优化算法
6 x b, V" j8 [1 V+ G& b& }. ?具体我就不再详细介绍,其它优化器如下:$ y& T" w) y( M! {3 ] B
! l1 g" v, p- O7 z9 @3 @) z1 Q& ZMomentum
5 E% [4 v5 x; oNesterov Accelerated Gradient
& v2 o) Y7 w) Q! o; n5 l2 @Adagrad
4 }! C) G8 f& ^7 P% O8 ZAdaDelta
& v; U k& r, tAdam+ d/ l4 s, z- b- S" V
各个优化算法比较动态图# B$ ~; O% w; |* V. m! k6 S
. ~/ f; a2 S1 {2 L2 d {. D: ~3 x: E8 U2 i; s8 M
# c9 J7 z8 C) L |
zan
|