04.卷积神经网络_第一周卷积神经网络

1.1 计算机视觉

  上面这张图是64x64像素的图像,它的数据量是12288,下图是1000x1000像素的图像,它的数据量是3百万。如果用全连接网络去处理这张图片,输入是一个维度为3百万的向量,如果隐藏层有1000个神经元,则第一层的权重是一个(1000,3百万)的矩阵,有30亿个参数。这是一个非常大的数字,在参数量如此巨大的情况下,难以获得足够的数据来防止过拟合。并且一个拥有这么多参数的神经网络需要的内存量是让人难以接受的。为了处理大尺寸图像,可以使用卷积运算。

1.2 边缘检测

  一个神经网络的前几层能检测到物体的边缘,后面几层可以检测到物体的部分,最后几层可以检测物体的整体。一张图像的边缘如何检测?通过垂直检测器可以检测到垂直边缘,水平检测器可以检测到水平边缘。

  为了检测图像中的垂直边缘,可以通过一个3x3的矩阵,这里称为滤波器(filter),也有些论文称为核(kernel)。使用滤波器对图像进行卷积可以得到边缘。原始图像中有个明显的边缘,在检测结果的中间有个较粗的边缘,因为原始图像较小,如果是1000x1000的图像,则可以检测到很好的边缘信息。卷积运算提供了一种简单的方法来检测边缘。

1.3 更多边缘检测内容

  还是上节的例子,图像左边亮右边暗,如果将图像进行颜色翻转,滤波器不变,就会得到不一样的结果。这样一个特定的滤波器可以检测到图像亮度从亮到暗和从暗到亮的变化。 

  再看看水平边缘检测,检测结果中30和-30分别表明检测到了由亮到暗和由暗到亮的边缘。因为这里的图像较小(6x6),所以其中的过渡带10和-10就很明显,如果是1000x1000的大图,这样的过渡带相对图像尺寸就微不足道了。

  上面使用滤波器只是一种数字组合,在计算机视觉发展中曾公开讨论过哪种数字组合最好,如sobel滤波器、scharr滤波器。这里将滤波器中的数字设为参数,通过反向传播的算法去学习这些参数,不仅可以学习到垂直边缘滤波器、水平边缘滤波器,还可以检测许多特殊的角度(45°,70°,73°等),甚至没有名字的滤波器。

1.4 Padding

  前文所述,用fxf的滤波器对nxn的图像进行卷积,就会产生一个(n-f+1)x(n-f+1)的结果,所以上面得到一个4x4的结果。这样有两个缺点,一是每次卷积后图像就会缩小,经过几层后可能会变成1x1,ResNet有100多层,这样肯定不行。二是角落处的点只会被滤波器“触碰”到一次,而中间的点就会被“触碰”多次,这会导致角落或者边缘的点在输出中采样较少,因而导致失去边缘信息。为了解决这个问题,可以在卷积前填充图像,习惯用0填充。设填充为p,输出为(n+2p-f+1)x(n+2p-f+1)。至于选择多少像素填充,这里有两种卷积方式,valid和same。valid意味着不填充,same意思是填充后输出大小和输入一样。对于same来说,就是n+2p-f+1=n,因此p=(f-1)/2。习惯上,计算机视觉中滤波器都是奇数,比如3x3,5x5,7x7,很少看到偶数,因为偶数会造成不对称填充,其次是,奇数滤波器有一个中心,有时候需要指出滤波器的位置。不过,这些都不是使用奇数滤波器的充分原因,但是大部分论文中都使用奇数滤波器。

1.5 卷积步长

  卷积中的步幅设置是一个基本操作,如下图所示,结果向下取整。

  在数学领域,这里的卷积叫做互相关(cross-correlation),把这里的卷积在元素乘积和求和前对滤波器进行翻转才叫做卷积。而在深度学习领域,重新定义了卷积。

1.6 卷积为何有效

  如果不仅想检测灰度图像,也想检测彩色图像,这里使用3x3x3的立体滤波器对RGB图像进行检测,其中滤波器最后的3对应RGB的3,如下所示输出4x4的结果。如果想使用多个滤波器来检测不同的特征,就会输出多个叠加的结果,如下图结果中的2所示。

1.7 单层卷积神经网络

  一个卷积层可以通过上节所述并在其结果上,针对每个特征图加上一个偏置b,然后在使用ReLU激活函数得到卷积层的输出。卷积层有个特点,假如上述的卷积层有10个滤波器,则参数为(3x3x3+1)x10=280个,但是不论图像有多大,参数始终是280个,用这10个滤波器提取特征,如垂直边缘、水平边缘和其它特征,即使这些图片很大,参数却很少。这是卷积网络的一个特性,可以避免过拟合。

1.8 简单卷积网络示例

  一个典型的卷积网络是由卷积层、池化层、全连接层组成,当然完全由卷积层组成也可以。原始输入的图像较大,经过一层又一层之后会变小,但是通道数在增加。最后的特征图拉成一个向量送入全连接,随后再使用softmax进行分类。

1.9 池化层

  卷积网络除了使用卷积层,也使用池化层来缩减模型的大小、提高计算速度,同时提高所提取特征的鲁棒性。池化有最大池化和平均池化两种,如下图所示,就是将原图分成很多块区域,然后将对应区域求最大值或平均得到输出。对于最大池化来说,可以把这个4x4的输入看作是某些特征的集合,数字大意味着可能提取了某些特定特征。最大化运算的实际作用就是如果在过滤器中提取到某个特征,那么保留其最大值(如左上角),如果没有提取到某个特征,其中最大值也还是很小(如右上角),这就是最大池化的直观理解。人们用最大池化的主要原因是,此法在很多实验中效果都很好。尽管刚刚的直观理解经常被引用,但是不知道大家是否真的了解了它的真正原因,这可能都是推测。它有一组超参数并不需要学习,一定确定了f和s,它就是一个固定运算,梯度下降无需改变任何值。

  下面是一个池化的具体操作,之前讲的计算卷积层输出大小的公式同样适用于池化。输入的通道数等于输出的通道数,每个通道执行单独的最大池化计算。

  还有另外一种类型的池化-平均池化,它不太常用,顾名思义,它计算的是滤波器中的平均值不是最大值。目前来说最大池化比平均池化更常用,但也有例外,就是深度很深的神经网络,可以用平均池化来分解规模为7x7x1000的网络,在整个空间求平均值,得到1x1x1000的输出。

  池化的超参数包括滤波器大小f和步幅s,常用的参数值是f=2,s=2,应用频率非常高,其效果相当于高度和宽度缩减一半,也有f=3,s=2的情况。其它超参数就是用最大池化还是平均池化了,也可以根据自己意愿增加表示padding的超参数,当然很少使用这种情况,也有例外。池化在反向传播过程中没有需要训练的参数,只是神经网络某一层的静态属性。

1.10 卷积神经网络示例

  一个典型的卷积网络由卷积层、池化层、全连接层组成。池化层没有参数,卷积层的参数相对较少,许多参数存在于神经网络的全连接层。随着网络的加深,激活值尺寸在减少,如果下降太快,也会影响网络性能。

1.11 为什么使用卷积?

  和只用全连接层相比,卷积层的两个主要优势在于参数共享和稀疏连接。例如一个32×32×3(3072)的图像到28×28×6的特征图,全连接层需要3072×4704=14M个参数,要训练的参数很多。而卷积需要的每个过滤器只有5×5+1=26个参数,一共6个过滤器。

  卷积网络映射这么少参数有两个原因:一是参数共享,特征检测器如垂直边缘检测如果适用于图片某个区域,那么它也可能适用于其它区域,也就是说,如果使用一个3×3的过滤器检测垂直边缘,图片的任何区域都可以使用这个过滤器。第二种方法是稀疏连接,即输出特征图中的一个值,只取决于前一个特征图中一部分区域,并非是整个特征图。神经网络可以通过这两种机制减少参数,以便于使用更小的训练集来训练它,从而防止过拟合。卷积神经网路还具有平移不变性,即使图像有些平移,依旧可以输出准确的结果。网路可以通过自我学习获得健壮的参数。

posted @ 2018-07-16 14:31 mjl_cv 阅读(...) 评论(...) 编辑 收藏

04.卷积神经网络_第一周卷积神经网络相关推荐

  1. 吴恩达深度学习第四课第一周 卷积神经网络

    文章目录 前言 一.计算机视觉(引言) 二.边缘检测示例(过滤器) 三.更多边缘检测内容(由亮到暗还是由暗到亮?) 四.Padding(Valid.Same.p) 五.卷积步长(s) 六.三维卷积(通 ...

  2. ​深度学习笔记 第四门课 卷积神经网络 第一周 卷积神经网络基础

    本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...

  3. 陈越数据结构_第一周

    陈越数据结构_第一周 1. 最大子列和问题 是第一周最后讲到的4种算法的实验题,属于基本要求,一定要做: 题目见PAT 输入样例: 6 -2 11 -4 13 -5 -2 输出样例: 20 1.1 解 ...

  4. 卷积神经网络——第一周 卷积神经网络基础——第四部分

    1.10 卷积神经网络示例(Convolutional neural network example) 构建全卷积神经网络的构造模块我们已经掌握得差不多了,下面来看个例子. 假设,有一张大小为32×3 ...

  5. 卷积神经网络——第一周 卷积神经网络基础——第三部分

    1.7 单层卷积网络(One layer of a convolutional network) 今天我们要讲的是如何构建卷积神经网络的卷积层,下面来看个例子. 上节课,我们已经讲了如何通过两个过滤器 ...

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

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

  7. 卷积神经网络——第一周 卷积神经网络基础——第一部分

    1.1 计算机视觉(Computer vision) 欢迎参加这次的卷积神经网络课程,计算机视觉是一个飞速发展的一个领域,这多亏了深度学习.深度学习与计算机视觉可以帮助汽车,查明周围的行人和汽车,并帮 ...

  8. 人工神经网络和卷积神经网络_神经生理学和人工神经网络

    人工神经网络和卷积神经网络 I'm not a doctor in medicine, but I'm really fascinated by biology and especially how ...

  9. 医学图像处理医学图像处理-卷积神经网络卷积神经网络_基于深度卷积神经网络的刀具磨损量自动提取方法...

    ⬆点击上方蓝色字体,关注<工具技术>官方微信~ 数控加工实质上是刀具和毛坯的相互运动,包含众多的不可控因素,在工件成型的过程中,刀具不可避免发生磨损.为了提高加工效率,实际加工中一般采用高 ...

最新文章

  1. bootstrap配置Nacos出现Param ‘serviceName‘ is illegal, serviceName is blank
  2. Docker常用操作命令(一)
  3. Python -- xlrd,xlwt,xlutils 读写同一个Excel
  4. 用生动的例子花式解释:python类中一定需要有 __init__方法么?没有会怎样?
  5. extjs2.0 ie8 下拉树_ExtJs下拉树的实现
  6. 美国留学计算机 奖学金,美国留学 计算机专业奖学金申请解析
  7. 某微型计算机指令格式如图,组成原理考试试卷
  8. 本文为 2021 年 5 月知识总结
  9. VUE 响应式原理源码:带你一步精通 VUE | 原力计划
  10. 僵尸矩阵 · Zombie in Matrix
  11. Linux各类压宿包的压缩和解压方法
  12. javaw java_我可以找出java程序是使用java还是javaw启动的
  13. 电脑壁纸桌面放计算机,电脑壁纸
  14. linux系统怎样将图片导出,Linux 下 将PDF文件中的文本,图片导出的方法。
  15. 如何自动更新WordPress盐
  16. 路由器怎么用自己的笔记本电脑进行配置
  17. linux nginx配置81端口用于访问web81
  18. 抑郁症/新药等最新研究成果进展(2021年10月)
  19. 移动电源大家都买多大的?大容量移动电源推荐
  20. 数组(一维数组与二维数组)

热门文章

  1. MySQL基础(DDL、DML、DQL)
  2. Unity虚拟现实(互联网+)
  3. 电脑软件超时、MOCK测试方案
  4. PDF文件如何转换成转图片?分享两种实现方法
  5. Kubesphere部署nacos
  6. 【神经网络与深度学习】第一章 使用神经网络来识别手写数字
  7. 霍尼韦尔推出电池储能系统平台
  8. C 语言初学——一起分享、共同学习。
  9. 脱发和生长护理产品行业调研报告 - 市场现状分析与发展前景预测
  10. 三大运营商:移动/电信/联通NB-IoT卡资费介绍