【花书阅读笔记】第七章:深度学习中的正则化 Part I
参数范数惩罚
许多正则方法是对目标函数J添加了一个惩罚范数Ω(θ)
J~(θ;X,y)=J(θ;X,y)+αΩ(θ)
其中 α∈[0,∞) 是权衡范数惩罚项 Ω 和标准目标函数 J(X;θ) 相对贡献的超参数。 将 \alpha 设为 0 表示没有正则化。 α 越大,对应正则化惩罚越大。
在探究不同范数的正则化表现之前,我们需要说明一下,在神经网络中,参数包括每一层仿射变换的权重和偏置,我们通常只对权重做惩罚而不对偏置做正则惩罚。
L2 参数正则化
**权重衰减(weight decay)**的 L 2 参数范数惩罚:
通过向目标函数添加一个正则项Ω(θ)=21∥w∥22,使权重更加接近原点。
这样一个模型具有以下总的目标函数:
J~(w;X,y)=2αw⊤w+J(w;X,y)
与之对应的梯度为
∇wJ~(w;X,y)=αw+∇wJ(w;X,y)
使用单步梯度下降更新权重,即执行以下更新:
w←w−ϵ(αw+∇wJ(w;X,y))
每步执行通常的梯度更新之前先收缩权重向量(将权重向量乘以一个常数因子)
另 w∗=argminwJ(w)
则假设目标函数是二次的,比如以均方误差作为拟合的线性回归情况,近似的 J^(θ)
J^(θ)=J(w∗)+21(w−w∗)⊤H(w−w∗)
其中 H 是 J 在 w∗ 处计算的 Hessian 矩阵 (关于 w)。 因为 w∗ 是 J 的一个最优点,我们可以得出 H 是半正定的结论。
J^在取最小值附近的梯度是
∇wJ^(w)=H(w−w∗)
为了研究惩罚项的影响, 我们在(6)中添加权重衰减的梯度,我们使用变量 ω~表示此时的最优点:
αw~+H(w~−w∗)=0(H+αI)w~=Hw∗w~=(H+αI)−1Hw∗
当 \alpha 趋向于 0 时,正则化的解 w~ 会趋向 w∗ 。
因为H对称,所以可以分解,于是有H=QΛQ⊤,可得:
w~=(QΛQ⊤+αI)−1QΛQ⊤w∗=[Q(Λ+αI)Q⊤]−1QΛQ⊤w∗=Q(Λ+αI)−1ΛQ⊤w∗
由此我们可以看到,H的特征值被缩放到原来的λi+αλi倍。
所以沿着 H 特征值较大的方向 (如 λi≫α) 正则化的影响较小。而 λi≪α 的分量将 会收缩到几乎为零。这种效应如图所示。
**只有在显著减小目标函数方向上的参数会保留得相对完好。**在无助于目标函数减小的方向(对应 Hessian 矩阵较小的特征值)上改变参数不会显著增加梯度。这种不重要方向对应的分量会在训练过程中因正则化而衰减掉。
线性回归的例子
添加了L2正则之后,线性回归的代价函数变为了
(Xw−y)⊤(Xw−y)+21αw⊤w
于是方程的解变为:
w=(X⊤X+αI)−1X⊤y
L 2 正则化能让学习算法 ‘‘感知’’ 到具有较高方差的输入 x,因与输出目标的协方差较小(相对增加方差)的特征的权重将会收缩。
L1 参数正则化
对模型参数 w 的 L 1 正则化被定义为:
Ω(θ)=∥w∥1=i∑∣wi∣
于是我们得到的目标函数为:
J~(w;X,y)=α∥w∥1+J(w;X,y)
对应梯度为:
∇wJ~(w;X,y)=αsign(w)+∇wJ(w;X,y)
其中sign(ω)是取ω各个元素正负号。
考虑简单的具有二次代价函数的线性模型,梯度为:
∇wJ^(w)=H(w−w∗)
我们可以将 L 1 正则化目标函数的二次近似分解成关于参数的求和:
J^(w;X,y)=J(w∗;X,y)+i∑[21Hi,i(wi−wi∗)2+α∣wi∣]
我们将进一步简化假设Hessian是对角的,即H=diag([H1,1,…,Hn,n]),其中每个Hi,i>0.
如下列形式的解析解(对每一维 i)可以最小化这个近似代价函数:
wi=sign(wi∗)max{∣wi∗∣−Hi,iα,0}
对每个 i, 考虑 wi∗>0 的情形 , 会有两种可能结果 :
-
wi∗≤Hi,iα 的情况。正则化后目标中的 wi 最优值是 wi=0∘ 这是因为在方向 i 上 J(w;X,y) 对 J^(w;X,y) 的贡献被抵消, L1 正则化项将 wi 推至 0
-
wi∗>Hi,iα 的情况。在这种情况下,正则化不会将 wi 的最优值推至 0, 而仅仅 在那个方向上移动 Hi,iα 的距顏。
wi∗<0 的情况与之类似,但是 L1 惩计项使 wi 更接近 0( 增加 Hi,iα) 或者为 0∘
相比L2, L1 产生的正则化更为稀疏(sparse), 次数稀疏表示L1有更多参数为0.
数据集增强
让机器学习模型泛化得更好的最好办法是使用更多的数据进行训练。当然,在实践中,我们拥有的数据量是很有限的。解决这个问题的一种方法是创建假数据并添加到训练集中。
对象识别
图像是高维的并包括各种巨大的变化因素,其中有许多可以轻易地模拟。即使模型已使用卷积和池化技术(第九章)对部分平移保持不变,沿训练图像每个方向平移几个像素的操作通常可以大大改善泛化。许多其他操作如旋转图像或缩放图像也已被证明非常有效。但必须小心的是如同6,9,对象的变化会导致类别变化。
多任务学习
多任务学习 (Caruana, 1993) 是通过合并几个任务中的样例(可以视为对参数施加的软约束)来提高泛化的一种方式。
以大大改善泛化。许多其他操作如旋转图像或缩放图像也已被证明非常有效。但必须小心的是如同6,9,对象的变化会导致类别变化。
多任务学习
多任务学习 (Caruana, 1993) 是通过合并几个任务中的样例(可以视为对参数施加的软约束)来提高泛化的一种方式。