深度学习(九) 常用的小方法

68 阅读2分钟

课程链接

RMSProp

在这里插入图片描述
之前介绍了Adagrad方法,就是根据当前梯度来决定学习率的大小。
当函数模型比较复杂扭曲时,仅根据当前梯度是不够的,可能还要参考之前的梯度大小。

RMSProp就是这样一种方法,它的公式如下
在这里插入图片描述
公式中的α是自己设定的参数。


局部极小点的问题

在这里插入图片描述
在梯度下降的过程中可能会最终停在鞍点或局部极小点的问题。

实际上,在复杂模型中出现局部极小点的概率是比较低的,因为局部极小点要求在每一维上都是局部极小。

动量法也可以解决这一问题。

momentum

动量法就是在当前梯度方向上加上上一次的下降方向。
在这里插入图片描述
就像小球的滚动具有惯性一样,梯度下降不会停留在鞍点或局部极小点,而是会继续前进,在λ参数设置合适的情况下,更容易下降到全局极小点。
在这里插入图片描述
将上述两种方法结合起来,就是Adam。
在这里插入图片描述


early stopping

训练数据损失函数的极小点与测试数据可能会有不同,这也是测试数据准确率低的原因之一。所以我们可以选择根据验证数据的极小点来确定下降停止的位置。

在这里插入图片描述


regularization

正则化的常用方法主要有两种,正则项分别为1范数和二范数。
在这里插入图片描述
在这里插入图片描述通过公式推导,可以看出两种正则化都是减小权重,不过1范数的正则化是减小一个常数,2范数的正则化是减小一定比例。


dropout

dropout的做法,是在每次训练时随机丢弃p%的节点,如下图所示。在测试时则使用完整的网络。
在这里插入图片描述

在这样做以后所以训练出来的weight都要乘以(1-p)%。
在这里插入图片描述
这样做的直观解释,就是负重训练,训练时负重测试时脱去负重准确率就大大提升。
在这里插入图片描述
另外一种解释是,这样做相当于训练了多个不同结构的网络,最后对他们取平均,这样一来可以有效降低bias。
在这里插入图片描述