【学习周报】深度学习笔记第六周

学习目标:

  • 第一周 卷积神经网络(Foundations of Convolutional Neural Networks)
  • 第二周 深度卷积网络:实例探究(Deep convolutional models: case studies)


学习内容:

目录

学习目标:

学习内容:

学习时间:

学习产出:

第一周 卷积神经网络(Foundations of Convolutional Neural Networks)

1.1 计算机视觉(Computer vision)

1.2 边缘检测示例(Edge detection example)

1.4 Padding 

1.5 卷积步长(Strided convolutions)

 1.6 三维卷积(Convolutions over volumes)

1.7 单层卷积网络(One layer of a convolutional network)

1.9 池化层(Pooling layers)

 1.11 为什么使用卷积?(Why convolutions?)



学习时间:

10.31-11.4


学习产出:

第一周 卷积神经网络(Foundations of Convolutional Neural Networks)

1.1 计算机视觉(Computer vision)

介绍几个计算机视觉的应用,例如:图片识别,目标检测,图像风格转移。

引出计算机视觉所面临的问题:

在过去的课程中,你们一般操作的都是64×64的小图片,实际上,它的数据量是64×64×3,因为每张图片都有3个颜色通道。如果计算一下的话,可得知数据量为12288,所以我们的特征向量xx维度为12288。这其实还好。

1.2 边缘检测示例(Edge detection example)

边缘检测是计算机视觉的基础。为了分析图片,我们需要一种可以分析出图片各种轮廓特征的方法。边缘检测就可以提取图片基础的轮廓特征。

如图,我们想要的结果,从左边图片中提取出想要的信息。获得右边的两个结果,一个是水平轮廓的提取,另一个是竖直轮廓的提取。

如何提取?

进行卷积运算,下面是卷积运算的过程:

 假设输入为6*6的图片,我们使用中间的过滤器,或者叫做卷积核。去计算出一个结果。

计算过程:

将卷积核放入阴影部分进行对应相乘,将九个结果求和。

 将卷积核心右移一个单位,继续这个相乘求和操作:

如此反复就可以求出一个4*4矩阵的结果。 

 为什么可以用上面的卷积运算获得轮廓特征呢?

如图,假设对左边的存在明显轮廓图片(左白右黑)进行卷积,获得的4*4矩阵可以看出,我们的结果呈现为黑白黑,中间的白色可以很好的反映图片的轮廓特征,接下来对卷积结果出现黑白的情况做一个定义,因为不仅仅存在黑白,也可能有白黑等等。

 

如图也可能出现负数的情况。但是我们实际应用中,需要的仅仅是两边数字的一个差值,所以可以取绝对值作为我们想要的结果。

对于卷积核的讨论:

卷积核的矩阵维数不一定是3*3,也可能5*5、7*7,但是一般为基数。

 

卷积的数据也有所不同,但是都是为了区分轮廓。

叫做Sobel的过滤器,它的优点在于增加了中间一行元素的权重,这使得结果的鲁棒性会更高一些。emmm反正各种卷积核都有,都是大牛们做的研究,主要目的是获取轮廓,提升性能吧。

1.4 Padding 

英文不好,还去查了一个padding的意思

emmm,这里应该是填充的意思,并且不是在图片内部填充,而是给图片添加一层外边缘。

使用padding添加外边缘的原因。 

6*6的图片进行3*3卷积核的运算,最终结果变成4*4,每次卷积都会使得数据变小。

如果我们有一个  n×n  的图像,用  f×f  的过滤器做卷积,那么输出的维度就是 

 (n−f+1)  ×  (n−f+1)  。 

两个缺点:第一个缺点是每次做卷积操作,你的图像就会缩小。

第二个缺点时,如果你注意角落边缘的像素,这个像素点(绿色阴影标记)只被一个输出所触碰或者使用,因为它位于这个3×3的区域的一角。但如果是在中间的像素点,比如这个(红色方框标记),就会有许多3×3的区域与之重叠。所以那些在角落或者边缘区域的像素点在输出中采用较少,意味着你丢掉了图像边缘位置的许多信息。(大致意思就是,边缘数据进行卷积运算,乘法次数较少,但是中间的数据会进行很多次运算,所以边缘是有特征没有提取或者说丢失了某些特征)。

所以我们要padding。

假设p表示我在图片外围添加几层的像素,假设p为1,则左右两边都会添加上所以总的维度会增加2,因此如果p=1,那么最终图片规模(n+2)*(n+2)。

如果p是填充的数量,在这个案例中,p=1,因为我们在周围都填充了一个像素点,输出也就变成了(n+2p−f+1)×(n+2p−f+1),所以就变成了(6+2×1−3+1)×(6+2×1−3+1)=6×6,和输入的图像一样大。

 padding的分类

根据p的大小不同分为两种padding

Valid卷积:意味着不填充。

Same卷积:那意味你填充后,你的输出大小和输入大小是一样的。

这里说明一下,我们要保证使用Same卷积,其实不一定需要将padding的  p  进行调整,也可以对卷积核  进行调整。

最终目的是保证这个等式成立,(输出大小等于输入即可)n+2p−f+1=n。所以 f 也是可以变的。

1.5 卷积步长(Strided convolutions)

我们在前面说过,每次卷积核都会往左边移位,前面默认一个单位,但是其实不一定是一个单位啊,我可以移动一次2个单位。移动单位假设为s = 2。会有下面的算式。

 ok自己可以计算一下,整个第一行的计算只有三个矩阵计算,结果为91,100,83.

最终对于上面最一个总结:

对于将上面讲的每个单位字母都弄清楚后,对于输出规模的计算就很简单了。

 1.6 三维卷积(Convolutions over volumes)

现在的图片都不是黑白的,上面的计算都是一些6*6的黑白像素,但是我们现实生活肯定不仅仅如此,使用RGB的话,就要将  6*6  扩充为  6*6*3,也就是我们说的三维卷积。

看一下上面的图片,emmm其实就是在一维的基础上,同时做三个维度同时做卷积运算,各个维度各自运算。值得注意的是,其实我们运算最终,是将卷积核  3*3*3  相乘的  27  个结果加起来作为卷积结果的,也就是说,虽然前面的维度都变成了3,但是最终的结果还是4*4的。

还有一个注意的点是,三维卷积是兼容一维的,我们将红色维度的卷积核设置为正常值111,000,-1-1-1.其他维度都设置成零,那么4*4*1的结果就是红色维度的一维运算结果,这个还是很好理解的。同时我们也可以得出一个结果,卷积核不同,得出的结果不同,但是都能反映原来的彩色图片的特征,因此下面将介绍使用多个卷积核的运算。

 看上图两个不同卷积核,得出的结果就是  4*4*2  的。

 欧克,其实三维就是二维的扩展。

小细节是:这里可以发现,结果的维度(4*4*2)是取决于卷积核的个数的,卷积核几个结果就几维,emmm后面要用。

上面的都是准备知识,准备完了,我们就可以搭建单层的卷积网络了,单层,emmm层数多了也就成了真的卷积网络了。

1.7 单层卷积网络(One layer of a convolutional network)

吴恩达老师讲的非常细节,所以这里就大致概括一下。

 上面的图中,彩色部分的开始我们见过,就是使用两个卷积核对RGB三维像素图片进行计算,得到  4*4*2  的结果。单层卷积就是在这个结果基础上,对  4*4*2  的结果做一个Relu函数运算,再加一个偏置b。欧克最后得到的就算单层卷积的a值,前面的  4*4*2 其实有z值的意思了(于神经网络的对比)。

欧克到这里你已经学习到了如何搭建一个卷积网络,emmm1.8节就是介绍了一些搭建的神经网络,验算一下搭建的数据。有兴趣的小伙伴取听听课就可以。

但是光卷积是不够的,吴恩达老师原话:

一个典型的卷积神经网络通常有三层,一个是卷积层,我们常常用Conv来标注。上一个例子,我用的就是CONV。还有两种常见类型的层,我们留在后两节课讲。一个是池化层,我们称之为POOL。最后一个是全连接层,用FC表示。虽然仅用卷积层也有可能构建出很好的神经网络,但大部分神经望楼架构师依然会添加池化层和全连接层。幸运的是,池化层和全连接层比卷积层更容易设计。后两节课我们会快速讲解这两个概念以便你更好的了解神经网络中最常用的这几种层,你就可以利用它们构建更强大的网络了。

看完原话就是继续学习了,目标明确,学完Conv,现在学习POOL、FC,但是FC就是以前学习过的神经网络,或者说全连接神经网络,所以只要简单了解一下POOL。

1.9 池化层(Pooling layers)

除了卷积层,卷积网络也经常使用池化层来缩减模型的大小提高计算速度,同时提高所提取特征的鲁棒性,我们来看一下。加粗的就是池化的优点。

看一个简单的池化 :

使用 2*2 的矩阵格子对4*4的矩阵进行分割,每个小矩阵中取一个最大值,其实就是Max pooling(最大池化)。当然还有平均池化,也就是取平均值,emm一般用的最大池化。

 再来看一个3*3的对5*5特征的池化,其实也有f,s,p的区分,但是不再过多介绍,总之可以像Conv一样计算pooling之后的大小。

总结一下:

 1.11 为什么使用卷积?(Why convolutions?)

卷积层的两个主要优势在于参数共享稀疏连接

一是参数共享。卷积的卷积核不用改变,也就是说,一个卷积核对于整个照片的区域都是起作用的,使得卷积核的数据可以共享给整个图片。减少数据运算。

第二个是稀疏连接,稀疏连接的意思大概是:对比全连接的神经网络,任何输入对于每一个输出都是由影响的,相当于  m->1  的影响,但是卷积中,某一个卷积结果的参数,只与 f*f 个输入有关系,

 看下面的图,红色部分的输出30只与左边红色部分的数据有关系,这里m = n*n,但是f远远小于n。所以是 f * f -> 1的影响。肯定小于m。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值