网易课程DeepLearning.ai 吴恩达深度学习课程笔记:第四周①:深度学习引言、前向传播

深层神经网络(Deep L-layer neural network)

目前为止我们学习了只有一个单独隐藏层的神经网络的正向传播和反向传播,还有逻辑回归,并且你还学到了向量化,这在随机初始化权重时是很重要。

本周所要做的是把这些理念集合起来,就可以执行你自己的深度神经网络。

复习下前三周的课的内容:

1.逻辑回归,结构如下图左边。一个隐藏层的神经网络,结构下图右边:

注意,神经网络的层数是这么定义的:从左到右,由0开始定义,比如上边右图,x1x2x3 ,这层是第0层,这层左边的隐藏层是第1层,由此类推。如下图左边是两个隐藏层的神经网络,右边是5个隐藏层的神经网络。

严格上来说逻辑回归也是一个一层的神经网络,而上边右图一个深得多的模型,浅与深仅仅是指一种程度。记住以下要点:

有一个隐藏层的神经网络,就是一个两层神经网络。记住当我们算神经网络的层数时,我们不算输入层,我们只算隐藏层和输出层。

但是在过去的几年中,DLI(深度学习学院 deep learning institute)已经意识到有一些函数,只有非常深的神经网络能学会,而更浅的模型则办不到。尽管对于任何给定的问题很难去提前预测到底需要多深的神经网络,所以先去尝试逻辑回归,尝试一层然后两层隐含层,然后把隐含层的数量看做是另一个可以自由选择大小的超参数,然后再保留交叉验证数据上评估,或者用你的开发集来评估。

我们再看下深度学习的符号定义:

上图是一个四层的神经网络,有三个隐藏层。我们可以看到,第一层(即左边数过去第二层,因为输入层是第0层)有5个神经元数目,第二层5个,第三层3个。

我们用L表示层数,上图:L=4 ,输入层的索引为“0”,第一个隐藏层n[1]=5 ,表示有5个隐藏神经元,同理n[2]=5n[3]=3n[4] =n[L]=1 (输出单元为1)。而输入层,n[0]=nx=3

在不同层所拥有的神经元的数目,对于每层l都用a[l] 来记作l层激活后结果,我们会在后面看到在正向传播时,最终能你会计算出a[l]

通过用激活函数 g  计算z[l] ,激活函数也被索引为层数l ,然后我们用w[l] 来记作在l层计算z[l] 值的权重。类似的,z[l] 里的方程b[l] 也一样。

最后总结下符号约定:

输入的特征记作x ,但是x 同样也是0层的激活函数,所以x=a[0]

最后一层的激活函数,所以a[L] 是等于这个神经网络所预测的输出结果。

深层网络中的前向传播(Forward propagation in a Deep Network)

跟往常一样,我们先来看对其中一个训练样本x如何应用前向传播,之后讨论向量化的版本。

第一层需要计算z[1]=w[1]x+b[1]a[1]=g[1](z[1])x 可以看做a[0]

第二层需要计算z[2]=w[2]a[1]+b[2]a[2]=g[2](z[2])

以此类推,

第四层为z[4]=w[4]a[3]+b[4]a[4]=g[4](z[4])

前向传播可以归纳为多次迭代z[l]=w[l]a[l-1]+b[l]a[l]=g[l](z[l])

向量化实现过程可以写成:

这里只能用一个显式for循环,l 从1到L ,然后一层接着一层去计算。下一节讲的是避免代码产生BUG,我所做的其中一件非常重要的工作。

猜你喜欢

转载自blog.csdn.net/qq_36552489/article/details/93402905
今日推荐