BP神经网络
2016-06-01 13:20
309 查看
BP神经网络
基本BP神经网络算法包括:- 信号的前向传播
- 误差的反向传播
也即计算实际输出时按照输入到输出的方向进行,权值阈值调整则相反。
BP是一种多层前馈神经网络,由输入层、隐含层和输出层组成。层与层之间有两种信号在流动:一种是从输入流向输出的工作信号,是输入和权值的函数;另一种是输入流向输出的信号,即误差。
信号的前向传播:
==隐含层==第i个节点的输入和输出分别为:输入:
neti=∑j=1Mωijxj+θi
输出:
oi=ϕ(neti)=ϕ(∑j=1Mωijxj+θi)
M——输入层节点个数
ωij——隐含层第i个节点到第j个节点之间的权值
θi表示隐含层第i个节点的阈值
ϕ表示隐含层的激励函数
==输出层==第k个节点的输入和输出分别为:
输入:
netk=∑i=1qωkiyi+ak=∑i=1qωkiϕ(neti)+ak
输出:
ok=ψ(netk)
误差的反向传播
由输出层开始逐层计算各层神经元的输出误差,根据==梯度下降法==调节各层的权值和阈值每一个样本p的二次型误差准则函数Ep:
Ep=12∑k=1L(Tk−ok)2
系统对P个训练样本的总误差准则函数为:
Ep=12∑p=1P∑k=1L(Tk−ok)
根据梯度下降法依次修正输出层权值的修正量Δωki、输出层阈值的修正量Δak、隐含层权值的修正量Δωij、隐含层阈值的修正量Δθi。
Δωki=−η∂E∂ωki
Δak=−η∂E∂ak
Δωij=−η∂E∂ωij
Δθi=−η∂E∂θi
以上几个公式有专门公式推导。
BP算法流程图:
Created with Raphaël 2.1.0开始初始化权值阈值输入训练样本计算隐含层各神经元的输入输出计算输出层各神经元的输入输出计算输出层各误差计算隐含层各误差修正输出层、隐含层权值和阈值样本全部训练完?误差<e?本轮训练结束更新训练总步数yesnoyesno相关文章推荐
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法
- 基于C++实现的各种内部排序算法汇总
- C++线性时间的排序算法分析
- C++实现汉诺塔算法经典实例
- PHP实现克鲁斯卡尔算法实例解析