- 在线时间
- 481 小时
- 最后登录
- 2026-8-25
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7859 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2946
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1177
- 主题
- 1192
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
梯度下降是最基本但使用最多的优化算法。它在线性回归和分类算法中大量使用。神经网络中的反向传播也使用梯度下降算法。
% ? P6 b" P& G) k# p
, @+ Y# C! w8 A梯度下降是一种一阶优化算法,它依赖于损失函数的一阶导数。它计算应该改变权重的方式,以便函数可以达到最小值。通过反向传播,损失从一层转移到另一层,模型的参数(也称为权重)根据损失进行修改,从而使损失最小化。
. V5 O5 j2 D; {4 X r, O
- n* R% `. U) g T1 E优点:
, ~! g7 _% L- g8 r+ A2 i% j. Y$ w: c1 A6 [; O( h; C5 b
容易计算。
4 e6 o5 U8 z: k易于实施。
7 K. z3 p( J" Q+ u7 L容易理解。, o5 ?7 s. h2 p6 x- q
缺点:
" N! e! U; V/ L. }# m5 L
X# K0 K; d$ R1 w$ e# w L可能陷入局部最小值。
1 b! l y: s9 [0 `* M$ K/ R在计算整个数据集的梯度后,权重会发生变化。因此,如果数据集太大,可能需要数年时间才能收敛到最小值。
; r1 F* H8 T% p, F需要大内存来计算整个数据集的梯度4 v6 I6 T R$ I$ o
随机梯度下降
) n& H6 c- o8 |* ~# B* x它是梯度下降的变体。它尝试更频繁地更新模型的参数。在这种情况下,模型参数在计算每个训练示例的损失后会发生变化。因此,如果数据集包含 1000 行,SGD 将在数据集的一个循环中更新模型参数 1000 次,而不是像梯度下降中那样更新一次。( G4 u! u$ Q5 L, U
6 n7 \ }) V" @* B+ A. R. T
θ=θ−α⋅∇J(θ;x(i);y(i)) ,其中 {x(i) ,y(i)} 是训练样本
' g% Z5 H8 y3 [9 y
8 M& w" `5 M3 U' g由于模型参数更新频繁,参数在不同强度下具有较大的方差和损失函数波动。 O n. F1 b& U5 s
3 H4 z( l! H7 a7 w$ ~6 X- s优点:
. F/ y. E) O& l z3 K+ y7 `+ i
2 B9 ?: X ~$ M* A因此,频繁更新模型参数可以在更短的时间内收敛。" |5 y: ?0 [) A1 h! t* F
需要更少的内存,因为不需要存储损失函数的值。
! u, a( s8 P$ }$ g g6 M可能会得到新的最小值。; y% u. s) w" c/ J
缺点:: r1 [+ `% z6 ~7 w$ C$ K/ s
. F8 n/ ]( @/ V* q8 s, C模型参数的高方差。6 k# I0 B0 S' a/ B
即使在达到全局最小值后也可能射击。6 v4 g4 W2 q" R8 r( L
要获得与梯度下降相同的收敛性,需要慢慢降低学习率的值。2 J) Y( H; k+ }" P2 x
小批量梯度下降# a" {$ d; q' h* x% N& g: D+ \
它是梯度下降算法所有变体中最好的。它是对 SGD 和标准梯度下降的改进。它在每批次后更新模型参数。因此,数据集被分成不同的批次,每批次之后,参数都会更新。
- A8 D/ H2 h* B2 S) {, t
, r5 O$ ]8 x* o! j' q/ U: z# @θ=θ−α⋅∇J(θ; B(i)),其中 {B(i)} 是训练样本的批次。
! G2 T- x* g8 I% X) a; a
% v& H# A1 T# M2 W, V优点:
1 Z, O4 h$ y! M7 G( d- `. v3 X5 \+ X4 t; F: c i4 V6 e' w% x
经常更新模型参数并且方差也较小。$ g9 x) @* n6 K- [* V" o) `, v; R
需要中等的内存- A9 V7 U$ P% o, m. e
所有类型的梯度下降都有一些挑战:- h% ~* e1 ^3 _8 B7 [& _4 V
# p; o$ d2 F) w' M选择学习率的最佳值。如果学习率太小,梯度下降可能需要很长时间才能收敛。" i% [) y b# x. E: `
对所有参数都有一个恒定的学习率。可能有一些参数我们不想以相同的速率改变。
8 k- u: R+ C( o! L可能会陷入局部极小值。" E( i! ~" Z% S, l
其它优化算法+ `% }5 Q! H* }8 h" f0 b' p
具体我就不再详细介绍,其它优化器如下:
6 o) D P8 ^' [: z# D. L3 [% w* s/ l$ Y& G( ?
Momentum
$ Y3 S3 C1 s3 RNesterov Accelerated Gradient
' ?# s/ k) s7 a3 ~' f$ o4 AAdagrad+ K! O7 x, P9 t& i) x8 | o
AdaDelta
) y6 r0 L X* mAdam
* l/ u8 _- Y7 l! o. J各个优化算法比较动态图
`& c) Z: ^* k
1 ~) b2 ^$ C4 v, {' h& e1 L& f; v, A i% f" Z: I6 F, U9 ?
+ `1 t3 V: R+ ] _1 `" D$ _ |
zan
|