文章目录
《What Do We Understand About Convolutional Networks》-part 2
CNN综述文章《What Do We Understand About Convolutional Networks?》2.1部分总结
Chapter 2 Multilayer Networks
本章简要概述了计算机视觉中使用的最著名的多层体系结构。本章的目的是为本文其余部分的详细介绍和目前人们对卷积网络在视觉信息处理上的详细应用打下基础。
2.1 多层架构
在基于深度学习的网络取得成功之前,最先进的计算机视觉识别系统依赖于两个独立但相辅相成的步骤:
(1)首先,通过一组手工设计的操作(例如卷积)将输入数据转换为合适的形式。这种转换的目的是改变数据以便它们更容易被分类器分离
(2)转换后的数据被用来训练某种分类器(例如支持向量机)。通常,任何分类器的性能都受第一步的转换的严重影响。
具有学习能力的多层体系结构不仅对分类器进行学习,而且还直接从数据中学习所需的转换操作。 这种学习形式通常称为表示学习,在深度多层体系结构中使用时称为深度学习。
表示学习允许计算机学习使用特征的同时,也学习如何提取特征,也就是学习如何学习。
通常,多层体系结构被设计为放大输入的重要方面,同时对不太重要的变化变得越来越健壮。 大多数多层体系结构以线性和非线性函数进行交替叠加。 多年来,提出了多种多样的多层体系结构,其中人工神经网络架构具有突出的地位。
2.1.1神经网络
通常,每个隐藏单元
h
j
h_j
hj在前一层接收来自所有单元的输入,并定义为输入的加权组合,激活函数是一些非饱和线性函数例如
s
i
g
m
o
i
d
sigmoid
sigmoid
感知机 (perceptron)
感知机是神经网络的起源算法,学习感知机的构造是通向神经网络和深度学习的一种重要思想。
感知机是二分类的线性分类模型,假设输入空间(特征空间)是
x
⊆
R
n
x⊆R^n
x⊆Rn,输出空间是
y
=
+
1
,
−
1
y={+1,-1}
y=+1,−1。输入
x
∈
X
x∈X
x∈X表示实例的特征向量,输出
y
∈
Y
y∈Y
y∈Y表示实例的类别。由输入空间到输出空间的如下函数
f
(
x
)
=
s
i
g
n
(
w
∗
x
+
b
)
f(x)=sign(w*x+b)
f(x)=sign(w∗x+b)称为感知机。
最初感知器无法对诸如XOR之类的简单操作进行建模,缺乏适当的训练算法,阻碍了对感知器的进一步研究,直到将其推广到多层, 反向传播算法普及。更大的障碍是它们依赖大量参数,意味着需要大量训练数据和计算资源来支持参数学习。
假设你想要解决一个复杂的任务,当然应该尝试收集更多的有标签的训练数据,但是如果这太难或太昂贵,你可以尝试用无监督预训练进行网络参数的初始化,提供先验。从最低层开始,然后上升,使用无监督的特征检测算法,如限制玻尔兹曼机(RBM)或自动编码器。 一旦所有层都以这种方式进行了训练,就可以使用监督式学习(反向传播)对网络进行微调。
G. E. Hinton, S. Osindero, and Y-W. Teh. A fast learning algorithm for deep belief nets. Neural Computation, 18(7):1527–1554, 2006. 2.1.1, 2.1.1
2.1.2递归神经网络
在考虑依赖顺序输入的任务时,最成功的多层结构之一是递归神经网络(RNN)。
RNN每个隐藏单元从它在当前时间观察到的数据中获取输入,并在前一时间步骤中获取其状态。
h
t
=
σ
(
w
i
x
t
+
u
i
h
t
−
1
)
h_t = σ(w_ix_t + u_ih_{t-1})
ht=σ(wixt+uiht−1),σ是一类非线性压缩函数,wi和UI是控制当前和过去信息相对重要性的网络参数。
RNN的主要问题之一是它们对长期依赖关系建模的能力有限。在训练过程中,从当前时间步长反向传播到初始时间,传播的梯度将与网络的权重相乘。 由于这种乘法累加,如果权重较小,则会出现梯度消失,而权重较大则导致梯度爆炸。 由此引入了长期短期记忆(LSTM)。
该单元在当前时间
x
t
x_t
xt以及上一时间状态
h
t
−
1
h_{t-1}
ht−1处获取输入,并输出要在下一时间输入的
h
t
h_t
ht。 LSTM单元的最终输出由输入门(
i
t
i_t
it),遗忘门(
f
t
f_t
ft)和输出门(
o
t
o_t
ot)以及存储单元状态(
c
t
c_t
ct)控制。
2.1.3卷积网络
卷积网络(ConvNets)是一种特殊类型的神经网络,计算机视觉中成功应用卷积结构有两个关键的设计思想:
(1)首先,ConvNets利用图像的2D结构以及一个像素点邻域内的像素通常高度相关这一事实。 因此避免在所有像素单元之间使用一对一连接。
(2)特征共享,通过在所有位置使用相同的滤波器进行卷积来输出特征图。与标准神经网络相比,ConvNets的这一特征导致其所依赖的结构要少得多。
(3)引入了池化步骤,该步骤提供了一定程度的平移不变性,从而使体系结构不受位置的微小变化的影响。
网络可以随着深度的增加来表示更多抽象特征。 例如,对于对象识别的任务,ConvNets层首先关注对象部分的边缘,最终覆盖整个对象。
经过培训,神经网络可以学习输入feature map和cell之间的连接,学习过程可以概括为两个步骤:
(1)首先,每次在输入端出现新的刺激时,将最大程度响应该刺激的cell选作该刺激类型的代表单元。
(2)其次,输入和响应单元间的连接在每次有相同输入类型的输入时都会加强
最近的计算机视觉中部署的大多数CONVENET体系结构受到1998年提出的的Lenet的启发,Lenet用于手写识别。Lenet引入反向传播,以相对有效地学习卷积参数。
尽管CONVERNET与全连接的神经网络相比需要少得多的参数,但是它们的主要缺点仍然是他们对学习和标记数据的严重依赖。这种数据依赖可能是Convnet直到2012年才被广泛使用的主要原因之一,当时大型ImageNet数据集和相应的计算资源的可用性,使人们恢复对Convnet的兴趣。ConvNets在ImageNet上的成功导致了各种ConvNet体系结构的飞速创新,这一领域的大部分贡献都是基于Convnet的不同构造,这将在2.2节后面讨论。
2.1.4生成对抗网络
GANS最初是在2014年推出的,虽然它们本身并没有提出不同的网络搭建,但是引入一种无需标签数据的无监督学习方法。 一个典型的GaN是由两个子网络:生成网络和判别网络组成的,通过两个网络互相对抗来达到最好的生成效果。
GAN的一些成功应用包括:文本转化为图像(网络输入是要呈现的图像的文本描述),图像高分辨率转化(GAN输入低分辨率图像生成高分辨率图像),图像修补(GAN的作用是合成真实的信息纹理,填补输入图像中缺失的信息)。
2.1.5多层网络训练
使用梯度下降进行反向传播这种简单的梯度下降方法特别适合于训练多层网络,这要归功于使用链规则来计算不同层的各种网络参数的导数。
梯度下降算法的主要问题之一是学习速率的选择。学习速率太小会导致收敛速度慢,而学习速度过高则会导致跳过最优位置或在最优附近波动。为此,提出了几种改进方法,momentum等。另一种简单的方法是按照固定的时间表递减学习率,但这并不理想,因为这个时间表必须在训练之前预先设定,是完全独立于数据的。其他更复杂的方法(例如,Adagrad ,Adadelta,Adam)通过在频繁更改的参数上执行较小的更新而在不频繁的参数上执行较大的更新来使训练期间的学习速率适应每个要更新的参数。
使用梯度下降以及其变体的训练的主要缺点是需要大量的标记数据。解决这一困难的方法之一是求助于无监督的学习。
2.1.6迁移学习
训练多层体系结构的好处之一,是学习到的特征在不同数据集甚至不同任务之间有惊人的适应性。这可以归因于其层次性,在这种层次结构中,从简单的局部的到抽象的全局的进行进行特征提取,因此,不同任务在较低级别层次结构上提取的特征往往是相同的,从而使多层体系结构更易于迁移。
在进行迁移学习时,考虑以下几点:
(1)与微调整个网络相比,仅微调高层会带来系统上更好的性能。
(2)研究表明,进行迁移的任务差别越大,转移学习的效率就越低。
(3)即使对初始任务下的网络进行了微调,迁移效果也不会受到特别的影响。