2016-01-18 18:06:43 baimafujinji 阅读数 6400
陆放翁诗云:“纸上得来终觉浅,绝知此事要躬行”,此乃亘古不变之真理也。


图像处理研究的一个很大特点就在于,它是一种和实际应用紧密联系的实用型学科。所有的算法都是针对实际中遇到的问题而存在的。无论是我们新提出了一个算法,还是我们新学习了一个算法,都可以直接写一个程序来检验它的处理效果。而且这种“效果”往往还是一目了然的。因为图像处理的输入和输出都是图像,图像就是用来给人看的。这种直观性是其它研究领域所很难具备的。例如,当年何恺明博士向CVPR提交其关于图像去雾算法的论文时,审稿人就很惊讶于这么简单的方法居然有这么意外的效果。于是其中就有好奇的审稿人直接动手编程实现了他的算法。正所谓,是骡子是马,拉出来溜溜。他算法的效果最终征服了审稿人,也征服了大会的评委会,最终那届的最佳论文奖就首次颁给了来自亚洲的研究者。


而之于正在学习或研究图像算法的同学而言,动手实践的意义就更大了。不要以为你听老师或别人讲了一些算法,或者自己看看冈萨雷斯书上的描述,就觉得自己好像已经get了什么。除非你真的自己能把程序写出了,否则其实你什么都没懂,最多也就是似懂非懂。这一点我最有发言权。很多算法我感觉我也学得不错,但其实我在写Magic House的时候仍然花了很多时间去调试,因为在写的过程中,其实问题是层出不穷的。例如,我在写图像傅立叶逆变换的时候,我感觉这个算法我已经理解的很到位了,但是做逆变换的时候就是得不到原图,而是一篇黑。问题到底出在哪里我其实断断续续想了挺长时间。有一天突然开窍了,因为傅立叶变换的结果存在文件里,其实只是保存了实数的部分,虚数部分根本就没存。因为你在屏幕上看傅立叶变换结果图的时候,看到的也只是实数部分。尽管你可能遇到的问题跟我不一样,但遇到这样或那样的问题总是肯定的。我总结了自己锻炼编写图像处理代码的几个原因:


1)一方面你会发现过去你的理解可能是有偏差的,因为按照你那个想法去实现的代码效果可能并不理想,那问题出在哪里就很值得你思索;

2)另一方面,你自己在实现的过程中很可能发现原作者算法的不足(比如我在实现暗通道算法时就发现这个算法处理大面积的天空时会有问题),然后你进一步研究的方向就来了!这在我看来似乎是发paper最容易的方法。

3)我不得不告诉你,很多paper是会骗人的!中国有学术腐败,国外也有学术造假。洛必达把他老师伯努利教给他的方法写进了自己的书里,于是便有了今天你所学到的洛必达法则。从这个角度来看,18世纪的欧洲就已经有学术腐败了。有些作者paper里的效果很可能是PS过的,所以你按照他的方法,无论怎么做也不可能得到他的效果,这一点如果你不试试,就很可能被骗。

4)写代码本身就是一项本领或者基本功。你将来还很有可能要靠他生存。曲不离口、拳不离手。你现在不好好练,将来很可能作茧自缚。


说到这里我就不禁要提一句。懒惰既是推动人类创新的两大动力之一,但也可能是害得你“啥都不会,只会坐等靠要”、最终一事无成的毒草就像中国过去搞扶贫只会一味的输血,本来还有二亩薄田可以耕种,现在政府有救济款,索性连田也懒得种了,结果导致某些地方越扶越贫。现在很多人在网上一张嘴就是“有没有源代码下载”?或者买书看书也是挑那种“带光盘的”或者满篇满篇就只有代码的。抄来的过程当然轻松,但是知识、技术学会了是自己的,抄来的东西始终是别人的。不是说网上的代码、资源不可以参考,但是你绝对不应该对此产生依赖心理,人还是应该靠自己。如果你写不出来,只能说明你还没真正学会,学懂。何况真正有技术含量的东西,你永远也抄不来。两弹一星我们也曾想让苏联帮忙,但人家凭啥给你?结果怎么样,还不得靠中国人自己吗?要知道,这个技术积累的过程本身也很重要。


说道实践编程,你要么用C/C++,要么用Matlab,可能还有其他小众的(比如我有时也用R做图像处理),但大体上总逃不过这两大阵营。有人说他用Java或者Python, Anyway这其实并不重要。我的讨论还是以C/C++和Matlab为主体来讲。Matlab当然比较好用,什么卷积、直方图、高斯滤波,一个函数搞定!C/C++如果结合OpenCV基本可以达到同样的效果。当这绝对是后话。如果你是初学,最好踏踏实实一点一滴把最基本的图像处理算法实现一下。千里之行,始于足下。九层之台,起于累土。因为建立一个完整的体系思维和拥有一个扎实的基础特别重要。一些看似高大上的算法都是在这些不起眼的算法的堆砌组合下实现的。比如SIFT特征构建时,你会遇到直方图、高斯滤波和图像金字塔这些非常基础的原件。当你看到这些东西的时候,你就应该有马上觉悟到它们的各种特性和作用的能力。这对于你理解SIFT很有帮助。如果你具备了这种素质,详细我,你再在matlab里调那些函数来写SIFT就非常容易。如果说你学了一遍SIFT,但是还是写不出来,结论就是因为最基本的高斯、金字塔、直方图你也没自己写过。跳过了锻炼基础的阶段,直接来高大上的东西,比如会无福消受。就像《天龙八部》里的番僧鸠摩智为了速成,不惜用道教的小无相功来催动少林72绝技,结果走后入魔,前功尽废。前两天有网友给我博客留言:“如果只是把现成的算法实现一遍那也没什么意思,原创算法的话就有技术含量了。”我当时觉得可能这位网友水平比较高,看我这些雕虫小技自然不能入法眼。但我这两天又在想抛开大家水平高低不谈,这句话到底对不对?我发现,这个说法还是有漏洞。你小学时候每天语文课上学了十个新汉字,老师就让你在方格本上每个抄10遍,这种事当然没意思了,但是大家不都是这么没意思过来的吗?如果不这样,你怎么能在高考的时候40分钟写一篇800字命题作文呢?可见没意思的事情未必没意义!


最后,用荀老夫子的一句话同大家共勉:无冥冥之志者,无昭昭之明,无昏昏之事者,无赫赫之功


2016-02-01 22:47:58 baimafujinji 阅读数 5959

欢迎关注我的博客专栏“图像处理中的数学原理详解

全文目录请见 图像处理中的数学原理详解(总纲)

http://blog.csdn.net/baimafujinji/article/details/48467225

图像处理中的数学原理详解(已发布的部分链接整理)

http://blog.csdn.net/baimafujinji/article/details/48751037


2.3.3 赋范空间


每个实数或复数,都有相对应的绝对值或者模,每一个n维矢量,也都可以定义其长度。如果把“长度”的概念推广到一般抽象空间中的元素上,就可以得到范数这个概念。



本节完。

2018-11-14 15:16:48 wgfmtqac557171 阅读数 3466

卷积神经网络(CNN)在图像处理方面有很多出色的表现,在ImageNet上有很多成功的模型都是基于CNN的。AlexNet是具有历史意义的一个网络,2012年提出来当年获得了当年的ImageNet LSVRC比赛的冠军,此后ImageNet LSVRC的冠军都是都是用CNN做的,并且层数越来越深。可以说AlexNet的提出是具有里程碑式的意义的,它使得CNN成为图像识别分类领域的核心算法,引来了深度学习的大爆发。
另一个有名的CNN模型是2015年何凯明团队提出来的深度残差网络ResNet,他引入了残差模块,一定程度改善了网络的退化现象,为网络加深一定程度后网络分类精度随着深度加深反而降低的现象提供了解决思路。

1.AlexNet

AlexNet主要特点:

  • 修正线性单元:ReLU。ReLU函数的导数始终为1,使得计算量大大减小,收敛速度比sigmoid,tanh快很多。
  • 防止过拟合方法:Dropout:通过定义的概率将神经元置为0,这个神经元如同被删除;
    数据扩充:当训练数据有限时,将训练数据变换进行扩充(eg.水平翻转、裁剪、颜色、光照)
  • 重叠池化:一种避免过拟合的手段
  • 增加局部响应归一化层 (LRN):有助于增加泛化能力

2.ResNet

ResNet最显著的特征就是引入了残差模块。
在这里插入图片描述

关于残差为什么能够增加改善网络退化的问题,我比较赞同下面的说法:残差模块的shortcut connection这种残差跳跃式的结构使得ResNet打破了传统神经网络只能逐层传递参数的方法,使得深度残差网络可以越过中间的某几层直接将参数传递给后面的层,起到了一种丢层的作用。随机丢层网络和Dropout的提出都说明了忽略一些不那么重要的网络层或神经元对于网络性能的提升是有促进作用的。残差网络的这种结构使得每次工作的网络其实并没有那么深,某种意义上,可以看做是一些不同的浅层神经网络的组合。

3.选用数据集

NWPU-RESISC45 dataset:图像像素大小为256256,总包含45个场景图像,每一类有700张,共31,500张;
UCMerced Land-Use dataset: 图像像素大小为256
256,总包含21类场景图像,每一类有100张,共2100张

4.实验结果

AlexNet在NWPU上分类结果

在这里插入图片描述在这里插入图片描述

ResNet在NWPU上分类结果

在这里插入图片描述在这里插入图片描述

AlexNet在UCM上分类结果

在这里插入图片描述在这里插入图片描述

ResNet在UCM上分类结果

在这里插入图片描述在这里插入图片描述

5.迁移学习

首先在NWPU上训练一个AlexNet模型,将最后三层45类的分类器替换成针对UCM的21类分类器,然后对UCM进行分类。
在这里插入图片描述

迁移前后分类结果对比
迁移前

在这里插入图片描述在这里插入图片描述

迁移后

在这里插入图片描述在这里插入图片描述
可以看到,迁移后分类准确率提升了,而且收敛的更快了。

2019-03-14 19:16:19 Bluenapa 阅读数 244

目录

 

  1)对于初级入门者

  关于课程——

  关于教材——

  2)对于中级水平者

  3)对于高级进阶者


  1)对于初级入门者

  一个扎实的基础和对于图像处理理论的完整的、系统的整体认识对于后续的深入研究和实践应用具有非常非常重要的意义。

  我经常喜欢拿武侠小说《天龙八部》中的一段情节来向读者说明此中的道理,相信读者对这部曾经被多次搬上银幕的金庸作品已经耳熟能详了。书中讲到有个名叫鸠摩智的番僧一心想练就绝世武学,而且他也算是个相当勤奋的人了。但是,他错就错在太过于急功近利,甚至使用道家的小无相功来催动少林绝技。看上去威力无比,而且可以在短时间内“速成”,但实则后患无穷。最终鸠摩智走火入魔,前功尽废,方才大彻大悟。这个故事其实就告诉我们打牢基础是非常重要的,特别是要取得更长足的发展,就更是要对基本原理刨根问底,力求甚解,从而做到庖丁解牛,游刃有余。

  一些看似高深的算法往往是许多基础算法的组合提升。例如,令很多人望而却步的SIFT特征构建过程中,就用到了图像金字塔、直方图、高斯滤波这些非常非常基础的内容。但是,它所涉及的基础技术显然有好几个,如果缺乏对图像处理理论的系统认识,你可能会感觉事倍功半。因为所有的地方好像都是沟沟坎坎。

  关于课程——

  在这个阶段其实对于数学的要求并不高,你甚至可以从一些感性的角度去形象化的理解图像处理中很多内容(但不包括频域处理方面的内容)。具体到学习的建议,如果有条件(例如你还在高校里读书)你最好能选一门图像处理方面的课程,系统地完整的地去学习一下。这显然是入门的最好办法。如此一来,在建立一个完整的、系统的认知上相当有帮助。如果你没办法在学校里上一门这样的课,网上的一些公开课也可以试试。但现在中文MOOC上还没有这方面的优质课程推荐。英文的课程则有很多,例如美国加州伦斯勒理工学院Rich教授的数字图像处理公开课——https://www.youtube.com/channel/UCaiJlKxXamoODQtlx486qJA?spfreload=10。

  关于教材——

  显然,只听课其实还不太够,如果能一并读一本书就最好了。其实不用参考很多书,只要一本,你能从头读到尾就很好了。如果你没有条件去上一门课,那读一本来完整的自学一下就更有必要了。这个阶段,去网上到处找博客、看帖子是不行的。因为你特别需要在这个阶段对这门学问建立一个系统的完整的知识体系。东一块、西一块的胡拼乱凑无疑是坑你自己,你的知识体系就像一个气泡,可能看起来很大,但是又脆弱的不堪一击。

  现在很多学校采用冈萨雷斯的《数字图像处理》一书作为教材。这是一本非常非常经典的著作。但是我必须要提醒读者:

  1)这是一本专门为Electronic Engineering专业学生所写的书。它需要有信号与系统、数字信号处理这两门课作为基础。如果你没有这两门课的基础,你读这本书要么是看热闹,要么就是看不懂。

  下面是冈书中的一张插图。对于EE的学生来说,这当然不是问题。但是如果没有我说的那两门课的基础,其实你很难把握其中的精髓。H和h,一个大小一个小写,冈书中有的地方用H,有的地方用h,这都是有很深刻用意的。原作者并没有特别说明它们二者的区别,因为他已经默认你应该知道二者是不同的。事实上,它们一个表示频域信号,一个表示时域信号,这也导致有时候运算是卷积,有时候运算是乘法(当然这跟卷积定理有关)。所以我并不太建议那些没有这方面基础的学生在自学的时候读这本书。

 

  2)冈萨雷斯教授的《数字图像处理》第一版是在1977年出版的,到现在已经快40年了;现在国内广泛使用的第二版是2002年出版的(第三版是2007年但是其实二者差异并不大),到现在也有20年左右的时间了。事实上,冈萨雷斯教授退休也有快30年了。所以这本书的内容已经偏于陈旧。数字图像处理这个领域的发展绝对是日新月异,突飞猛进的。特别在最近二三十年里,很多新思路,新方法不断涌现。如果你看了我前面推荐的Rich教授的公开课(这也是当前美国大学正在教学的内容),你一下子就会发现,原来我们的教育还停留在改革开放之前外国的水平上。这其实特别可怕。所以我觉得冈萨雷斯教授的《数字图像处理》作为学习过程中的一个补充还是不错的,但是如果把它作为主参考,那真的就是:国外都洋枪洋炮了,我们还在大刀长矛。

  2)对于中级水平者

  纸上得来终觉浅,绝知此事要躬行。对于一个具有一定基础的,想更进一步的中级水平的人来说,这个阶段最重要的就是增强动手实践的能力。

  还是说《天龙八部》里面的一个角色——口述武功、叹为观止的王语嫣。王语嫣的脑袋里都是武功秘籍,但问题是她从来都没练过一招一式。结果是,然并卵。所以光说不练肯定不灵啊。特别是,如果你将来想从事这个行业,结果一点代码都不会写,那几乎是不可想象的。学习阶段,最常被用来进行算法开发的工具是和OpenCV。你可以把这两个东西都理解为一个相当完善的库。当然,在工业中C++用得更多,所以的应用还是很有限的。前面我们讲到,图像处理研究内容其实包括:图像的获取和编解码,但使用和OpenCV就会掩盖这部分内容的细节。你当然永远不会知道,JPEG文件到底是如何被解码的。

  如果你的应用永远都不会涉及这些话题,那么你一直用Matlab和OpenCV当然无所谓。例如你的研究领域是SIFT、SURF这种特征匹配,可以不必理会编解码方面的内容。但是如果你的研究话题是降噪或者压缩,可能你就绕不开这些内容。最开始学的时候,如果能把这部分内容也自己写写,可能会加深你的理解。以后做高级应用开发时,再调用那些库。所以具体用什么,要不要自己写,是要视你所处的阶段和自己的实际情况而定的。以我个人的经验,在我自学的时候,我就动手写了Magic House,我觉得这个过程为我奠定了一个非常夯实的基础,对于我后续的深入研究很有帮助。

  下面这个文中,我给出了一些这方面的资源,代码多多,很值得参考学习:图像处理与机器视觉网络资源收罗http://blog.csdn.NET/baimafujinji/article/details/32332079

  3)对于高级进阶者

  到了这个程度的读者,编程实现之类的基本功应该不在话下。但是要往深,往高去学习、研究和开发图像处理应用,你最需要的内容就变成了数学。这个是拦在很多处于这个阶段的人面前的一大难题。如果你的专业是应用数学,当然你不会感觉有问题。但如果是其他专业背景的人就会越发感觉痛苦。

  如果你的图像处理是不涉及机器学习内容的,例如用Poisson方程来做图像融合,那你就要有PDE数值解方面的知识;如果你要研究KAZE特征,你就必须要知道AOS方面的内容。如果你研究TV降噪,你又要知道泛函分析中的BV空间内容……这些词你可能很多都没听过。总的来说,这块需要的内容包括:复变函数、泛函分析、偏微分方程、变分法、数学物理方法……

  如果你要涉足机器视觉方法的内容,一些机器学习和数据挖掘方法的内容就不可或缺。而这部分内容同样需要很强大的数学基础,例如最大似然方法、梯度下降法、欧拉-拉格朗日方程、最小二乘估计、凸函数与詹森不等式……

  当然,走到这一步,你也已经脱胎换骨,从小白到大神啦!路漫漫其修远兮,吾将上下而求索。

2017-07-09 10:53:40 applecore123456 阅读数 3150

图像识别的经典课题

计算机视觉

  • 核心目标:让计算机“看懂”图像内容
  • 问题挑战:
    • 图像包含的信息复杂,充满着简单(颜色、线条、形状等)和复杂(姿势、场景、物体分布等)的元素,难以使用单一知识体系来概括。
    • 图像对于计算机来说,只是独立的像素集合,计算机无法归纳像素之间的关联关系

图像识别课题

Markdown
Markdown

卷积神经网络原理

前深度学习时代

  • 传统机器学习方法
    • 图像预处理:调整大小、调整明暗度、图像降噪、图像增强等
    • 特征提取:手工或利用图像处理算子(如,SIFT、HoG、Sobel等)
    • 归纳识别:SVM、人工神经网络
  • 局限
    • 传统机器学习算法只能得出输入特征与输出标签之间的映射关系
    • 特征选取强烈依赖人类的先验经验和大量实践,可移植程度低
    • 大量特征无法由人类归纳总结

卷积操作(Convolution)

  • 卷积操作简单来说,就是对于图片中的每一个像素点,计算它的邻域像素和滤波器矩阵(卷积核)的对应位置元素的乘积,然后将所有乘积累加,作为该像素位置的输出值,如下图所示。
    @图中的卷积核(Convolution Kernel)是一个浮雕滤波器(Emboss Filter)
  • 卷积操作的动图:http://deeplearning.stanford.edu/wiki/index.php/Feature_extraction_using_convolution
    Markdown
  • 在图像处理中,通常会用到一些经典的卷积滤波器,如低通滤波器、高通滤波器、高斯滤波器,这些滤波器会产生不容的效果,如下图所示。上排三个依次为:原图、低通滤波器(Low Pass Filter)、高斯滤波器(Gaussian Filter),下三排依次为:锐化滤波器(Sharpeness Filter)、边缘检测(Edge Detection)、浮雕滤波器(Embossing Filter。
    Markdown
  • 在线实验,可以自定义卷积核参数测试:https://graphics.stanford.edu/courses/cs178/applets/convolution.html

池化(Pooling)

  • 池化操作
    • 一般有最大池化(max pooling)和平均池化(average pooling)两种操作
    • 通常采用2×2的窗口大小,步长为2,处理完的图像长和宽都是原图的一半
  • 池化的作用
    • 降维
    • 使特征提取具有“平移不变性”(translation invariant)——即使图像有了一定程度的位移,依然可以获得稳定的特征集合。如人脸检测,不会因为由于角度问题导致的五官位置不对应而无法判断是否是同一个人。
      @Max Pooling,可以看到是一个降采样的过程,由4维矩阵变为了2维
      Markdown

ReLU(Rectified Linear Units)

  • 上述提到的卷积操作是一种线性操作,而特征空间映射到另一个特征空间使之线性可分是需要通过非线性变换才能实现,激活函数(activation function)就是一种引入非线性的手段。
  • 在传统神经网络中,常用的激活函数是sigmoid函数,但容易导致“梯度消失”,使得收敛速度慢且不收敛。
  • ReLU的提出就是为了解决梯度消失问题。
  • ReLU计算公式:f(x)=max(0,x)
  • ReLU求导公式:Markdown
    Markdown

多层卷积

  • 深度学习的精髓是利用多层特征组合,将简单的特征组合成复杂的抽象特征。深度卷积网络也是如此,整个网络是由多个特征提取阶段组成。每一个阶段都包括三种操作:卷积、池化和非线性激活函数(ReLU)。这种组合方式能够逼近复杂的非线性模型函数,同时又能够以较简单的方式训练。
  • 如下图所示,多层卷积可以看作一个金字塔结构,随着层次的加深,特征图的尺寸越来越小,但通道个数越来越多。在比较浅的层次(离输入较近的层次),卷积会提取比较细节的特征,而在较深的层次,会将前面的细节特征进行二次提取和组合,相当于观察的视野变大,就能提取更完整、更加抽象的特征。最终由全连接层和分类器按照提取的特征进行分类。
    Markdown

Dropout

  • Dropout是一种防止过拟合的手段。过拟合是指训练结果在训练集与测试集性能表现差距非常大的情况,即在训练集上能够得到很高的精度,但由于过度拟合,使得模型泛化性能不足,在测试集上的性能变差。
  • 操作:在每次训练中,随机让一部分隐层节点失效,可以达到改变网络结构的目的,但保留每个节点的权值。在预测时,打开全部隐层节点,使用完整的网络进行计算,相当于把多个不同的网络组合在一起,达到集成学习(ensemble)的目的。
  • 作用:削弱节点的共同作用,防止过拟合
    Markdown

经典模型介绍及TensorFlow代码解析

AlexNet: 震惊世界的突破

Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. “Imagenet classification with deep convolutional neural networks.” Advances in neural information processing systems. 2012. [PDF]

  • 背景:
    • LeNet + MNIST 成为 Deep Learning 界的 “Hello World”
    • 传统图像识别技术陷入瓶颈
  • ILSVRC 2012 图像分类第一名
    • Top-5 错误率 15.3%(第二名错误率 26.2%)
  • 关键点及意义
    • 验证了深度学习的威力,开启深度学习时代
    • 使用 ReLU 替代 sigmoid,加速计算
    • 使用 Dropout 技术,防止过拟合(overfitting)
    • 提出GPU训练&分布式并行训练,降低训练时间
      Markdown

VGGNet:更深的结构更优秀

Simonyan, Karen, and Andrew Zisserman. “Very deep convolutional networks for large-scale image recognition.” arXiv preprint arXiv:1409.1556 (2014). [PDF]

  • VGGNet 是基于 AlexNet 的改进
  • ILSVRC 2014 图像分类第二名、图像定位第一名
    • 图像分类 TOP-5 错误率 7.4%
    • 图像定位错误率 25.3%
  • 关键点及意义
    • 发现更“深”的网络,能达到更高的识别准确率
    • 全部使用3×3的卷积核,有效减少参数个数,加深网络深度,计算代价更小收敛速度更快
      @AlexNet、VGG16和VGG19网络结构对比
      Markdown

GoogLeNet & Inception: 更全面的结构更优秀

GoogLeNet

Szegedy, Christian, et al. “Going deeper with convolutions.” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2015. [PDF]

  • ILSVRC 2014 图像分类第一名
    • 图像分类 TOP-5 错误率 6.6%
  • 关键点及意义
    • 最优局部结构(如下图),通过增加“宽度”的方式增加网络的复杂度。
    • 1×1卷积核有效降维。AlexNet 有 6000W 参数,VGGNet 是 AlexNet 的三倍,GooLgeNet 只有 500W 参数
    • 模型计算量更小,速度更快
  • GoogLeNet 的 Block 结构
    • 在每一个卷积层中,并行使用 1X1 卷积、3X3 卷积和 5X5 卷积,同时提取不同尺度的特征,然后通过 1X1 卷积对每一个分支进行降维(降低的是channel的维度)。
      @GoogLeNet 中的 Block 结构
      Markdown
      @完整的GoogLeNet模型结构
      Markdown
Inception-V2:加入Batch Normalization

Ioffe, Sergey, and Christian Szegedy. “Batch normalization: Accelerating deep network training by reducing internal covariate shift.” arXiv preprint arXiv:1502.03167 (2015). [PDF]

  • 图像分类 TOP-5 错误率 4.9%,TOP-1 错误率 20.1%
  • Batch Normalization
    • 操作:将batch中的所有数值转换为 mean=0,variance=1 的正态分布
    • 原因:
      • 由于 mini-batch 样本数太少,所以每一个 mini-batch 内的实际分布都各不相同,在梯度计算的时候会导致梯度方向不停变化(就像下山走Z字形),导致收敛速度减慢。
      • 标准化后,保证数据分布始终一致,保留数值之间的相对差距,忽略绝对差距,在识别任务上会有更好的表现。
Inception-V3:重新思考 Inception 结构

Szegedy C, Vanhoucke V, Ioffe S, et al. Rethinking the Inception Architecture for Computer Vision[C]. computer vision and pattern recognition, 2015. [PDF]

  • 图像分类 TOP-5 错误率 3.58%,TOP-1 错误率17.2%
  • 关键点及意义
    • 将卷积操作继续分解成更小的卷积核
    • 用2层 3X3 卷积替代 5X5 卷积
    • 用 1X3 和 3X1 两个卷积核替代 3X3 卷积核
    • 加深网络层次,减少模型参数,减少计算,提高准确率
      @将卷积操作分解成更小的卷积核
      Markdown
      @左:1X3 和 3X1 的卷积核替代 3X3,右:2层 3X3 的卷积核替代 5X5 的卷积
      Markdown

ResNet:飙升的深度

He, Kaiming, et al. “Deep residual learning for image recognition.” arXiv preprint arXiv:1512.03385 (2015).[PDF]

  • 深度网络的退化问题
    • VGGNet 证明了加深网络层次是提高精度的有效手段,但是由于梯度弥散问题,导致网络深度有限,即深度越深反而效果下降。
      • 残差块(Residual Block)
    • 将 H(x) 的求解过程,转化为H(x) = F(x) + x,通过短路的形式更好的传递梯度
      Markdown
  • ILSVRC 2015 图像分类第一名
    • 图像分类 TOP-5 错误率 3.57%
  • 关键点及意义
    • 残差结构解决深度网络的退化问题(degradation problem)
    • 模型深度越深,识别更准确
    • 参数更少,计算速度更快
    • 目前主流的图像识别模型
      @34层ResNet跟34层plain网络及VGG-19结构对比
      Markdown

上述模型的图形化对比


感谢《深度学习基础与TensorFlow实践》课程主讲王琛老师的讲解
Edited by @AppleCore_Q | http://blog.csdn.net/applecore123456

卷积的意义

阅读数 368

没有更多推荐了,返回首页