为什么CNN能自动提取图像特征

作者: lietal 2018-10-29 13:11:54

1.介绍

在大部分传统机器学习场景里,我们先经过特征工程等方法得到特征表示,然后选用一个机器学习算法进行训练。在训练过程中,表示事物的特征是固定的。

 

后来嘛,后来深度学习就崛起了。深度学习对外推荐自己的一个很重要的点是——深度学习能够自动提取特征。如果你是从 DNN 开始了解深度学习,你会对 “深度学习能够自动提取特征” 很迷茫。但是如果你是从 CNN 开始了解深度学习的,你就会很自然地理解 “深度学习能够自动提取特征”。

2.提取特征

CNN 网络主要有两个算子,一个是卷积层,另一个是池化层。大部分人对于池化层并没有什么理解难度。池化层无非滑动一个滑动窗口,滑动窗口之内***值或者取平均值。对于卷积层,我们大部分人都是看下面的图了解的。卷积层也是滑动一个滑动窗口,滑动窗口之内做卷积运算。

理解 CNN 的卷积层和池化层如何运算,并不能自动给我们关于 CNN 原理的洞见。我们依然存在疑惑: 为什么 CNN 的卷积层是这样的?Lecun 大神设计 CNN 的卷积层是怎么考虑的?

为了理解这个问题,我们先思考一个问题:提取图片特征最朴素的想法是什么?简化问题,我们要分类黑白图片中的字母 A 还是 X。

 

这两个有一个鲜明区别是 A 的顶部模式。

如果能在图片中抽取 A 的顶部模式,图片中的字母是 A; 如果不能,图片中的字母是 X。为了提取图片是否包含 A 的顶部模式,我们将 A 的顶部模式在图片中滑动,切分处理的局部图片和 A 顶部模式做内积。下图显示是 A 图片的 1 和 2 部位切分出来的局部图片和 A 的顶部模式做内积。

 

根据图中表示,A 图片的 1 部位是 A 字母的顶部,内积为 4; 2 部位不是 A 顶部,内积只有 1。在 A 图片中滑动 A 顶部模式,得到的结果为

然后我们取其中***值得到最终结果是 4。这是我们可以说图片包含 A 顶部模式的的 “倾向性” 或者说 “可能性” 是 4。我们就提取了一个特征。

X 那张图按照相同的操作,结果为 3。这个结果是从 X 的交叉部位得到的。

这里我们会发现:A 的顶部模式在图片中滑动其实就是 CNN 里卷积层做的事情, A 的顶部模式就是卷积核;同时,在内积结果上取***值就是***池化层的操作。也就是说 CNN 用卷积层和池化层,实践了最朴素的图片特征提取方法。当然了,真实世界的 CNN 要复杂得多: 1) 真实世界的图片和卷积核是多层的。这个好理解,在图片是多层的情况下,局部模式肯定也是多层,卷积核自然也是多层的。2) 真实世界的 CNN 并不是一个卷积层搭配一个池化层,而是存在连续多层卷积层。这个也好理解。在这个时候,局部模式是有多个连续卷积核表示的。

3.自动学习

通过上面的讲解,我们知道 CNN 模型是如何利用卷积层和池化层提取图片的特征,其中的关键是卷积核表示图片中的局部模式。还是拿上面例子来说,我们知道并且选用了 A 的顶部模式这个卷积核。

但是在真实世界中我们是不能做。对于大规模图片库我们并不知道那个局部模式是有效的。即使我们选定局部模式,也会因为太过具体而失去反泛化性。那么我们怎么应对这个问题呢,即如何确定卷积核的值呢?

这里就要讲到大名鼎鼎梯度向后传播算法。一开始我们随机初始化卷积核的参数,然后通过基于梯度向后传播算法的优化算法,自适应地调整卷积核的值,从而最小化模型预测值和真实值之间的误差。这样得到的卷积核的参数不一定直观,但是能够有效地提取特征,使得模型预测值和真实值之间的误差最小。为了简化问题,下面我们还是用单层图片做例子。即使简化到单层图片,我们依然觉得计算卷积层和池化层的梯度比较难。为了进一步直观化,我们将卷积层分解多个容易计算梯度的简单线性算子,将池化层分解容易计算梯度的多个简单操作。

通过分解卷积层和池化层,我们易得下面一系列计算梯度公式。

池化层本身没有参数,只需要把梯度往回传就行。这里我们要关注下***池化层:***值操作是选择窗口内***值,怎么看都不是连续函数,就不可能存在导数(梯度)。假设

即矩阵 x 中第 i 行第 j 列值***,那么

另外一个问题就是怎么求卷积层的梯度。我们用 conv(xx,ww)conv(xx,ww) 表示卷积, conv(xx,ww)i,jconv(xx,ww)i,j表示卷积结果中的第 i 行第 j 列, xconv−i,jxconv−i,j 表示用于生成卷积结果第 i 行第 j 列的图片局部(即 xconv−i,j⋅ww=conv(xx,ww)i,jxconv−i,j⋅ww=conv(xx,ww)i,j )。卷积核参数的梯度可以用下面的公式计算

 

至于梯度怎么传回去呢?如下图所示,我们先定义 δ(i,j)δ(i,j) 表示图片大小的矩阵,生成第 i 行第 j 列的卷积结果的图片区域用卷积核参数填充,其他区域为 0。

此时我们得到梯度往回传的公式。

 

4.总结

通过卷积核刻画图片的局部模式,CNN 能够提取图片的特征; 通过梯度向后传播算法,CNN 能够确定每个卷积核的参数,从而实现自动提取图片的特征。这样,我们应该很自然地理解 “深度学习能够自动提取特征” 了。

为什么 CNN 等深度学习模型自动提取特征这么重要?我们可以从 Pedro Domingos [1] 关于 “机器学习本质是什么” 开始说起。Pedro Domingos [1] 认为:

表示是指我们如何表达相关特征,涉及到特征工程、特征算子和特征组合等问题。目标是指我们想模型学习到什么,涉及问题建模和目标函数。优化是怎么计算得到模型,涉及梯度下降、随机梯度下降或者演化计算等优化算法。在大部分传统机器学习场景里,表示和目标是分离的。在用优化算法求解目标的过程中,表示事物的特征是固定的,并不会根据目标和优化的反馈自适应地调整特征。 

 

神经网络或者说深度神经网络,将表示和目标结合起来进行 “联合学习”。在深度学习模型训练过程中,特征相关的参数(比如 CNN 卷积核的参数)可以根据目标和优化的反馈(梯度)自适应地调整。特征能够自适应地调整,深度学习才有能力建立深度的和层次化的特征表达体系。

参考文献

[1] Domingos, Pedro. “A few useful things to know about machine learning.” Communications of the ACM 55.10 (2012): 78-87.

【编辑推荐】

  1. Keras还是TensorFlow?程序员该如何选择深度学习框架?
  2. AI的推动引擎——深度学习
  3. 前端工程师掌握这18招,就能在浏览器里玩转深度学习
  4. 人工智能已到瓶颈!院士“联名”反深度学习,并指出AI未来发展方向
  5. 详解知乎反作弊垃圾文本识别的深度学习实践

深度学习 CNN 提取图像
上一篇:海云捷迅任钟坪:AI从想法到实现,只需10次鼠标点击的距离! 下一篇:当AI遇上信息服务:百度大脑行业创新论坛在成都等你来撩
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

12个场景应用,百余种算法,AI是如何攻占经济学的?

在虚拟世界中模拟现实经济状况,想法设计更好的制度只是AI和经济学结合方式之一。其实深度强化学习在面临风险参数和不确定性不断增加的现实经济问题时,也可以提供更好的性能和更高的精度。

蒋宝尚 ·  3天前
机器学习算法集锦:从贝叶斯到深度学习及各自优缺点

本文筛选并简单介绍了一些最常见算法类别,还为每一个类别列出了一些实际的算法并简单介绍了它们的优缺点。

佚名 ·  2020-05-21 14:50:37
用TFserving部署深度学习模型

本文介绍了TFserving部署线上推理服务,从模型的转换,部署启动和调用推理,欢迎交流,希望对你有帮助。

佚名 ·  2020-05-21 14:05:17
520开发者的情人节 飞桨全平台35项升级大礼“示AI”

5月20日,由深度学习技术及应用国家工程实验室与百度联合主办的“WAVE SUMMIT 2020”深度学习开发者峰会以线上形式召开。本届峰会,飞桨公布最新全景图,带来多达35项全新发布和重磅升级,不仅进一步升级核心框架、完善从开发训练到部署的全流程工业级极致体验、深化企业端服务,更着眼未来,引领布局前沿技术,首发量子机器学习开发工具“量桨”,以及蓄力AI人才培养和开发者生态,发布青少年AI科普教育“晨曦计划”、“星辰计划”开发者探索基金等。

佚名 ·  2020-05-20 14:07:06
百度CTO王海峰:飞桨深度学习平台是新基建的重要一环

5月20日,由深度学习技术及应用国家工程实验室与百度联合主办的“Wave Summit 2020”深度学习开发者峰会在线上召开。百度CTO王海峰在致辞中表示,时代契机为飞桨的发展提供了最好的机遇,作为中国首个开源开放、功能完备的产业级深度学习平台,飞桨将与产业紧密融合,与开发者并肩前行。

佚名 ·  2020-05-20 11:32:27
PyTorch官方教程大更新:增加标签索引,更加新手友好

PyTorch官方教程,现已大幅更新,不必再面对一整页教学文章茫然无措,可以想学哪里就精准点哪里了。

鱼羊 ·  2020-05-18 09:44:08
机器学习:使用批归一化有哪些缺点?

批归一化(Batch Normalization)是深度学习领域的重大突破之一,也是近年来研究人员讨论的热门话题之一。批归一化是一种被广泛采用的技术,能够使训练更快、更稳定,并已成为深度学习领域最具影响力的方法之一。然而,它仍然存在一些要注意的问题。

不靠谱的猫 ·  2020-05-18 08:42:13
深度度量学习的这十三年,难道是错付了吗?

近日,Facebook AI 和 Cornell Tech 的研究者在论文预印本平台 arXiv 上公布了最新研究论文,声称这十三年来深度度量学习领域的研究进展「实际上并不存在」。

机器之心 ·  2020-05-17 15:57:28
Copyright©2005-2020 51CTO.COM 版权所有 未经许可 请勿转载