正则化介绍
“正则化”可以通俗理解为“规则化”,即添加一些规则,对模型参数加以限制,以降低模型过拟合的风险。模型过拟合的一个显著原因是由于参数过多导致的,以一个线性回归模型为例:
其中,
由于w参数过多,使得模型复杂度高,则容易出现过拟合的现象。而w参数都是学习来的,因此正则化的思想是在损失函数中加入正则化项,对w参数加以限制,控制w参数的数量(即上例中n的数量)。即若使得wi为0的个数较多,则有效减少了模型参数数量和复杂度。
加入正则化项前的损失函数被称为经验风险,加入正则化项后的损失函数被称为结构风险。
如何使得wi为0呢?这很容易想到L0-范数。因此,可以定义上面公式中的
r
(
d
)
=
∣
W
0
∣
r(d)=|W_0|
r(d)=∣W0∣。
而由于最小化L0-范数是NP-Hard的问题,因而经过研究,在一定条件下,L0-范数的最小化可以等价转换为最小化L1-范数。
总结一下:1范数和0范数可以实现稀疏,1范数因比0范数有更好的优化求解特征而被广泛使用。
L2范数是对向量各元素平方和求平方根,让2范数的正则项
∣
∣
W
∣
∣
2
||W||_2
∣∣W∣∣2最小,可以使得W中每个元素都很小,接近于0,但不同于L1范数,2范数汇总只会让每个元素接近于0而不等于0,因而比起1范数而言,大家更爱2范数。
一般2范数的正则化项定义如下:
其中λ被称为“正则化系数”,其越大,则限制越强。
常用的正则化方法
常用的正则化方法有几类,分别是参数范数惩罚、数据增强与噪声鲁棒性、提前终止、参数绑定与参数共享、Bagging和集成学习方法、Dropout、批量归一化等。
参数范数惩罚
参数范数惩罚是在损失函数中加入一个参数范数惩罚,限制模型(如线性回归、逻辑回归、神经网络等)的学习能力,其形式如下:
通常只对权重而不对偏置做惩罚。因为权重表示的是各变量间相互作用关系,而偏置不涉及此,因此不将偏置纳入正则化也不会导致太大的方差,而若将偏置引入正则,可能导致严重的欠拟合。
常见的L1、L2正则均属于参数范数惩罚。
数据增强与噪声鲁棒性
过拟合的原因一定程度上是由于训练数据过少导致的。而使用生成的假数据集来扩展数据集的容量可以增加数据量,而对于图像而言,可以通过平移、旋转、缩放、加噪声等方式扩充数据集。
提前终止
随着在训练集上迭代次数的增加,模型在验证集上的效果在达到最优后又会逐渐变差。当验证集上的误差在事先指定的循环次数内没有进一步改善时就停止算法,这就叫“提前终止”。
参数绑定与参数共享
略
Bagging和集成方法
Bagging(bootstrap aggregating)是通过结合几个模型降低泛化误差的技术。其训练几个不同的模型,然后让所有模型表决测试样例的输出,这种策略被称为“模型平均”。采用这种策略的技术叫“集成方法”。
Dropout
在模型训练中,以一定概率移除输入数据(让其节点值为0),其可以减少特征检测器(隐层节点)之间的相互作用(相互作用是指某些检测器依赖其他检测器才能发挥作用)。
Dropout可以比较有效缓解过拟合的发生,在一定程度上起到正则化的效果。
批量归一化
略。
参考资料
- https://www.zhihu.com/question/20924039/answer/240037674
- https://www.zhihu.com/question/20924039/answer/131421690
- https://blog.csdn.net/ruggier/article/details/88575574