1.视频网站:mooc慕课https://mooc.study.163.com/university/deeplearning_ai#/c
2.详细笔记网站(中文):http://www.ai-start.com/dl2017/
3.github课件+作业+答案:https://github.com/stormstone/deeplearning.ai
3.1 神经网络概览 Neural Networks Overview
上周我们讨论了逻辑回归。我们了解了这个模型(如下图)如何与下面公式建立联系。
公式
x
w
b
}
⟹
z
=
w
T
x
+
b
\left. \begin{array}{l} x\\ w\\ b \end{array} \right\} \implies{z={w}^Tx+b}
xwb⎭⎬⎫⟹z=wTx+b
你需要输入特征x,参数w和b,通过这些你就可以计算出z。
接下来使用z就可以计算出
y
^
\hat y
y^,
y
^
=
σ
(
z
)
\hat y=\sigma(z)
y^=σ(z)。
最后可以计算出损失函数
L
(
y
^
,
y
)
L(\hat y,y)
L(y^,y)。
神经网络NN看起来是如下这个样子
你可以把许多sigmoid单元堆叠起来形成一个神经网络。
我们已经知道,本节第一个图中介绍的逻辑回归模型中的节点包含2个计算步骤
- 首先计算出z
- 然后通过 σ ( z ) \sigma(z) σ(z)计算出 y ^ \hat y y^
而现在NN网络的每个节点也是类似的计算出z和 y ^ \hat y y^。
符号约定
我们使用新的符号上标[1]来表示第一列节点相关的量,并称之为“层”。
同理,在上图中符号上标[2]来表示第二列节点相关的量,这是NN网络的另外一层。
这里使用方括号上标,是为了区分表示单个训练样本的圆括号。
例
- x(i)表示第i个训练样本
- 上标[1]表示NN网络第一层, 上标[2]表示NN网络第二层
然后类似逻辑回归一样使用线性方程
z
[
1
]
=
W
[
1
]
x
+
b
[
1
]
z^{[1]}=W^{[1]}x+b^{[1]}
z[1]=W[1]x+b[1]去计算z[1],再使用
σ
(
z
[
1
]
)
\sigma(z^{[1]})
σ(z[1])计算
y
^
[
1
]
\hat y^{[1]}
y^[1]。
接下来使用线性方程
z
[
2
]
=
W
[
2
]
y
^
[
1
]
+
b
[
2
]
z^{[2]}=W^{[2]}\hat y^{[1]}+b^{[2]}
z[2]=W[2]y^[1]+b[2]去计算z[2],再使用
σ
(
z
[
2
]
)
\sigma(z^{[2]})
σ(z[2])计算
y
^
[
2
]
\hat y^{[2]}
y^[2]。
y
^
[
2
]
\hat y^{[2]}
y^[2]是整个NN的最终输出。损失函数
L
(
y
^
[
2
]
,
y
)
L(\hat y^{[2]},y)
L(y^[2],y)。
你可以发现,NN网络需要反复多次计算z和 y ^ \hat y y^,最后计算损失函数。
在上周学习中还介绍过反向计算,用来计算da和dz。
在NN网络中,同样有类似的反向计算。计算da[2]和dz[2],然后计算出dW[2],db[2],按照这个次序从右向左反向计算,即红色箭头方向。
总结:
在本节中我们对NN有了了解。基本上就是逻辑回归重复了2次。