吴恩达深度学习<笔记>优化算法

吴恩达深度学习优化算法

  • 一、1. Mini-batch gradient descent
  • 二、Gradient descent with momentum
  • RMSprop
  • Adam 优化算法
  • 学习率衰减


一、1. Mini-batch gradient descent

对整个训练集进行梯度下降法的时候,我们必须处理整个训练数据集,然后才能进行一步梯度下降,即每一步梯度下降法需要对整个训练集进行一次处理,如果训练数据集很大的时候,如有500万或5000万的训练数据,处理速度就会比较慢。

但是如果每次处理训练数据的一部分,利用这一部分数据进行梯度下降,则我们的算法速度会执行的更快。而处理的这些一小部分训练子集即称为Mini-batch。
Batch gradient descent和Mini-batch gradient descent的cost曲线如下图所示:
吴恩达深度学习<笔记>优化算法_第1张图片
对于普通的梯度下降法,一个epoch只能进行一次梯度下降;而对于Mini-batch梯度下降法,一个epoch可以进行Mini-batch的个数次梯度下降。

梯度下降的过程:

for t=1,⋯,T
Forward Propagation Forward Propagation
ComputeCostFunction ComputeCostFunction
BackwardPropagation BackwardPropagation
W:=W−α⋅dW W:=W−α⋅dW
b:=b−α⋅db b:=b−α⋅db
}

T表示共有T个mini-batch

正如上图所示,在下降的过程中会出现细微震荡,是因为不同的mini-batch之间是有差异的,一些mini-batch并不是同分布的

二、Gradient descent with momentum

在讲动量梯度下降之前,首先需要了解指数加权平均。

指数加权平均

先上公式
v t = β ∗ v t − 1 + ( 1 − β ) ∗ θ t v_t = \beta*v_{t-1}+(1-\beta)*\theta_t vt=βvt1+(1β)θt

用加权平均来计算局部文具的平均值,看一张吴恩达上课的图片
吴恩达深度学习<笔记>优化算法_第2张图片
最后可以得到:
吴恩达深度学习<笔记>优化算法_第3张图片

第100天的温度可以由之前的温度数据和当天的温度( θ \theta θ)决定,之前各天的温度的加权呈指数式递减,越近期的加权越重,较远的数据也会给予一定的加权

这便是指数加权平均,现在来看看为什么当 β \beta β等于0.9时,平均了10天的温度。
吴恩达深度学习<笔记>优化算法_第4张图片
这样我们只需要保存前一个加权平均就能计算下一个的温度,而不需要保存之前的温度数据,节省大量的空间。

讲完了指数加权平均,下面来讲动量梯度下降算法。
直接上图:
吴恩达深度学习<笔记>优化算法_第5张图片当前的实际的梯度由两个方面决定,一个是之前的平均梯度,一个是当前的梯度。

动量梯度下降算法过程:
吴恩达深度学习<笔记>优化算法_第6张图片
动量梯度下降算法效果还是比较显著的:
吴恩达深度学习<笔记>优化算法_第7张图片
原始的梯度下降算法如上图蓝色折线所示。在梯度下降过程中,梯度下降的振荡较大,尤其对于W、b之间数值范围差别较大的情况。此时每一点处的梯度只与当前方向有关,产生类似折线的效果,前进缓慢。而如果对梯度进行指数加权平均,这样使当前梯度不仅与当前方向有关,还与之前的方向有关,这样处理让梯度前进方向更加平滑,减少振荡,能够更快地到达最小值处。

RMSprop

除了上面所说的Momentum梯度下降法,RMSprop(root mean square prop)也是一种可以加快梯度下降的算法。
计算表达式:
吴恩达深度学习<笔记>优化算法_第8张图片下面简单解释一下RMSprop算法的原理,仍然以下图为例,为了便于分析,令水平方向为W的方向,垂直方向为b的方向。
吴恩达深度学习<笔记>优化算法_第9张图片
从图中可以看出,梯度下降(蓝色折线)在垂直方向(b)上振荡较大,在水平方向(W)上振荡较小,表示在b方向上梯度较大,即 d b d_b db较大,而在W方向上梯度较小,即 d W d_W dW较小。因此,上述表达式中 S b S_b Sb较大,而 S W S_W SW较小。在更新W和b的表达式中,变化值 d W S W \frac{d_W}{\sqrt{S_W}} SW dW较大,而 d b S b \frac{d_b}{\sqrt{S_b}} Sb db较小。也就使得W变化得多一些,b变化得少一些。即加快了W方向的速度,减小了b方向的速度,减小振荡,实现快速梯度下降算法
为了避免RMSprop算法中分母为零,通常可以在分母增加一个极小的常数ε:
吴恩达深度学习<笔记>优化算法_第10张图片

Adam 优化算法

Adam (Adaptive Moment Estimation)优化算法的基本思想就是将 Momentum 和 RMSprop 结合起来形成的一种适用于不同深度学习结构的优化算法。
计算过程:
吴恩达深度学习<笔记>优化算法_第11张图片

学习率衰减

但是如果我们使用学习率衰减,逐渐减小学习速率 ,在算法开始的时候,学习速率还是相对较快,能够相对快速的向最小值点的方向下降。但随着 α \alpha α的减小,下降的步伐也会逐渐变小,最终会在最小值附近的一块更小的区域里波动,如图中绿色线所示。
吴恩达深度学习<笔记>优化算法_第12张图片
α \alpha α衰减常用公式:

  • 常用 α = 1 1 + d e c a y ∗ e p o c h α 0 \alpha = \frac{1}{1+decay*epoch}\alpha_0 α=1+decayepoch1α0
    decay参数可调,epoch训练次数(若是mini_batch,训练完整个样本是一个epoch)
  • 指数衰减 α = 0.9 5 e p o c h α 0 \alpha = 0.95^{epoch}\alpha_0 α=0.95epochα0

你可能感兴趣的:(深度学习,python,人工智能)