L2 正则化是否应该针对规模进行校正?

机器算法验证 深度学习 正则化
2022-03-19 16:13:43

我正在使用交叉熵损失和 L2 正则化训练一个深度神经网络,所以最终的成本函数看起来像这样:

E=1Nsamplesi=1Nsamplescross_entropy(xi,yi)+λj=1Nlayersk=1Nunitsjl=1Nunitsj+1(wk,lj)2
其中第一项是类的交叉熵(在训练集大小上取平均值),第二项是网络中涉及的权重平方和(wk,lj是来自的重量k-第一个单元j-th 层l-第一个单元(j+1)-th 层),和λ是正则化强度参数。

我的问题是:层数和单元数不会影响正则化项的规模吗?因此,通过权重的数量对第二项进行归一化不是更有意义吗(即,替换λNlayersNunitsjNunitsj+1为了λ)。

不幸的是,我没有找到任何关于此的参考。我刚刚在 Bengio 的论文 [1](重量衰减小节)中发现,他们建议根据每个 epoch 中的 mini-batch 数量进行缩放(我真的不明白其中的原因)。

[1] 基于梯度的深度架构训练实用建议

1个回答

回想一下这个术语的实际来源:我们希望在每次迭代中为每个权重拥有的权重衰减量

del(E)/del(w(j,k,l))= del(左交叉熵误差) + λ*(w(j,k,l)

假设 λ 为 0.001,本质上这意味着如果 Error 不受此特定权重的影响,则将其衰减 0.1%。单元和层的数量不会影响我们想要的特定权重的衰减。

在他的论文中,我认为他并没有像您那样对 n 个样本的损失进行归一化: 在此处输入图像描述

而是在梯度中添加一个 1/nsamples 项,其中 nsamples 是小批量大小。因此,他的 λ[his]= λ[yours]*nsamples 非常有效。正如你正确所说的 λ[yours] 不依赖于 mini batch size,但 λ[his] 取决于,所以他假设 λ 是他将用于全批梯度下降的正则化参数,并通过 (nsamples/training set大小)如果使用小批量进行。