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. python学习之老男孩python全栈第九期_day011知识点总结

    # 装饰器的形成的过程:最简单的装饰器:有返回值的:有一个参数的:万能参数# 装饰器的作用# 原则:开放封闭原则# 语法糖# 装饰器的固定模式:# def wrapper(f): # 装饰器函数,f是 ...

  2. jQuery获取子元素的个数

    一.获取div下的子元素的个数 $("div").children().length; 二.获取div下的span子元素的个数 $("div").childre ...

  3. java队列Queue及阻塞队列

    java队列 接口Queue类在java.util包,定义了以下6个方法 详细查看官方文档https://docs.oracle.com/javase/7/docs/api/java/util/Que ...

  4. JS--我发现,原来你是这样的JS(二)(基础概念--躯壳篇--不妨从中文角度看js)

    一.介绍 这是红宝书(JavaScript高级程序设计 3版)的读书笔记第二篇(基础概念--躯壳篇),有着部分第三章的知识内容,当然其中还有我个人的理解. 红宝书这本书可以说是难啃的,要看完不容易,挺 ...

  5. Sqoop安装与应用过程

    1.  参考说明 参考文档: http://sqoop.apache.org/ http://sqoop.apache.org/docs/1.99.7/admin/Installation.html ...

  6. 用php和ajax写一个省市区的三级联动,实现地区的下拉选择

    要实现这个页面的三级联动,我们需要建立三个php文件,第一个php文件我们导入jQuery文件,里面嵌入JavaScript:第二个php文件我们做一个php的处理页面,里面引入我们封装好的数据库类文 ...

  7. Clumsy 弱网络环境模拟工具使用介绍

    Clumsy 弱网络环境模拟工具使用介绍 by:授客 QQ:1033553122 简介 利用封装 Winodws Filtering Platform 的WinDivert 库, clumsy 能实时 ...

  8. Android studio Connection failed (dl.google.com)

    公司的网,莫名其妙的不能更新了,却可以下载compile文件... 于是乎FQ,hosts,修改studio.exe.vmoptions文件 然并卵,都特么不行 搞了一天还是不行 这种问题或许可以找到 ...

  9. Adobe Flash Builder 4.6 打开时提示Failed to create the Java Virtual Machine

    最近使用actionscript来编程,用到Adobe Flash Builder 工具,之前一直用着都没事的,今天打开突然就报了这个错误,然后就打不开了 好了,不多说,直接来吧. 首先在你的Adob ...

  10. PostMan请求不到接口问题

    在些接口的时候经常需要调试,调试的有很多选择,比如swagger.postman,我就是使用过两个都用:为了避免被swagger坑到就再去用postman试试确认看行不行,结果太小白了还是遇到了一些问 ...