本文来自于网易云课堂
1 符号约定
- []表示层数,()表示样本数,例如 a[1] a [ 1 ] 表示神经网络的第一层, a[1](1) a [ 1 ] ( 1 ) 表示神经网络第一层的第一个样本。
- a[1]1 a 1 [ 1 ] 表示 a[1] a [ 1 ] 的第一个特征或者参数。
2 神经网络的表示
习惯上,我们不把输入层作为神经网络的层数,也就是上图表示的是一个标准的2层神经网络。
3 计算神经网络的输出
神经网络的每个节点都表示计算的两个步骤,也就是说神经网络实际上就是计算这些步骤很多次而已,每个节点的计算如下图。
对于下图所示的2层神经网络来说,该如何计算呢?
首先计算第一个节点,有:
z[1]1=w[1]T1x+b[1]1
z
1
[
1
]
=
w
1
[
1
]
T
x
+
b
1
[
1
]
a[1]1=σ(z[1]1)
a
1
[
1
]
=
σ
(
z
1
[
1
]
)
对于第二个节点,有
z[1]2=w[1]T2x+b[1]2
z
2
[
1
]
=
w
2
[
1
]
T
x
+
b
2
[
1
]
a[1]2=σ(z[1]2)
a
2
[
1
]
=
σ
(
z
2
[
1
]
)
那么对于第一层来说,有
那么,将其向量化,我们可以得到
4 m个样本的向量化实现
对于m个样本来说,我们可以这样来实现,如下图:
但是这样引入了for循环,所以为了将m个样本向量化,可以得到:
从上图可以看到,矩阵的横轴其实就是样本数,纵轴是节点数也即特征值。这样,我们可以得到神经网络的正向传播算法的向量化实现,如下图。