自学内容网 自学内容网

吴恩达深度学习笔记(4)---加速神经网络训练速度的优化算法

机器学习的应用是一个高度依赖经验,不断重复的过程,需要训练很多模型才能找到一个确实好用的。

小批量梯度下降算法:

矢量化可以有效计算m个算例而不需要for循环,因此我们需要将所有的训练样例放入巨型矩阵中。但是当数据量超大时,计算时间仍需很久,可以考虑将训练集分为微小的训练集,即小批量训练集。

对于一个小的训练集进行下图计算,也叫做训练集的一次遍历。

梯度下降过程中,代价函数是不断下降的,但是小批量的代价函数趋势是下降,过程中有噪声。

设置一个批量的参数,极端情况是一个小训练集的样本是所有样本,这种情况下,每次需要遍历全部的样本,另一个极端情况是一个样本一个集合(随机梯度下降),如下图,一个下降步长大,另一个随机噪声很大,虽然可以通过小的学习率改善,但是一般很难收敛到最低点,而是在最低点周围波动,同时失去了可以利用向量加速运算的机会

因此参数要取合适值

  • 可以利用向量加速运算
  • 不必每次遍历全部的样本再进行梯度下降

参数的选择

  • 当样本数小于2000时,不需要用
  • 其他情况下可以设置2的幂次,常见的为:64、128、256、512

指数加权(滑动)平均(基本理论):

指数加权平均的函数:

增大,曲线右移,更加平滑。

假设样本有100个,将指数加权平均的函数展开可得下式,所有系数之和等于或接近1。

在算法开始初始值设置为0时,将会导致前几个数字结果不能很好拟合

在算法估算初期用代替

动量(动量梯度下降)

他比标准梯度下降算法更快,算法主要计算梯度的指数加权平均,之后使用这个梯度过更新权重。

梯度下降算法产生的这种上下震荡会减慢梯度下降的速度,并且不能用较大的学习率,否则会超调。因此希望在纵轴上减慢学习速度,在横轴上加快学习速度

上述方法可以让梯度下降的每一步变得平滑,算法对于一些问题有效,但是对于碗型的函数

,由于加速度使速度变快,但是小于1相当于摩檫力,所以球不会无线加速。

RMSprop均方根传递:

我们希望在纵轴方向上学习速度减慢,在横轴方向上保持不变或者加快

适应性矩估计(adam)算法优化:

学习速率衰减:

缓慢的降低学习率,在初始阶段取较大值,步长大,随着学习率下降,步长变小,可以收敛于一点。

局部最优解问题:

如果我们建立一个神经网络,通常梯度为零的点,并不是如左图中的局部最优点,而是右图中的鞍点


原文地址:https://blog.csdn.net/weixin_43899239/article/details/142961891

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!