- 在线时间
- 480 小时
- 最后登录
- 2026-6-1
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7823 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2934
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1174
- 主题
- 1189
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
梯度下降是最基本但使用最多的优化算法。它在线性回归和分类算法中大量使用。神经网络中的反向传播也使用梯度下降算法。
- f, M% U$ ~2 `( Z) ]) I+ u' n
! }! Z7 m4 ^0 {7 A* e* u- l8 W梯度下降是一种一阶优化算法,它依赖于损失函数的一阶导数。它计算应该改变权重的方式,以便函数可以达到最小值。通过反向传播,损失从一层转移到另一层,模型的参数(也称为权重)根据损失进行修改,从而使损失最小化。
0 I( s0 t+ p# ~4 h, @9 | @: ? Z8 L1 Y) L5 }4 z
优点:
" E. c; v& g5 e' z5 [. ?+ @( \) L% S( T& N5 z5 d, L h. v6 d
容易计算。# W: D6 Q9 W( q' Q5 O1 R
易于实施。6 W, q; {. H% s' \4 P7 Q7 X. `
容易理解。
@9 v5 z" v) P) ~+ h缺点:
. C' E/ d( u' g* ~9 z- A6 c- k. A' A6 v5 x
可能陷入局部最小值。
# {) H% A- K# j. R2 b. Y% p在计算整个数据集的梯度后,权重会发生变化。因此,如果数据集太大,可能需要数年时间才能收敛到最小值。
0 I$ x- ]% J# r- I; Y' K需要大内存来计算整个数据集的梯度
. w, K$ h5 j6 X" n( q! o6 z! v随机梯度下降
5 I% f& y* T: {: x它是梯度下降的变体。它尝试更频繁地更新模型的参数。在这种情况下,模型参数在计算每个训练示例的损失后会发生变化。因此,如果数据集包含 1000 行,SGD 将在数据集的一个循环中更新模型参数 1000 次,而不是像梯度下降中那样更新一次。
! W b! b1 J% X9 b& J+ E5 z1 a" ]
# C, @/ ?0 ?7 |0 y% }- R& m6 v8 w1 b* lθ=θ−α⋅∇J(θ;x(i);y(i)) ,其中 {x(i) ,y(i)} 是训练样本
# @. o( D/ H2 b/ E" i2 p- @4 j: u) L. ^' p/ [( W' ]
由于模型参数更新频繁,参数在不同强度下具有较大的方差和损失函数波动。
6 x6 h4 n% T( H
3 Z) i4 H, D! j0 d. X8 S优点:
" Z% v9 F$ R5 i* J* R5 D+ N1 z3 q- ~2 q" Y0 Q
因此,频繁更新模型参数可以在更短的时间内收敛。
7 O U8 g$ J& n3 f0 P" b需要更少的内存,因为不需要存储损失函数的值。, W4 o/ Q' R6 ?9 p; R
可能会得到新的最小值。
; i: _7 F1 B* W1 F5 d缺点:
- o9 y+ {9 J; V1 j- c! c5 @6 L C c0 F0 T
模型参数的高方差。
3 x! c O- V+ U即使在达到全局最小值后也可能射击。
6 k' ]) n6 q% B) _3 ~( _" c9 r. E要获得与梯度下降相同的收敛性,需要慢慢降低学习率的值。
6 f- @# D) ~6 U/ ~5 l- o2 D小批量梯度下降" M) u. a. T: @- F2 e3 Y. ?
它是梯度下降算法所有变体中最好的。它是对 SGD 和标准梯度下降的改进。它在每批次后更新模型参数。因此,数据集被分成不同的批次,每批次之后,参数都会更新。+ e9 f* z# j- m& E) G, r6 X2 }, N
2 U1 u) y- y5 \6 t% d; Q: E" j3 O* \θ=θ−α⋅∇J(θ; B(i)),其中 {B(i)} 是训练样本的批次。8 v$ X/ R& ^# r1 d! [2 C) s! H
; n& }1 v: j8 y3 g! X
优点:6 x. j4 ~% t( @; y9 ]4 O) R
: C D2 ?7 I2 c9 s
经常更新模型参数并且方差也较小。
. d' l* K6 ?+ `8 k) ]+ v需要中等的内存1 ]$ _4 f/ }# d* u9 _( w. e
所有类型的梯度下降都有一些挑战:
+ f: }+ d1 b. f* B$ @
6 Q$ v& G# e1 @ @* T$ d: @- ~- w- R选择学习率的最佳值。如果学习率太小,梯度下降可能需要很长时间才能收敛。
4 a% U7 Y: B' }* J" F% R对所有参数都有一个恒定的学习率。可能有一些参数我们不想以相同的速率改变。
8 }' @2 Q, N' Z- Y0 M可能会陷入局部极小值。8 M( E" Y _9 C$ k
其它优化算法
4 ]9 M1 V% L( e: ]# H具体我就不再详细介绍,其它优化器如下:* G3 ?+ X6 i* P& m
/ F* K4 n o' F# z4 u
Momentum/ d/ i2 U5 [* @, k! p$ D
Nesterov Accelerated Gradient/ ]! z/ O! U' _8 b+ a6 S! w4 }
Adagrad
. O, B+ A- O% r: d4 Q, RAdaDelta
/ [, T* ^/ o5 Z# I f: Y# M* D# vAdam( e6 V6 |5 }9 c& w# ~
各个优化算法比较动态图8 g* |) T i% Y l, ~
3 [9 C7 H4 v3 ~$ G" C# ^
1 v9 A f$ {1 B" b. g) n. H' j" `4 X, n+ r
|
zan
|