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算法在学习过程中,作信号正向传播,其间权值不变;误差信号反向传播,其间权值由反馈误差进行调节,通过权值的不断修改,使网络的实际输出更接近期望输出。该算法存在两个问题,收敛速度慢,目标函数存在局部极小点。我们可以用附加动量法、自适应学习速率、附加动量和自适应学习速率改进该算法。
- ANN_Multilayer Perceptrons(BP)
- Perceptrons
- 神经网络:perceptrons(视感控器)
- bp
- bp
- bp
- BP
- BP
- BP
- BP
- bp
- BP
- bp
- A Deep Learning Tutorial: From Perceptrons to Deep Networks
- A Deep Learning Tutorial: From Perceptrons to Deep Networks
- train data 和 model bias 对 Mutilayer Perceptrons 的影响
- 机器学习基石 7.2 VC Dimension of Perceptrons
- 机器学习基石-07-2-VC Dimension of Perceptrons
- bind_param()解析
- 使用Memory Analyzer tool(MAT)分析内存泄漏(一)
- POJ1458 Common Subsequence LCS问题入门题[DP]
- 2-sat入门
- oracle sql 多表 嵌套子查询 连接查询, join where exist in 的区别
- ANN_Multilayer Perceptrons(BP)
- Python3中利用Urllib进行表单数据提交(Get,Post)
- 对于vs2008下MFC的编译或者说vc6到vs2008的移植性问题
- Python开发之扩展库的安装指南及Suds(Webservice)的使用简介
- 在access是/否类型对应数字
- 使用Memory Analyzer tool(MAT)分析内存泄漏(二)
- lucene索引并搜索mysql数据库
- HashMap,HashTable,HashSet区别
- Visual C++中的向导