Convolutional Networks for Images,Speech,and Time-series

Yann LeCun  Yoshua Bengio

1995年的

1引言

多层BP网络可以从大数据样本中学习复杂的,高维的,非线性的映射并用于图像识别和语音识别任务(见pattern recognition and neural networks)。在模式识别的传统模型中,是通过使用手动设计的特征提取器从输入数据中提取特征然后消除无关变量。随后通过一个可以训练的分类器来讲这些特征向量(或者说是符号字符串)进行分类。在本文中,一个全连接的多层网络可以被用来做一个分类器。一个更有趣的地方是可以通过不使用特征提取器,直接对这个网络输入“原始”数据(即归一化后的图像),并通过BP来讲这个网络的前几层调整成一个合适的特征提取器。而这些都是可以用一个有着普通全连接的前馈网络来做到的,比如特征识别,但是这也是存在问题的。

首先,通常的图片,口语单词的谱表征都是很大的,通常有着好几百个变量。与第一层(100多个隐藏单元)全连接的权重数量就差不多有10,000个。如果训练数据是不足够的,那么过拟合的问题就会出现。另外,为了存储这些权重,硬件的容量都可能会不够。但是,在图像或是语音上采用的的无结构网络的主要的问题在于他们没有将转换或是输入的局部扭曲不变性给内建到模型中。在将数据输入到一个有着固定大小输入层的网络前,特征图像,口语单词谱或是其他的2D或1D信号必须进行归一化和在输入区域进行中心化。问题是,现有的预处理方法都不能够达到要求:手写通常在单词级别的时候进行归一化,这会导致字符的尺寸,倾斜度和位置发生变化;单词可以以可变的速度,间距和语调说出来。这会导致输入对象中的可区分特征的位置发生变化。原则上来说,一个有着足够尺寸的全连接网络能够学习生成具有这些不变性特性的输出。然而这样可能会使得有着同样权重模式的多个单元位于输入的不同位置。而且这些权重的学习也需要大量的样本以便能够学到数据集的各种情况。另一方面,在卷积网络中,平移不变性可以通过对某些权重进行复制来自动的获得。

第二,以往全连接结构的缺点使得输入的拓扑被完全的忽略了。输入变量能以对输出没有影响的情况下以某种固定的顺序表示出来。相反的,图像和语音的表征谱有着很强的2D局部结构,时间序列也有着很强的1D结构:互相靠近的变量(或像素)在空间或时间上都有着高度相关性。局部相关性的优点就是在识别空间和时间对象前进行特征提取并进行局部组合。卷积网络通过限制隐藏单元的感受野成为局部的来强化局部特征提取。

2 卷积网络

卷积网络通过将三个结构性的想法进行组合以此去确保平移和扭曲不变性:局部感受野,权值共享(或是权值复制)和空间或时间的子采样。一个典型的为了识别字符的卷积网络如图1所示。

这个输入平面接受字符图像,这些字符都已经较好的进行归一化和中心化了。层中的每个单元接受的输入都是之前层中很小的邻居区域。将单元连接到局部感受野的想法可以追溯到1960年代的感知机,和Hubel和Wisel的在猫的视觉系统中发现的具有局部感知和导向选择的神经元。局部连接在视觉学习神经模型已经被使用了多次。局部感受野可以使神经元能够提取极端的视觉特征,例如定向边界,端点,角(或在语音谱中相似的特征)。这些特征随后在更高层中进行组合。如前所述,输输入的扭曲和平移能够导致主要的特征位置发生变化。另外在图像局部上很有效果的初步特征检测器在整个图像中也是很有帮助的。例如可以通过将定位不同局部感受野的神经元上的权值都设置成相同的。这样这些神经元的输出的集合就可以表示成一个特征映射图。在每个位置上,位于不同特征映射图上的不同的神经元就能够抓取不同的特征(即图1中第二层的几个灰度图上不同的层上权重不同,但是同一个层上权重共享)。对于每个特征映射图来说,就是用同一个有着局部感受野的神经元来扫描输入图像,并将计算的输出放到特征映射图的相对位置上。这个操作相当于小尺寸核心的卷积,并加一个压缩函数。这个过程可以并行执行,通过将特征映射图视为一个神经元平面,而其中的神经元都是共享同一个权重向量。特征映射图中的单元在图像的不同位置都是执行着相同的操作。一个卷积层通常由几个特征图构成(有着不同的权重向量),所以每个位置上都可以提取不同的特征。图1中的第一层隐藏层有着4个特征图,每个感受野的大小是5*5。平移卷积层的输入将会平移对应的输出,但是却不会改变它的值。一旦一个特征被检测到,他的准确的位置会变得不那么重要,只要与其他特征相对位置被保存就行。因此,每个卷积层后面跟着一个额外的层去执行一个局部的均值化和子采样操作,来减少特征映射图的分辨率和减少输出部分关于平移和扭曲的敏感度。图1中第二个隐藏层执行一个2*2的均值化和子采样,并之后跟着一个可训练的系数(权重)、偏置和一个sigmoid。这个可训练的系数和偏置控制着压缩非线性的影响(例如,如果系数很小,这个神经元会以类线性的模式进行操作)(其实这里就是权重
偏置和sigmoid函数而已)。逐次的卷积和子采样层通常是交替的,并生成一个‘bi--金字塔’:在每一层,特征映射图的数量是随着空间解析度的下降而增长。图1中第三个隐藏层中的每个单元是与前层中特征映射图进行连接。这个卷积/子采样组合的灵感来自于Hubel和Wiesel有关‘简单’和‘复杂’细胞理论,在神经认知模型中这已经被应用了,通过非全局有监督学习(例如BP)过程进行训练。

因为所有的权重都是通过BP进行学习的,卷积网络能够被认为是对它们自己的特征提取器的综合。权重共享能减少自由参数的数量,因而减少机器的’容量‘,但是却能提升泛化能力。图1中的网络包含了10w个连接,但是因为使用了权值共享所以只有2600个自由参数。手写字符识别任务上,这样的网络可以与其他方法有相当的竞争力了,并且已经能够商用化了。

在沿着单一时间维度上共享权重的 固定尺寸的卷积网络被称之为延时神经网络(TDNN)。TDNN被用在音素识别(没有子采样),口语单词识别(有子采样),在线手写识别上。

3 可变尺寸的卷积网络,SDNN



虽然字符或者短的口语单词可以先通过尺寸归一化然后馈送到一个固定尺寸的网络,但是更多复杂对象例如手写或者由于单词和句子是有可变长度的。一个处理这种复合型对象的方法是将它们分割成可以独立识别的更简单的对象(字符或者音素)。然而,现今却没有一种可靠的启发式分割方法来很好的应对语音或草书式的书写。一个强力的解决方法是通过扫描(或者是复制)所有在输入上可能的位置,这通常是代价高昂的,但是CNN可以在大型,可变尺寸的输入上进行很好的扫描或者复制。考虑一个CNN的实例,因为网络的卷积特性,在相同输入位置上的单元有着相同的输出,因此他们的输出不需要计算两次。所以可以通过增加卷积区域的大小和复制输出层来轻松的构建一个卷积层来达到复制一个卷积网络的目的。一个感受野位于初步对象中心的输出可以生成对象的类别信息,然而一个in-between的输出可能是空的或者包含着垃圾信息的。这个输出可以作为解释在输入区域不同位置上对象中心化的类别的证据(这里翻译的不好)。因此需要后续的处理来连续不断的进行输出。HMM或者其他的基于图的方法通常是以那种目的提出的。这个可复制网络和HMM可以在HMM的梯度上用BP同时训练。全局训练,可变尺寸TDNN/HMM混合可以用来语音识别和在线手写识别。两维可复制CNN,被称之为“sapce
displacement neural networks(SDNN)”已经和HMM或其他的用于手写单词识别的可伸缩匹配方法进行组合成复合结构。另一个有趣的SDNN的应用是对象发现。

CNN的一个重要的优点是他们呢以在现有的硬件条件下执行。专门的模拟/数字芯片已经被设计并用在了字符识别和图像处理上了。能够在以100,000连接规模的网络上每秒够识别1000个字符。

子采样的想法可以被转化并构建相似于TDNN的网络,但是他们需要从标签中生成序列。这些网络被称之为逆-TDNN,因为他伽门被一杯视为从上往下的TDNN:时间分辨率是从输入到输出(不断的过采样和卷积层的叠加)不断的增加的。

4 讨论

卷积神经网络是从生物上获得灵感的很好的例子,并且在工程应用相比较与其他方法上也具有竞争力。在将CNN应用到图像识别上,可以不需要使用一个分离的手动设计的特征提取器,只需要对图像的尺寸和方向(如果近似的话)进行归一化。权值共享和子采样可以使得具有小型的几何转换和扭曲的不变性,但是完全的不变性识别还是不能达到的。从根本上说,对于全神经图像或语音识别系统可能还是需要新的结构想法,有可能还是来自于生物灵感。

.

Convolutional Networks for Images,Speech,and Time-series的更多相关文章

  1. 论文翻译——Character-level Convolutional Networks for Text Classification

    论文地址 Abstract Open-text semantic parsers are designed to interpret any statement in natural language ...

  2. Emotion Recognition Using Graph Convolutional Networks

    Emotion Recognition Using Graph Convolutional Networks 2019-10-22 09:26:56 This blog is from: https: ...

  3. 论文阅读(Xiang Bai——【CVPR2016】Multi-Oriented Text Detection with Fully Convolutional Networks)

    Xiang Bai--[CVPR2016]Multi-Oriented Text Detection with Fully Convolutional Networks 目录 作者和相关链接 方法概括 ...

  4. VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION 这篇论文

    由Andrew Zisserman 教授主导的 VGG 的 ILSVRC 的大赛中的卷积神经网络取得了很好的成绩,这篇文章详细说明了网络相关事宜. 文章主要干了点什么事呢?它就是在在用卷积神经网络下, ...

  5. Fully Convolutional Networks for semantic Segmentation(深度学习经典论文翻译)

    摘要 卷积网络在特征分层领域是非常强大的视觉模型.我们证明了经过端到端.像素到像素训练的卷积网络超过语义分割中最先进的技术.我们的核心观点是建立"全卷积"网络,输入任意尺寸,经过有 ...

  6. 关于 Graph Convolutional Networks 资料收集

    关于 Graph Convolutional Networks 资料收集 1.  GRAPH CONVOLUTIONAL NETWORKS   ------ THOMAS KIPF, 30 SEPTE ...

  7. 论文笔记之:Visual Tracking with Fully Convolutional Networks

    论文笔记之:Visual Tracking with Fully Convolutional Networks ICCV 2015  CUHK 本文利用 FCN 来做跟踪问题,但开篇就提到并非将其看做 ...

  8. Very Deep Convolutional Networks for Large-Scale Image Recognition

    Very Deep Convolutional Networks for Large-Scale Image Recognition 转载请注明:http://blog.csdn.net/stdcou ...

  9. 论文学习:Fully Convolutional Networks for Semantic Segmentation

    发表于2015年这篇<Fully Convolutional Networks for Semantic Segmentation>在图像语义分割领域举足轻重. 1 CNN 与 FCN 通 ...

随机推荐

  1. idea 提交 Push rejected: Push to origin/master was rejected

    idea中,发布项目到码云上,当时按照这样的流程添加Git,然后push,提示:push to origin/master war rejected". 解决方案如下: 1.切换到自己项目所 ...

  2. Python学习笔记之—— File(文件) 对象常用函数

    file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数: 1.file.close() close() 方法用于关闭一个已打开的文件.关闭后的文件不能再进行读写操作, 否则会触 ...

  3. Vue + WebPack + Typescript初学者VSCode项目 (按需加载、跨域调试、await/async)

    万事开头难,一个好的Hello World程序可以节省我们好多的学习时间,帮助我们快速入门.Hello World程序之所以是入门必读必会,就是因为其代码量少,简单易懂.但我觉得,还应该做到功能丰富, ...

  4. Expo大作战(三)--针对已经开发过react native项目开发人员有针对性的介绍了expo,expo的局限性,开发时项目选型注意点等

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  5. [Android] 状态栏的一些认识

    前段时间遇到几个关于状态栏的问题,又了解了一下状态栏相关的知识,现在做一下记录. 本文地址:http://www.cnblogs.com/rossoneri/p/4316343.html 前戏和问题 ...

  6. eclipse中如何使用struts2

    简介 这篇文章主要讲如何在eclipse中使用struts2,文章使用的struts2的版本是2.5.2,会与其他的版本有一小点的差别,文章里已经说明.例子的完整源码在文末,亲测没有任何错误. str ...

  7. 并发容器(四)ConcurrentHashMap 深入解析(JDK1.6)

      这篇文章深入分析的是 JDK1.6的 ConcurrentHashMap 的实现原理,但在JDK1.8中又改进了 ConcurrentHashMap 的实现,废弃了 segments.虽然是已经被 ...

  8. maven学习笔记--window平台下的安装和一些基本的配置

    maven官网:http://maven.apache.org/ 系统要求如下: 安装及配置步骤 (1)下载:到Maven 的官网上去下载windows版本的Maven的安装包!下载对应的zip 格式 ...

  9. zabbix系列之监控类型及方式

    http://www.ttlsa.com/zabbix/how-to-chose-zabbix-item-type/ zabbix提供十几种监控类型: 监控类型 特性 备注 Zabbix agent ...

  10. sqlio

    http://www.cnblogs.com/Amaranthus/archive/2011/09/16/2178747.html Each line in the param.txt file lo ...