【问题标题】:Why is l2 regularization always an addition?为什么 l2 正则化总是一个加法?
【发布时间】:2018-07-09 09:12:51
【问题描述】:
我正在阅读有关神经网络权重的 l2 正则化的信息。到目前为止,我的理解是,权重越大,权重就会被推向零,即权重越大,惩罚越重,而权重越小,惩罚越轻。
公式通常是:
new_weight = weight * update + lambda * sum(squared(weights))
我的问题:为什么这总是积极的?如果权重已经为正,则 l2 将永远不会减少它,但会使事情变得更糟,并将权重推离零。到目前为止我看到的几乎所有公式都是这种情况,为什么会这样?
【问题讨论】:
标签:
neural-network
backpropagation
weighted-average
【解决方案1】:
您提出的公式对于什么是“更新”非常模糊。
首先,什么是正则化?一般来说,L2正则化的公式是:
(n 是训练集大小,lambda 缩放 L2 项的影响)
您在原始成本函数 中添加了一个额外项,该项也将部分导出以更新权重。直观地说,这会惩罚大权重,因此算法试图在小权重和所选成本函数之间找到最佳折衷。较小的权重与寻找更简单的模型相关,因为当给定一些随机的离群值时,网络的行为不会发生太大变化。这意味着它会过滤掉数据中的噪音,然后学习最简单的解决方案。换句话说,它减少了过拟合。
针对您的问题,让我们推导出更新规则。对于图中的任何权重,我们得到
因此,权重的更新公式可以写成(eta是学习率)
仅考虑第一项,无论发生什么,权重似乎都趋于零。但如果偏导数为负,则第二项可以增加权重。总而言之,权重可以是正数或负数,因为您无法从该表达式中得出约束。这同样适用于衍生品。考虑用负斜率拟合一条线:权重必须为负。要回答您的问题,正则化成本的导数和权重都不必一直为正。
如果您需要更多说明,请发表评论。