MLP(多层感知器)神经网络

由前面介绍看到,单个感知器能够完成线性可分数据的分类问题,是一种最简单的可以“学习”的机器。但他无法解决非线性问题。比如下图中的XOR问题:即(1,1)(-1,-1)属于同一类,而(1,-1)(-1,1)属于第二类的问题,不能由单个感知器正确分类。


即在Minsky和Papert的专著《感知器》所分析的:感知器只能解决所谓一阶谓词逻辑问题:与(AND),或(OR)等,而不能解决异或(XOR)等高阶谓词罗辑问题。

用多个感知器实现非线性

单个感知器虽然无法解决异或问题,但却可以通过将多个感知器组合,实现复杂空间的分割。如下图:


将两层感知器按照一定的结构和系数进行组合,第一层感知器实现两个线性分类器,把特征空间分割,而在这两个感知器的输出之上再加一层感知器,就可以实现异或运算。

也就是,由多个感知器组合:


来实现非线性分类面,其中θ(·)表示阶跃函数或符号函数。

多层感知器神经网络 

实际上,上述模型就是多层感知器神经网络(Multi-layer perceptron neural networks,MLP neural netwoks)的基础模型。神经网络中每个节点为一个感知器,模型生物神经网络中神经元的基础功能:来自外界(环境或其他细胞)的电信号通过突触传递给神经元,当细胞收到的信号总和超过一定阈值后,细胞被激活,通过轴突向下一个细胞发送电信号,完成对外界信息的加工。


但是,感知器的学习算法并不能直接应用到多层感知器模型的参数学习上。因此,最初提出的学习方案是:除了最后一个神经元之外,事先固定其他所有神经元的权值,学习过程只是用感知器学习算法学习最后一个神经元的权系数。实际上,这相当于通过第一层神经元把原始的特征空间变换到一个新的特征空间,第一层的每个神经元构成新空间的一维,然后在新的特征空间用感知器学习算法构造一个线性分类器。显然,由于第一层的神经元权值需要人为给定,模型的性能很大程度取决于能否设计出恰当的第一层神经元模型,而这取决于对所面临的的问题和数据的了解,并没有针对任意问题求解第一层神经元参数的方法。

 
MLP(多层感知器)神经网络是常见的ANN( 即Artificial Neuro Network人工神经网络)算法,它由一个输入层,一个输出层和一个或多个隐藏层组成。
   在MLP中的所有神经元都差不多,每个神经元都有几个输入(连接前一层)神经元和输出(连接后一层)神经元,该神经元会将相同值传递给与之相连的多个输出神经元,如下图所示。
   
    下图是将生物神经元模型抽象成一个信号传递的数学模型。图中神经元的输入信号 P,经过一个累加器累加后将信号传递给一个激励函数 f,就得到该神经元的输出信号a。同时该神经元的输出信号a又可以作为下一个或多个神经元的输入信号,进而将神经元信号连成一张网络的形状进行传递。同时一个神经元的输入也可以是多个元素。

    一个神经网络训练网将一个特征向量作为输入,将该向量传递到隐藏层,然后通过权重和激励函数来计算结果,并将结果传递给下一层,直到最后传递给输出层才结束。通过训练ANN算法来计算和学习每一层的权重、突触以及神经元。如下图所示。


猜你喜欢

转载自blog.csdn.net/liuyukuan/article/details/72934383