BackPropagation是BP神经网络的基础算法,不过相信有很多人对于各种资料上教程书籍上看到的反向传播的推导看的云里雾里,刚开始看花书的时候也是这样,不过之后又带着迷惑查找看了许多讲解,勉强能够看懂了,其中用具体数值代替链式法则公式推导的方法很容易理解,在这里我和大家分享一下。
讲到神经网络,tensor传播图是最为清晰的了,如下所示:
第一层是输入层,包括两个神经元i1,i2,和截距项b1,第二层是隐藏层,包括两个神经元h1,h2,和截距项b2。第三层是输出o1,o2,wi是层与层之间的权重,激活函数默认为sigmoid函数。
现在对他们赋上初值,如下图:
其中输入数据 i1=0.05,i2=0.10;
输出数据o1=0.01,o2=0.99
目标:给出输入数据i1,i2(0.05,0.10),使输出尽可能和原始输出接近。
step1 前向传播
1.输入层--->隐藏层:
计算输入神经元h1的加权和: