网易云深度学习第二课NoteBook2

优化算法

1.Mini-batch梯度下降法

对整个训练集进行梯度下降法的时候,我们必须处理整个训练数据集,然后才能进行一步梯度下降,即每一步梯度下降需要对整个训练集进行一次处理,如果训练数据很大时,处理速度就会非常慢。
但是如果每次处理训练数据的一部分进行梯度下降法,则算法的执行速度会变快。而处理的这一小部分训练子集即为Mini-batch.
这里写图片描述
对于普通的梯度下降法,一个epoch只能进行一次梯度下降;而对于Mini-batch梯度下降法,一个epoch可以进行Mini-batch次梯度下降。

Batch gradient descent和Mini-batch gradient descent区别:
这里写图片描述

batch梯度下降:
对m个训练样本执行一次梯度下降,每次迭代时间较长。
Cost Function总是向减小的方向下降。
随机梯度下降(样本为m个,分为m个mini-batch):
对每一个训练样本执行一次梯度下降,但是无法享受向量化带来的计算加速。
Cost function总体趋势是向最小值方向下降,但是无法达到全局最小值点,呈现波动的形势。

Mini-batch梯度下降:
选择一个1

2.指数加权平均

指数加权平均的关键函数:
这里写图片描述
理解指数加权平均
例子,当β=0.9时:
v100=0.9v99+0.1θ100
v99=0.9v98+0.1θ99
v98=0.9v97+0.1θ98
展开后:
这里写图片描述
上式中θ前面的系数相加起来为1或者接近于1,称之为偏差修正。
总体来说存在,(1−ε)^1/ε=1/e,在我们的例子中,1−ε=β=0.9,即0.9^10≈0.35≈1/e。相当于大约10天后,系数的峰值(这里是0.1)下降到原来的1/e,只关注了过去10天的天气。

指数加权平均实现

v0=0
v1=βv0+(1−β)θ1
v2=βv1+(1−β)θ2
v3=βv2+(1−β)θ3
因为,在计算当前时刻的平均值,只需要前一天的平均值和当前时刻的值,所以在数据量非常大的情况下,指数加权平均在节约计算成本的方面是一种非常有效的方式,可以很大程度上减少计算机资源存储和内存的占用。

3. 动量(Momentum)梯度下降法

4. RMSprop

5. Adam 优化算法

6.学习率衰减

我们利用mini-batch梯度下降法寻找损失函数的最小值的时候,如果我设置一个固定的学习率α,则算法在到达最小值附近的时候,由于不同的batch中存在一定噪声,使得J不会精确收敛到0,而是会在一个接近于0的范围内波动。
但是如果我们使用学习率衰减,逐渐减小学习速率α,在算法开始的时候,学习速率还是相对较快,能够相对快速的向最小值点的方向下降。但随着α的减小,下降的步伐也会逐渐变小,最终会在最小值附近的一块更小的区域里波动.

学习率衰减的实现:
(1)decay_rate*epoch_num法
这里写图片描述
(2)指数衰减法:
这里写图片描述

7.局部最优问题

在低纬度的情形下,我们可能会想象到一个Cost function存在一些局部最小值点,在初始化参数的时候,如果初始值选取的不得当,会存在陷入局部最优点的可能性。
但是,如果我们建立一个神经网络,通常梯度为零的点,并不是如左图中的局部最优点,而是右图中的鞍点(叫鞍点是因为其形状像马鞍的形状)。
这里写图片描述
在一个具有高维度空间的函数中,如果梯度为0,那么在每个方向,Cost function可能是凸函数,也有可能是凹函数。但如果参数维度为2万维,想要得到局部最优解,那么所有维度均需要是凹函数,其概率为2^−20000,可能性非常的小。也就是说,在低纬度中的局部最优点的情况,并不适用于高纬度,我们在梯度为0的点更有可能是鞍点。
在高纬度的情况下:
几乎不可能陷入局部最小值点;
处于鞍点的停滞区会减缓学习过程,利用如Adam等算法进行改善

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值