BP神经网络实例含源码
BP神经网络算法实现
一:关于BP网络
BP (Back Propagation)神经网络,即误差反传误差反向传播算法的学习过程,由信息的正向传播和误差的反向传播两个过程组成。输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求,中间层可以设计为单隐层或者多隐层结构;最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。
当实际输出与期望输出不符时,进入误差的反向传播阶段。误差通过输出层,按误差梯度下降的方式修正各层权值,向隐层、输入层逐层反传。周而复始的信息正向传播和误差反向传播过程,是各层权值不断调整的过程,也是神经网络学习训练的过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。
BP网络主要应用于以下方面:函数逼近、模式识别和分类、数据压缩。BP神经网络有较强的泛化性能,使网络平滑的逼近函数,能合理的响应被训练以外的输入。
同时,BP网络又有自己的限制与不足,主要表现在:需要较长的训练时间、网络训练的结果可能使得权值逼近局部最优、训练数据范围外的数据泛化能力较差。
为了避免训练陷入局部最优解,本程序采用改进的BP网络训练,既加入动量因子,使得网络在最优解附近有一定的震荡,跳出局部最优的范围。
领导与管理的区别BP网络训练中学习速率与动量因子的选择很重要,在后面的内容中将进行详细的讨论。
二:训练的函数
程序中训练的函数为一个三输入一输出的非线性函数,如下所示:
x3xR,yxxe,,,,2sin(), ,,12
读孟子网络结构为:3—5—1
三:程序及相关界面(VB)
蛋白粉的功效与禁忌1 主界面
1
代码:
Private Sub Command1_Click() form2.Visible = Fal
Form3.Visible = True
End Sub
Private Sub Command2_Click() form2.Visible = Fal
Form1.Visible = True
End Sub
Private Sub Command3_Click() form2.Visible = Fal
Form4.Visible = True
End Sub
Private Sub Command4_Click() form2.Visible = Fal
胡适的诗歌
Form5.Visible = True 1981属什么
End Sub
Private Sub Command5_Click() End
End Sub
Private Sub Form_Load() Command3.Enabled = Fal Command4.Enabled = Fal End Sub
纯阳宫2 查看网络结构
2
代码:
Private Sub Command1_Click()
读书小报怎么做
Form3.Visible = Fal form2.Visible = True End Sub
3 网络训练
别说我小儿歌
代码:
3
Private Sub Command1_Click()
Form1.Visible = Fal
form2.Visible = True
End Sub
Private Sub Command2_Click()
Label2.Caption = "样本训练中…"
Dim i As Integer, j As Integer, k As Integer, p As Integer, s As Single
Dim Maxx(1 To 3) As Single, Minx(1 To 3) As Single, Meanx(1 To 3) As Single
Dim x(1 To 3, 1 To 100) As Single, sumx(1 To 3) As Single, Temp As Single