




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上BP神经网络算法实现一:关于BP网络BP (Back Propagation)神经网络,即误差反传误差反向传播算法的学习过程,由信息的正向传播和误差的反向传播两个过程组成。输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求,中间层可以设计为单隐层或者多隐层结构;最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。当实际输出与期望输出不符时,进入误差的反向传播阶段。误差通过输出层,按误差梯度下降的方式修正各层权值,向隐层、输入层
2、逐层反传。周而复始的信息正向传播和误差反向传播过程,是各层权值不断调整的过程,也是神经网络学习训练的过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。BP网络主要应用于以下方面:函数逼近、模式识别和分类、数据压缩。BP神经网络有较强的泛化性能,使网络平滑的逼近函数,能合理的响应被训练以外的输入。同时,BP网络又有自己的限制与不足,主要表现在:需要较长的训练时间、网络训练的结果可能使得权值逼近局部最优、训练数据范围外的数据泛化能力较差。为了避免训练陷入局部最优解,本程序采用改进的BP网络训练,既加入动量因子,使得网络在最优解附近有一定的震荡,跳出局部最优的范围
3、。BP网络训练中学习速率与动量因子的选择很重要,在后面的内容中将进行详细的讨论。二:训练的函数程序中训练的函数为一个三输入一输出的非线性函数,如下所示:,网络结构为:351三:程序及相关界面(VB)1 主界面代码:Private Sub Command1_Click()form2.Visible = FalseForm3.Visible = TrueEnd SubPrivate Sub Command2_Click()form2.Visible = FalseForm1.Visible = TrueEnd SubPrivate Sub Command3_Click()form2.Visible
4、 = FalseForm4.Visible = TrueEnd SubPrivate Sub Command4_Click()form2.Visible = FalseForm5.Visible = TrueEnd SubPrivate Sub Command5_Click()EndEnd SubPrivate Sub Form_Load()Command3.Enabled = FalseCommand4.Enabled = FalseEnd Sub2 查看网络结构代码:Private Sub Command1_Click()Form3.Visible = Falseform2.Visible
5、 = TrueEnd Sub3 网络训练 代码:Private Sub Command1_Click()Form1.Visible = Falseform2.Visible = TrueEnd SubPrivate Sub Command2_Click()Label2.Caption = "样本训练中"Dim i As Integer, j As Integer, k As Integer, p As Integer, s As SingleDim Maxx(1 To 3) As Single, Minx(1 To 3) As Single, Meanx(1 To 3) A
6、s SingleDim x(1 To 3, 1 To 100) As Single, sumx(1 To 3) As Single, Temp As SingleDim Datex(1 To 3, 1 To 100) As Single, inputx(1 To 3) As Single, outputx(1 To 100) As SingleDim Ex(1 To 100) As SingleDim time(1 To 5000) As Integer, cishu(1 To 100) As IntegerDim Dv_1(1 To 5, 1 To 3) As Single, Dw_1(1
7、To 5) As SingleDim R As SingleDim Maxd As Single, Mind As SingleDim s1(1 To 5) As Single, y1(1 To 5, 1 To 100) As Single, s2 As Single, y2(1 To 100) As SingleDim deltW(1 To 100) As Single, deltV(1 To 5, 1 To 100) As SingleDim Dw(1 To 5) As Single, Dv(1 To 5, 1 To 3) As SingleDim MyIn(1 To 3) As Sing
8、leDim Errorx(1 To 5000) As SingleRandomizeFor i = 1 To 3 Maxx(i) = 0 Minx(i) = 0 Meanx(i) = 0Next iTemp = 0Maxd = 0Mind = 0For i = 1 To 5 For j = 1 To 3 Dv_1(i, j) = 0 v(i, j) = 2 * Rnd - 1 Next j Dw_1(i) = 0 w(i) = 2 * Rnd - 1Next iFor j = 1 To 3 For i = 1 To 100 x(j, i) = 4 * (2 * Rnd - 1) Next i
9、sumx(j) = 0Next j'求最值For j = 1 To 3 For i = 1 To 100 If x(j, i) >= Maxx(j) Then Maxx(j) = x(j, i) End If If x(j, i) <= Minx(j) Then Minx(j) = x(j, i) Temp = Temp + x(j, i) End If Next i sumx(j) = Temp Temp = 0 Meanx(j) = sumx(j) / 100Next j'归一化For j = 1 To 3 For i = 1 To 100 If Maxx(j)
10、 - x(j, i) >= x(j, i) - Minx(j) Then R = Maxx(j) - x(j, i) Else R = x(j, i) - Minx(j) End If Datex(j, i) = (x(j, i) - Meanx(j) / R Next iNext j'期望输出For i = 1 To 100 For j = 1 To 3 inputx(j) = Datex(j, i) Next j outputx(i) = 2 * (inputx(1) + Sin(inputx(2) + Exp(inputx(3)Next i'输出归一化For i =
11、 1 To 100 If Maxd <= outputx(i) Then Maxd = outputx(i) End If If Mind >= outputx(i) Then Mind = outputx(i) End IfNext iFor i = 1 To 100 Ex(i) = (outputx(i) - Mind) / (Maxd - Mind)Next i'训练For s = 1 To 5000 Step 1 time(s) = s For p = 1 To 100 cishu(p) = p For i = 1 To 3 MyIn(i) = Datex(i, p
12、) Next i For i = 1 To 5 For j = 1 To 3 Temp = Temp + v(i, j) * MyIn(j) Next j s1(i) = Temp Temp = 0 Next i For i = 1 To 5 y1(i, p) = 1 / (1 + Exp(-s1(i) Next i For i = 1 To 3 Temp = y1(i, p) * w(i) + Temp Next i s2 = Temp Temp = 0 y2(p) = 1 / (1 + Exp(-s2) deltW(p) = (Ex(p) - y2(p) * y2(p) * (1 - y2
13、(p) For i = 1 To 5 deltV(i, p) = deltW(p) * w(i) * y1(i, p) * (1 - y1(i, p) Next i Next p'误差 For i = 1 To 100 Temp = Temp + (Ex(i) - y2(i) 2 Next i Errorx(s) = Temp Temp = 0'调整权值 For i = 1 To 5 Dw_1(i) = Dw(i) Next i For i = 1 To 5 For j = 1 To 100 Temp = Temp + deltW(j) * y1(i, j) Next j Dw
14、(i) = Temp Temp = 0 Next i For i = 1 To 5 For j = 1 To 3 Dv_1(i, j) = Dv(i, j) Next j Next i For i = 1 To 5 For j = 1 To 3 For k = 1 To 100 Temp = Temp + deltV(i, k) * Datex(j, k) Next k Dv(i, j) = Temp Temp = 0 Next j Next i For i = 1 To 5 w(i) = 0.2 * Dw(i) + 0.2 * Dw_1(i) + w(i) Next i For i = 1
15、To 3 For j = 1 To 5 v(j, i) = 0.2 * Dv(j, i) + 0.2 * Dv_1(j, i) + v(j, i) Next j Next i'画图 Picture1.Cls Picture1.ScaleTop = 1.5 Picture1.ScaleHeight = -2 Picture1.ScaleLeft = -10 Picture1.ScaleWidth = 120 Picture1.Line (-9, 0)-(110, 0) Picture1.Line (0, 0)-(0, 1.5) For i = 1 To 100 Picture1.PSet
16、 (cishu(i), Ex(i), RGB(128, 128, 0) Picture1.PSet (cishu(i), y2(i), RGB(128, 0, 0) Next i For i = 1 To 99 Picture1.Line (cishu(i), Ex(i)-(cishu(i + 1), Ex(i + 1), RGB(128, 128, 0) Picture1.Line (cishu(i), y2(i)-(cishu(i + 1), y2(i + 1), RGB(128, 0, 0) Next i'延时 For j = 1 To 1000 For k = 1 To 50
17、Next k Next j Picture2.Cls Picture2.Print s DoEventsNext sLabel2.Caption = ""form2.Command3.Enabled = Trueform2.Command4.Enabled = True'泛化Dim test(1 To 3, 1 To 20) As Single, sumE(1 To 3) As SingleDim MaxE(1 To 3) As Single, MinE(1 To 3) As Single, MeanE(1 To 3) As SingleDim MaxxE As S
18、ingle, MinxE As SingleDim des(1 To 3) As Single, outE(1 To 20) As SingleDim MIn(1 To 3) As Single, s11(1 To 5) As Single, y11(1 To 5, 1 To 20) As Single, s22 As SingleDim DateE(1 To 3, 1 To 20) As SingleFor i = 1 To 20 For j = 1 To 3 test(j, i) = 4 * (2 * Rnd - 1) Next jNext iFor j = 1 To 3 For i =
19、1 To 20 If test(j, i) >= MaxE(j) Then MaxE(j) = test(j, i) End If If test(j, i) <= MinE(j) Then MinE(j) = test(j, i) Temp = Temp + test(j, i) End If Next i sumE(j) = Temp Temp = 0 MeanE(j) = sumE(j) / 100Next j'归一化For j = 1 To 3 For i = 1 To 20 If MaxE(j) - test(j, i) >= test(j, i) - Mi
20、nE(j) Then R = MaxE(j) - test(j, i) Else R = test(j, i) - MinE(j) End If DateE(j, i) = (test(j, i) - MeanE(j) / R Next iNext j'求输出 For p = 1 To 20 Ti(p) = p For i = 1 To 3 MIn(i) = DateE(i, p) Next i For i = 1 To 5 For j = 1 To 3 Temp = Temp + v(i, j) * MIn(j) Next j s11(i) = Temp Temp = 0 Next
21、i For i = 1 To 5 y11(i, p) = 1 / (1 + Exp(-s11(i) Next i For i = 1 To 3 Temp = y11(i, p) * w(i) + Temp Next i s22 = Temp Temp = 0 y22(p) = 1 / (1 + Exp(-s22) Next p'输出及归一化For j = 1 To 20 For i = 1 To 3 des(i) = DateE(i, j) Next i outE(j) = 2 * (des(1) + Sin(des(2) + Exp(des(3)Next j'输出归一化For
22、 i = 1 To 20 If MaxxE <= outE(i) Then MaxxE = outE(i) End If If MinxE >= outE(i) Then MinxE = outE(i) End IfNext iFor i = 1 To 20 outD(i) = (outE(i) - MinxE) / (MaxxE - MinxE)Next iEnd Sub4 查看训练结果代码:Private Sub Command1_Click()Form5.Visible = Falseform2.Visible = TrueEnd SubPrivate Sub Command
23、2_Click()Picture1.ClsPicture2.ClsDim i As Integer, j As IntegerFor i = 1 To 5 For j = 1 To 3 Picture2.Print v(i, j); Spc(4); Next j Picture2.Print Picture2.Print Picture1.Print w(i);Next iEnd Sub5 泛化代码:Private Sub Command1_Click()Form4.Visible = Falseform2.Visible = TrueEnd SubPrivate Sub Command2_C
24、lick()For s = 1 To 20 'Picture1.Cls Picture1.ScaleTop = 1.5 Picture1.ScaleHeight = -2 Picture1.ScaleLeft = -5 Picture1.ScaleWidth = 30 Picture1.Line (-5, 0)-(25, 0) Picture1.Line (0, -0.5)-(0, 1.5) For i = 1 To 20 Picture1.PSet (Ti(i), outD(i), RGB(128, 128, 0) Picture1.PSet (Ti(i), y22(i), RGB(128, 0, 0) Next i For i = 1 To 19 Picture1.Line (Ti(i), outD(i)-(Ti(i + 1), outD(i + 1), RGB(128, 128, 0) Picture1.Line (Ti(i), y22(i)-(Ti(i + 1), y22(i + 1), RGB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 计划生育政策与青少年生殖健康促进考核试卷
- 激发想象力新材料新技术的未来前景考核试卷
- 纸张加工中的涂布层附着强度测试考核试卷
- 氨纶纤维的抗氧化性能分析考核试卷
- 课堂演示仪器创新考核试卷
- 服装品牌专卖店空间设计
- 电机在分布式发电系统的应用考核试卷
- 船舶改装项目施工质量控制点设置考核试卷
- 2025年驱虫灭害化学品项目合作计划书
- 《医用高分子材料》课件
- 白酒酿造工艺课件
- 雷霆传奇亲测-h5修改汇总
- 关节镜技术在骨科的应用
- 2023年版-肿瘤内科临床路径
- 《中国传统文化心理学》课件第五章 传统文化与心理治疗(修)
- Q∕GDW 11445-2015 国家电网公司管理信息系统安全基线要求
- java考试管理系统源代码开题报告外文翻译英文文献计001
- 机械创新设计技术结课论文
- 人教版九年级历史中考【政治经济专题复习课件44张】(共44张)
- T∕CSEA 6-2018 锌镍合金电镀技术条件
- 湘教版初中地理会考重点图复习汇集
评论
0/150
提交评论