说明:课堂笔记
上次已经谈到单层网络,它是用来处理线性可分问题的,这是它能力,也是它缺点所在。
那么要解决这个问题,我们采取的方法是多层网络,它是增加网络的分类能力唯一的办法。
其中涉及到的知识有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算法在学习过程中,作信号正向传播,其间权值不变;误差信号反向传播,其间权值由反馈误差进行调节,通过权值的不断修改,使网络的实际输出更接近期望输出。该算法存在两个问题,收敛速度慢,目标函数存在局部极小点。我们可以用附加动量法、自适应学习速率、附加动量和自适应学习速率改进该算法。