什么是体重衰减损失?
What is weight decay loss?
我最近开始使用 ML 和 TensorFlow。在浏览网站上的 CIFAR10-tutorial 时,我遇到了一段让我有点困惑的段落:
The usual method for training a network to perform N-way classification is multinomial logistic regression, aka. softmax regression. Softmax regression applies a softmax nonlinearity to the output of the network and calculates the cross-entropy between the normalized predictions and a 1-hot encoding of the label. For regularization, we also apply the usual weight decay losses to all learned variables. The objective function for the model is the sum of the cross entropy loss and all these weight decay terms, as returned by the loss() function.
我在论坛上看了几个关于什么是权重衰减的答案,我可以说它是用于正则化的目的,以便可以计算权重值以获得最小的损失和更高的准确性。
现在在上面的文字中,我了解到 loss()
是由交叉熵损失(这是预测和正确标签值的差异)和权重衰减损失组成的。
我很清楚交叉熵损失,但这个重量衰减损失是什么,为什么不只是重量衰减?这个损失是怎么计算的?
权重衰减损失,因为它增加了成本函数(具体来说是损失)。从损失中优化参数。使用权重衰减,您希望效果通过损失函数对整个网络可见。
TF L2 loss
Cost = Model_Loss(W) + decay_factor*L2_loss(W)
# In tensorflow it bascially computes half L2 norm
L2_loss = sum(W ** 2) / 2
Weight decay
只不过是权重的L2 regularisation
,可以使用tf.nn.l2_loss
.
来实现
带正则化的损失函数由下式给出:
上述等式的第二项定义了权重 (theta) 的 L2-regularization
。一般加入是为了避免过拟合。这会惩罚峰值权重并确保所有输入都被考虑在内。 (很少有峰值权重意味着只有那些与之相关的输入才会被考虑用于决策。)
梯度下降参数更新时,上述L2正则化最终意味着每个权重线性衰减:W_new = (1 - lambda)* W_old + alpha*delta_J/delta_w
。这就是为什么它通常被称为 Weight decay
.
"weight decay loss" 你的教程想说的是,与你从非正则化模型中了解到的交叉熵成本相比(即你的模型对训练数据的预测偏离目标有多远),你的新成本函数不仅会惩罚预测误差,还会惩罚网络中权重的大小。之前您只针对训练集中标签的正确预测进行优化,而现在您正在针对正确的标签预测进行优化并具有较小的权重。进行此修改的原因是,当通过梯度下降训练的机器学习模型产生较大的权重时,它们很可能是根据训练数据中的特性(或噪声)得出的。当暴露于保留的测试数据时,模型将不会表现得很好,因为它对训练集 overfit。应用权重衰减损失(通常称为 L2 正则化 )的结果是,训练数据的准确性会下降一点,但测试数据的准确性会急剧上升。这就是您最终想要的:一个模型可以很好地概括它在训练期间没有看到的数据。
为了更好地理解权重衰减的机制,让我们看一下 L2 正则化网络中权重的学习规则:
其中 eta
和 lambda
分别是用户定义的 学习率 和 正则化参数 ,并且 n
是训练样本的数量(如果你不熟悉,你必须查找那些希腊字母)。由于值 eta
和 (eta
*lambda
)/n
都是给定训练迭代的常数,因此足以将权重衰减的学习规则解释为 "for a given weight, subract a small multiple of the derivative of the cost function with respect to that weight, and subtract a small multiple of the weight itself."
让我们看看虚构网络中的四个权重以及上述学习规则如何影响它们。如您所见,无论如何,以红色显示的正则化项都会将权重推向零。它旨在最小化权重矩阵的 magnitude,这是通过最小化各个权重的绝对值来实现的。这些图中需要注意的一些关键事项:
- 当成本导数的符号与权重的符号相同时,正则化项加速了权重的最优路径!
- 正则化项影响权重更新的量与该权重的当前值成正比。我在图中用小红色箭头显示了当前值接近零的权重的贡献,而较大的红色箭头表示具有较大电流幅度的权重。
我最近开始使用 ML 和 TensorFlow。在浏览网站上的 CIFAR10-tutorial 时,我遇到了一段让我有点困惑的段落:
The usual method for training a network to perform N-way classification is multinomial logistic regression, aka. softmax regression. Softmax regression applies a softmax nonlinearity to the output of the network and calculates the cross-entropy between the normalized predictions and a 1-hot encoding of the label. For regularization, we also apply the usual weight decay losses to all learned variables. The objective function for the model is the sum of the cross entropy loss and all these weight decay terms, as returned by the loss() function.
我在论坛上看了几个关于什么是权重衰减的答案,我可以说它是用于正则化的目的,以便可以计算权重值以获得最小的损失和更高的准确性。
现在在上面的文字中,我了解到 loss()
是由交叉熵损失(这是预测和正确标签值的差异)和权重衰减损失组成的。
我很清楚交叉熵损失,但这个重量衰减损失是什么,为什么不只是重量衰减?这个损失是怎么计算的?
权重衰减损失,因为它增加了成本函数(具体来说是损失)。从损失中优化参数。使用权重衰减,您希望效果通过损失函数对整个网络可见。 TF L2 loss
Cost = Model_Loss(W) + decay_factor*L2_loss(W)
# In tensorflow it bascially computes half L2 norm
L2_loss = sum(W ** 2) / 2
Weight decay
只不过是权重的L2 regularisation
,可以使用tf.nn.l2_loss
.
带正则化的损失函数由下式给出:
上述等式的第二项定义了权重 (theta) 的 L2-regularization
。一般加入是为了避免过拟合。这会惩罚峰值权重并确保所有输入都被考虑在内。 (很少有峰值权重意味着只有那些与之相关的输入才会被考虑用于决策。)
梯度下降参数更新时,上述L2正则化最终意味着每个权重线性衰减:W_new = (1 - lambda)* W_old + alpha*delta_J/delta_w
。这就是为什么它通常被称为 Weight decay
.
"weight decay loss" 你的教程想说的是,与你从非正则化模型中了解到的交叉熵成本相比(即你的模型对训练数据的预测偏离目标有多远),你的新成本函数不仅会惩罚预测误差,还会惩罚网络中权重的大小。之前您只针对训练集中标签的正确预测进行优化,而现在您正在针对正确的标签预测进行优化并具有较小的权重。进行此修改的原因是,当通过梯度下降训练的机器学习模型产生较大的权重时,它们很可能是根据训练数据中的特性(或噪声)得出的。当暴露于保留的测试数据时,模型将不会表现得很好,因为它对训练集 overfit。应用权重衰减损失(通常称为 L2 正则化 )的结果是,训练数据的准确性会下降一点,但测试数据的准确性会急剧上升。这就是您最终想要的:一个模型可以很好地概括它在训练期间没有看到的数据。 为了更好地理解权重衰减的机制,让我们看一下 L2 正则化网络中权重的学习规则:
其中 eta
和 lambda
分别是用户定义的 学习率 和 正则化参数 ,并且 n
是训练样本的数量(如果你不熟悉,你必须查找那些希腊字母)。由于值 eta
和 (eta
*lambda
)/n
都是给定训练迭代的常数,因此足以将权重衰减的学习规则解释为 "for a given weight, subract a small multiple of the derivative of the cost function with respect to that weight, and subtract a small multiple of the weight itself."
让我们看看虚构网络中的四个权重以及上述学习规则如何影响它们。如您所见,无论如何,以红色显示的正则化项都会将权重推向零。它旨在最小化权重矩阵的 magnitude,这是通过最小化各个权重的绝对值来实现的。这些图中需要注意的一些关键事项:
- 当成本导数的符号与权重的符号相同时,正则化项加速了权重的最优路径!
- 正则化项影响权重更新的量与该权重的当前值成正比。我在图中用小红色箭头显示了当前值接近零的权重的贡献,而较大的红色箭头表示具有较大电流幅度的权重。