多层感知器,为什么能实现非线性?


因为加入了激活函数 。激活函数是非线性的就可以实现非线性 。这个道理很简单 。可以尝试去用非线性函数套一个线性函数来操作 。得到的一定是非线性结果 。
不过多层感知器网络不一定会有激活函数 。激活函数也不一定是非线性的 。这个可以人为地设定 。只是采用非线性激活函数加随机权重初始值的方法是目前理论上和实际验证中得出来的效果最好的方法 。
其他观点:
多层感知器神经网络(Multi-layer perceptron neural networks 。MLP neural netwoks)的基础模型 。神经网络中每个节点为一个感知器 。模型生物神经网络中神经元的基础功能:来自外界(环境或其他细胞)的电信号通过突触传递给神经元 。当细胞收到的信号总和超过一定阈值后 。细胞被激活 。通过轴突向下一个细胞发送电信号 。完成对外界信息的加工 。
但是 。感知器的学习算法并不能直接应用到多层感知器模型的参数学习上 。因此 。最初提出的学习方案是:除了最后一个神经元之外 。事先固定其他所有神经元的权值 。学习过程只是用感知器学习算法学习最后一个神经元的权系数 。
实际上 。这相当于通过第一层神经元把原始的特征空间变换到一个新的特征空间 。第一层的每个神经元构成新空间的一维 。然后在新的特征空间用感知器学习算法构造一个线性分类器 。
【多层感知器,为什么能实现非线性?】显然 。由于第一层的神经元权值需要人为给定 。模型的性能很大程度取决于能否设计出恰当的第一层神经元模型 。而这取决于对所面临的的问题和数据的了解 。并没有针对任意问题求解第一层神经元参数的方法 。

    推荐阅读