1.3.1 单隐层网络的数学实现
神经网络概览
如图所示,整个神经网络的概览大致如下,下面我们会讨论这个网络时如何一步步实现的。
神经网络表示
我们来解释一下这个图中的中间隐藏层是什么含义:
在一个神经网络中,当你使用监督学习来训练他的时候,训练集包括输入x和输出y。那么隐藏层的含义就是:在训练集中这些中间节点的真正数值,我们是不知道的。我们只能知道输入和输出的数值,但是在中间节点中的数值我们不知道,于是就称之为隐藏层。表示你无法在训练集中看到。
这里,我们再引入一个新的上标
这个a也表示**的意思,它意味着网络中不同层的值会传给后面的层。输入层将x的值传给隐藏层,我们将输入层的**值传给隐藏层,将输入层的**值称为
下一层的隐藏层也同样会产生**值,我们将之记为
计算神经网络的输出
这里我们讨论一下神经网络的输出,究竟是如何计算出来的。这个过程就像logistic回归一样,会被计算很多次。只是会比Logistic更复杂一些。
如图所示,左图中的圆圈代表了回归计算的两个步骤,首先,你计算出z,然后计算出**函数,也就是a=sigmoid(z),神经网络只不过是把这一个步骤重复很多次而已。从右侧图中我们可以看出,这其实是完全一样的过程。隐藏层的第一个节点我们来计算z1,隐藏层的第二个节点我们来计算z2。重复这个过程,我们在下图进一步明确表示:
如图所示,我们用向量化来整体表示这一个过程,写成矩阵形式。
我们最后再来看一下整体的计算过程
当你要计算一个单隐层网络的时候,你实际上只需要计算右边被框起来的部分就可以了。单隐层的逻辑回归是上两个式子,输出层的逻辑回归是下两个式子。