吴恩达.深度学习系列-C1神经网络与深度学习-w4深度神经网络

前言

Deep L-layer neural network

shallow 与 Deep 是相对的。
一般对某些问题进行分类,可以先从逻辑回归(最简单的单个神经元),逐步增加网络层数,并把层数做为一个超参数,使用交叉验证来判定多少层的网络适合我们的分类问题。
符号申明:

  • W [ l ] Z [ l ] , W [ l ] A [ l 1 ] + b [ l ] = Z [ l ]
  • n [ l ] l n [ 0 ]
  • a [ l ] l a [ 0 ] = x x 1 , x 2 . . . x n x a [ L ]

Forward Propagation in a Deep Network

这里写图片描述
在上图这样一个3×5×5×3×1的5层网络中,Forward propagation的vecteration表达如下:
第0层是输入层,L=4层,第L层是输出层。
n [ 0 ] = n x = 3 , n [ 1 ] = 5 , n [ 2 ] = 5 , n [ 3 ] = 3 , n [ 4 ] = 1
x = A [ 0 ] = ( 3 , 1 )
W [ 1 ] = ( 5 , 3 ) , b [ 1 ] = ( 5 , 1 ) , Z [ 1 ] = W [ 1 ] A [ 0 ] + b [ 1 ] = ( 5 , 1 )
W(5,3)的形可以这样看,第一个数字5是本层神经元个数,第二个数字是上一层的神经元个数。 W [ l ] : ( n [ l ] , n [ l 1 ] )
b(5,1)的形可以这样看,第一个数字5是本层神经元个数,第二个数字是1,因为每个神经元共享一个偏置量b。
Forward:Input A^{[l-1]},output A^{[l]}
A [ 1 ] = g [ 1 ] ( Z [ 1 ] ) = ( 5 , 1 ) ; g ( ) s i g m o i d r e l u
W [ 2 ] = ( 5 , 5 ) , b [ 2 ] = ( 5 , 1 ) , Z [ 2 ] = W [ 2 ] A [ 1 ] + b [ 2 ] = ( 5 , 1 ) ⟹矩阵乘
A [ 2 ] = g [ 2 ] ( Z [ 2 ] ) = ( 5 , 1 )
W [ 3 ] = ( 3 , 5 ) , b = ( 3 , 1 ) Z [ 3 ] = W [ 3 ] A [ 2 ] + b [ 3 ] = ( 3 , 1 ) ⟹矩阵乘
A [ 3 ] = g [ 3 ] ( Z [ 3 ] ) = ( 3 , 1 )
W [ 4 ] = ( 1 , 3 ) , b [ 4 ] = ( 1 , 1 ) Z [ 4 ] = W [ 4 ] A [ 3 ] + b [ 4 ] = ( 1 , 1 ) ⟹矩阵乘
y ^ = A [ 4 ] = g [ 4 ] ( Z [ 4 ] ) = ( 1 , 1 )
使用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)
上图右:只允许一个隐藏层,神经元个数是 2 n
这个例子可以从一个方面说明深度网络的价值。

Building blocks of deep neural networks

Forward:Input A^{[l-1]},output A^{[l]}
Backward: I n p u t d a [ l ] , o u t p u t d a [ l 1 ]
这里写图片描述
如上,一张图说明了前向传播与反向传播的过程变量与输出值。注意: Z [ l ] 是正向传播的过程值,同时是反向传播梯度计算中的输入,所以必须进行cache。
有时间真应该把这草图画成一个正式图。不过markdown的流程图好像没法画这种图,只能用ppt来实现了。

Forward and Backward Propagation

这里写图片描述
前向传播
参考前面小节“Forward Propagation in a Deep Network”
反向传播
input: d a [ l ]
output: d a [ l 1 ] , d W [ l ] , d b [ l ]
Vecteraztion representation:
d Z [ l ] = d A [ l ] g [ l ] ( Z [ l ] ) ,不同激活函数g‘()不一样啊。
d W [ l ] = 1 m d Z [ l ] ( A [ l 1 ] . T )
d b [ l ] = 1 m n p . s u m ( d Z [ l ] , a x i s = 1 , k e e p d i m s = T r u e )
d A [ l 1 ] = ( W [ l ] . T ) d Z [ l ]
这里写图片描述
前向传播后得出 L o s t ( y ^ , y ) 的数值,对Lost函数进行求导得出 d A [ L ] = y A [ L ] + 1 y 1 A [ L ]

Parameters vs Hyperparameters

Parameters: W [ 1 ] , b [ 1 ] , W [ 2 ] , b [ 2 ] . . . . W [ L ] , b [ L ]
Hyperparameters:
- Learning rate α
- iterations
- hidden layers L
- hidden units n [ 1 ] , n [ 2 ] . . . [ L ]
- 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