深度学习优化算法

指数加权平均:

通常,我们输入的数据存在不少的噪声,这些噪声会干扰我们的网络训练,导致训练速度不够,欠佳。所以,我们可以将数据进行平滑处理,得到更加平滑的数据变化曲线,在训练推进的过程中能够降低噪声的干扰,提高训练的速度。

深度学习优化算法_第1张图片

(一个例子)

指数加权平均的操作是如此:先让数据从零开始,即使第一个数据不是0,我们也可以插入一个0数据作为第一个数据:V0 = 0。接着,V1 = β*V0 + (1 - β)*V1。这个操作将第二个数据V1进行平滑处理,第二个数据并非直接使用V1,而是以(1 - β)作为权重,与前一个以β作为权重的数据V0相加,作为第二个数据V1。以此类推,V2 = β*V1 + (1 - β)*V2,V3 = β*V2 + (1 - β)*V3。即Vt = β * Vt-1 + (1 - β) * Vt,值得一提的是,每个数据使用的β是相同的,这是一个超参数。

实际上,每一个数据,都是前1 / (1 - β)个数据的平均值。比如,取β为0.9,那么每一个数据其实综合考虑了前10个数据。

为了直观理解指数加权平均,你可以将V0的式子代入V1,V1的式子代入V2,V2的式子代入V3。于是V3 = β *(β * (β * V0 + (1 - β)*V1)+ (1 - β)* V2)+(1 - β)* V3 == (1 - β)* V3 + (1 - β)* β * V2 + (1 - β)* β * β * V1 + (1 - β)* β * β * β * V0(通常V0是0)。这就是为什么要叫指数加权平均的原因。越往前的数据影响越小,这也符合常识,离得最近的数据占比最大。

Momentum动量梯度下降法:

动量梯度下降法实际上是在梯度下降法的操作基础上,对导数增加指数加权平均的操作而已,然而这样简单的操作反而减轻了噪声的干扰,减少了训练所需的时间,加快训练。

回顾一下梯度下降法,梯度下降是对成本函数的一个优化的过程,这个过程中,成本会不断地被优化到最小值点。在此过程中,并非每次训练迭代,成本都是向下减小的,有时候为了寻找到更好的权重参数,它可能会上升,这就是梯度下降的噪声干扰。

我们前面提到,指数加权平均可以减轻数据带来的噪声干扰。所以,将指数加权平均与梯度下降法结合,就得到了momentum动量梯度下降法。

深度学习优化算法_第2张图片

所做的操作也很简单,如下面的公式。每一次计算完权重W的导数dw后,根据设定的β,更新Vdw。db亦然。然后,用这个经过平滑处理的Vdw与Vdb,更新为新的权重W和新的偏置b,而非直接利用所计算的导数dw与db更新权重W与偏置b。

深度学习优化算法_第3张图片

通常,β取0.9是经验之谈。

RMSprop:

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