我在理解MLP和SLP之间的差异时遇到问题。

我知道,在第一种情况下,MLP具有一层以上的层(隐藏层),并且神经元具有非线性激活函数,例如逻辑函数(梯度下降所需)。但我读过:


  “如果MLP中的所有神经元都具有线性激活功能,则MLP
  可以被单层感知器代替,只能
  解决线性可分离的问题”


我不明白为什么在不能线性分离的XOR的特殊情况下,等效的MLP是一个两层网络,每个神经元都有线性激活函数,如阶跃函数。我知道我需要两行分隔,但是在这种情况下,我不能应用上一条语句的规则(用SLP替换MLP)。

Xor的Mlp:

http://s17.postimg.org/c7hwv0s8f/xor.png

在链接的图像中,神经元A B和C具有线性激活函数(如阶跃函数)

异或:
http://s17.postimg.org/n77pkd81b/xor1.png

最佳答案

线性函数是f(x) = a x + b。如果我们采用另一个线性函数g(z) = c z + d,并应用g(f(x))(这相当于将一个线性层的输出作为下一个线性层的输入),则得到g(f(x)) = c (a x + b) + d = ac x + cb + d = (ac) x + (cb + d)本身是另一个线性函数。

步进函数不是线性函数-您不能将其写为a x + b。这就是为什么使用阶跃函数的MLP绝对比使用阶跃函数的单层感知器更具表现力的原因。

关于math - 多层感知器替换为单层感知器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30559405/

10-09 13:33