MLP多层感知器其实是一种人工神经网络结构,属于非参数估计,可以用于解决分类和回归问题。
如果使用“BP算法”也称为BP神经网络,是一种前向结构的人工神经网络,映射一组输入向量到一组输出向量。MLP可以被看作是一个有向图,由多个的节点层所组成,每一层都全连接到下一层。除了输入节点,每个节点都是一个带有非线性激活函数的神经元(处理单元),可以解线性不可分问题。
早前已经学习了感知器学习算法,主要通过对那些错分类的样本进行求和来表示对错分样本的惩罚,但明显的它是一个线性的判别函数;而感知器神经元(阈值逻辑单元),对于单个的感知器神经元来说,尽管它能够实现线性可分数据的分类问题(如与、或问题),但是却无法解决非线性问题,如逻辑学里的异或(XOR)问题甚至是高阶,那么这样的问题该如何利用简单学习机器来解决呢?
回想下前面在非线性分类器中提到的分段线性判别,它的目的是为了将非线性函数拟合成多段线性函数的组合,同样,关于上述问题,我们也可以采用这一思想,对于任意复杂形状的分类区域,总可以用多个神经元组成一定的层次结构来实现。
多层感知器(Multiayer perceptrons, MLP)可以实现非线性判别式,如果用于回归,可以逼近输入的非线性函数。其实MLP可以用于“普适近似”,即可以证明: 具有连续输入和输出的任何函数都可以用MLP近似 ,已经证明,具有一个隐藏层(隐藏节点个数不限)的MLP可以学习输入的任意非线性函数。
训练MLP常用的是向后传播(backpropagation),这主要是因为在我们收敛误差函数的时候,使用链接规则计算梯度:
下面借助Halcon,先以MLP训练和识别开始(创建训练文件,训练,识别)。
大致代码如下,
上述案例摘自Halcon示例程序,用来解决颜色识别这一类问题的。从基本的思路可以看出,分类整体流程很简单其实:
而分类器的使用步骤也很简单:
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/13464.html