通过前边的讲解,我们对逻辑回归有了一个认识。现在我们就要正式的开始神经网络的学习了。我们通过多个逻辑回归的堆叠就可以构成一个神经网络。
上图中一共有3个逻辑回归,左边竖排着的两个逻辑回归的输出又作为右边逻辑回归的输入。右边逻辑回归的输出作为整个神经网络的输出。因为这种堆叠,神经网络的功能比逻辑回归也更加强大,它能找出更复杂,更有意义的模型。在后边的文章里,我们会自己实现一个神经网络来识别人的手写数字。这对神经网络来说并不复杂。

实际上上边那个图只是为了方便你理解,左边两个逻辑回归的feature:x1,x2是公用的,没有必要画两个。通常你看到的神经网络是下图这样的:

输入层指的是最左边一层的x1,x2。 输出层指的是最右边的a_1^{[2]}。除了输入层和输出层的其他层都是隐藏层。我们一般说的神经网络的层数并不包括输入层,比如上图我们就说那是一个2层的神经网络。a_1^{[2]}中的上标[2]表示这是第二层。下标1的表示是这层的第一个元素。a_2^{[1]}就表示这是第一层的第二个a。图中每一个a都是之前我们逻辑回归中的\hat{y}
其中:
a_1^{[1]}=sigmoid(w_{11}^{[1]}*x1+w_{12}^{[1]}*x2+b_1^{[1]})
a_2^{[1]}=sigmoid(w_{21}^{[1]}*x1+w_{22}^{[1]}*x2+b_2^{[1]})
a_1^{[2]}=sigmoid(w_{11}^{[2]}*a_1^{[1]}+w_{12}^{[2]}*a_2^{[1]}+b_1^{[2]})
公式中关于w的下标比较特殊,需要格外注意一下。w_{21}表示从当前层的第二个元素到前一层的第一个元素的权重系数。我们把这些系数都标到图上:

对于loss function和cost function都和之前逻辑回归的定义类似:

Loss Function:

L(a_1^{[2]},y)=-(y\log{a_1^{[2]}}+(1-y)\log(1-a_1^{[2]}))

Cost Function:

J(w,b)=\frac{1}{m}\sum_{i=1}^{m}L({a_1^{[2]}}^{(i)},{y}^{(i)})

我们这个神经网络实在是简单,只有一个隐藏层,而且隐藏层中只有两个神经元。实际上从隐藏层可以有很多层,而且输入层可以有多个input,输出层也可以有多个output。
下一篇文章我们就要看如何求解Cost Function对于w,b的偏导数,从而得到梯度,这样我们就可以求得整个神经网络的模型。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

%d 博主赞过: