我在理解损失函数的理论时遇到一些问题,希望有人能帮助我。
通常,当人们尝试向您解释梯度下降时,他们会向您显示类似于本文gradient descent: all you need to know中的第一张图片的损失函数。我了解梯度下降的整个理论是调整权重并最小化损失函数。
我的问题是,损失函数的形状在训练过程中会改变还是会保持不变?我知道权重是我们一直在调整的东西,因此确定Loss函数形状的参数应该是输入X = {x1,x2,... xn}。让我们举一个简单的例子:假设我们的输入是[[1,2,3,4,5],[5,4,3,2,1]],标签是[1,0](为方便起见,只有两个训练样本,并且我们将批量大小设置为1)。那么对于第一个训练样本,损失函数应该是这样的
L = (1-nonlinear(1*w1+2*w2+3*w3+4*w4+5*w5+b))^2
对于第二个训练样本,损失函数应为:
L = (0-nonlinear(5*w1+4*w2+3*w3+2*w4+1*w5+b))^2
很明显,如果我们绘制它们,这两个损失函数看起来就不一样了,这是否意味着损失函数的形状在训练过程中正在改变?那么为什么人们仍然使用那一张图像(从Loss函数向下滑动并找到全局最小值的点)来解释梯度下降理论呢?
注意:我没有更改损失函数,损失函数仍然是均方误差。我想说的是Loss函数的形状似乎正在改变。
我知道我的问题来自哪里!我以为如果没有任何常数,我们将无法绘制f(x,y)= x y之类的函数,但实际上可以!我在google上搜索了f(x,y)= x y的图,确实可以将它们绘制出来!所以现在我明白了,只要我们得到丢失的函数,就可以得到情节!谢谢你们
答案 0 :(得分:0)
功能保持不变。渐变体面的目的是在您定义的给定损失函数上找到最低点。
答案 1 :(得分:0)
通常,您正在训练以最小化的损失功能在整个训练过程中不会改变。推理的缺陷在于,您假设损失函数的特征在于网络的权重,而实际上该网络的权重是损失函数的某种输入。
为澄清起见,让我们假设我们正在预测一些N
维信息,并且我们有一个基本真向量,称为p
,损失函数L
定义为
p_hat
L(p_hat) := norm(p - p_hat).
这是一个非常原始的(并且非常无效)的损失函数,但是它仍然是一个。一旦开始训练,此损失功能将是我们将尝试使之最小化的功能,以使我们的网络在性能方面达到最佳。请注意,对于p_hat
的不同输入,此损失函数将获得不同的值,这并不意味着损失函数正在改变!最后,损失函数将是N
维超空间中的N+1
维超曲面,无论如何都保持不变(类似于您在图像中看到的{ 2
维空间中的{1}}维表面。
梯度下降试图找到由损失函数构造的该表面上的最小值,但我们并不真正知道该表面的整体外观,而是通过评估损失来找出有关该表面的小问题用作3
的值。
请注意,这都是一个过分的简化,但是可以作为一种很好的入门方式。
答案 2 :(得分:0)
Loss Function是衡量从预测到目标的距离的指标。
思想是选择权重,以便您的预测接近目标,即模型学习/记忆了输入。
在训练过程中通常不应更改损失函数,因为原始函数中的最小值可能与新函数中的最小值不符,因此梯度下降的功将丢失。