在线时间 479 小时 最后登录 2026-4-13 注册时间 2023-7-11 听众数 4 收听数 0 能力 0 分 体力 7789 点 威望 0 点 阅读权限 255 积分 2922 相册 0 日志 0 记录 0 帖子 1171 主题 1186 精华 0 分享 0 好友 1
该用户从未签到
梯度下降是最基本但使用最多的优化算法。它在线性回归和分类算法中大量使用。神经网络中的反向传播也使用梯度下降算法。, \+ b3 r0 ]$ \1 `* l8 e- r
, @# {2 K% i; ?( r 梯度下降是一种一阶优化算法,它依赖于损失函数的一阶导数。它计算应该改变权重的方式,以便函数可以达到最小值。通过反向传播,损失从一层转移到另一层,模型的参数(也称为权重)根据损失进行修改,从而使损失最小化。% z9 o f' o$ \# E
" N5 F' d; ?: s3 M X
优点:: `: ]! ~- B2 `$ y6 w: [5 o
. S+ C* y' p/ L7 ^
容易计算。9 g! z* i( Y8 t/ T- n
易于实施。
0 K" A% H) M6 }+ h9 f5 E 容易理解。
$ `4 n2 D( N! b+ [( L+ |/ b 缺点:
6 v+ [6 L, O4 }: M, E / `2 {7 ~% K. x$ Y# P
可能陷入局部最小值。
9 ?' i! b. H$ N3 x; L* k 在计算整个数据集的梯度后,权重会发生变化。因此,如果数据集太大,可能需要数年时间才能收敛到最小值。
3 | m: v7 I% } 需要大内存来计算整个数据集的梯度
) q; p+ n( x+ h- z 随机梯度下降
" e2 X' `0 y: a% N" _8 X b/ }6 R 它是梯度下降的变体。它尝试更频繁地更新模型的参数。在这种情况下,模型参数在计算每个训练示例的损失后会发生变化。因此,如果数据集包含 1000 行,SGD 将在数据集的一个循环中更新模型参数 1000 次,而不是像梯度下降中那样更新一次。; o: K0 [& C* k0 W4 r
" p" D6 a% i: w0 I ~5 r0 i9 M
θ=θ−α⋅∇J(θ;x(i);y(i)) ,其中 {x(i) ,y(i)} 是训练样本: Y8 x, ?7 y, j7 ~
! y& _: E2 d% E* ~% o8 [2 b3 { 由于模型参数更新频繁,参数在不同强度下具有较大的方差和损失函数波动。
: e! ?7 j$ d; z
( G9 K% x* ^# S) m 优点:0 D2 ?( h8 w! |/ _: ~
8 X1 M; H7 K0 R1 O: L0 K% R' q
因此,频繁更新模型参数可以在更短的时间内收敛。) w/ w4 x* ~9 P+ r' e0 H
需要更少的内存,因为不需要存储损失函数的值。
0 ?1 {: W; ^; Z 可能会得到新的最小值。* i5 G/ x+ d* o" A$ r* u8 {+ h
缺点:. t C0 h( C4 U5 W0 @# I! l, G
Z' v$ B( e* {' F5 f0 _5 [% C: d. ~ 模型参数的高方差。' t1 ~4 M( c. i! M
即使在达到全局最小值后也可能射击。
) n" x" _6 \1 F 要获得与梯度下降相同的收敛性,需要慢慢降低学习率的值。
T' P* A# C) p d; ` 小批量梯度下降
6 o% e$ J) m! o9 o8 ` 它是梯度下降算法所有变体中最好的。它是对 SGD 和标准梯度下降的改进。它在每批次后更新模型参数。因此,数据集被分成不同的批次,每批次之后,参数都会更新。
9 k6 X ]( x, h. Z3 W
' ?) i! j/ |, x+ h. _6 K7 G9 [ θ=θ−α⋅∇J(θ; B(i)),其中 {B(i)} 是训练样本的批次。7 K1 J) @- C/ Z# X- K/ z/ o
+ W$ f; ^& |7 W, H8 `$ ~1 R5 c" }" u 优点:2 o, C, I# p5 G+ c6 r% F7 w* r
2 ^/ L' m2 U' ^6 X+ t" O
经常更新模型参数并且方差也较小。$ V8 T3 x) P' b/ i
需要中等的内存. s N4 l) j. v1 D' Y# S- u) ~9 e, T9 t
所有类型的梯度下降都有一些挑战:" A7 ?4 m" l# _$ V+ X/ W
1 v; q8 x$ Q* E5 B6 g) w! Y0 [ 选择学习率的最佳值。如果学习率太小,梯度下降可能需要很长时间才能收敛。5 r: Z3 h4 [ d r; |
对所有参数都有一个恒定的学习率。可能有一些参数我们不想以相同的速率改变。4 K, X, [- c- _! D/ z9 l4 t
可能会陷入局部极小值。
0 L$ b3 j$ y3 z/ v1 L6 A 其它优化算法
7 M: B0 \8 J# o1 I$ c5 q; | 具体我就不再详细介绍,其它优化器如下:
' |- W7 L6 A; U# y; V5 r# ? $ M) z3 _ T$ D3 p6 T
Momentum
) ~& w, e8 G$ b# l$ R Nesterov Accelerated Gradient7 T' t9 R0 R# A4 z
Adagrad" O$ d$ K5 E v3 b, p
AdaDelta
' `) }: c8 ~# r Adam
- ]$ U, s. F& ^+ K 各个优化算法比较动态图, A% `; V3 Q D2 m8 W) V& C
- w+ i2 J; r5 ?4 ~% ~) R! w, B+ c
2 \& T6 S8 X, u# n9 B% s
1 i% I, ^1 l# {- e9 |8 j% A( U
zan