- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于BP神经网络的模式识别
人工神经网络概述
什么是人工神经网络?
T.Koholen的定义:人工神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。
神经网络的发展历史
起源:20世纪40年代
MP模型的创立,感知机模型,自适应线性元件
低潮时期:60—70年代
自组织映射,神经认知机网络理论,BSB模型,BP理论的提出
第二次研究高潮:80年代—至今
Hopfield神经网络模型,多层并行分布处理(BP)理论,等等
神经网络的研究内容
生物模型的研究:从生物科学方面全面研究神经细胞及网络,神经系统的结构及其功能机理
网络模型及算法研究:在理论模型的基础上建立具体的神经网络模型为计算机模拟做准备
神经网络的应用系统:在各种模型和算法的基础上,完成模式识别的功能
神经网络的应用
模式识别和图像处理 :字符(语音,签字,指纹)识别目标检测与识别; 图像压缩与复制
控制与优化:机器人的运动控制 ;家电控制 半导体生产中的控制 ;石油精炼优化控制; 超大规模的集成电路布线控制
预报与职能信息:股市行情预测借贷风险分析,IC卡管理及交通管理
通信:飞行器制导及程序优化管理自适应均衡,回波抵消,路由选择等
空间科学:导航信息智能管理
什么是BP神经网络
BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。
BP神经网络的特点
非线性映射能力
能学习和存贮大量输入-输出模式映射关系,而无需事先了解描述这种映射关系的数学方程。只要能提供足够多的样本模式对供网络进行学习训练,它便能完成由n维输入空间到m维输出空间的非线性映射。
泛化能力
当向网络输入训练时未曾见过的非样本数据时,网络也能完成由输入空间向输出空间的正确映射。这种能力称为泛化能力。
容错能力
输入样本中带有较大的误差甚至个别错误对网络的输入输出规律影响很小。
基于BP算法的网络模型
BP算法
?
学习过程
正向传播:
输入样本---输入层---各隐层---输出层
判断是否转入反向传播阶段:
若输出层的实际输出与期望的输出不符
误差反传
误差以某种形式在各层表示----修正各层单元的权值
可接受的程度进行到预先设定的学习次数为止。直至网络输出的误差减少到预期的值
基于BP算法的识别模型
算法
输入层与隐层的连接权值:
隐层与输出层的连接权值:
隐层各神经元的阈值:
输出层各神经元的阈值:
样本数据个数:
激活函数:
误差函数:
学习算法
计算隐含层各神经元的输入和输出
学习算法
利用网络期望输出和实际输出,计算误差函数对输出层的各神经元的偏导数
学习算法
利用隐含层到输出层的连接权值、输出层的 和隐含层的输出计算误差函数对隐含层各神经元的偏导数 。
学习算法
学习算法
利用输出层各神经元的 和隐含层各神经元的输出来修正连接权值
学习算法
利用隐含层各神经元的 和输入层各神经元的输入修正连接权。
学习算法
计算全局误差
最后,判断网络误差是否满足要求。当误差达到预设精度或学习次数大于设定的最大次数,则结束算法。否则,选取下一个学习样本及对应的期望输出,返回到初始状态,进入下一轮学习。
MATLAB实现
MATLAB中BP神经网络的重要函数和基本功能
函 数 名
功 能
newff()
生成一个前馈BP网络
tansig()
双曲正切S型(Tan-Sigmoid)传输函数
logsig()
对数S型(Log-Sigmoid)传输函数
traingdx()
梯度下降lr_BP训练函数
MATLAB实现
重要函数和基本功能
newff()
功能 建立一个前向BP网络
格式 net = newff(PR,[S1 S2...SN1],{TF1 TF2...TFN1},BTF,BLF,PF)
说明 net为创建的新BP神经网络;PR为网络输入取向量取值范围的矩阵;[S1 S2…SNl]表示网络隐含层和输出层神经元的个数;{TFl TF2…TFN1}表示网络隐含层和输出层的传输函数,默认为‘tansig’;BTF表示网络的训练函数,默认为‘trainlm’;BLF表示网络的权值学习函数,默认为‘learngdm’;PF表示性能数,默认为‘mse’(我们这次使用的是’sse’)。
[alphabet,targets]=prprob; %生成字母表布尔值的函数
S1=10;
[R,Q]=size(al
文档评论(0)