- 在线时间
- 481 小时
- 最后登录
- 2026-8-25
- 注册时间
- 2023-7-11
- 听众数
- 4
- 收听数
- 0
- 能力
- 0 分
- 体力
- 7859 点
- 威望
- 0 点
- 阅读权限
- 255
- 积分
- 2946
- 相册
- 0
- 日志
- 0
- 记录
- 0
- 帖子
- 1177
- 主题
- 1192
- 精华
- 0
- 分享
- 0
- 好友
- 1
该用户从未签到
 |
梯度下降是最基本但使用最多的优化算法。它在线性回归和分类算法中大量使用。神经网络中的反向传播也使用梯度下降算法。* t! i' C' A5 s6 {
3 m/ A9 a$ u9 P% i& m
梯度下降是一种一阶优化算法,它依赖于损失函数的一阶导数。它计算应该改变权重的方式,以便函数可以达到最小值。通过反向传播,损失从一层转移到另一层,模型的参数(也称为权重)根据损失进行修改,从而使损失最小化。. G- t/ H3 v: d* o% ~9 O" s
$ V6 i( M$ O$ k+ p# o
优点:
, A7 F' `* P3 L3 i; ]7 y. v% B. C1 t" D4 J" G# W
容易计算。
$ D. h+ n3 g) i易于实施。0 C0 ~# s# D3 B9 {
容易理解。2 {9 o8 n: t& `3 t2 O2 C
缺点:
6 X8 p+ N; x! [; y+ E
) z8 ]2 [" Y) z* G1 S6 {: x: b可能陷入局部最小值。# U# q2 g3 S2 e( }4 u
在计算整个数据集的梯度后,权重会发生变化。因此,如果数据集太大,可能需要数年时间才能收敛到最小值。" G5 j4 a- Q# [0 U' | s. m. w8 \. j
需要大内存来计算整个数据集的梯度
+ V7 c* z4 u5 q% I! T随机梯度下降+ ]! w+ E- h. `+ K6 `
它是梯度下降的变体。它尝试更频繁地更新模型的参数。在这种情况下,模型参数在计算每个训练示例的损失后会发生变化。因此,如果数据集包含 1000 行,SGD 将在数据集的一个循环中更新模型参数 1000 次,而不是像梯度下降中那样更新一次。
, s- ~) d/ w3 h- I) b2 J* a. ?
; G( v' `7 E+ d' E5 p$ }, p. i- Qθ=θ−α⋅∇J(θ;x(i);y(i)) ,其中 {x(i) ,y(i)} 是训练样本
* X. _- o* F n" i: Q, ]8 r6 T5 l& g" u: M* G8 C* p4 J
由于模型参数更新频繁,参数在不同强度下具有较大的方差和损失函数波动。+ b' h6 k$ s; J& a% p% \$ p
% `( I, v D' k8 h# O- N
优点:! {/ |( k: I- f6 i n6 k# b7 ~
2 ~2 m* z5 ~4 ^+ f' L0 a% e: X* o! n" b/ z因此,频繁更新模型参数可以在更短的时间内收敛。# j$ O9 Y# _3 W1 \9 t4 x% v* C3 r+ M
需要更少的内存,因为不需要存储损失函数的值。 X/ s1 y- T$ ?( } b9 o& e8 |, U- y# D
可能会得到新的最小值。
$ y, J B' |! V+ {( J& T* e0 |缺点:
' I1 u" Q; s8 {9 J; T
8 l* [3 |* B- G. p7 u模型参数的高方差。5 n6 H2 M) `0 u: X0 b6 K
即使在达到全局最小值后也可能射击。
7 C! q R+ G! z8 f, x; t# m要获得与梯度下降相同的收敛性,需要慢慢降低学习率的值。
4 K. W* T) m9 A$ o: [小批量梯度下降$ M# m* \5 F5 I1 i$ W/ G- `
它是梯度下降算法所有变体中最好的。它是对 SGD 和标准梯度下降的改进。它在每批次后更新模型参数。因此,数据集被分成不同的批次,每批次之后,参数都会更新。
; l- ^+ X, g$ f+ T! X% y& Q/ z5 a
; z( E; n8 e# ^ \! A0 Y' J, ]θ=θ−α⋅∇J(θ; B(i)),其中 {B(i)} 是训练样本的批次。0 T1 T/ f" V! \
/ x b: O- t$ @4 m" Z
优点:6 y6 y+ Z' R b& t" n: Q+ `2 \! ^& L
0 W; R& @8 e0 E7 M: S
经常更新模型参数并且方差也较小。
0 i" g) ~8 q1 A' G5 R: m, X- j需要中等的内存) C2 R4 B. ?/ l& e$ S. I0 D
所有类型的梯度下降都有一些挑战:
+ ]8 b/ ]+ Y9 g& \0 y: h( P
9 W+ T# f$ Z7 i) c8 S0 B选择学习率的最佳值。如果学习率太小,梯度下降可能需要很长时间才能收敛。
) N! J$ M$ \ g' E, k7 d: M) y \* n对所有参数都有一个恒定的学习率。可能有一些参数我们不想以相同的速率改变。
3 p8 P3 v2 x/ E; _可能会陷入局部极小值。
+ b, o$ R; I8 T其它优化算法0 U; ^% n4 {' b; P: |8 _# w
具体我就不再详细介绍,其它优化器如下:
$ {' h6 K1 t: ~7 A7 n) N, E2 C$ D% R
! M4 o6 p" {9 ?) k# Z! lMomentum
9 A& K3 S4 u% u7 HNesterov Accelerated Gradient
0 M! B' \3 X' l, DAdagrad$ Z- G/ Z& [9 e$ X, }5 H+ H
AdaDelta
: Q1 ], l2 }# `7 L0 Z+ MAdam
+ I% o3 I5 j3 l- _& w3 D9 Q各个优化算法比较动态图
4 v9 {. w. g1 m7 _0 n
" Q+ J# @1 j0 m4 e/ @
7 X$ O; k9 a2 c6 g% N* a6 Q
- R) s' y% C- s9 P) ? |
zan
|