数学建模社区-数学中国

标题: 训练神经网络的各种优化算法 [打印本页]

作者: 2744557306    时间: 2023-11-29 11:37
标题: 训练神经网络的各种优化算法
梯度下降是最基本但使用最多的优化算法。它在线性回归和分类算法中大量使用。神经网络中的反向传播也使用梯度下降算法。3 x( G, S8 O: ~+ S

5 y! a5 g  P- e# N梯度下降是一种一阶优化算法,它依赖于损失函数的一阶导数。它计算应该改变权重的方式,以便函数可以达到最小值。通过反向传播,损失从一层转移到另一层,模型的参数(也称为权重)根据损失进行修改,从而使损失最小化。! P+ L6 C6 J/ q% J: k# l
  `8 k8 u% S, y! s
优点:1 c5 Z7 J# q  m8 o; t

* ]. p* u6 H8 V7 ~容易计算。. z& Z2 ~; a, P; n
易于实施。2 X& I$ S* Z+ u
容易理解。
+ V" P, r) m7 d+ a# Z* x, l缺点:
3 f1 t4 J+ a3 W) G3 _  T
" d2 p: f. O' G, ~$ C" t8 T# e; m* t0 ?. h可能陷入局部最小值。- Q4 p+ g7 [  R$ m- k$ `8 Q
在计算整个数据集的梯度后,权重会发生变化。因此,如果数据集太大,可能需要数年时间才能收敛到最小值。9 E1 Q+ P( r3 Z. q6 {" v- O. \+ l4 Y
需要大内存来计算整个数据集的梯度
5 x1 z1 o6 J  T) Z. ~4 Q- y随机梯度下降3 G$ o. n/ J( p# \! Z) [
它是梯度下降的变体。它尝试更频繁地更新模型的参数。在这种情况下,模型参数在计算每个训练示例的损失后会发生变化。因此,如果数据集包含 1000 行,SGD 将在数据集的一个循环中更新模型参数 1000 次,而不是像梯度下降中那样更新一次。$ H% u" E- z# q5 [& j. S

' O4 N7 k$ u" P. ]θ=θ−α⋅∇J(θ;x(i);y(i)) ,其中 {x(i) ,y(i)} 是训练样本
0 Z2 s" v" D; G' b8 n' }' ~
9 X  Z: u- r" q0 d. e- I- c  h9 N由于模型参数更新频繁,参数在不同强度下具有较大的方差和损失函数波动。8 j3 a$ r+ g' |5 o0 r

5 L. k$ `# m# `$ K+ b" h7 F优点:+ n6 X5 F. {4 O

8 G: E0 I! `) L4 f因此,频繁更新模型参数可以在更短的时间内收敛。
: _- z' q, n9 p+ [  _需要更少的内存,因为不需要存储损失函数的值。
- q0 m  P3 k9 ?2 n8 N1 W0 i+ {+ V6 T可能会得到新的最小值。3 ^( u8 Q" _/ o% A: P. @
缺点:) ?6 D- Y2 {3 b8 ?5 m2 e6 g* T2 I
7 V6 {+ G" T+ r" i! T1 R* d9 i/ F
模型参数的高方差。- V0 I' |8 o( q
即使在达到全局最小值后也可能射击。. i$ x2 E! p& W  f, N
要获得与梯度下降相同的收敛性,需要慢慢降低学习率的值。
5 w# _/ \/ ]/ h1 B. {; b/ Q小批量梯度下降4 \% z2 [; X" k- b8 I( m
它是梯度下降算法所有变体中最好的。它是对 SGD 和标准梯度下降的改进。它在每批次后更新模型参数。因此,数据集被分成不同的批次,每批次之后,参数都会更新。
! H* M9 ~  [- `9 x; q) m6 v9 R. q; K9 K* H" _- c* J9 w% R8 v
θ=θ−α⋅∇J(θ; B(i)),其中 {B(i)} 是训练样本的批次。
: i; ]" {! W9 y1 A7 j% Y# X5 L  j# Z# |+ I
优点:" Z; t8 J  X) e( g1 k# {
' F0 @7 e6 d1 |% f  `
经常更新模型参数并且方差也较小。' u* d; A3 s0 k( ?
需要中等的内存; f% x  E# N5 K8 p; D8 z2 G& Y0 u
所有类型的梯度下降都有一些挑战:5 }) R  `' C- A  Q# j8 e, i
! u4 c' v% V0 ]# j: c  p
选择学习率的最佳值。如果学习率太小,梯度下降可能需要很长时间才能收敛。2 Z) d0 Z0 j7 r
对所有参数都有一个恒定的学习率。可能有一些参数我们不想以相同的速率改变。4 F  }/ |& `5 r  p
可能会陷入局部极小值。
" s3 x+ W. P2 |其它优化算法
& `9 s2 S/ U. y% S具体我就不再详细介绍,其它优化器如下:/ X- l) @; g# C5 _" T! c

+ b8 B* Q. r& b9 [Momentum+ q4 ]* c) H6 n, P! t" `: `% `
Nesterov Accelerated Gradient
6 w7 I. B! w: c. N6 r( D, h6 pAdagrad) L2 _4 t1 }$ i- n8 N1 m# _" V6 e
AdaDelta: u/ k- z/ h) e! q4 P4 f5 T
Adam
9 b5 W6 V/ }" W8 `3 i各个优化算法比较动态图
; Q1 x% v& B7 }9 G* v, |4 R# S  A VeryCapture_20231129112215.gif
5 j6 Q. ~- ?! Y1 Q# x8 k8 |1 u
1 y" ^7 R' A+ j: s: Z+ N  a# D& z( w$ D) r





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5