因为项目的需要,这周开始学习深度学习。为了了解深度神经网络,则需要从浅层网络学起,尤其是通过浅层神经网络的推导,掌握反向传播算法的实现原理。本文以一个3层神经网络为例,对从前向传播到反向传播的整个训练过程进行推导,并给出了python代码实现。
1. 前向传播算法
上图给出一个简单的三层神经网络,最左边一层为输入层 L1 ,中间层为隐藏层 L2 ,最右边一层为输出层 L3 。
本神经网络有参数 (W,b)=(W(1),b(1),W(2),b(2)) ,其中 W(l)ij 表示第 l 层第
z(2)1=W(1)11x1+W(1)12x2+b(1)1,a(2)1=f1(z(2)1)z(2)2=W(1)21x1+W(1)22x2+b(1)2,a(2)2=f1(z(2)2)z(2)3=W(1)31x1+W(1)32x2+b(1)3,a(2)3=f1(z(2)3)z(2)4=W(1)41x1