BP神经网络原理及应用_第1页
BP神经网络原理及应用_第2页
BP神经网络原理及应用_第3页
BP神经网络原理及应用_第4页
BP神经网络原理及应用_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、BP神经网络原理及应用 1人工神经网络简介 生物神经元模型 神经系统的基本构造是神经元(神经细胞),它是处理人体内各部分之间相 互信息传递的基本单元。据神经生物学家研究的结果表明,人的大脑一般有 10,0-10个神经元。每个神经元都由一个细胞体,一个连接其他神经元的轴究 和一些向外伸出的其它较短分支树究组成。轴究的功能是将本神经元的输出 信号(兴奋)传递给别的神经元。其末端的许多神经末梢使得兴奋可以同时送给 多个神经元。树突的功能是接受来自其它神经元的兴奋。神经元细胞体将接受到 的所有信号进行简单地处理后由轴突输出。神经元的树突与另外的神经元的神经 末梢相连的部分称为突触。 MilUMf* X

2、 冲 nvd 人工神经元模型 神经网络是由许多相互连接的处理单元组成。这些处理单元通常线性排列成 ( 组,称为层。每一个处理单元有许多输入量,而对每一个输入量都相应有一个相 关 联的权重。处理单元将输入量经过加权求和,并通过传递函数的作用得到输出量, 再传给下一层的神经元。目前人们提出的神经元模型已有很多,其中提出最早且 影 响最大的是1943年心理学家McCul loch和数学家Pitts在分析总结神经元基本 特性的基础上首先提出的M-P模型,它是大多数神经网络模型的基础。 约內-乞)() 式中,j为神经元单元的偏置(阈值),彷为连接权系数(对于激发状态,彷取 正值,对于抑制状态,兮取负值)

3、,n为输入信号数目,I,为神经元输出,t为 时间,f()为输出变换函数,有时叫做激发或激励函数,往往采用0和1二值函 数或S形函数。 人工神经网络的基本特性 人工神经网络由神经元模型构成;这种由许多神经元组成的信息处理网络具有并 行分布结构。每个神经元具有单一输出,并且能够与其它神经元连接;存在许多 (多重)输出连接方法,每种连接方法对应一个连接权系数。严格地说,人工神 经网络是一种具有下列特性的有向图: (1 )对于每个节点存在一个状态变量xi ; (2)从节点i至节点j,存在一个连接权系数wji; (3 )对于每个节点,存在一个阈值j: (4 )对于每个节点,定艾一个变换函数对于最一般的情

4、况, 此函数取小旳內-耳)形式。 人工神经网络的主要学习算法 神经网络主要通过两种学习算法进行训练,即指导式(有师)学习算法和非指导 式(无师)学习算法。此外,还存在第三种学习算法,即强化学习算法;可把它 看做有师学习的一种特例。 (1 )有师学习 有师学习算法能够根据期望的和实际的网络输出(对应于给定输 入)间的差来调整神经元间连接的企度或权。因此,有师学习需要有个老师或导 师来提供期望致目标输出信号。有师学习算法的例子包括 规则、广艾 规 则或反向传播算法以及LVQ算法等。 1 (2) 无师学习 无师学习算法不需要知道期望输出。在训练过程中,只要向神 经网络提供输入模式,神经网络就能够自动

5、地适应连接权,以便按相似特征把输 入模式分组聚集。无师学习算法的例子包括Kohonen算法和 Carpenter-Grossberg 自适应共振理论(ART)等。 (3) 强化学习 如前所述,企化学习是有师学习的特例。它不需要老师给出目 标输出。强化学习算法釆用一个评论员”来评价与给定输入相对应的神。 2 BP神经网络原理 基本BP算法公式推导 总本BP算法包括两个方面:信号的前向传播和误差的反向传播。即计算实际输 出时按从输入到输出的方向进行,而权值和阈值的修正从输出到输入的方向进 行。 输 出 变 4量 图中:勺表示输入层第丿个节点的输入,戶1,,: 叫表示隐含层第/个节点到输入层第丿个节

6、点之间的权值; q表示隐含层第/个节点的阈值; 0。)表示隐含层的激励函数; 叫表示输出层第k个节点到隐含层第/个节点之间的权值,/=1,-,Q 5表示输出层第 肖)表示输出层的激励函数; 勺表示输出层第k个节点的输出。 (1)信号的前向传播过程 隐含层第/个节点的输入门eh: 叫=E咛+q j-i 隐含层第/个节点的输出匕: M X =飒必4 ) = 0(工W护j + Q ) jl 输出层第斤个节点的输入net kt qqm ne = Z叫+=E叫飒工叫内+G /-I/-i;-i (3-1) (3-2) (3-3) 输出层第 1600 1873 1478; 1873 1478 1900; 1

7、478 1900 1500; 1900 1500 2046; t=2298 1634 1600 1873 1487 1900 1500 2046 1556; pmax二max(p);pmaxl二max (pmax); pmin=min (p) ;pmin1=min (pmin); for i=1:9%归一化处理 p1 (i, :) = (p(i, :)-pmin1)/(pmaxl-pmin1); end A* 11 = (t-pmi n1) / (pmaxl -pm i n1); ti=tr; net=newff (0 1;0 1;0 1, 7 1, *tansig* J logsig, *t

8、raingd); for i=1:9 end y=sim(net, 1500 2046 1556 0; y1=y*(pmaxl-pmi n1)+pmin1; 如果神经网络的训练函数使用trainlm,则仿真步骤会很少,但需要较大的系统 内存。 经预测,来年一月的销售量(y“为+003箱(每次运行后的结果可能不同)。 nntooI神经网络工具箱的使用 1) 在mat lab ()命令窗口键入nntoo I命令打开神经网络工具箱。如图: toxk/Data IwacecXI Mlrorkn *Output D B Ht Brror Data: J Input D1y St Mt* * Inpor

9、t. 1 f , 3. Cnrort X Delet Hlp O CLo“ j 2)点击Import按钮两次,分别把输入向量和目标输出加入到对应的窗口 (Inputs和Targets)中,有两种可供选择的加入对象(点击Import后可以 看见),一种是把当前工作区中的某个矩阵加入,另一种是通过.mat文件读入。 芒 iMport to Ketwork/Data lanager Source (5)Iriport fr disk file r/J-filc t-uic Select a VcriblcDztinatiTi (ko ecto on) If rovs* t 匕.8说 IM pplNm

10、Mmtuyyl Irgcrt As. Hetvork Input Dfiig Tercet Trii t i al Input St*ty Im 11 %1 Lyer Stdte? Output |0 Close 3)点击New Network按钮,填入各参数:(以最常用的带一个隐层的3层神经网 络为例说明,下而没有列出的参数表示使用默认值就可以了,例如Network Type 为默认的BP神经网络): i) Input Range这个通过点击Get From Input下拉框选择你力u入的输入向量 便可自动完成,当然也可以自己手动添加。 ii) Training Function鼠好使用TR

11、AINSCG,即共辄梯度法,其好处是 当训练不收敛时,它会自动停止训练,而且耗时较其他算法(TRAINLM, TRAINGD) 少,也就是收敛很快(如果收敛的话),而且Train Parameters输入不多,也不 用太多的技巧调整,一般指定迭代次数、结果显示频率和目标误差就可以了(详 见下文)。 i i i) Layer 1 Number of Neurons 隐层的神经元个数,这是需要经验慢 慢尝试并调整的,大致上由输入向量的维数、样本的数量和输出层(Layer2)的 神经元个数决定。一般来说,神经元越多,输出的数值与目标值越接近,但所花 费的训练时间也越长,反之,神经元越少,输出值与目标

12、值相差越大,但训练时 间会相应地减少,这是由于神经元越多其算法越复杂造成的,所以需要自己慢慢 尝试,找到一个合适的中间点。比如输入是3行5000列的0-9的随机整数矩阵, 在一开始选择1000个神经元,虽然精度比较高,但是花费的训练时间较长,而 且这样神经网络的结构与算法都非常复杂,不容易在实际应用中实现,尝试改为 100个,再调整为50个,如果发现在50个以下时精度较差,则可最后定为50 个神经元,等等。 i v) Layer 1 Transfer Funct i on般用 TANS IG (当然也可以 LOGS IG), 即表示隐层输出是-1,1之间的实数,与LOGS IG相比范围更大。

13、v)Layer 2 Number of Neurons输出层的神经元个数,需要与输出的矩 阵行数对应,比如设置为3,等等。 vi)Layer 2 Transfer Function如果是模式识别的两类(或者多类) 问题,一般用LOGSIG,即表示输出层的输出是0,1之间的实数;如果输出超过 0,1则可选择 PURELINo 所有参数输入后,可以先用View按钮预览一下,如图6。没有问题的话就可 以Create 了。另外,网络创建完毕后,如果需要手动设置权重的初始值,按View 按钮后有个Initialize选项卡,在那里可以设定。当然了,也可以不自行设定, 这时候Mat lab执行默认的程序进行权重的初始化。 ie of 4)点击Train按钮,到达Training Info选项卡,在输入向量Inputs和目标输 入向量Targets下拉框中选择你要训练的向量(即第二步加入的对象),如图7。 然后到达Train Parameters选项卡,填入适当的迭代次数epochs(一般先设 置一个较小的数如200,然后观察收敛结果,如果结果窗口的收敛曲线衰减较快, 则表示之前的参数比较有效,因此可填入2000或更大的数目使得网络收敛,否 则修改之前的参数)、结果显示频率show(例如要每隔50次迭代

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论