1.深层神经网络
计算神经网络的层数时,不计算输入层,只算隐藏层和输出层。
对于一个任务,需要构建多少层神经网络,这个不好预测,因此一般先使用逻辑回归,尝试一层或者两层隐藏层,把隐藏层数当做一个超参数,在交叉验证数据或者开发集数据进行评估。
2.前向传播和反向传播
这一块和之前没啥区别,同样是单样本+向量化的推导,貌似就是最后搞了一个三层的神经网络计算。(两个ReLU和一个sigmoid输出)
3.深层网络中的前向传播
对于深层网络的前向传播来说,可以归纳为多次迭代计算z和a。
4.核对函数的维数
w的维度:(下一层n,前一层n)
w
[
l
]
:
(
n
[
l
]
,
n
[
l
−
1
]
)
w^{[l]}:\left(n^{[l]}, n^{[l-1]}\right)
w[l]:(n[l],n[l−1])
b、a、z的维度:(下一层n,1)
b
[
l
]
:
(
n
[
l
]
,
1
)
z
[
l
]
,
a
[
l
]
:
(
n
[
l
]
,
1
)
\begin{array}{l}{b^{[l]}:\left(n^{[l]}, 1\right)} \\ {z^{[l]}, a^{[l]}:\left(n^{[l]}, 1\right)}\end{array}
b[l]:(n[l],1)z[l],a[l]:(n[l],1)
向量化之后w和b维度不变,a,z的第二维变为m。
5.为什么使用深层表示?
- 举了两个例子,图像识别和语音合成。深度网络可以从基本组成元素到识别组合成的复杂东西。
- 深层网络的隐藏单元数量相对较少,层数较多,如果浅层网络想要达到相同的计算结果需要指数级增长的单元数量才能达到。下面讲一个具体例子,异或计算:
很显然,左边网络的深度O(log(n)),门的数量不是很大,如果用单隐藏层计算的话,需要指数级增长。
6.搭建神经网络块
这里一块就是一层,包括输入和输出:
7.参数VS超参数
如何寻找超参数的最优值?
值得一提的是,由于CPU、GPU和数据都在变化,超参数的值也不是一成不变的。
8.深度学习和大脑的关联性
四个字:关联不大。