4.1深层神经网络
- 什么是深度学习网络?逻辑回归(单层神经网络)和单隐层神经网络,双隐层神经网络和5隐层神经网络
- 预先判断需要多深的神经网络
- 用来描述深度神经网络的符号
这是一个四层的神经网络。用L表示神经网路的层数,这里L=4,n[l]表示节点的数量,或小l层的单元数量,a[l]表示l层中的激活函数,w[l]表示权重,在a[l]中计算w[l]的权重。
4.2深层神经网络中的前向传播
- 单的训练样本
z[l]=w[l]a[l-1]+b[l]
a[l]=g[l] (z[l]) - 向量化m个样本(for循环)
Z[l]=w[l]A[l-1]+b[l]
A[l]=g[l] (Z[l])
4.3核对矩阵的维度
- 单个样本
这里L=5,先忽略b只关注参数w
- 向量化m个样本
4.4为什么使用深层表示
-
有时候不需要很大的神经网络,而需要很深及很多隐藏层
-
深度网络在计算什么?
如果你在建一个人脸识别或者人脸检测系统
深度神经网络所做的就是:当你输入一张人脸照片,可以把神经网络的第一层当做特征探测器或边缘探测器,在这个例子里,会建一个大概有20个隐藏单元的深度神经网络。隐藏单元就是这些图里这些小方块,(之后会专门讲做这种识别的卷积神经网络)。
- 可以把深度神经网络的第一层当做看图,去找这张照片的各个边缘,我们可以把照片里组成各个边缘的像素们一起看,他可以把探测到的边缘组合成面部的不同部分。比如说,有一个神经元去找眼睛的部分,另外还有别的再找鼻子部分(一层),然后把这许多边缘结合在一起,就可以开始检测人脸的不同部分(2层),最后再把这些部分放在一起(三层),就可以识别或者探测不同的人脸了。
- 直观上,你可以把这种神经网络的前几层,当做探测简单的函数,比如边缘,之后把它们和后几层结合在一起,那么总体上就能学习更加复杂的函数。
- 细节:边缘探测器其实都是针对照片中非常小块的面积,面部探测器可能针对大一些的区域。一般都是从比较小点的细节入手,比如边缘,然后一步一步到更大更复杂的区域,比如一只眼睛或是一个鼻子,再把眼睛鼻子装在一块,组成更复杂的部分。
- 这种简单到复杂的金字塔状表示方法或者组成方法,也可以应用在图像或者人脸识别以外的其他数据上,比如,语音识别系统,需要解决的就是如何可视化语音,当你输入音频片段,神经网络的第一层可能先去试着探测比较低层次的音频波形特征,比如音调是变高了还是变低了(分白噪声或者丝丝拉拉的声音),然后把这些波形组合在一起,就能去探测声音的基本单元,(在语言学中有个概念叫做音位),有了基本的声音单元后,组合起来就能识别音频中的单词,单词再组合起来就能识别词组,再到完整的句子。
- 所以深层神经网络中的许多隐层中,较早的前几层学习一些低层次的简单特征,等到后几层就能把简单的特征结合起来,去探测更加复杂的东西。同时较早的前几层,相对简单的函数输入,比如图像单元的边缘。到网络中的深层是,实际上就能做更多复杂的事情,比如探测面部、单词、词组、句子。
另外一个关于神经网络为何有效的理论:电路理论。
- 用电路元件计算不同的函数,小的意思是隐层单元的数量比较少,如果用浅神经网络计算同样的函数就需要很多隐层单元
- 如果你想对输入特征计算异或,建一个异或树图,那么最后你会得到这样的电路来输出y,这种树图对应的网络深度是O(logn),那么节点的数量和电路部件或者门的数量并不是很大。但是如果你不能使用多隐层神经网络的话,比如你被迫只能使用单隐层来计算,(隐层单元数量呈指数增长)。O(2^n)
4.5搭建深层神经网络块
- 这是一个层数较少的神经网络,我们选择其中的一层,从这一层的计算开始,正向和反向。
- 正向传播得到y的预测值,之后再进行反向传播。细节:把z值缓存下来。
4.6前向和反向传播
- 每一层都有前向传播步骤以及一个相对的反向传播步骤,现在看看如何实现这些步骤。
- 前向传播
- 反向传播
- 小结(三层的)
前向初始化x递归
若是逻辑回归反向初始化递归a[l-1]
4.7参数VS超参数
- 参数:w和b
- 超参数:学习率arfa,梯度下降循环数量,隐层数L,隐层单元,激活函数的选择。这些都可以控制参数w和b,所以称为超参数。(训练时可以选择不同的值)
- 通过看损失函数来调学习率arfa的值