前文1讨论了构建一个浅层的神经网络,但是输入只有一个sample。那么如何训练多个samples呢?

1.多个samples的遍历算法

一个straightfoward的算法是遍历所有的samples:

这个算法遍历所有的samples,并且对每个sample计算,其中表示第i个sample,表示第层神经网络。
最后得到输出:

遍历算法的不足在于performance比较低。

2.多个samples的vectorization算法

logistic regression相似,这里也可以运用vectorization方法优化算法的performance。

如前文1图:

Fig.1 a two layers neural network
Fig.1 a two layers neural network

2.1 hidden layer

首先考虑第1层hidden layer的计算,单个sample有1

考虑多个samples,可以看作一个的matrix2

由(1)(2),多个samples下第1层的计算,有:

最后是一个的矩阵,其中每一个colum表示这一层神经网络的nodes对 sample的计算。

进而有:

2.2 output layer

在得到了hideen layer层输出结果之后,进行output layer层的计算:

进而有:

这样就使用了vectorization的方法同时计算了所有的samples并得到了输出结果。