QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2298|回复: 0
打印 上一主题 下一主题

训练神经网络的各种优化算法

[复制链接]
字体大小: 正常 放大

1188

主题

4

听众

2931

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-29 11:37 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
梯度下降是最基本但使用最多的优化算法。它在线性回归和分类算法中大量使用。神经网络中的反向传播也使用梯度下降算法。
# U  w0 O# ~6 f% G7 E) v& P) S4 t) g9 j+ O" I. X
梯度下降是一种一阶优化算法,它依赖于损失函数的一阶导数。它计算应该改变权重的方式,以便函数可以达到最小值。通过反向传播,损失从一层转移到另一层,模型的参数(也称为权重)根据损失进行修改,从而使损失最小化。
( @, n$ k) Z! R2 d6 \4 h, K/ O. y: |8 W6 T% q# s
优点:) t$ S% ~) d! L* j2 O
7 |3 f$ v8 M3 e# I0 j8 [
容易计算。
  k9 M: N* B; d9 `易于实施。
- }: F! ?* P8 ^8 o' V: E& o容易理解。& W8 s0 @  c/ j
缺点:
8 @& d2 [. Y+ J) s; C# ?& E. n2 C. _* B+ h
可能陷入局部最小值。$ E8 ^" F0 V3 z- F9 w
在计算整个数据集的梯度后,权重会发生变化。因此,如果数据集太大,可能需要数年时间才能收敛到最小值。% ^* y5 r- f4 m9 ^
需要大内存来计算整个数据集的梯度
2 F9 ^" U1 f/ K# v随机梯度下降
/ h8 x: Z% u( [它是梯度下降的变体。它尝试更频繁地更新模型的参数。在这种情况下,模型参数在计算每个训练示例的损失后会发生变化。因此,如果数据集包含 1000 行,SGD 将在数据集的一个循环中更新模型参数 1000 次,而不是像梯度下降中那样更新一次。
. `( @# ^+ Q# D- p  F) p  Y2 X/ Q' b) E  M' H
θ=θ−α⋅∇J(θ;x(i);y(i)) ,其中 {x(i) ,y(i)} 是训练样本
) w9 T( M, n) m: F1 E' E; s/ b, s4 i( N8 B- P( @3 I( _
由于模型参数更新频繁,参数在不同强度下具有较大的方差和损失函数波动。( `* E  h6 U& ^! [8 `+ x7 @& P' g
% o: ]8 d* K) S/ m
优点:
6 U* g) B. `6 f9 K5 y% Y+ H' b3 k( K. [9 C1 Z9 C, u# [
因此,频繁更新模型参数可以在更短的时间内收敛。
0 V1 q9 Z# y; `7 S$ |需要更少的内存,因为不需要存储损失函数的值。
3 w1 E/ y0 Y2 |. S. o可能会得到新的最小值。
% P" j( _; L# n- P4 @, z' k* H缺点:" J$ z. L6 s0 q3 H" O2 q

6 U1 J; D/ t4 g: d* u3 b4 G: e3 `* D9 Y模型参数的高方差。
' H; {; d8 i8 Y  r. B: a, T: a: [. y即使在达到全局最小值后也可能射击。
+ ~2 O1 o) Z  N8 x# h7 M4 b8 ]要获得与梯度下降相同的收敛性,需要慢慢降低学习率的值。- Z& Q$ Z' T; V. [. B+ P+ e; K, d
小批量梯度下降7 Y- l# J$ O" v1 A
它是梯度下降算法所有变体中最好的。它是对 SGD 和标准梯度下降的改进。它在每批次后更新模型参数。因此,数据集被分成不同的批次,每批次之后,参数都会更新。
  c! N4 f3 F$ U# q/ A3 b
( v. ^0 ?, D  M6 ]% Iθ=θ−α⋅∇J(θ; B(i)),其中 {B(i)} 是训练样本的批次。
! ]4 L( [7 [4 u+ K5 D! |
6 T$ ?0 i  {/ Y& K) E优点:) w: I; G  z5 ?# l

6 E9 [7 f8 L0 K5 N; L, v" `! T经常更新模型参数并且方差也较小。
6 s  T0 I1 @6 \4 S( }需要中等的内存  e+ l' Q, p0 {# r8 j2 S
所有类型的梯度下降都有一些挑战:
. F# _% _3 C3 U5 W: B) |
3 |6 e& X& E1 t- K/ i& `  k4 B7 M选择学习率的最佳值。如果学习率太小,梯度下降可能需要很长时间才能收敛。
3 _+ `0 y' f  u% j9 ]' m对所有参数都有一个恒定的学习率。可能有一些参数我们不想以相同的速率改变。4 o; }) C  D$ b' E2 @# i9 X
可能会陷入局部极小值。
  I' A1 k1 I9 t+ @# s. R, v5 ?8 [; Q其它优化算法+ K. V+ V4 q% @9 r  \9 h
具体我就不再详细介绍,其它优化器如下:
0 N8 Y, r. {& {0 z+ H$ @  ?
* D, j* ?; `* e  o5 HMomentum) {- I2 T& g* i' j
Nesterov Accelerated Gradient0 q; T$ |, {, k, h0 n; Q) y0 H  S
Adagrad( e) I8 W  T$ K  _' n7 Z$ l
AdaDelta
$ ]& k! P' H; G" H1 VAdam! h8 w* I- L; K$ D( _! H
各个优化算法比较动态图
: N! l  D1 Q8 D VeryCapture_20231129112215.gif
1 I# l, r: R/ S8 Y7 O" r: o+ |( W8 O2 E$ i. ~( g

- D2 ~7 b1 x, w" I% @1 Q: B
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-5-26 12:02 , Processed in 0.406971 second(s), 54 queries .

回顶部