系列(一)至(八)讨论了logistic regression,并且训练logistic regression model用于识别带猫的图片,得到70%的accuracy,但并没有涉及真正的neural network(神经网络)。

本文开始讨论构建一个真正的神经网络,首先从shallow neural network开始。

1.两层的神经网络

一个两层的神经网络如图:

Fig.1 a two-layer neural network
Fig.1 a two-layer neural network
  • 第0层
    是输入,所以这一层也叫做input layer就是前文1提到的一个sample的输入:
  • 第1层
    也叫做hidden layer,是神经网络进行计算的layer,这一层共有四个node

  • 第2层
    输入在经过神经网络的计算以后,输出最后的结果。这一层只有一个node,也叫做output layer

可以看出,神经网络重要的结构就是网络中的单个node,下面具体讨论。

2.神经网络的node

一个神经网络中的node细节如下图:

Fig.2 a neural network node
Fig.2 a neural network node

从图2可以看出,一个node需要做两个计算:

  1. 计算
    所以node会包含相应的,例如图中三个输入,所以有
  2. 计算

综合(1)(2),相当于单个node对输入做了一次logistic regression

3.两层神经网络再讨论

把单个node的计算应用到图1的神经网络中。

3.1 hidden layer

首先讨论hidden layer中单个node的计算,如下图。

Fig.3 a two layers neural network
Fig.3 a two layers neural network

图中,上标表示这是第1层的神经网络,下标表示这是此层神经网络的第1个node,以此类推。注意不要和的上标混淆,表示samples中的第个sample。

已知单个node是对输入进行了一次logistic regression,所以有:

由于第1层有三个输入,其中(1)式可以展开:

其中表示第1层,第1个node中相应的w(features)。

同理(2)(3)(4)式,有

并且(1)(2)(3)(4)式中,可以看作一个的vector:

也可以当作一个的matrix:

所以(1)(2)(3)(4)(即)可以同时计算:

进而有

3.2 output layer

讨论output layer中单个node的计算,即计算,同样是logistic regression,有

最后(10)式就是得到的最后输出结果。