第一章
引言
一、本文动机
过去几年,计算机视觉研究主要集中在卷积神经网络上(通常简称为 ConvNet 或 CNN),在大量诸如分类和回归任务上已经实现了目前为止最佳的表现。尽管这些方法的历史可以追溯到多年前,但相对而言,对这些方法的理论理解及对结果的解释还比较浅薄。
实际上,计算机视觉领域的很多成果都把 CNN 当作了一种黑箱,这种方式虽然有效的,但对结果的解释却是模糊不清的,这也无法满足科学研究的需求。尤其是当这两个问题是互补关系时:
学习的方面(比如卷积核),它到底学习到的是什么?模型结构设计方面(比如卷积层数量、卷积核数量、池化策略、非线性函数的选择),为什么某些组合会优于其他组合呢?求解这些问题的答案,不仅有利于我们更好地理解卷积神经网络,而且还能进一步提升它的工程实用性。
此外,当前 CNN 的实现方法都需要大量训练数据,而且模型的设计方案对最终的结果有很大的影响。而更深层的理论理解应该减轻模型对数据的依赖性。尽管大量的研究已经集中在卷积神经网络的实现方式,但目前为止,这些研究结果很大程度上还只局限在对卷积操作内部处理的可视化上,目的是为了理解卷积神经网络中不同层的变化情况。
我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,马上就要抢光了。
二、本文目标
针对以上问题,本文将综述几种当前最优秀的多层卷积结构模型。更重要的是,本文还将通过不同方法来总结标准卷积神经网络的各种组件,并介绍它们所基于的生物学或合理的理论基础。此外,本文还将介绍如何通过可视化方法及实例研究来尝试理解卷积神经网络内部的变化情况。我们的最终目标是向读者详细展示卷积神经网络中所涉及到的每一个卷积层操作,着重强调当前最先进的卷积神经网络模型并说明未来仍需解决的问题。
第二章
多层网络结构
近年来,在深度学习或深层神经网络取得成功前,计算机视觉识别系统最先进的方法主要由两个步骤组成,这两个步骤各自分离但又互补:
首先, 我们需要通过人工设计操作(如卷积、局部或全局编码方法)将输入数据转换成合适的形式。这种输入的变换形式,通常是为了得到输入数据的一种紧凑或抽象的表征,同时还要根据当前任务的需要手动设计一些不变量。通过这种转换,我们能够将输入数据表征成一种更容易分离或识别的形式,这有助于后续的识别分类。其次, 转换后的数据通常作为分类器(如支持向量机)训练的输入信号。通常而言,任何分类器的表现都会受到变换后的数据质量及所使用的变换方法的影响。
多层神经网络结构的出现为解决这一问题带来了新的方式,这种多层结构不仅能够训练目标分类器,还能从输入数据中直接学习所需的变换操作。这种学习方式通常称为表征学习,当将其应用在深度或多层神经网络结构中时,我们称之为深度学习。
多层神经网络定义为是一种从输入数据的层次抽象表征中提取有用信息的计算模型。一般而言,设计多层网络结构的目标是为了在高层凸显输入数据的重要信息,同时能让那些不太不重要的信息变化更具鲁棒性。
近年来,研究者已经提出了很多不同类型的多层架构,而大多数的多层神经网络都是以堆叠的方式,将一些线性和非线性函数模块组合形成多层结构。本章将会覆盖计算机视觉应用中最先进的多层神经网络结构。其中,人工神经网络是我们需要的关注重点,因为这种网络结构的表现非常突出。为了方便起见,在下文我们会直接将这类网络称为神经网络。