ANN_Multilayer Perceptrons(BP)

来源:互联网 发布:大隈机械okuma编程 编辑:程序博客网 时间:2024/06/05 07:45

说明:课堂笔记


上次已经谈到单层网络,它是用来处理线性可分问题的,这是它能力,也是它缺点所在。

那么要解决这个问题,我们采取的方法是多层网络,它是增加网络的分类能力唯一的办法。

其中涉及到的知识有MP,BP


多层感知器(Multilayer Perceptrons)

由输入层、隐含层(一或多层)和输出层构成的神经网络
输入层神经元的个数为输入信号的维数;
隐含层以及隐含结点的个数视情况而定;(Nh=Ni + No - 2)【 隐单元从输入模式中提取更多有用的信息】
输出层神经元的个数为输出信号的维数;

神经元的激励函数 vi=1/(1+exp(-ui))
ui是第i个神经元的输入信号和,vi是该神经元的输出信号

采用BP算法,多层感知器也称为BP网络



BP学习算法(BP(Back Propagation)

学习特点:

(1) 工作信号正向传播,其间权值不变。
(2) 误差信号反向传播,其间权值由反馈误差进行调节。
通过权值的不断修改,使网络的实际输出更接近期望输出。 

BP学习算法存在两个问题:
(1) 收敛速度慢;
(2) 目标函数存在局部极小点。


改进措施:
(1)  附加动量法  traingdm
    (2)  自适应学习速率  traingda
    (3)  附加动量+自适应学习速率 traingdx


算法步骤:


代码略

运行结果:


分析:

学习率决定了程序的运行时间,学习率越低,时间越长,精确率较高

隐含层节点个数在Nh=Ni+No-2左右时,精确率较高;节点个数越高,时间越长。

精确率不会达到100%,因为多层网络是通过单层的累加,其效果还是线性之间的组合,效果为多边形切割,而不是曲线分割。


总结:

由于单层神经网络只能对线性可分问题进行求解,其分类能力有限。解决方法是采用多层网络,构成多层感知器(MP)。多层感知器是由输入层、隐含层(一或多层)和输出层构成的神经网络。它采用BP算法,所以也称为BP网络。BP算法在学习过程中,作信号正向传播,其间权值不变;误差信号反向传播,其间权值由反馈误差进行调节,通过权值的不断修改,使网络的实际输出更接近期望输出。该算法存在两个问题,收敛速度慢,目标函数存在局部极小点。我们可以用附加动量法、自适应学习速率、附加动量和自适应学习速率改进该算法。


                            
原创粉丝点击