所谓的“损失”/“损失函数”在哪里适合感知器/人工神经元的概念(如图所示)?

人工智能 目标函数 激活函数 人工神经元 感知器 损失
2021-11-02 04:04:59

我目前正在学习Charu C. Aggarwal的教科书《神经网络和深度学习》。1.2.1.3 章激活和损失函数的选择给出了下图:

在此处输入图像描述

X¯是特征,W¯是权重,并且ϕ是激活函数。

所以这是一个感知器(它是人工神经元的一种形式)。

但是所谓的“损失”/“损失函数”在哪里适合呢?这是我一直无法调和的事情。


编辑

教科书中介绍损失函数的方式似乎暗示它是感知器/人工神经元架构的一部分,但是,根据 hanugm 的回答,它是外部的,而是用于更新神经元的权重所以看来我误解了教科书上写的内容。

在我上面的问题中,我几乎假设损失函数是感知器/人工神经元架构的一部分,然后询问它是如何融入架构的,因为我在图中看不到任何迹象。

损失/损失函数是感知器/人工神经元架构的一部分吗?我在图 1.7 中看不到任何损失/损失函数的迹象,所以我对此感到困惑。如果不是,那么损失/损失函数与感知器/人工神经元的架构有何关系?

3个回答

损失函数是用来衡量损失的函数。它不用于神经元的任何组件。它用于更新神经元的权重,即为了训练神经元。

损失函数的贡献在于更新W¯.

对于给定的X¯W¯, 神经元给出一个动作后值h. 但期望的输出可能并不完全h. 期望值之间的距离度量(比如h) 和激活后值h被称为感知器的损失X¯.

我们希望减少感知的损失,即,|hh|. 我们唯一能做的就是改变W¯,问题中给出的感知器模型的参数。为了更新权重,我们必须根据模型的权重计算损失函数的导数,然后使用一些更新规则更新权重。

因此,损失函数将在神经元的训练阶段发挥作用。

简而言之:目前您正在处理神经元及其组件。用于训练神经元的损失函数将稍后出现。

损失函数只是一种衡量神经网络错误程度的方法,它不会影响神经元的输出。

假设我们有一个具有 3 个输出神经元的神经网络,它试图对猫、狗和人类的图像进行分类。它给出的输出是神经网络分类的置信度。例如,如果输出为 [0, 0.2, 0.8](0 为第 1 个神经元的输出,第 2 个神经元的输出为 0.2,第 3 个神经元的输出为 0.8),这意味着神经网络认为图像有 0% 的概率是猫,20%是狗,80%是人。

假设显示给网络的图像是人,我们可以说目标值为 [0, 0, 1],因为我们希望它以 100% 的置信度输出图像是人。现在我们必须使用损失函数来衡量预测的实际错误程度。有许多损失函数,但为简单起见,我将使用平方误差。在这种情况下,损失将等于 (1-0.8)^2=0.04(预期值 - 输出)^2。

输出越接近1,括号内的结果越接近0,所以损失会更小。目标是最小化这个损失函数。例如,如果输出为 1 而不是 0.8,则网络的损失将为 (1-1)^2 = 0。如果输出为 0.2,则损失为 (1-0.2)^2 = 0.64,即比前两个更大,因为它“更错误”。

为了训练网络,我们使用它而不是准确性,原因如下。使用这两个输出 [0, 0.1, 0.9], [0.2, 0.3, 0.5] 网络预测“人类”,这是最大值,但在第一种情况下它是 90% 确定,而在第二种情况下它只有 50% 确定. 我们可以说第一个网络更好,但如果我们只使用准确度,因为两者预测相同,它们看起来也一样好。

当他们犯错时也会发生同样的情况。如果期望值为 [0, 1, 0] 并且一个模型预测 [0.5, 0.4, 0.1] 而另一个预测 [0.9, 0, 0.1],那么他们都错了,但第一个模型的错误较少第一个损失是 (1-0.4)^2 = 0.36,第二个损失是 (1-0)^2 = 1,这要高得多

假设我们有一个二元分类问题,我们想用一个简单的单层感知器来解决这个问题。对于 2d 空间,感知器将有 2 个输入x1x2, 和一个偏差表示x0这总是x0=1. 它也有相应的可学习权重w0,w1w2.

这可以向量化:

x¯=[1x1x2]; w¯=[w0w1w2]

在此处输入图像描述

然后是预激活功能a=w¯x¯只不过是一个线性方程,可以展开为a=w0+w1x1+w2x2.

在最简单的情况下h可以定义如下:

h={class 1if a>0class 2otherwise

或者也可以定义为h=sign(w¯x¯),这意味着该线上方的样本属于第 1 类。

在此处输入图像描述

由于我们的h不连续且不可微,我们不能应用梯度下降优化。相反,可以迭代地优化权重:

在此处输入图像描述

详情可以参考维基百科

所以回答你的问题,对于这种特殊情况,没有损失函数。损失函数的优化通常涉及SGD,它要求函数是连续的和可微的。例如,如果h定义为 sigmoid 函数,可以使用二元交叉熵作为损失函数。

还有其他不需要损失函数的优化方法,例如遗传算法、期望最大化和爬山法。