具有 sigmoid 激活函数的感知器可以执行非线性分类吗?
图中的网络有一个输入层和一个输出层,但没有隐藏层。这种类型的网络不能执行非线性分类或实现任意非线性函数,无论激活函数的选择如何。
输入被投影到权重向量上并沿该方向缩放/移动。这是一个线性运算,将输入减少为单个值,然后通过(可能是非线性的)激活函数传递。这种线性减少到单个值是网络无法实现任意功能的原因。考虑输入空间中与权重向量正交的超平面。落在这个超平面内的所有输入都映射到相同的输出值(下面绘制的决策边界是这种超平面的一个例子)。
这是一个示例函数,对应于具有两个输入和一个逻辑 sigmoid 输出的网络:
该函数是一个沿权向量方向弯曲成S形的曲面。更改网络参数可以旋转 S 形曲面的方向,并对其进行拉伸或移动。但是,基本的 S 形将始终保持不变。
如果网络用于实现分类器,则决策边界将始终是线性的。例如,假设给定输入(即网络实现逻辑回归模型),我们将示例网络的输出表示类别为“1”的概率。我们施加了一个阈值,如果输入产生高于阈值的输出,则将其分类为“1”,否则为“0”。这是同一函数的俯视图,其中颜色代表输出:
绘制的决策边界对应于阈值 0.5(即我们分配最可能的类别)。此边界右侧的所有点将被归类为“1”,而左侧的所有点将被归类为“0”。决策边界与权重向量正交(以红色绘制)。改变权重可以旋转或移动决策边界,但绝不会使它成为非线性的。
然而,一旦网络包含至少一个具有 sigmoid(或其他非线性)激活函数的隐藏层,情况就会发生根本变化。这样的网络确实可以执行非线性分类和近似任意函数(但这样做可能需要向网络添加更多的单元)。正如@broncoAbierto 所提到的,这是通用逼近定理的结果。
我同意@user20160 给出的答案。
但是,您可能对如果激活函数不是单调的会发生什么感兴趣。
例如:钟形高斯函数。
在这种情况下,生成了两个超平面,可以用来解决XOR 问题。
参见“高斯感知器:实验结果”
例如,要了解有关分类的更多信息,请查看https://en.wikipedia.org/wiki/Perceptron和 https://en.wikipedia.org/wiki/Linear_classifier。
回答这个问题,首先,分类器不需要能够表示任何被认为是非线性的复杂函数。一个例子是二次分类器(wiki/Quadratic_classifier),它是一个 2 次多项式函数。我们可以有无限多个进一步的例子,因为 n 次的多项式分类器,n 从 3 到无穷大。
其次,不,如果我们考虑经典设置,将激活函数更改为 sigmoid 并没有帮助。事实上,sigmoid 激活函数甚至不会成为一个明智的分类器。在经典设置中,感知器的输出为 -1 或 +1,+1 表示Class 1,-1 表示Class 2。如果您将激活函数更改为 sigmoid,您将不再有可解释的输出。(现在当然可以在 sigmoid 之后应用一个 step 函数,但仔细想想,这和只使用 step 函数是一样的)
澄清与 broncoAbierto 答案的联系,任意多个具有 sigmoid 激活的感知器(即神经网络)的组合确实是一个非线性分类器。此外,它可以逼近任何复杂的函数。然而,单个感知器不具备这些属性中的任何一个。
您可能听说过神经网络的通用逼近定理。具有 sigmoid 激活的网络是这种网络的一个特例,所以是的,它们可以执行非线性分类,并且只要单元的数量足够大,它们就可以任意地逼近任何函数。




