转载来源:http://www.cnblogs.com/marsggbo/p/8166487.html

DeepLearning.ai学习笔记(四)卷积神经网络 – week1 卷积神经网络基础知识介绍

    <div class="postBody"><div id="cnblogs_post_body" class="blogpost-body cnblogs-markdown"><h1 id="autoid-0-0-0"><strong>一、计算机视觉</strong></h1>


如图示,之前课程中介绍的都是64* 64 3的图像,而一旦图像质量增加,例如变成1000 1000 * 3的时候那么此时的神经网络的计算量会巨大,显然这不现实。所以需要引入其他的方法来解决这个问题。

二、边缘检测示例


边缘检测可以是垂直边缘检测,也可以是水平边缘检测,如上图所示。

至于算法如何实现,下面举一个比较直观的例子:


可以很明显的看出原来6 * 6的矩阵有明显的垂直边缘,通过3 * 3的过滤器(也叫做 “核”)卷积之后,仍然保留了原来的垂直边缘特征,虽然这个边缘貌似有点大,这是因为数据不够大的原因,如果输入数据很大的话这个不是很明显了。

三、更多边缘检测内容


除了上面的垂直,水平边缘检测,其实也可以检测初颜色过度变化,例如是亮变暗,还是暗变亮?

下面是一些常见的过滤器,第二个是Sobel filter,具有较强的鲁棒性,第三个是Schoss filter

其实过滤器的9个参数也可以通过学习的方式获得,虽然比较费劲,但是可能会学到很多其他除了垂直,水平的边缘特征,例如45°,70°等各种特征。

四、Padding

1.为什么要用padding

之所以运用Padding(填充)主要是为了解决如下两个缺点:

1.由前面的例子可以看到,每经过一次卷积计算,原数据都会减小,但有的时候我们并不希望这样。举个比较极端的例子:假设原数据是30 * 30的一只猫的图像,经过10次卷积(过滤器是3 * 3)后,最后图像只剩下了10 * 10了,此时不就剩下马赛克了吗23333

2.由卷积的计算方法可以知道,图像边缘特征计算次数显然少于图像中间位置的像素点,如下图示(绿色的位置明显是冷宫)

所以为了解决上=上面两个问题,引入了padding,一般是padding=1,填充的数据是0。效果如下:

原来的6 * 6填充后变成了8 * 8,此时在经过一次卷积得到的仍旧是6 * 6的矩阵。

下面总结一下卷积之后得到矩阵大小的计算方法,假设:

  • 原数据是 n * n
  • 过滤器是 f * f
  • padding p * p

得到的矩阵大小是 (n+2p-f+1)*(n+2p-f+1)

对于第二个缺点,虽然边缘像素点仍旧计算的比较少,但是这个缺点至少一定程度上被削弱了。

2.如何padding的大小

两种选择:Valid 卷积Same 卷积

  • valid 卷积

即不添加padding。

  • Same 卷积

即保持原图像矩阵的大小。满足 (n+2p-f+1) = n ,即 p=f−12” role=”presentation” style=”position: relative;”>p=f−12p=f−12
为了满足上式,f一般奇数。

五、卷积步长

过滤器纵向,横向都需要按步长S来移动,如图示

结合之前的内容,输出矩阵大小计算公式方法为,假设:

  • 原数据是 : n * n
  • 过滤器是 : f * f
  • padding : p * p
  • 步长Stride: s * s

得到的矩阵大小是 ⌊n+2p−fs” role=”presentation” style=”position: relative;”>n+2p−fsn+2p−fs+1⌋

⌊⌋: 向下取整符号 ⌊59/60⌋=0

⌈⌉:向上取整符号 ⌈59/60⌉=1

六、卷积中“卷”的体现之处

这一节用立体卷积来解释。


如图示,输入矩阵是 6 * 6 * 3(height * width * channels),过滤器是3 * 3 * 3,计算方法是一一对应相乘相加,最后得到4 * 4的二维矩阵。

有时可能需要检测横向边缘和纵向边缘,或者其他特征,所以我们可以使用多个过滤器。
上图则使用了两个过滤器,得到的特征矩阵大小为 4 * 4 * 2.

七、单层卷积网络


如图示得到4 * 4的矩阵后还需要加上一个变差bn” role=”presentation” style=”position: relative;”>bnbn个参数。

下面总结了各项参数的大小和表示方法:

  • 过滤器大小:f[l]” role=”presentation” style=”position: relative;”>f[l]f[l]
  • 填充 padding:p[l]” role=”presentation” style=”position: relative;”>p[l]p[l]
  • 步长 stride:sl” role=”presentation” style=”position: relative;”>slsl
  • 激活函数: al:nHl∗nWl∗ncl” role=”presentation” style=”position: relative;”>al:nlH∗nlW∗nlcal:nHl∗nWl∗ncl
  • 权重Weight: fl∗fl∗nc[l−1]∗nc[l]” role=”presentation” style=”position: relative;”>fl∗fl∗n[l−1]c∗n[l]cfl∗fl∗nc[l−1]∗nc[l]
  • 偏差bias:1∗1∗1∗nc[l]” role=”presentation” style=”position: relative;”>1∗1∗1∗n[l]c1∗1∗1∗nc[l]
  • 输入矩阵(height* width* channels): nHl−1∗nWl−1∗ncl−1” role=”presentation” style=”position: relative;”>nl−1H∗nl−1W∗nl−1cnHl−1∗nWl−1∗ncl−1

    • 每一卷积层的过滤器的通道的大小 = 输入层的通道大小
  • 输出矩阵(height* width* channels): nHl∗nWl∗ncl” role=”presentation” style=”position: relative;”>nlH∗nlW∗nlcnHl∗nWl∗ncl

    • 输出层的通道的大小 = 过滤器的个数

输出层与输入层计算公式:

nH/W[l]=[nH/W[l−1]+2p[l]−f[l]s[l]+1]” role=”presentation” style=”position: relative;”>n[l]H/W=[n[l−1]H/W+2p[l]−f[l]s[l]+1]nH/W[l]=[nH/W[l−1]+2p[l]−f[l]s[l]+1]

八、简单卷积网络示例


上图简单介绍了卷积网络的计算过程,需要再介绍的一点是最后一层的全连接层,即将7 * 7 * 40的输出矩阵展开,得到1960个节点,然后再采用逻辑回归或Softmax来进行预测。

另外从上面的例子还可以看到,在一般的卷积神经网络中,每一层的矩阵的height和width是逐渐减小的,而channel则是增加的。

卷积神经网络中常见的三中类型的layer:

  • Convolution (Conv 卷积层)
  • Pooling (Pool 池化层)
  • Fully connected (FC 全连接层)

九、池化层

Pooling layer(池化层)的作用是压缩数据,加速运算,同时提高所提取特征的鲁棒性。

  • Max Pooling
    即选取最大的

  • Average Pooling
    即计算平均值,但是这个用的不多,因为这个会加入更多的计算量

注意:一般来说池化层是不需要Padding的,所以p都会置为0

十、卷积神经网络示例

注意:在吴大大的视频中将 Conv layerPooling layer合并在一起视为一层,因为池化层没有参数(因为池化层的过滤器的无参数,而且其大小可以事先确定好)。 但是在其他文献中可能会把池化层算成单独的层,所以具体视情况而定。

十一、为什么使用卷积?

卷积相比于全连接的好处最直观的就是使用的参数更少:

如图示,加入我们有一个32 * 32 * 3的图片,经过6个5 * 5的过滤器后可以得到28 * 28 * 6的矩阵,此时我们只需要 5∗5∗6=150” role=”presentation” style=”position: relative;”>5∗5∗6=1505∗5∗6=150个参数就可以了。而如果不用卷积呢?

首先32 * 32 3 = 3072,假如输出矩阵也要是28 28 * 6,即4704个节点,如果全连接的话那么就需要4704 * 3072个权
重参数,所以这个对比还是很明显的了。

至于为什么可以保证参数少的同时也保证了有效性,是因为如下两个原因

  • 参数共享(Parameter sharing)
  • 稀疏连接(Sparsity of connections)

参数共享:例如我们希望获取图像的竖向特征,那么我们只需加入一个可以检测竖向特征的过滤器就够了。
稀疏连接:如上图所示,输出矩阵左上角的0只与输入矩阵左上角的9个元素有关,其他的值不会干扰。输出矩阵其他位置也一样。所以这就是为什么卷积网络也可以捕捉到图像平移的特征,例如将图片中的猫向左平移几个像素点后,依然能够识别正确。

吴恩达 - 卷积神经网络 学习笔记(一)相关推荐

  1. 吴恩达卷积神经网络学习笔记(六)|CSDN创作打卡

    3.2 特征点检测 神经网络可以通过输出图片上特征点的(x,y)坐标,来实现对目标特征的识别. 我们来看几个例子,假设你正在构建一个人脸识别应用,出于某种原因,你希望算法可以给出眼角的具体位置,眼角坐 ...

  2. 吴恩达 卷积神经网络原理图

    吴恩达 卷积神经网络原理图

  3. 吴恩达机器学习视频学习笔记

    吴恩达机器学习视频笔记 介绍 Introduction 线性回归 Linear Regression 单变量 One Variable 多变量 Multiple Variables 多项式回归 Pol ...

  4. 吴恩达卷积神经网络 笔记,吴恩达 深度神经网络

    如何评价吴恩达的学术地位 吴恩达(AndrewNg),斯坦福计算机系的副教授,师从机器学习的大师级人物MichaelI.Jordan. 同门师兄弟包括ZoubinGhahramani,TommiJaa ...

  5. 吴恩达卷积神经网络笔记,吴恩达人工智能公开课

    吴恩达是个谁 吴恩达(1976-,英文名:AndrewNg),华裔美国人,是斯坦福大学计算机科学系和电子工程系副教授,人工智能实验室主任.吴恩达是人工智能和机器学习领域国际上最权威的学者之一. 吴恩达 ...

  6. 吴恩达机器学习 -- 神经网络学习

    9.1 非线性假设 无论是线性回归还是逻辑回归都有这样一个缺点,即:当特征太多时,计算的负荷会非常大. 吴恩达老师举了一个例子: 当我们使用 的多次项式进行预测时,我们可以应用的很好. 之前课程学习过 ...

  7. 吴恩达推荐深度学习笔记+超详细思维导图!不做学术打工人!

    关于人工智能的分支-深度学习版块的资源有很多,但是都会较为分散.小编今天对这些资源进行了整理归纳,汇编了一套学习资源(包含书籍+电子书+百篇论文+思维导图+吴恩达深度学习笔记大全+计算机视觉学术汇总) ...

  8. 吴恩达卷积神经网络课程——第一周笔记

    Week 1 目录 Week 1 1-1.计算机视觉 1-2.边缘检测示例 1-3.更多关于边缘检测内容 1-4.Padding 1-5.卷积步长 1-6.卷积为何有效 1-7.单层卷积网络 1-8. ...

  9. 【吴恩达机器学习】学习笔记——2.1单变量线性回归算法

    1 回顾 1.1 监督学习 定义:给定正确答案的机器学习算法 分类: (1)回归算法:预测连续值的输出,如房价的预测 (2)分类算法:离散值的输出,如判断患病是否为某种癌症 1.2 非监督学习 定义: ...

最新文章

  1. Java 增强型的for循环 for each
  2. C#的DLL注册为COM,VB来调用
  3. DF学数据结构系列——B树(B-树和B+树)介绍
  4. 2020-09-27 What is Sector-Bounded Nonlinearities?
  5. css字体自定义,bootstrap自定义字体
  6. 二分查找(递归和非递归实现)
  7. iframe 滚动条不显示_HTML基础教程:Iframe的用法
  8. 【POJ2018】Best Cow Fences
  9. wincc用c语言弹出确认窗口,wincc怎样弹出确认窗口?
  10. 恩格列净治疗心衰获得FDA快速通道资格
  11. linux 退出vi报e37,vim模式下报错E37: No write since last change (add ! to override)
  12. linux 计算百分比,计算百分比的分析函数
  13. 期刊、会议水平查询网站 声纳图像处理可以投稿的期刊和会议记录
  14. 旧金山大学计算机科学,Arts and Sciences - Computer Science
  15. GB/T 21605化学品急性吸入毒性试验方法
  16. Android Canvas Layers
  17. ILSVRC 2015-VID数据集下载解压记录
  18. java克鲁斯卡尔算法,最小生成树( 克鲁斯卡尔算法)
  19. vue 头像上传裁剪功能
  20. 英文写作经典指导书--学术写作必备

热门文章

  1. 新建word文档,最上方页眉处总是自己出现一条横线,去除方法总结
  2. 杭州到温州老家自驾路线优化与整理
  3. 电赛校赛总结----一维板球系统【代码开源】
  4. GDP,CPI,PPI,PMI,GNP 是什么
  5. type是python保留字_Python保留字总结
  6. 七个关键心理学(4)沉没成本
  7. 魅族日流量显示无服务器,魅族国际流量如何使用?没有手机卡照样能上网
  8. 感动,我终于学会了用Java对数组求和
  9. SharePoint2013简单部署
  10. 两万字,清华刘云浩教授回答新生关于AI的90个问题