深入理解深度学习——正则化(Regularization):作为约束的范数惩罚

分类目录:《深入理解深度学习》总目录


考虑经过参数范数正则化的代价函数:
J ~ ( θ ; X , y ) = J ( θ ; X , y ) + α Ω ( θ ) \tilde{J}(\theta;X, y) = J(\theta;X, y) + \alpha\Omega(\theta) J~(θ;X,y)=J(θ;X,y)+αΩ(θ)

回顾《拉格朗日乘子法(二):不等式约束与KKT条件》我们可以构造一个广义Lagrange函数来最小化带约束的函数,即在原始目标函数上添加一系列惩罚项。每个惩罚是一个被称为Karush–Kuhn–Tucker乘子的系数以及一个表示约束是否满足的函数之间的乘积。如果我们想约束 Ω ( θ ) \Omega(\theta) Ω(θ)小于某个常数 k k k,我们可以构建广义 Lagrange 函
数:
L ( θ , α ; X , y ) = J ( θ ; X , y ) + α ( Ω ( θ ) − k ) L(\theta, \alpha;X, y) = J(\theta;X, y) + \alpha(\Omega(\theta) - k) L(θ,α;X,y)=J(θ;X,y)+α(Ω(θ)k)

这个约束问题的解由下式给出:
θ ∗ = arg ⁡ min ⁡ θ max ⁡ α L ( θ , α ; X , y ) ( α > 0 ) \theta^* = \arg\min_\theta\max_\alpha L(\theta, \alpha; X, y)\quad(\alpha>0) θ=argθminαmaxL(θ,α;X,y)(α>0)

解决这个问题我们需要对 θ \theta θ α \alpha α都做出调整。有许多不同的优化方法,有些可能会使用梯度下降而其他可能会使用梯度为0的解析解,但在所有过程中 α \alpha α Ω ( θ ) > k \Omega(\theta)>k Ω(θ)>k时必须增加,在 Ω ( θ ) < k \Omega(\theta)<k Ω(θ)<k时必须减小。所有正值的 α \alpha α都鼓励 Ω ( θ ) \Omega(\theta) Ω(θ)收缩。最优值 α ∗ \alpha^* α也将鼓励 Ω ( θ ) \Omega(\theta) Ω(θ)收缩,但不会强到使得 Ω ( θ ) \Omega(\theta) Ω(θ)小于 k k k。为了洞察约束的影响,我们可以固定 α ∗ \alpha^* α,把这个问题看成只跟 θ \theta θ有关的函数:
θ ∗ = arg ⁡ min ⁡ θ L ( θ , α ∗ ) = arg ⁡ min ⁡ θ L ( θ ; X , y ) + α ∗ Ω ( θ ) \theta^* = \arg\min_\theta L(\theta, \alpha^*)= \arg\min_\theta L(\theta; X, y)+ \alpha^*\Omega(\theta) θ=argθminL(θ,α)=argθminL(θ;X,y)+αΩ(θ)

这和最小化 J ~ \tilde{J} J~的正则化训练问题是完全一样的。因此,我们可以把参数范数惩罚看
作对权重强加的约束。如果 Ω \Omega Ω L 2 L^2 L2范数,那么权重就是被约束在一个 L 2 L^2 L2球中。如果 Ω \Omega Ω L 1 L^1 L1范数,那么权重就是被约束在一个 L 1 L^1 L1范数限制的区域中。通常我们不知道权重衰减系数 α ∗ \alpha^* α约束的区域大小,因为 α ∗ \alpha^* α 的值不直接告诉我们 k k k的值。原则上我们可以解得 k k k,但 k k k α ∗ \alpha^* α之间的关系取决于 J J J的形式。虽然我们不知道约束区域的确切大小,但我们可以通过增加或者减小 α \alpha α来大致扩大或收缩约束区域。较大的 α,将得到一个较小的约束区域。较小的 α \alpha α,将得到一个较大的约束区域。有时候,我们希望使用显式的限制,而不是惩罚。我们可以修改随机梯度下降算法,使其先计 J ( θ ) J(θ) J(θ)的下降步,然后将 θ \theta θ投影到满足 Ω ( θ ) < k \Omega(\theta)<k Ω(θ)<k的最近点。如果我们知道什么样的 k k k是合适的,而不想花时间寻找对应于此 k k k处的 α \alpha α值,这会非常有用。另一个使用显式约束和重投影而不是使用惩罚强加约束的原因是惩罚可能会导致目标函数非凸而使算法陷入局部极小 (对应于小的 θ \theta θ)。当训练神经网络时,这通常表现为训练带有几个 ‘‘死亡单元’’ 的神经网络。这些单元不会对网络学到的函数有太大影响,因为进入或离开它们的权重都非常小。当使用权重范数的惩罚训练时,即使可以通过增加权重以显著减少 J J J,这些配置也可能是局部最优的。因为重投影实现的显式约束不鼓励权重接近原点,所以在这些情况下效果更好。通过重投影实现的显式约束只在权重变大并试图离开限制区域时产生作用。最后,因为重投影的显式约束还对优化过程增加了一定的稳定性,所以这是另一个好处。当使用较高的学习率时,很可能进入正反馈,即大的权重诱导大梯度,然后使得权重获得较大更新。如果这些更新持续增加权重的大小, θ \theta θ就会迅速增大,直到离原点很远而发生溢出。重投影的显式约束可以防止这种反馈环引起权重无限制地持续增加。Hinton建议结合使用约束和高学习速率,这样能更快地探索参数空间,并保持一定的稳定性。Hinton尤其推荐由Srebro and Shraibman (2005) 引入的策略:约束神经网络层的权重矩阵每列的范数,而不是限制整个权重矩阵的Frobenius范数。分别限制每一列的范数可以防止某一隐藏单元有非常大的权重。如果我们将此约束转换成Lagrange函数中的一个惩罚,这将与 L 2 L^2 L2权重衰减类似但每个隐藏单元的权重都具有单独的 KKT 乘子。每个KKT乘子分别会被动态更新,以使每个隐藏单元服从约束。在实践中,列范数的限制总是通过重投影的显式约束来实现。

参考文献:
[1] Lecun Y, Bengio Y, Hinton G. Deep learning[J]. Nature, 2015
[2] Aston Zhang, Zack C. Lipton, Mu Li, Alex J. Smola. Dive Into Deep Learning[J]. arXiv preprint arXiv:2106.11342, 2021.

猜你喜欢

转载自blog.csdn.net/hy592070616/article/details/130628435