机器学习(6)

局部最小值与鞍点

当使用梯度下降法时,通常会在遇到梯度为0的地方停下来,而局部最小值点(local minima)和鞍点(saddle point)的梯度都为0,统称critical point,但鞍点并非满足我们要求的点。

1.优化失败的原因

当参数的梯度为0时,导致参数无法正常更新,使得loss function无法下降。

  • local minina
  • saddle point

2.判断方法

loss function用泰勒展开,可近似等于:
L ( θ ) = L ( θ ′ ) + ( θ − θ ′ ) T g + 1 2 ( θ − θ ′ ) T H ( θ − θ ′ ) L(\theta)=L(\theta^{'})+(\theta-\theta^{'})^{T}g+\frac{1}{2} (\theta-\theta^{'})^{T}H(\theta-\theta^{'}) L(θ)=L(θ)+(θθ)Tg+21(θθ)TH(θθ)
其中, g = ▽ L ( θ ′ ) g=\triangledown L(\theta^{'}) g=L(θ) g i = ∂ L ( θ ′ ) ∂ θ i g_i=\frac{\partial L(\theta^{'})}{\partial \theta_i} gi=θiL(θ) H i j = ∂ 2 ∂ θ i ∂ θ j H_{ij}=\frac{\partial ^2}{\partial \theta_i\partial \theta_j} Hij=θiθj2

当梯度为0时,有:
L ( θ ) = L ( θ ′ ) + 1 2 ( θ − θ ′ ) T H ( θ − θ ′ ) L(\theta)=L(\theta^{'})+\frac{1}{2} (\theta-\theta^{'})^{T}H(\theta-\theta^{'}) L(θ=L(θ)+21(θθ)TH(θθ)
v = ( θ − θ ′ ) v=(\theta-\theta^{'}) v=(θθ),有
在这里插入图片描述

  • 当H为正定矩阵,所有特征值为正时,为local minima
  • 当H所有特征值为负时,为local maxima
  • 当H的特征值有正有负时,为saddle point

3.更新方向

u = ( θ − θ ′ ) u=(\theta-\theta^{'}) u=(θθ),其中 u u u H H H的特征向量, λ \lambda λ u u u的特征值
λ < 0 \lambda<0 λ<0时,有:
在这里插入图片描述
即沿着 u u u的方向,可使loss function继续减小。

批次与动量

Small Batch and Momentum可以帮助我们解决critical point(梯度为0的点)

1.批次(batch)

  • 实际实践中,并不是一次性使用全部的数据集进行优化,而是将全部的数据集分成许多个 b a t c h batch batch,依次用这些 b a t c h batch batch进行参数更新,更新完所有 b a t c h batch batch称为一次 e p o c h epoch epoch,每一次 e p o c h epoch epoch都会将所有 b a t c h batch batch打乱,称为 s h u f f l e shuffle shuffle
  • small batch 对比big batch
    在这里插入图片描述
    总结:
    1)更大的batch不一定会比小batch计算时间长很多,因为有gpu加速和并行运算(除非size非常非常大)
    2)big batch的优化过程更加平滑,而small batch优化过程有许多noisy,但是在训练时,这种noisy反而使得优化结果表现得更好

2.动量(Momentum)

动量(Momentum)可以简单理解为运动过程中的惯性力。
一般情况下,都是往梯度的反方向更新:
在这里插入图片描述
Gradient Descent + Momentum就是不仅考虑了梯度方向还考虑了上一步更新的方向,新的方向即为两个方向的合方向:
在这里插入图片描述
这样做的好处是:可以通过参数控制对计算出来的梯度的weight和上一步的weight。

动态调整学习率

有时候更新卡住并不是因为critical points,而是因为学习率设置的不合理,不同的参数应该设置不同的学习率

  • 方法一:Root Mean Square
    每次优化的学习率(步长)与时间(次数)相关,即一开始离local minima距离远,学习率大;随着时间增加,离local minima的距离变小,减小学习率
    在这里插入图片描述

  • 方法二:RMSProp
    不仅有方法一的优点,还增加了对历史梯度和当前梯度weight,对数据会更敏感
    在这里插入图片描述

  • 方法三:Learning Rate Scheduling

  • 在这里插入图片描述

  • Learning Rate Decay:在训练开始之后,逐步接近目标, η t \eta^t ηt t t t减小

  • Warm Up:在训练开始,数据量较少,计算较差, η t \eta^t ηt一开始较小,随着数据增加,可信度变高, η t \eta^t ηt增大,又随着靠近目标点, η t \eta^t ηt减小

总结

在这里插入图片描述

损失函数的影响

机器学习的问题大致可以分为:分类与回归,主要的不同在输出部分,其二者的本质是一样,不过分类是对回归的结果再离散化。
在这里插入图片描述

  • 分类的loss function
    L = 1 N ∑ n e n L= \frac{1}{N}\sum_{n}e_n L=N1nen
    若采用MSE(Mean Square Error): L = ∑ i ( y i ^ − y ′ i ) 2 L= \sum_{i}( \hat{y_i}-{y^{'}}_i)^2 L=i(yi^yi)2
    若采用交叉墒(Cross-entropyr): L = − ∑ i ( y i ^ ln ⁡ y ′ i ) L= -\sum_{i}( \hat{y_i}\ln{y^{'}}_i) L=i(yi^lnyi)
    注:不同的loss function对优化的难易程度影响不一样

Batch Normalization

Batch Normalization(批量准化), 和普通的数据标准化类似, 是将分散的数据统一的一种做法,也是优化神经网络的一种方法,具有统一规格的数据, 能让机器学习更容易学习到数据之中的规律

1.Feature Scaling

如果特征大小差的比较远的话,loss function会很扁平,数值更大的feature的参数会对结果的影响更大,这样在训练过程中,不同的方向需要设定不同的学习率,这样子会不太方便,所以我们通常会去做feature scaling,即:对每一维特征,我们对每一个数据减去这维特征的均值,再除以这位特征的标准差,得到缩放后的新的特征值,此时它的均值为0,方差为1。一般经过feature scaling之后,收敛速度会变快。
在这里插入图片描述

2.Batch Normalization

在机器学习中,我们不仅只对输入层进行Normalization,而是对每一层的输入进行Normalization,这就包括了input layer和所有的hidden layer。
在这里插入图片描述

  • 具体做法:
    对每一层的输入参数计算均值 μ \mu μ和标准差 σ \sigma σ,然后对每一个参数进行如下计算:
    z ~ i = z i − μ σ \widetilde{z}^i= \frac{z^i-\mu}{\sigma} z i=σziμ
    在这个基础上,可以对 z ~ i \widetilde{z}^i z i继续做一些变换:
    在这里插入图片描述
    其中 λ \lambda λ β \beta β都是参数
    在这里插入图片描述
  • 所遇问题:训练完神经网络,到了测试的时候,会出现一个问题, z ~ i \widetilde{z}^i z i是通过一个batch的均值 μ \mu μ和标准差 σ \sigma σ 算出来的,但是测试的时候是没有batch的,那么这两个参数怎么来呢?
  • 解决方法:把过去训练时每个batch算出来的 均值 μ \mu μ和标准差 σ \sigma σ都保存下来,然后对这些 均值 μ \mu μ和标准差 σ \sigma σ做加权平均,给最后几次训练的 均值 μ \mu μ和标准差 σ \sigma σ更大的权重,因为此时的参数更接近于完成的模型。
    在这里插入图片描述
  • 优点:解决了Internal Covariate Shift问题,即中间层数据分布发生改变的问题
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值