←上一篇 | ↓↑ | 下一篇→ |
---|---|---|
2.19 总结习题 | 回到目录 | 3.2 神经网络表示 |
神经网络概览 (Neural Networks Overview)
本周你将学习如何实现一个神经网络。在我们深入学习具体技术之前,我希望快速的带你预览一下本周你将会学到的东西。如果这个视频中的某些细节你没有看懂你也不用担心,我们将在后面的几个视频中深入讨论技术细节。
现在我们开始快速浏览一下如何实现神经网络。上周我们讨论了逻辑回归,我们了解了这个模型如何与下面公式建立联系。
x w b } → z = w T x + b \left.\begin{matrix} x \\ w \\ b \end{matrix}\right\}\rightarrow z=w^Tx+b xwb⎭⎬⎫→z=wTx+b
如上所示,首先你需要输入特征 x x x ,参数 w w w 和 b b b ,通过这些你就可以计算出 z z z ,
x w b } → z = w T x + b → a = σ ( z ) → L ( a , y ) \left.\begin{matrix} x \\ w \\ b \end{matrix}\right\}\rightarrow z=w^Tx+b\rightarrow a=\sigma(z) \\ \rightarrow L(a,y) xwb⎭⎬⎫→z=wTx+b→a=σ(z)→L(a,y)
接下来使用就可以计算出 a a a 。我们将的符号换为表示输出 y ^ → a = σ ( z ) \hat{y}\rightarrow a=\sigma(z) y^→a=σ(z) ,然后可以计算出loss function L ( a , y ) L(a,y) L(a,y)
神经网络看起来是如下这个样子。正如我之前已经提到过,你可以把许多sigmoid单元堆叠起来形成一个神经网络。对于图3.1.1中的节点,它包含了之前讲的计算的两个步骤:首先通过公式3.1计算出值 z z z ,然后通过 σ ( z ) \sigma(z) σ(z) 计算值 a a a 。
在这个神经网络(图3.1.2)对应的3个节点,首先计算第一层网络中的各个节点相关的数 z [ 1 ] z^{[1]} z[1] ,接着计算 a [ 1 ] a^{[1]} a[1] ,在计算下一层网络同理; 我们会使用符号 [ m ] ^{[m]} [m] 表示第 m m m 层网络中节点相关的数,这些节点的集合被称为第 m m m 层网络。这样可以保证 [ m ] ^{[m]} [m] 不会和我们之前用来表示单个的训练样本的 ( i ) ^{(i)} (i) (即我们使用表示第 i i i 个训练样本)混淆; 整个计算过程,公式如下: 公式3.3:
x W [ 1 ] b [ 1 ] } → z [ 1 ] = W [ 1 ] x + b [ 1 ] → a [ 1 ] = σ ( z [ 1 ] ) \left.\begin{matrix} x \\ W^{[1]} \\ b^{[1]} \end{matrix}\right\}\rightarrow z^{[1]}=W^{[1]}x+b^{[1]}\rightarrow a^{[1]}=\sigma(z^{[1]}) xW[1]b[1]⎭⎬⎫→z[1]=W[1]x+b[1]→a[1]=σ(z[1])
公式3.4:
a [ 1 ] = σ ( z [ 1 ] ) W [ 2 ] b [ 2 ] } → z [ 2 ] = W [ 2 ] a [ 1 ] + b [ 2 ] → a [ 2 ] = σ ( z [ 2 ] ) → L ( a [ 2 ] , y ) \left.\begin{matrix} a^{[1]}=\sigma(z^{[1]}) \\ W^{[2]} \\ b^{[2]} \end{matrix}\right\}\rightarrow z^{[2]}=W^{[2]}a^{[1]}+b^{[2]}\rightarrow a^{[2]}=\sigma(z^{[2]})\\\rightarrow L(a^{[2]},y) a[1]=σ(z[1])W[2]b[2]⎭⎬⎫→z[2]=W[2]a[1]+b[2]→a[2]=σ(z[2])→L(a[2],y)
类似逻辑回归,在计算后需要使用计算,接下来你需要使用另外一个线性方程对应的参数计算 z [ 2 ] z^{[2]} z[2] , 计算 a [ 2 ] a^{[2]} a[2] ,此时 a [ 2 ] a^{[2]} a[2] 就是整个神经网络最终的输出,用 y ^ \hat{y} y^ 表示网络的输出。
公式3.5:
d a [ 1 ] = d σ ( z [ 1 ] ) d W [ 2 ] d b [ 2 ] } → d z [ 2 ] = d ( W [ 2 ] a [ 1 ] + b [ 2 ] ) → d a [ 2 ] = d σ ( z [ 2 ] ) → d L ( a [ 2 ] , y ) \left.\begin{matrix} da^{[1]}=d\sigma(z^{[1]}) \\ dW^{[2]} \\ db^{[2]} \end{matrix}\right\}\rightarrow dz^{[2]}=d(W^{[2]}a^{[1]}+b^{[2]})\rightarrow da^{[2]}=d\sigma(z^{[2]})\\\rightarrow dL(a^{[2]},y) da[1]=dσ(z[1])dW[2]db[2]⎭⎬⎫→dz[2]=d(W[2]a[1]+b[2])→da[2]=dσ(z[2])→dL(a[2],y)
我知道这其中有很多细节,其中有一点非常难以理解,即在逻辑回归中,通过直接计算 z z z 得到结果 a a a 。而这个神经网络中,我们反复的计算 z z z 和 a a a ,计算 a a a 和 z z z ,最后得到了最终的输出loss function。
你应该记得逻辑回归中,有一些从后向前的计算用来计算导数 d a 、 d z da、dz da、dz 。同样,在神经网络中我们也有从后向前的计算,看起来就像这样,最后会计算 d a [ 2 ] 、 d z [ 2 ] da^{[2]}、dz^{[2]} da[2]、dz[2] ,计算出来之后,然后计算 d W [ 2 ] 、 d b [ 2 ] dW^{[2]}、db^{[2]} dW[2]、db[2] 等,按公式3.4、3.5箭头表示的那样,从右到左反向计算。
现在你大概了解了一下什么是神经网络,基于逻辑回归重复使用了两次该模型得到上述例子的神经网络。我清楚这里面多了很多新符号和细节,如果没有理解也不用担心,在接下来的视频中我们会仔细讨论具体细节。
那么,下一个视频讲述神经网络的表示。
课程PPT
←上一篇 | ↓↑ | 下一篇→ |
---|---|---|
2.19 总结习题 | 回到目录 | 3.2 神经网络表示 |