您的位置:首页 > 理论基础 > 计算机网络

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  神经网络 算法