这里介绍两种除去L1、L2以及drop-out的其他正则化方法。
首先第一种是data augmentation,其本质是通过扩大数据集以减少过拟合,有类似正则化的作用,可以作为正则化方法使用。如下图所示:
对于图片,可以通过水平翻转旋转来增大数据集。对于数字,可以通过扭曲和旋转,但其实通常对字符作轻微的变形处理,不像上图中扭曲的那么夸张。
除了data augmentation,第二种正则化方法是early stopping,如下图所示:
我们知道,当我们用训练集去拟合模型时,迭代次数越多,训练时间越长,我们的训练误差会越来越低,这是因为此时的模型已经过拟合了,对训练集学习得过分完美了,即训练误差是随着迭代次数单调递减的。而测试误差就不同了,如上图所示,测试误差会先减少后增加,这是因为刚开始模型学习的还不够,这时模型是由high bias向just right转变,而随着训练,测试误差也在不断减少,但当模型训练到一定程度时,即模型开始由just right向high variance转变时,这时模型已经过拟合了,所以即使训练误差仍在不断减少,但测试误差已经开始回升。
所以在该图中,测试误差的最低点对应的迭代次数就是我们需要的,我们需要模型在这时停下来,不再训练,即早停(early stopping)。
其实在神经网络训练过程中,对应迭代次数,刚开始的系数接近于0,而中间部分系数是中等,等到迭代次数很大时,W会变得很大。所以early stopping表面上看起来是选择了合适的迭代次数,控制了迭代次数,实际更是限制了W的大小。这样来看,early stopping的作用类似于L2,控制权重大小。
在实际解决问题中,我们需要完成两个目标:1.优化J,即减少目标函数J的取值 2.防过拟合
而early stopping试图一次性解决这两个问题,这也是early stopping的缺点。
early stopping相比于L2计算比较简单,只需计算一次梯度下降,找出迭代过程中的small w, mid-size w, 和large w即可,而L2还需要调超参数lambda的值,计算比较麻烦。但是只要负担得起计算代价,倾向于推荐使用L2。
版权声明:尊重博主原创文章,转载请注明出处https://blog.csdn.net/kkkkkiko/article/details/81175029