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