0
点赞
收藏
分享

微信扫一扫

吴恩达《深度学习》第一门课(4)深层神经网络

4.1深层神经网络

(1)到底是深层还是浅层是一个相对的概念,不必太纠结,以下是一个四层的深度神经网络:

吴恩达《深度学习》第一门课(4)深层神经网络_向量化

(2)一些符号定义:

a[0]=x(输入层也叫做第0层)

L=4:表示网络的层数

g:表示激活函数

第l层输出用a[l],最终的输出用a[L]表示

n[1]=5:表示第一层有五个神经元,第l层神经元个数用n[l]表示

4.2前向传播和反向传播

(1)前向传播:输入a[l-1],输出是a[l],缓存为z[l],步骤如下:(下面第一个式子应该是a[l-1]

吴恩达《深度学习》第一门课(4)深层神经网络_激活函数_02

吴恩达《深度学习》第一门课(4)深层神经网络_向量化_03

向量化:

吴恩达《深度学习》第一门课(4)深层神经网络_向量化_04

吴恩达《深度学习》第一门课(4)深层神经网络_反向传播_05

(2)反向传播:输入da[l],输出da[l-1],dw[l],db[l]

吴恩达《深度学习》第一门课(4)深层神经网络_反向传播_06

(4)da[l-1]=w[l]T·dz[l]

由第四个式子带入到第一各式子中得

吴恩达《深度学习》第一门课(4)深层神经网络_激活函数_07

向量化:

吴恩达《深度学习》第一门课(4)深层神经网络_反向传播_08

 (3)总结:第一层可能是Relu激活函数,第二层为另一个Relu函数,第三层可能是sigmoid函数(如果做二分类的话),输出值为a[L],用来计算损失,这样就可以以向后迭代进行反向传播就到来求dw[3],db[3],dw[2],db[2],dw[1],db[1].在计算的时候,缓存会把z[1]z[2]z[3]传递过来,然后回传da[2],da[1],可以用来计算da[0],但是不会使用它。整个过程如下图所示

吴恩达《深度学习》第一门课(4)深层神经网络_反向传播_09

4.3深层网络的前向传播

(1)前向传播归纳为:

吴恩达《深度学习》第一门课(4)深层神经网络_激活函数_10

向量化实现过程:

吴恩达《深度学习》第一门课(4)深层神经网络_激活函数_11

4.4核对矩阵的维数

(1)w的维度是(下一层的维数,上一层的维数),即w[l]:(n[l],n[l-1])

(2)b的维度时(下一层的维数,1)

(3)z[l],a[l]:(n[l],1)

(4)dw[l]和w[l]维度相同,db[l]和b[l]维度相同,且w,b向量化维度不变,但z,a以及x的维度会向量化后发生改变。

向量化后:

Z[l]:(n[l],m),A[l]同Z[l]

4.5为什么使用深层表示

增加网络的深度比广度更有效。

4.6搭建神经网络块

(1)针对一层的正向和反向传播:

吴恩达《深度学习》第一门课(4)深层神经网络_激活函数_12

(2)整个过程示意图:

吴恩达《深度学习》第一门课(4)深层神经网络_激活函数_13

4.7参数VS超参数

(1)W,b是参数

(2)学习率、迭代次数、层数、每层的单元数、momentum、mini batch size、regularization perameters等能影响W、b的都称为超参数,超参数的选择需要不断尝试和靠经验,以及一些策略。

4.8深度学习和大脑的关联性

深度学习和大脑其实没什么直接关系。


作者:你的雷哥

本文版权归作者所有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。

举报

相关推荐

0 条评论