神经网络和深度学习——深层神经网路
上一周学完了浅层神经网络的基本知识,学会了搭建一个双层的神经网络模型并用其解决实际问题,该周内容更深入一步进入深层神经网络,这周开始的内容开始真正体现深度学习。
4.1 深层神经网络
该节给出一些符号约定。
4.2 深层网络中的前向传播
该节介绍深层网络的前向传播过程,实际内容和双层神经网络一样,只是多重复几次,计算过程可以用一个for循环。
4.3 核对矩阵的维数
该节介绍一个很重要的调试技巧——核对各个参数的维数。在传播公式中,尤其是向量化以后,涉及到的主要就是线性代数矩阵运算,如果能掌握所有参量的矩阵维数,那么就能避免很多的错误。
上图为单个样本的情况。
上图为m个样本的情况,对比单个样本只是每个参数的列数增加到了m列。
其实只要正向反向这个链式求导的过程理解到了,以及对线性代数矩阵基本知识了解足够,这里的矩阵运算还是会非比较清晰的。
4.4 为什么使用深层表示
该节展示了深层神经网络的优势所在,尤其在图像识别、音频处理等方面。
多层的神经网络,可以从简单、从边缘入手,然后在后面层再合成复杂的特征。例如人脸识别上,由图像边缘开始,再找局部各器官特征,最后拼起来合成人脸,最后做出判断结果。
在实际问题中,当然最好还是从逻辑回归、单隐层网络开始,因为深层的神经网络势必更复杂,运算时间更长,如果能用较简单的模型解决问题,何乐而不为呢?
4.5 搭建深层神经网络块
该节用一个流程图展示了深层神经网络正向和反向传播的过程:
从输入层开始,按照单隐层正向传播的方法重复多次,得到深层的输出。再从输出层开始,一步一步往前求偏导,每一层会产生该层W和b的偏导数,直到回推到第一层为止。最后再利用得到的W和b的偏导数进行一次梯度下降,更新一次所有层W和b的值,至此完成一次迭代。
4.6 前向和反向传播
该节对深层神经网络的前向和反向传播进行了公式推导,再次强调,牢牢抓住链式求导的概念,先正向,后反向,以求得W和b的偏导数进行梯度下降。
尤其注意反向传播这里,利用代价函数的具体形式首先求出da,然后按照正向传播的公式(用熟了就背下来,原理要懂,链式求导),求出当前层dz,再求出dw、db,最后再求用于上一层的da-1,之后再重复以上工作。
4.7 参数 VS 超参数
该节介绍超参数的概念。在神经网络中,我们习惯称W和b为参数,而实际上还有一些值可以控制这些参数最终的结果,例如学习率α、迭代次数、隐层数量、隐层单元个数、激活函数种类等等,对于这些值的确定仍需要多次尝试以选取较优值,在课程2中会有专门的讲解,这里知道这些叫做超参数就行了。
4.8 这和大脑有什么关系?
其实没啥关系,某些机制有相似性,但实际上联系不太大。