BP神经网络算法推导
Posted 伤心兮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BP神经网络算法推导相关的知识,希望对你有一定的参考价值。
一、BP神经网络
BP神经网络是一种按照误差逆向传播算法训练的多层前馈神经网络,是应用最广泛也是最简单的神经网络模型之一。
1.1 BP神经网络的结构
- 神经网络结构如下
- 其中 x 1 , x 2 x_1,x_2 x1,x2为输入, φ \\varphi φ为激活函数。BP神经网络是一种按误差反向传播(简称误差反传)训练的多层前馈网络,其算法称为BP算法,它的基本思想是梯度下降法,利用梯度搜索技术,以期使网络的实际输出值和期望输出值的误差均方差为最小。其均方误差表达式为 F = e 1 2 + e 2 2 = ( d 1 − y 1 ) 2 + ( d 2 − y 2 ) 2 \\beginalign F=e_1^2+e_2^2=(d_1-y_1)^2+(d_2-y_2)^2 \\endalign F=e12+e22=(d1−y1)2+(d2−y2)2其中 e 1 , e 2 e_1,e_2 e1,e2为误差, d 1 , d 2 d_1,d_2 d1,d2为样本真实标签, y 1 , y 2 y_1,y_2 y1,y2为预测输。
1.2 BP神经网络算法流程
- BP神经网络包括前向传播的反向传播,其算法流程图如图所示,
首先给定算法模型的输入输出,也就是所说的训练集。接着求取模型的实际输出,就是模型计算输出的真实值。之后进行误差的计算,当误差满足所设需求时,一般为90%-95%,或者循环次数达到所设置值时,则结束训练。否则求取误差梯度和权值阈值更新,重复求取实际输出。
1.3 前向传播
输入信号通过隐含层作用于输出节点,经过非线性变换,产生输出信号,若实际输出与期望输出不相符,则转入误差的反向传播过程。以 y 1 y_1 y1这一条线路为例,
其前向传播公式为 y 1 ( 1 ) = φ ( x 1 ⋅ w 11 ( 1 ) + x 2 ⋅ w 12 ( 1 ) ) \\beginalign y_1^(1)=\\varphi(x_1\\cdot w_11^(1)+x_2\\cdot w_12^(1)) \\endalign y1(1)=φ(x1⋅w11(1)+x2⋅w12(1))令 v 1 ( 1 ) = x 1 ⋅ w 11 ( 1 ) + x 2 ⋅ w 12 1 v_1^(1)=x_1\\cdot w_11^(1)+x_2\\cdot w_12^1 v1(1)=x1⋅w11(1)+x2⋅w121,则上式变为
y 1 ( 1 ) = φ ( v 1 ( 1 ) ) \\beginalign y_1^(1)=\\varphi(v_1^(1)) \\endalign y1(1)=φ(v1(1))最终前向传播的结果为 y 1 = φ ( y 1 ( 1 ) ⋅ w 11 ( 2 ) + y 2 ( 1 ) ⋅ w 12 ( 2 ) ) \\beginalign y_1=\\varphi(y_1^(1)\\cdot w_11^(2)+y_2^(1)\\cdot w_12^(2)) \\endalign y1=φ(y1(1)⋅w11(2)+y2(1)⋅w12(2))最终误差为: e 1 2 = [ d 1 − φ ( y 1 ( 1 ) ⋅ w 11 ( 2 ) + y 2 ( 1 ) ⋅ w 12 ( 2 ) ) ] 2 \\beginalign e_1^2=[d_1-\\varphi(y_1^(1)\\cdot w_11^(2)+y_2^(1)\\cdot w_12^(2))]^2 \\endalign e12=[d1−φ(y1(1)⋅w11(2)+y2(1)⋅w12(2))]2令 v 1 ( 2 ) = y 1 ( 1 ) ⋅ w 11 ( 2 ) + y 2 ( 1 ) ⋅ w 12 ( 2 ) v_1^(2)=y_1^(1)\\cdot w_11^(2)+y_2^(1)\\cdot w_12^(2) v1(2)=y1(1)⋅w11(2)+y2(1)⋅w12(2)得到, e 1 2 = [ d 1 − φ ( v 1 ( 2 ) ) ] 2 \\beginalign e_1^2=[d_1-\\varphi(v_1^(2))]^2 \\endalign BP神经网络算法推导