这篇文章主要想通过一个双层的神经网络,来介绍神经网络将会用到的各种矩阵和向量的表达。
1.单样本向量化:
用圆圈表示神经网络的计算单元:
一个神经网络只是这样子做了好多次重复计算:
我们先看其中一个节点:
把以上式子向量化:
2.多样本向量化:
以上内容介绍了如何针对于单一的训练样本,在神经网络上计算出预测值。
下面,将会了解到如何向量化多个训练样本,并计算出结果。
将各个训练样本组合成矩阵,对矩阵的各列进行计算,这种计算是所有的训练样本同时进行的,以下是实现它具体的步骤:
m个训练样本:
一个样本
x
(
i
)
x^{(i)}
x(i)可以得到一个预测值
y
(
i
)
y^{(i)}
y(i),m个样本,就得到m个预测值。
一个样本,对应的权重
w
w
w是一个
4
×
3
4\times 3
4×3的矩阵,每一行有三列,因为每一个样本有三个属性
x
1
,
x
2
,
x
3
x_1,x_2,x_3
x1,x2,x3:
一个样本,再layer1层计算得到一个
4
×
1
4\times 1
4×1的向量
z
[
1
]
z^{[1]}
z[1],
m个样本,在layer1层计算得到一个
4
×
m
4\times m
4×m的矩阵
Z
[
1
]
Z^{[1]}
Z[1]:
一个样本,在layer1层计算得到的
4
×
1
4×1
4×1的向量
z
[
1
]
z^{[1]}
z[1],再经过激活函数,得到
4
×
1
4\times 1
4×1的
a
[
1
]
a^{[1]}
a[1]:
m个样本,在layer1层计算得到一个
4
×
m
4\times m
4×m的矩阵
A
[
1
]
A^{[1]}
A[1]:
现在,我们在layer1层,对m个样本同时计算
Z
[
1
]
=
W
[
1
]
X
Z^{[1]}=W^{[1]}X
Z[1]=W[1]X,就可以写成(我们需要注意的是,在layer1层,每一个样本对应的权重都是
W
[
1
]
W^{[1]}
W[1]:
总结
这篇文章,我们主要介绍了layer1的计算,一个样本在layer1的计算以及m个样本在layer1的计算,即便随着网络的深度变大,基本上也还是重复这两步运算,只不过是比这里你看到的重复次数更多!