1、异或问题是每个讨论多层神经网络的人都会谈论的话题,问题的本身就是解决一个线性可分的问题。对应到几何的二维问题就是用一条直线划分两个分类的问题。
对于简单二维分类问题如果一个数字z代表分类,那么将这个过程写成公式:
Z=f(x,y)
问题就转化为求解二维函数f(x,y)使其最接近给定的数据点。
形象化的解释如下图:
红蓝两色代表互不相同的两个类,如果以z=0.5作为分解线将其作为两类,问题划分。就很简单了,只需将xy写成如下的形式:
z=0.5x+0.5y+0
写成矩阵的形式:
最终绘制成图:
很明显公式代表一个平面,如果用z=0.5的平面去截取的话,永远只能得到一条直线。这也就是常说的线性可分的问题,用一条直线去区分平面内的点。
也就是不管扩充到多少维最终所得到的结果都是一个平面,那么对于如下的问题:
显然是无能为力的。
此时激活函数的作用便显现了出来,其将线性问题转换为了非线性问题。
将激活函数加入之后平面发生了弯曲:
故此时引入隐藏神经元,此时公式变为:
公式来说依然不是很好理解,下面将第一层神经元乘以第二层的权值后制成图:
最终二者合成的曲线为:
此时曲面产生了复杂的形状。很明显对于异或问题已经得到了解决。
在这里总结一下,由于单层曲面的形状问题,无法解决一个线性可分的问题,此时需要加入隐藏层,而隐藏层存在的目的在于多种不同的曲面去叠加拟合给定曲面。而此时如果依然将激活函数取1是不合适的,因为三维空间中任何平面的叠加都是一个平面,此时需要激活函数取将平面弯曲成非平面的形态。