吴恩达深度学习 course4 卷积神经网络

1.computer vision

cv是深度学习的一个重要方向,cv一般而言包括:图像识别,目标检测,神经风格转换

传统的神经网络所存在的问题:图片的输入维度比较大,具体如下图所示,这就造成了权重w的维度比较大,那么他所占用的内存也会比较大,计算w的计算量也会很大

所以我们会引入卷积神经网络

2.Edge detection example

神经网络由浅层到深层可以检测图片的边缘特征,局部特征,整体特征

边缘特征以垂直边缘检测为例.如下图所示,将一个6X6的灰度图片卷积一个filter,得到一个新的图片即是对该图进行了垂直边缘检测,其中,∗ 表示卷积操作。python中,卷积用conv_forward()表示;tensorflow中,卷积用tf.nn.conv2d()表示;keras中,卷积用Conv2D()表示。

3.More edge detection

图片边缘检测有两种渐变方式,一种由明边暗,一种由暗变明,具体如下所示

实际应用中,对输出图片取绝对值,则渐变方式不同也不会影响什么

水平边缘检测例子:

除了上图的filter,其他常见的filter还有Sobel filter和Scharr filter,如下:

实际应用中,我们会检测边缘的更多特征,而不只是垂直特征与水平特征,filter的参数是通过训练得到的,类似于标准神经网络中的权重W一样由梯度下降算法反复迭代求得,确定边缘特征后,CNN就可以对所有的边缘特征进行一个检测

4.Padding

按照之前所讲的,如果一张nxn的图片,filter为fxf,那么卷积后所得到的图片大小为 n-f+1,卷积后会出现两个问题:

图片变得更小;图片自身的边缘信息丢失

解决这两个问题,我们可以对图像就行一个填充,如下: 填充的部分像素都为0

假设填充了p个宽度,那么填充之后进行卷积所得到的图片为  (n+2p-f)+1 X (n+2p-f)+1

valid convolutions:不对图片进行填充

same convolutions:即是 令(n+2p-f)+1=n  ==> p=(f-1)/2,使得填充后进行卷积所得到的图片与原图片的大小相同,f通常为奇数(odd),原因也许可能是:

使得p为整数,填充为对称的填充

为奇数的时候filter有一个中心位置   

5.Strided convolutions

步长即是只每一次卷积的时候,步进的长度:如下

步长为s时,卷积后所得到的图片大小为 (n+2p-f)/s +1  X (n+2p-f)/s +1,如果结果不为整数,则向下取整,会把卷积时超出图片的部分给舍去,如上图中的画X部分

我们所说的卷积实际上计算的是一个相关系数,与数学意义上的卷积并不相同,数学意义上的卷积会对filter进行一个旋转,而我们的操作过程并不会这样,在深度学习中,对filter旋转这并不重要

6.Convolutions over volumes

对于有R,G,B三个颜色通道的图片来说,对其进行一个卷积时,filter中的最后一个参数 应该与颜色通道的个数保持一致

3通道图片的卷积运算与单通道图片的卷积运算基本一致。过程是将每个单通道(R,G,B)与对应的filter进行卷积运算求和,然后再将3通道的和相加,得到输出图片的一个像素值。

不同通道的滤波算子可以不相同。例如R通道filter实现垂直边缘检测,G和B通道不进行边缘检测,全部置零,或者将R,G,B三通道filter全部设置为水平边缘检测。

上图指的是是只有一个filter的情况,为了进行多个卷积运算,实现更多边缘检测,可以增加更多的滤波器组。例如设置第一个滤波器组实现垂直边缘检测,第二个滤波器组实现水平边缘检测。这样,不同滤波器组卷积得到不同的输出,个数由滤波器组决定。,则结果应该如下所示

假设图片的颜色通道为nc,n x n x nc, 与f x f x nc,所得到的图片为(n -f +1) x (n -f +1) x n'c  n'c为过滤器个数

 7.One layer of a convolutional network

卷积神经网络的单层结构如下:

上图中的参数一共有 (3x3x3+1)x2个,参数的数目与图片的大小无关,只与filter有关

总结一下CNN单层结构的所有标记符号,设层数为l 。

  • f [l]   = filter size
  • p [l]  = padding
  • s [l]   = stride
  • n [l] c = number of filters

 8.A Simple Convolution network example

一个简单的CNN例子如下:

前几层都是在进行卷积操作,n[H]与n[W]逐渐减下,而n[c]逐渐增加,最后一层,将图片化为一个向量(7x7x40,1)的向量,与最后一层的输出层相连接

CNN有三种类型的layers:

9.Pooling layers

池化层是用来减小尺寸,提高运算速度,减少噪音,使模型更加健壮的

Pooling layers的做法比convolution layers简单许多,没有卷积运算,仅仅是在滤波器算子滑动区域内取最大值,即max pooling,这是最常用的做法。注意,超参数p很少在pooling layers中使用。

pooling layers只有filter的两个参数f和s,而且都是固定的,不需要经过训练得到的所以计算量很少

max pooling:即在filter的滑动范围取最大值,优势:忽略其他特征,只保留那个最大值的特征,降低模型的noise,使其比较健壮

average pooling:即在filter的滑动区域进行一个求平均的操作

max pooling用的比average pooling 用的多

10.Convolutional nerual network example

CNN例子:

以一个数字识别为例   第一层由一个conv 和一个pool组成 ,第二层也是 ,第三层和第四层是一个全连接,最后输出层的激活函数是一个softmax activation

每一层的参数情况如下:

11.why convolutions

为什么使用CNN

参数共享:一个特征检测器(例如:垂直特征检测器)适用于一个图片的一部分,也可能会适应图片的另外一个部分

稀疏连接:每一层的输出只与输入部分区域内有关

除此之外,CNN的参数比较少,这就要求所需要的样本可以少一些,从而一定程度上不易发生过拟合现象

而且,CNN擅长捕捉区域的位置偏移,不太易受物体的位置影响,增强了网络的准确性和系统的健壮性

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏计算机视觉战队

每日一学 | 线性分类笔记(上)

图像分类的任务,就是从已有的固定分类标签集合中选择一个并分配给一张图像。我们还介绍了k-Nearest Neighbor (k-NN)分类器,该分类器的基本思想...

9010
来自专栏机器学习算法与Python学习

卷积神经网络详解

注:看本文之前最好能构理解前馈圣经网络以及BP(后向传播)算法,可以看之前发的相关文章或者看知乎、简书、博客园等相关博客。 卷积神经网络(Convolution...

31280
来自专栏计算机视觉战队

干货——线性分类(上)

图像分类的任务,就是从已有的固定分类标签集合中选择一个并分配给一张图像。我们还介绍了k-Nearest Neighbor (k-NN)分类器,该分类器的基本思想...

13520
来自专栏企鹅号快讯

大牛教你使用7种卷积神经网络进行物体检测!

-欢迎加入AI技术专家社群>> 当我们讨论对图片进行预测时,到目前为止我们都是谈论分类。我们问过这个数字是0到9之间的哪一个,这个图片是鞋子还是衬衫,或者下面这...

404100
来自专栏AI研习社

前Twitter资深工程师详解YOLO 2与YOLO 9000目标检测系统

AI研习社按:YOLO是Joseph Redmon和Ali Farhadi等人于2015年提出的第一个基于单个神经网络的目标检测系统。在今年CVPR上,Jose...

57160
来自专栏书山有路勤为径

Advanced CNN Architectures(R-CNN系列)

除了将该图像标记为猫外,还需要定位图中的猫,典型方法是在该猫周围画一个边界框,这个方框可以看做定义该方框的一系列坐标,(x,y) 可以是方框的中心w 和 h 分...

9420
来自专栏SIGAI学习与实践平台

反向传播算法推导-卷积神经网络

在SIGAI之前的公众号文章“反向传播算法推导-全连接神经网络”中,我们推导了全连接神经网络的反向传播算法。其核心是定义误差项,以及确定误差项的递推公式,再根据...

11530
来自专栏企鹅号快讯

16 Spatial Transformer Networks

Jaderberg M, Simonyan K, Zisserman A, et al. Spatial transformer networks[J]. 20...

32650
来自专栏机器学习算法与Python学习

线性分类器

线性分类 上一篇笔记介绍了图像分类问题。图像分类的任务,就是从已有的固定分类标签集合中选择一个并分配给一张图像。我们还介绍了k-Nearest Neighbor...

38690
来自专栏机器学习、深度学习

多目标检测跟踪文献代码汇总

The Multiple Object Tracking Benchmark https://motchallenge.net/ 高速跟踪: 当检测精度较高...

54250

扫码关注云+社区

领取腾讯云代金券