目录
- 第一门课:神经网络和深度学习 (Neural Networks and Deep Learning)
- 第四周:深层神经网络(Deep Neural Networks)
- 4.1 深层神经网络(Deep L-layer neural network)
第一门课:神经网络和深度学习 (Neural Networks and Deep Learning)
第四周:深层神经网络(Deep Neural Networks)
4.1 深层神经网络(Deep L-layer neural network)
目前为止我们学习了只有一个单独隐藏层的神经网络的正向传播和反向传播,还有逻辑回归,并且你还学到了向量化,这在随机初始化权重时是很重要。
本周所要做的是把这些理念集合起来,就可以执行你自己的深度神经网络。
复习下前三周的课的内容:
1.逻辑回归,结构如下图左边。一个隐藏层的神经网络,结构下图右边:
注意,神经网络的层数是这么定义的:从左到右,由 0 开始定义,比如上边右图,
x
1
x_1
x1、
x
2
x_2
x2、
x
3
x_3
x3,这层是第 0 层,这层左边的隐藏层是第 1 层,由此类推。如下图左边是两个隐藏层的神经网络,右边是 5 个隐藏层的神经网络。
严格上来说逻辑回归也是一个一层的神经网络,而上边右图一个深得多的模型,浅与深仅仅是指一种程度。记住以下要点:
有一个隐藏层的神经网络,就是一个两层神经网络。记住当我们算神经网络的层数时,我们不算输入层,我们只算隐藏层和输出层。
但是在过去的几年中,DLI(深度学习学院 deep learning institute)已经意识到有一些函数,只有非常深的神经网络能学会,而更浅的模型则办不到。尽管对于任何给定的问题很难去提前预测到底需要多深的神经网络,所以先去尝试逻辑回归,尝试一层然后两层隐含层,然后把隐含层的数量看做是另一个可以自由选择大小的超参数,然后再保留交叉验证数据上评估,或者用你的开发集来评估。
我们再看下深度学习的符号定义:
上图是一个四层的神经网络,有三个隐藏层。我们可以看到,第一层(即左边数过去第二层,因为输入层是第 0 层)有 5 个神经元数目,第二层 5 个,第三层 3 个。
我们用 L 表示层数,上图:𝐿 = 4,输入层的索引为“0”,第一个隐藏层 n [ 1 ] n^{[1]} n[1] = 5,表示有 5个隐藏神经元,同理 n [ 2 ] n^{[2]} n[2] = 5, n [ 3 ] n^{[3]} n[3] = 3, n [ 4 ] n^{[4]} n[4]= n [ L ] n^{[L]} n[L] =1(输出单元为 1)。而输入层, n [ 0 ] = n x = 3 n^{[0]} =n_x = 3 n[0]=nx=3。
在不同层所拥有的神经元的数目,对于每层 l 都用 a [ l ] a^{[l]} a[l]来记作 l 层激活后结果,我们会在后面看到在正向传播时,最终能你会计算出 a [ l ] a^{[l]} a[l]。
通过用激活函数 g计算 z [ l ] z^{[l]} z[l],激活函数也被索引为层数l,然后我们用 w [ l ] w^{[l]} w[l]来记作在 l 层计算 z [ l ] z^{[l]} z[l]值的权重。类似的, z [ l ] z^{[l]} z[l]里的方程b[l]也一样。
最后总结下符号约定:
输入的特征记作𝑥,但是𝑥同样也是 0 层的激活函数,所以
x
=
a
[
0
]
x = a^{[0]}
x=a[0]。
最后一层的激活函数,所以
a
[
L
]
a^{[L]}
a[L]是等于这个神经网络所预测的输出结果。