前面的文章介绍了单神经元的实现方式以及浅显的了解一下浅层神经网络,我们也知道,浅层神经网络的传播和单神经元的传播有很多相似的地方,那么这篇文章就介绍一下浅层神经网络是如何实现前向传播的!
首先,我们构建出一个浅层神经网络的结构图:
说明一下,a的上角标是第几层,下角标是该层的第几个神经元,之后我们的深层神经网络的构建也是如此!!!
单样本计算浅层神经网络的前向传播
所以我们根据单神经元的计算方式,一样可以计算出第一层每一个神经元的 z 和 a :
当然了,为了计算机计算的效率,我们任然要将数据进行向量化来计算:
其中,每一个的 、、、都含有3个数据,分表代表三个输入特征的权重,这里为了方便表达层次关系和神经元个数的关系,就简写了。
因此,我们最后的公式可以写成这样:
第二层的计算也是一样,只不过对于第二层来说,第一层就相当于输入特征,因此,我们只需要将第一层的输入特征 x 换成第二层的输入,也就是第一层计算出的 a 就可以了:
多样本计算浅层神经网络的前向传播
上面的计算我们只考虑了一个样本,所以也只有一个样本的所有输入特征,但是当我们有 m 个样本时,我们就需要再次进行向量化,我们先看一下对于代码来说,用遍历的方式是怎么计算多样本的:
我们知道使用循环来遍历样本的效率非常的低,所以我们要消除这个for循环,怎么消除?当然是进行重要的向量化操作!!
此时我们有m个样本,所以对于输入特征 x 来说,也有m组输入特征,所以我们把大写的X作为所有样本的个自的x的向量:
由此,代码就可以写成了:
关于A和Z,在向量化后的数据是这样的:
最后算出第二层的A和上面也是一样的,就不多说了,我们算出第二层的 就可以继续传播到输出层,算出成本了,具体公式是和单神经元的成本公式是一样的,这里我们复习一个点:
损失函数用于单样本,计算单个样本的损失,而成本是对于多样本,每一个样本的损失的平均值
本案例的成本计算公式如下: