神经网络算法推演---------神经网络中的反向传播算法公式推导及迭代演示

Posted 岳飞传

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了神经网络算法推演---------神经网络中的反向传播算法公式推导及迭代演示相关的知识,希望对你有一定的参考价值。

神经网络算法推演——神经网络中反向传播算法代码实现

1. 算法背景

如下图来自charlotte77的博文
看完charlotte77大神的博文,终于弄明白了神经网络中的前向传播及反向传播算法,自己也搜索各种资料,文档,总结了其算法推导的过程,再加上本篇文章,跟着charlotte77大神,以示例推演+代码实现,以进一步理解神经网络的梯度下降算法。

  如下图中的神经网络示例,跟随charlotte77大神开始推演示例中的计算过程,并以python代码实现;

网络描述:一个典型的三层神经网络,其中:
 第一层是输入层,包含两个神经元i1,i2,和截距项b1;
 第二层是隐含层,包含两个神经元h1,h2和截距项b2;
 第三层是输出o1,o2,每条线上标的wi是层与层之间连接的权重,激活函数我们默认为sigmoid函数。

网络赋上初值,
输入数据 i1=0.05,i2=0.10;
输出数据 o1=0.01,o2=0.99;
初始权重 w1=0.15,w2=0.20,w3=0.25,w4=0.30;
w5=0.40,w6=0.45,w7=0.50,w8=0.55
b1 = 0.35 b2 = 0.60

目标给出输入数据i1,i2(0.05和0.10),使输出尽可能与原始输出o1,o2(0.01和0.99)接近。

2 前向传播

依据前向传播算法计算每个节点的输出。
以下即单个“神经元”的图示:图片来源

这个“神经元”是一个以 x1,x2,x3 x 1 , x 2 , x 3 及截距 +1 + 1 为输入值的运算单元,其输出为 hW,b(x)=f(WTx)=f(3i=1Wixi+b) h W , b ( x ) = f ( W T x ) = f ( ∑ i = 1 3 W i x i + b ) ,其中函数 f:RR f : ℜ ↦ ℜ 被称为“激活函数”。在本教程中,我们选用sigmoid函数作为”’激活函数”’ f() f ( ⋅ )

f(z)=11+exp(z) f ( z ) = 1 1 + exp ⁡ ( − z )

2.1 输入层—->隐含层:

计算神经元h1的输入加权和 Neth1 N e t h 1

Neth1=w1i1+w2i2+b1 N e t h 1 = w 1 ∗ i 1 + w 2 ∗ i 2 + b 1
带入数值得: Neth1=0.150.05+0.200.10+0.35=0.3775 N e t h 1 = 0.15 ∗ 0.05 + 0.20 ∗ 0.10 + 0.35 = 0.3775

神经元h1的输出 Outh1 O u t h 1 :(此处用到激活函数为sigmoid函数:

Outh1=f(Neth1)=f(w1i1+w2i2+b1) O u t h 1 = f ( N e t h 1 ) = f ( w 1 ∗ i 1 + w 2 ∗ i 2 + b 1 )
=11+exp(Neth1)=11+exp(0.3775)=0.5933 = 1 1 + exp ⁡ ( − N e t h 1 ) = 1 1 + e x p ( − 0.3775 ) = 0.5933

同理神经元h1的输入加权和:
Neth2=w3i1+w4i2+b1 N e t h 2 = w 3 ∗ i 1 + w 4 ∗ i 2 + b 1
Outh2=f(Neth2)=f(w3i1神经网络算法推演-------前馈神经网络(feedforward neural network )

多元函数链式法则与反向传播算法的实例推演

多元函数链式法则与反向传播算法的实例推演

神经网络中的单位是啥(反向传播算法)

难以理解神经网络中的反向传播算法

卷积神经网络 CNN BP算法推导