机器学习中的一个核心问题是设计一个不仅在训练数据上表现良好的,而且在新的输入上泛化好的算法。许多策略被显式地设计来减少测试误差(可能以增大训练误差为代价),这些策略被通常为正则化。常见的正则化策略有:参数范数惩罚、增强数据集、数据添加噪声、提前终止、dropout策略、卷积神经网络中的参数绑定和参数共享,以及bagging等方法。
一、参数范式惩罚
参数范式惩罚通过对目标函数
J
J
J添加一个参数范式惩罚
Ω
(
θ
)
\Omega(\theta)
Ω(θ)来限制模型的学习能力,我们将正则化后的目标函数记为
J
~
\tilde{J}
J~:
J
~
(
θ
;
X
,
y
)
=
J
(
θ
;
X
,
y
)
+
α
Ω
(
θ
)
\tilde{J}(\theta;X,y)=J(\theta;X,y)+\alpha \Omega(\theta)
J~(θ;X,y)=J(θ;X,y)+αΩ(θ)
其中
α
∈
[
0
,
∞
)
\alpha\in[0,\infty)
α∈[0,∞),
α
\alpha
α越大,对应的正则化惩罚越大。选择不同的参数范式
Ω
\Omega
Ω会偏好不同的解。
参数包含权重和偏置,通常我们只对权重做惩罚而不对偏置做惩罚,主要有以下原因:
1. 精确拟合偏置所需的数据通常比拟合权重少得多
2. 每个权重会指定两个变量如何相互作用,我们需要在各种条件下观察两个变量才能良好的拟合权重,而偏置仅空值一个单变量。这意味着我们不对其进行正则化不会导致太大的方差。
3. 对偏置进行正则化可能导致明显的欠拟合。
有时希望对网络的每一层使用单独的惩罚,并分配不同的 α \alpha α系数,寻找合适的多个超参数的代价很大,为了减少搜索空间,我们可以让所有得层使用相同的权重衰减。
1.1 L 2 L^2 L2参数正则化
L
2
L^2
L2也被称为岭回归,它通过向目标函数添加一个正则化项
Ω
(
θ
)
=
1
2
∥
ω
∥
2
2
\Omega(\theta)=\frac{1}{2}\lVert \omega \rVert_2^2
Ω(θ)=21∥ω∥22
使权重更接近原点。更一般的地,我们也可以将参数正则化到接近空间中的任意一特定点,该特定的越接近真实值越好,但我们并不知道真实值,也不知道其正负,因此零可以作为一个有意义的默认值。
L
2
L^2
L2会让能够显著减少目标函数方向上的参数保留相对完好,而在无助于目标函数减小的方向上
(
对
应
H
e
s
s
i
a
n
矩
阵
较
小
特
征
值
)
(对应Hessian矩阵较小特征值)
(对应Hessian矩阵较小特征值)改变参数不会限制增加梯度,这种不重要的方向上对应的分量会在训练过程中因正则化而帅减掉。
1.2 L 1 L^1 L1参数正则化
形式地,对模型参数
ω
\omega
ω的
L
1
L^1
L1正则化定义为:
Ω
(
θ
)
=
∥
ω
∥
1
=
∑
i
∣
ω
i
∣
\Omega(\theta)=\lVert \omega \rVert_1=\sum_i\lvert\omega_i\rvert
Ω(θ)=∥ω∥1=i∑∣ωi∣
即各个参数的绝对值之和。同
L
2
L^2
L2类似,我们也可以将参数正则化到一个其他的非零值,在这个非零值位置的情况下,零依然为有意义的默认值。不同的是,正则化对梯度的影响不再是线性缩放
ω
i
\omega_i
ωi,而是添加了一项与
s
i
g
n
(
ω
i
)
sign(\omega_i)
sign(ωi)同号的常数。这种情况下我们不一定能够得到
J
J
J的近似解
(
L
2
可
以
)
(L^2可以)
(L2可以)。这将导致
L
1
L^1
L1会使不重要的权重推至零,而使得解更加稀疏。正因为这个特性,
L
1
L^1
L1也被常用来做特征选择。
二、数据集扰动方式
通过创建一些假数据的方式添加到训练集中进行训练,主要方法有:
- 对特征中的 x x x进行转换,如平移图像
- 在 x x x加入小的噪声
- 在权重 w w w中加入小噪声
- 在标签 y y y中加入小噪声(标签平滑, y y y是正确的概率为 1 − ϵ 1-\epsilon 1−ϵ)
三、多任务学习
四、提前终止
五、参数共享
六、稀疏表示
惩罚神经网络中的激活单元
七、Bagging
八、Dropout策略
随机的丢弃某些非输出单元,可以理解为一种特殊的bagging,但两者的训练过程是不同的,bagging的每个模型是相互独立的,而dropout下的模型是共享参数的,每个模型继承父神经网络参数的不同子集。
其次,bagging采用投票策略得到预测,称为推断,而dropout采用权重比例推断。