ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

卷积神经网络(CNN)的演化及其用途,为何出现深度学习?

2021-12-20 20:33:54  阅读:145  来源: 互联网

标签:层级 卷积 图像 学习 神经网络 深度 CNN


转自卷积神经网络(CNN)的演化及其用途,为何出现深度学习? · 深度学习

Yann LeCun

卷积神经网络(CNN)的演化

在动物的大脑中,神经元对特定方向的边缘信息有所反应。对同一方向起反应的神经元群将复制遍整个视野。

Fukushima (1982)基于两个概念构建了一个与大脑工作方式相同的神经网络(NN)。第一,神经元将跨越视野进行复制。 第二,复杂细胞可以将来自简单细胞(方向选择性单元)的信息进行汇合。 这造成的结果就是,图片的移动将改变单个细胞的激活,但是并不影响复杂细胞的集成激活(卷积汇合操作)。

LeCun (1990)使用反向传播算法训练CNN,进行手写数字的识别。在1992年的一个演示中,展示了该算法可以识别任意样式的数字。在那时,使用通过端到端训练的模型进行字符/模式识别非常新颖。在这之前,大家的方案通常是利用 特征提取器再加上一个监督模型。

这些新颖的CNN系统能够同时在图片上识别多个字符。为了实现识别,人们在CNN中使用一个小型的输入窗,并将其滑过整个图像。如果它被激活,那就意味着存在某个特定的字符。

之后,这个想法被应用于面部/人物检测和语义分割(逐像素分类)。包括像Hadsell (2009)和Farabet (2012)这样 的例子。最终,CNN在工业界变得非常普遍,在如车道跟踪这样的自动驾驶应用中也被使用。

在20世纪80年代,用来训练CNN的特殊硬件是一个非常热门的主题。接着,人们对此的兴趣衰退。而如今这个主题则再次变得炙手可热。

深度学习(虽然在那时大家还没有使用这个词)的革命始于2010-2013年。研究人员致力于创造那些可以帮助大型CNN训练变得更加快速的算法。 Krizhevsky (2012)在2012年提出AlexNet。这是一个比以往大得多的卷积神经网络,使用GPU在 ImageNet(130多万张图片)上进行训练。在经过几周的训练之后,AlexNet大幅度超越当时的最佳性能 – 将top-5错误率从25.8%降到16.4%。

在看到AlexNet的成功之后,计算机视觉社区开始确信CNN的有效。虽然2011-2012涉及CNN的论文都被拒稿, 但是自2016以来,大多数被接收的CV论文都使用了CNN。

多年以来,CNN中的层的数量在不断增加:LeNet – 7层,AlexNet – 12层,VGG – 19层,ResNet – 50层。尽管如此,在计算输出的所需操作数、模型的大小和它的准确率之间始终存在着一种权衡。因此当前一个非常热门的主题就是如何压缩网络,使得计算更加快速。

深度学习和特征提取

多层网络之所以成功,是因为它发掘了天然数据的复合结构。在复合的层级结构中,层级中某一层的目标的组合形成 下一层中的目标。如果我们将这个层级结构看做一个多层结构的网络,并且让网络学习特征的合适的组合,那么 我们就得到了所谓的深度学习架构。因此,深度学习网络本质上就是层次化的。

深度学习架构使计算机视觉任务取得了难以置信的发展。从识别并生成围绕目标的准确遮罩(mask)到识别 目标的空间性质。Mask-RCNN和RetinaNet架构对这类改善作出了主要贡献。

Mask RCNN在分割独立目标中被广泛使用。即为图像中的每一个目标建立遮罩。在这个任务中,输入和输出都是图像。该架构还可以被用来执行实例分割任务,即,在一张图像中识别同一类型的不同目标。由Facebook AI 研究院 (FAIR)开发的软件系统:Detectron,实现了所有这些SOTA(state-of-the-art)的目标检测算法并且将其开源。

一些CNN的实际应用还包括赋能自动驾驶和分析医学影像。

虽然人们对深度学习背后的科学和数学已经有了不错的理解,但是仍有一些有趣的问题需要更深入的研究。 这些问题包括:已知我们可以使用两层结构近似任意函数,为什么多层架构会表现的更好?为何CNN在 语音、图像、文本这样的天然数据上效果很好?我们如何对非凸函数较好地优化?为什么过度参数化的结构也会有效?

特征提取由扩展表征维度组成,比如扩展的特征更有可能线性可分;由于可能的分离平面数量的增加,使得高维空间 的数据点更有可能线性可分。

早前的机器学习从业者依靠高质量、手工提取、针对特定任务的特征来构建人工智能模型,但是随着深度学习的出现, 模型能够自动提取通用特征。在特征提取算法中的一些常见方法如下:

  • 空间贴片
  • 随机投影
  • 多项式分类器(特征向量积)
  • 径向基函数
  • 核机

由于数据的复合性质,学到的特征随着抽象层次的增加具有层级化的表征。比如:

  • 图像 - 在最细的粒度级别,图像可以被认为是像素。像素的组合构成边缘,边缘的组合构成纹理基元(多边缘形状),纹理基元构成图案,图案构成部分图像。将这些部分图像组合,构成最终的图像。

  • 文本 - 类似地,在文本数据中也存在固有的层级。字符形成词,而词形成词组,然后是子句,再然后,将 子句合并,我们得到句子。而最终句子会告诉我们故事表达了什么。

  • 语音 - 在语音里,样本组成波段,波段组成声音,声音组成元音,继而组成音素,接着是整个词,然后是句子, 这里也同样展现出了清晰的层级化表征。

学习表征

有一种驳斥深度学习的说法:如果我们能够使用2层结构近似任意函数,为何还要更多层?

举个例子:支持向量机(SVM)“从数据中”找到一个分类超平面,这意味着预测是基于训练数据的比较。SVM本质上是一个极简的2层 神经网络,其中第一层定义了一个“模板”,第二层则是一个线性分类器。而2层说法的谬误在于,复杂度和中间层 的大小是N的指数级(为了完成一个困难的任务,我们需要大量的模板)。但是如果你扩展层的数量到log(N), 那么层的复杂度将成为N的线性级别。这里就存在时间和空间的权衡。

这里再举一个类比:设计一个电路,使用不多于两层的逻辑门来计算一个布尔函数 - 用这种方法,我们其实可以计算任意布尔函数!但是,对于复杂函数而言,第一层(逻辑门的数量)的复杂度和资源将会很快变得无法实现。

什么是“深度”?

  • SVM不是深度的,因为它仅仅有两层
  • 分类树也不是深度的,因为它的每一层分析了同样的(原始)特征
  • 深度网络具有很多层,并且被用来构建一个复杂性递增的特征的层级结构

模型如何学习表征(好的特征)?

流形假设:天然的数据存在于一个低维流形上。可能的图像的集合本质上是无限的,而“天然”的图像的集合是其中 一个小子集。比如:对于一个人物的图像,可能的图像的集合规模大约在能移动的面部肌肉的数量(自由度)这个量级 ~ 50。一个理想的(同时不切实际的)特征提取器需要表达所有这些变化的因素(每个肌肉、光照、等等等等)。

标签:层级,卷积,图像,学习,神经网络,深度,CNN
来源: https://blog.csdn.net/weixin_42407991/article/details/122049443

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有