吴恩达《深度学习工程师》Part1.Week4 深层神经网络

时间:2022-03-27 20:13:44

4.1深层神经网络

吴恩达《深度学习工程师》Part1.Week4 深层神经网络
图1 不同深度的神经网络

图1是神经网络从浅层到深层的过渡过程,logistic回归过程可以看作单层的神经网络,2层或3层神经网络是较浅层的神经网络,最后一个神经网络层数已经达到6层,可以认为是深层的神经网络。

吴恩达《深度学习工程师》Part1.Week4 深层神经网络
图2 深层神经网络中的符号

n [ l ] 表示第 l 层的节点数, a [ l ] 表示第 l 层的活化值, w [ l ] b [ l ] 表示第 l 层的权重和偏置。

4.2 深层网络中的向前传播

4.3 核对矩阵的维数

4.4 为什么使用深层表示
深层神经网络能够处理很多问题,实际上不需要很大的神经网络,只需要深度够深,也就是层数够多就可以了。
为什么深度神经网络表现这么出色呢?下面以人脸检测系统为例进行说明。

吴恩达《深度学习工程师》Part1.Week4 深层神经网络
图3 深层神经网络的直观理解

图3 中第一层中的每个单元对应第一个表格中的每个方块,每个方块代表一个边缘检测器,用于检测不同方向的人脸边缘。第二层可以看成时将第一层的边缘按照不同的方式组合起来,形成了人脸中鼻子、耳朵、眼睛等部分。第三层把这些鼻子、眼睛组合起来,就可以检测不同的人脸。
第一层边缘检测的区域较小,是非常细微的特征,而后面第三层的面部检测的范围较大,检测的是较为宏观的特征。深度神经网络一般是从细微特征开始,逐步升级到宏观特性较强的特征中。

类似的,在进行语音识别分析时,首先检测细微的音频特征,例如音调的上升或下降,再将这些低级特征组合起来,分析声音的基本单元,即语言学中的音位。再把这些音位组合起来,就可以识别单词了。继续组合单层就可以识别词组、句子等。

4.5 搭建深层神经网络块

吴恩达《深度学习工程师》Part1.Week4 深层神经网络
图4 深层神经网络的网络块

如图4所示,以深层神经网络中的一层为例,每一层的前向传播和反向传播可以概括为右图的网络块。
对于 l 层,参数为 w [ l ] b [ l ]
前向传播的输入为: a [ l 1 ] , 输出为: a [ l ]
缓存为 z [ l ] z [ l ] = w [ l ] a [ l 1 ] + b [ l ]
激活值为 a [ l ] a [ l ] = g [ l ] ( z [ l ] )
反向传播的输入为: d a [ l ] w [ l ] b [ l ] ,缓存 z [ l ]
输出为: d a [ l 1 ] d w [ l ] d b [ l ]

将上述网络块连接起来,就构成了一个深度神经网络的前向传播和反向传播过程,如图5所示。

吴恩达《深度学习工程师》Part1.Week4 深层神经网络
图5 深层神经网络的网络块表示

4.6 前向传播和反向传播

4.7 参数VS超参数
想要深层神经网络达到很好的效果,需要很好的规划模型的参数以及超参数。
参数是指权重 W b
超参数是指能够影响参数的一些值,包括:学习率 α 、梯度下降迭代的次数、隐藏层的层数,隐藏层的节点数目、激活函数的选择、以及后面要讲到的momentum、minibatch size、正则化参数等。

吴恩达《深度学习工程师》Part1.Week4 深层神经网络
图6 超参数的确定流程

如图6所示,在确定模型的超参数时,一般可以先参考其他人的参数,加上自己的直觉设定一个初始值,然后进行测试,可以根据代价函数的下降情况进行不断的调试,直到满意为止。

另外,由于输入数据的结构随着时间发生特征的变化,有时候调试好的参数可能会失效,那就需要重新进行调试。

4.8 这和大脑有什么关系?