吴恩达Coursera深度学习课程 DeepLearning.ai 提炼笔记(4-1)-- 卷积神经网络基础

本文是吴恩达Coursera深度学习课程中关于卷积神经网络的基础笔记,涵盖计算机视觉、边缘检测、Padding、卷积步长、立体卷积、简单卷积网络、池化层等内容。讲解了卷积神经网络在处理图像识别问题中的优势,如参数共享、连接稀疏性,并介绍了LeNet-5网络结构。
摘要由CSDN通过智能技术生成

作者大树先生
博客http://blog.csdn.net/koala_tree
知乎https://www.zhihu.com/people/dashuxiansheng
GitHubhttps://github.com/KoalaTree
2017 年 11 月 6 日


Ng新课终于发布了,撒花!以下为在Coursera上吴恩达老师的 DeepLearning.ai 课程项目中,第四部分《卷积神经网络》第一周课程“卷积神经网络基础”关键点的笔记。本次笔记几乎涵盖了所有视频课程的内容。在阅读以下笔记的同时,强烈建议学习吴恩达老师的视频课程,视频请至 Coursera 或者 网易云课堂。


同时我在知乎上开设了关于机器学习深度学习的专栏收录下面的笔记,以方便大家在移动端的学习。欢迎关注我的知乎:大树先生。一起学习一起进步呀!_


卷积神经网络 — 卷积神经网络基础

1. 计算机视觉

计算机视觉(Computer Vision)包含很多不同类别的问题,如图片分类、目标检测、图片风格迁移等等。

还在路上,稍等...

对于小尺寸的图片问题,也许我们用深度神经网络的结构可以较为简单的解决一定的问题。但是当应用在大尺寸的图片上,输入规模将变得十分庞大,使用神经网络将会有非常多的参数需要去学习,这个时候神经网络就不再适用。

卷积神经网络在计算机视觉问题上是一个非常好的网络结构。

2. 边缘检测示例

卷积运算是卷积神经网络的基本组成部分。下面以边缘检测的例子来介绍卷积运算。

所谓边缘检测,在下面的图中,分别通过垂直边缘检测和水平边缘检测得到不同的结果:

还在路上,稍等...

垂直边缘检测:

假设对于一个 6 × 6 6\times6 6×6 大小的图片(以数字表示),以及一个 3 × 3 3\times3 3×3 大小的 filter(卷积核) 进行卷积运算,以“ ∗ * ”符号表示。图片和垂直边缘检测器分别如左和中矩阵所示:

还在路上,稍等...

filter 不断地和其大小相同的部分做对应元素的乘法运算并求和,最终得到的数字相当于新图片的一个像素值,如右矩阵所示,最终得到一个 4 × 4 4\times4 4×4 大小的图片。

边缘检测的原理:

以一个有一条垂直边缘线的简单图片来说明。通过垂直边缘 filter 我们得到的最终结果图片可以明显地将边缘和非边缘区分出来:

还在路上,稍等...

卷积运算提供了一个方便的方法来检测图像中的边缘,成为卷积神经网络中重要的一部分。

多种边缘检测:

垂直和水平边缘检测

还在路上,稍等...

更复杂的filter

还在路上,稍等...

对于复杂的图片,我们可以直接将filter中的数字直接看作是需要学习的参数,其可以学习到对于图片检测相比上面filter更好的更复杂的filter,如相对于水平和垂直检测器,我们训练的 filter 参数也许可以知道不同角度的边缘。

通过卷积运算,在卷积神经网络中通过反向传播算法,可以学习到相应于目标结果的filter,将其应用于整个图片,输出其提取到的所有有用的特征。

还在路上,稍等...

卷积和互相关:

在数学定义上,矩阵的卷积(convolution)操作为首先将卷积核同时在水平和垂直方向上进行翻转,构成一个卷积核的镜像,然后使用该镜像再和前面的矩阵进行移动相乘求和操作。如下面例子所示:

还在路上,稍等...

在深度学习中,我们称为的卷积运算实则没有卷积核变换为镜像的这一步操作,因为在权重学习的角度,变换是没有必要的。深度学习的卷积操作在数学上准确度来说称为互相关(cross-correlation)。

3. Padding

没有Padding的缺点:

  • 每次卷积操作,图片会缩小;
    就前面的例子来说, 6 × 6 6\times6 6×6 大小的图片,经过 3 × 3 3\times3 3×3 大小的 filter,缩小成了 4 × 4 4\times4 4×4 大小
    图片: n × n n\times n n×n --> ( n − f + 1 ) × ( n − f + 1 ) (n-f+1)\times (n-f+1) (nf+1)×(nf+1)
  • 角落和边缘位置的像素进行卷积运算的次数少,可能会丢失有用信息。

其中,n表示图片的长或宽的大小,f表示filter的长或宽的大小。

加Padding:

为了解决上面的两个缺点,我们在进行卷积运算前为图片加padding,包围角落和边缘的像素,使得通过filter的卷积运算后,图片大小不变,也不会丢失角落和边沿的信息。

还在路上,稍等...

以p表示 Padding 的值,则输入 n × n n\times n n×n大小的图片,最终得到的图片大小为 ( n + 2 p − f + 1 ) × ( n + 2 p − f + 1 ) (n+2p-f+1)\times (n+2p-f+1) (n+2pf+1)×(n+2pf+1),为使图片大小保持不变,需根据filter的大小调整p的值。

Valid / Same 卷积:

  • Valid:no padding;( n × n n\times n n×n --> ( n − f + 1 ) × ( n − f + 1 ) (n-f+1)\times (n-f+1) (nf+1)×(nf+1)
  • Same:padding,输出与输入图片大小相同,( p = ( f − 1 ) / 2 p=(f-1)/2 p=(f1)/2)。在计算机视觉中,一般来说padding的值为奇数(因为filter一般为奇数)

4. 卷积步长(stride)

卷积的步长是构建卷积神经网络的一个基本的操作。

如前面的例子中,我们使用的 stride=1,每次的卷积运算以1个步长进行移动。下面是 stride=2 时对图片进行卷积的结果:

还在路上,稍等...

以s表示stride的大小,那么在进行卷积运算后,图片的变化为: n × n n\times n n×n -->

  • 27
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值