在掌握了逻辑回归算法后,先来学习浅层神经网络,之后再对深度神经网络进行学习。
1. 原理推导
1.1 神经网络表示
神经网络由输入层、隐含层和输出层构成。L层神经网络,隐含层为第1 ~ (L - 1)层,输出层为第L层。为了方便,将输入层写成第0层。
定义:上标[l]表示第l层,下标j表示第j个节点。
例如,下图为2层神经网络,包含1个隐藏层:
输入层和隐含层可以写成:
a[0]=x=⎡⎣⎢x1x2x3⎤⎦⎥,a[1]=⎡⎣⎢⎢⎢⎢⎢⎢a[1]1a[1]2a[1]3a[1]4⎤⎦⎥⎥⎥⎥⎥⎥(1)
1.2 正向传播(Forward Propagation)
计算过程与逻辑回归类似,只是多了隐含层,如下:
z[1]1=w[1]T1x+b[1]1,a[1]1=g(z[1]1)z[1]2=w[1]T2x+b[1]2,a[1]2=g(z[1]2)z[1]3=w[1]T3x+b[1]3,a[1]3=g(z[1]3)z[1]4=w[1]T4x+b[1]4,a[1]4=g(z[1]4)(2)
式中,g(z)为激活函数。可将上式向量化为:
⎡⎣⎢⎢⎢⎢⎢⎢z[1]1z[1]2z[1]3z[1]4⎤⎦⎥⎥⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢⎢−−−−w[1]T1w[1]T2w[1]T3w[1]T4−−−−⎤⎦⎥⎥⎥⎥⎥⎥⎡⎣⎢x1x2x3⎤⎦⎥+⎡⎣⎢⎢⎢⎢⎢⎢b[1]1b[1]2b[1]3b[1]4⎤⎦⎥⎥⎥⎥⎥⎥,⎡⎣⎢⎢⎢⎢⎢⎢a[1]1a[1]2a[1]3a[1]4⎤⎦⎥⎥⎥⎥⎥⎥=g⎛⎝⎜⎜⎜⎜⎜⎜⎡⎣⎢⎢⎢⎢⎢⎢z[1]1z[1]2z[1]3z[1]4⎤⎦⎥⎥⎥⎥⎥⎥⎞⎠⎟⎟⎟⎟⎟⎟(3)
即:
z[1]=W[1]x+b[1],a[1]=g(z[1])(4)
式中,
z[1]=⎡⎣⎢⎢