吴恩达深度学习笔记(一)week5

4.4为什么使用深层表示

如果在建一个人脸识别或是人脸检测系统,深度神经网络所做的事就是,当输入一张脸部的照片,然后可以把深度神经网络的第一层,当成一个特征探测器或者边缘探测器。在这个例子里,如果建一个大概有20个隐藏单元的深度神经网络,是怎么针对这张图计算的。隐藏单元就是这些图里这些小方块(第一张大图),举个例子,这个小方块(第一行第一列)就是一个隐藏单元,它会去找这张照片里“|”边缘的方向。那么这个隐藏单元(第四行第四列),可能是在找(“—”)水平向的边缘在哪里以先把神经网络的第一层当作看图,然后去找这张照片的各个边缘。可以把照片里组成边缘的像素们放在一起看,然后它可以把被探测到的边缘组合成面部的不同部分(第二张大图)。比如说,可能有一个神经元会去找眼睛的部分,另外还有别的在找鼻子的部分,然后把这许多的边缘结合在一起,就可以开始检测人脸的不同部分。最后再把这些部分放在一起,比如鼻子眼睛下巴,就可以识别或是探测不同的人脸(第三张大图)。可以直觉上把这种神经网络的前几层当作探测简单的函数,比如边缘,之后把它们跟后几层结合在一起,那么总体上就能学习更多复杂的函数。这些图的意义,在学习卷积神经网络的时候再深入了解。还有一个技术性的细节需要理解的是,边缘探测器其实相对来说都是针对照片中非常小块的面积。就像第一行第一列,都是很小的区域。面部探测器就会针对于大一些的区域,但是主要的概念是,一般会从比较小的细节入手,比如边缘,然后再一步步到更大更复杂的区域,比如一只眼睛或是一个鼻子,再把眼睛鼻子装一块组成更复杂的部分。

 这种从简单到复杂的金字塔状表示方法或者组成方法,也可以应用在图像或者人脸识别以外的其他数据上。比如当你想要建一个语音识别系统的时候,需要解决的就是如何可视化语音,比如你输入一个音频片段,那么神经网络的第一层可能就会去先开始试着探测比较低层次的音频波形的一些特征,比如音调是变高了还是低了,分辨白噪音,咝咝咝的声音,或者音调,可以选择这些相对程度比较低的波形特征,然后把这些波形组合在一起就能去探测声音的基本单元。

所以深度神经网络的这许多隐藏层中,较早的前几层能学习一些低层次的简单特征,等到后几层,就能把简单的特征结合起来,去探测更加复杂的东西。比如你录在音频里的单词、词组或是句子,然后就能运行语音识别了。同时所计算的之前的几层,也就是相对简单的输入函数,比如图像单元的边缘什么的。到网络中的深层时,你实际上就能做很多复杂的事,比如探测面部或是探测单词、短语或是句子。

4.5 搭建深层神经网络块

在这里插入图片描述

在第 l 层有参数W^{\left [ l \right ]} 和b^{\left [ l \right ]}正向传播里有输入的激活函数,输入是前一层 a^{\left [ l-1 \right ]},输出是a^{\left [ l \right ]}

z=w^{\left [ l \right ]}a^{\left [ l-1 \right ]}+b^{\left [ l \right ]}a^{\left [ l \right ]}=g^{\left [ l \right ]}\left ( z^{\left [ l \right ]} \right ),把z缓存起来。

然后是反向步骤,同样也是第l层的计算,需要实现一个函数输入为da^{\left [ l \right ]},输出da^{\left [ l-1 \right ]}的函数

然后如果实现了这两个函数(正向和反向),然后神经网络的计算过程会是这样的:

在这里插入图片描述

 把输入特征 a [ 0 ]   ,放入第一层并计算第一层的激活函数,用a^{\left [ 1 \right ]}表示,需要 w^{\left [ 1 \right ]}和 [ 1 ] 来计算,之后也缓存z^{\left [ l\right ]}值。之后喂到第二层,第二层里,需要用到 w^{\left [ 2 \right ]}b^{\left [ 2 \right ]},会需要计算第二层的激活函数a^{\left [ 2 \right ]} 。后面几层以此类推,直到最后你算出了 a^{\left [L \right ]} ,第 L 层的最终输出值 y\widehat{}在这些过程里缓存了所有的 z 值,这就是正向传播的步骤。

前向和反向传播

前向,输入a^{\left [ l-1 \right ]},输出是a^{\left [ l \right ]},缓存是z^{\left [ l \right ]}

 前向传播需要A^{\left [ 0 \right ]}来初始化,初始化的是第一层的输入值a^{\left [ 0 \right ]}对应于一个训练样本的输入特征,而A^{0}对应于一整 ( m )  个训练样本的输入特征,所以这就是这条链的第一个前向函数的输入,重复这个步骤就可以从左到右计算前向传播。

反向:输入为da^{\left [ l \right ]},输出为da^{\left [ l-1 \right ]}dw^{\left [ l \right ]}db^{\left [ l \right ]}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值