吴恩达.深度学习系列-C1神经网络与深度学习-w4深度神经网络
前言
Deep L-layer neural network
shallow 与 Deep 是相对的。
一般对某些问题进行分类,可以先从逻辑回归(最简单的单个神经元),逐步增加网络层数,并把层数做为一个超参数,使用交叉验证来判定多少层的网络适合我们的分类问题。
符号申明:
Forward Propagation in a Deep Network
在上图这样一个3×5×5×3×1的5层网络中,Forward propagation的vecteration表达如下:
第0层是输入层,L=4层,第L层是输出层。
W(5,3)的形可以这样看,第一个数字5是本层神经元个数,第二个数字是上一层的神经元个数。
b(5,1)的形可以这样看,第一个数字5是本层神经元个数,第二个数字是1,因为每个神经元共享一个偏置量b。
Forward:Input A^{[l-1]},output A^{[l]}
⟹矩阵乘
⟹矩阵乘
⟹矩阵乘
使用for-loop来从1到L层的计算。
以上是以单条样本为例,如果有m进行运算,用m替换上面列表中的1.
Getting your matrix dimensions right
好吧,我在上一小节就把这章的笔记给总结了。
w,b,z,a的梯度的shape跟W,B,Z,A是一样的。
Why deep representations?
为什么深层神经网络对很多分类问题有效?
图像识别
随着网络深入,从总结图像的边缘开始,逐步组合出复杂的特征用以识别图片。
音频识别
也一样,第一层可能去识别一小片段的音调是升高还是降低,随着网络层数增加,组合出复杂的音调类型,用以识别音频的总体特征。
同样,这个道理适用于文章的识别。
电路原理与深度学习
非正式说法:浅层网络需要的神经元个数是深度网络的指数倍数。
上图左:可以使用更多的隐藏层,神经元的个数是O(logn)
上图右:只允许一个隐藏层,神经元个数是
这个例子可以从一个方面说明深度网络的价值。
Building blocks of deep neural networks
Forward:Input A^{[l-1]},output A^{[l]}
Backward:
如上,一张图说明了前向传播与反向传播的过程变量与输出值。注意:是正向传播的过程值,同时是反向传播梯度计算中的输入,所以必须进行cache。
有时间真应该把这草图画成一个正式图。不过markdown的流程图好像没法画这种图,只能用ppt来实现了。
Forward and Backward Propagation
前向传播
参考前面小节“Forward Propagation in a Deep Network”
反向传播
input:
output:
Vecteraztion representation:
,不同**函数g‘()不一样啊。
前向传播后得出的数值,对Lost函数进行求导得出
Parameters vs Hyperparameters
Parameters:
Hyperparameters:
- Learning rate
- iterations
- hidden layers L
- hidden units
- choice of activation:Relu,tanh,sigmoid….
- momentum 动量
- minibatch size
- regularizations
超参数是无法在深度学习过程中进行学习的参数,它由人工设定并影响了参数的取值与模型的效果。深度学习是一个重实验的过程。需要不断实验(交叉验证法)去对比发现最适当的超参数。如前表所列,需要处理的超参数十分的多,以后的课程会教授如何去探索超参数空间。
What does this have to do with the brain?
把深度学习与大脑做类比,吴恩达大师认为,这个领域已经进步到可以打破这个类比的阶段。他倾向于不再运用这个类比。
【注:现在很多文章都有提出,人脑的处理过程不是这么简单的**输出的方式。深度学习跟大脑的学习并没有什么相似之处。】
Practic Questions
对于L的定义是:隐藏层数+1。输入层与输出层不是隐藏层。本题中隐藏层数=3,所以L=4。
第一层l=0,第二层l=1,第三层l=2,第四层l=3,第五层l=4=L