深度学习中的网络设计技术(二)——正则化技术

一、过拟合、欠拟合

1. 什么是过拟合?什么是欠拟合?

  1. 过拟合其实就是在训练样本内能够很好的拟合数据,而在训练样本外(没有参与训练的样本)拟合效果很差,这样的现象就是过拟合。如果你在训练网络的过程中发现,模型准确率很高,但是在测试的时候发现准确率很低,那么有可能就是发生了过拟合现象。也就是数过拟合没有好的泛化能力。
  2. 泛化:指一个模型应用到新样本的能力,新样本就是指没有参与训练的样本数据。
  3. 欠拟合:无论在训练样本还是训练样本外,都不能很好的拟合数据的现象。

2. 过拟合形成的原因。

过拟合的发生是有过多的特征变量,但是有非常小的训练数据,就会发生过拟合。过拟合发生后一般有两种解决方法:

  1. 尽量减少特征变量的数量。

在众多的特征变量中,有的特征对模型的预测没有大的影响,但有的特征又比较重要,此时就要考虑哪些特征值得保留,哪些特征应该放弃,这就需要模型的一些选择算法来判断哪些需要保留,哪些需要放弃。

  1. 正则化技术的使用

主要的正则化技术有:L1正则化、、L2正则化、dropout正则化、其他正则化方法。
下面介绍减少过拟合的一些正则化方法。

二、正则化

  1. 正则化思想

假设函数: y = a0 + a1 * x + a2 * x^2 +a3 * x ^3 + a4* x^4
其中: a0, a1, a2, a3, a4 是参数(可以理解为权重), x 表示输入的特征。
假设后两项对模型的影响并不是很大,如果直接丢弃在这两个特征并不是一种很好的选择,因为对模型的影响不大并不代表对模型没有影响,这时候我们不希望直接删除这两个特征的,而是加入惩罚项使得参数a3, a4足够小。

上面的例子其实就是正则化背后的思想,加入正则化(惩罚项)后,相当于尽量去简化这个模型,这些参数越小,得到的函数就会越平滑,也就越简单。所以使得参数尽量的小,就能使得模型更简单的直观原因。
目的:限制参数过多或者过大,避免模型更加复杂

  1. 为什么加入惩罚项后,能防止过拟合?

过拟合产生原因就是因为参数过多。如果极端的假设,加入惩罚项后能构使得参数足够小,那么也就是数参数无限趋于0,这样是不是就相当于减少了参数量。按照这种极端的假设是不是可以防止过拟合。总之参数尽量的小,就能使得模型简单。下面看下为什么加入惩罚项后,参数会变小?
代价函数 在这里插入图片描述
反向传播过程中更新参数: 在这里插入图片描述
由公式2可以看出更新参数时加了一项 λ / m 这项的加入减小了参数,所以更新后的参数(权重)比原来未加入惩罚项后的参数(权重)更小。这样也就使得模型变的简单,从而一定程度上防止了过拟合。

注意:公式中λ参数的作用是用来控制缩小每个参数(权重)的。那么正则化的时候选择一个合适的正则化因子lamda则显得十分重要。

  1. L1 正则化
    在这里插入图片描述
  2. L2 正则化
    在这里插入图片描述

三、Dropout正则化

  1. Dropout 正则化的简单理论在我的博客《深度学习中的网络设计技术(一) ——理论概述》中有简介。
  2. 如何实施dropout?
    使用反向随机失活(inverted dropout), 参数:keep-prob:它表示保留某个神经元结点的概论。
  3. 测试阶段:测试阶段应用dropout函数会使得预测受到干扰,所以测试阶段不用dropout,但是要加入nn.eval()函数来参数。
  4. 每次迭代后,神经网络都会变得比以前更小,因此采用一个较小神经网络和使用正则化的效果一样。另外,从单个神经元入手,它的输出不依赖单纯的某个输入,所以不会给任何一个输入加上太多的权重。
  5. dropout会产生压缩权重的效果,它类似于L2正则化,与L2正则化不同的是被应用的方式不同,dropout也会有所不同。
  6. 如何使用dropout? 可以在一些认为会发生过拟合的层中间加入,有的层不用加入dropout. 另一种方法是,根据层数大小的变化加入dropout,层数比较深的时候可以使得keep-prob变的小一点,也就是删除结点的概率大点,如果层数比较浅,则将keep-prob设置大一点。
  7. dropout 的一大缺点是,代价函数不再被明确定义,每次迭代都会随即移除一些结点。某种程度上很难计算,所以失去了调节工具。

其他正则化方法:

  1. 通过扩增训练数据集解决过拟合,但是数据集的收集成本比较高,一般可以通过水平翻转,变换,裁切,放大等手段来扩充数据集。所以扩充数据集也可以作为正则化方法使用。
  2. 另一种方法是early stopping. 就是提前停止训练神经网络。当验证集上的损失曲线和训练集上的损失曲线距离发生偏离时可以提前停止。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章