第6期 杨梦铎,等:基于自编码器的特征迁移算法 ·895· 堆叠自编码器得到的深度网络与堆叠受限玻尔兹曼 的权值(weight)参数和偏置参数(bias),x,表示x的 机得到的深度网络具有相近的性能。相较而言,自 第i特征,n表示样本的维度,+1表示输入层和隐藏 编码器深度网络作为深度学习中更为简单的模型, 层的偏置结点。在输出层,hwbx)由神经网络的激 拥有更易于理解的理论基础与实现过程。 活函数(activation function)给出了网络的输出。 近年来,自编码器及其改善的版本(如降噪自 hd=f0wx+b)=f0∑Wx+b) 编码器9.21、收缩自编码器31)在模式识别领域中 常用的激活函数包括逻辑函数(logistic)以及双 展现出优异的性能。相对于手工设计的低层次特 曲正切函数(tanh): 征,这些深度网络的成功归因于它们学习丰富的中 fiogistie(Wx+b)= 间层特征表示的能力。然而为了估计上百万的参 1+e-(WTx+b) 数,有监督的微调过程需要大量的带标签的样本。 eWTx+b-e-(WTx-b) fumh(Wx+b)= eWTx+b+e-(wTr+b 于是,在深度网络强有力的模型表达能力下,如果 在神经网络训练过程中,需要最小化网络输入 提供的有标签样本数量太少就非常容易造成过拟合 输出差值。由于自编码器的无监督性,需要将损失 的问题。这样的性质就阻止了堆叠的自编码器在有 函数(loss function)J(W,b)由最小化输出值和对应 限训练数据下的施展应用。 标签值之间的差异替换为最小化输入值和输出值之 为了解决这个问题,我们提取栈式自编码器在 间的差异。改变后的损失函数公式为 大数据集上学到的图像特征并迁移到只有有限训练 数据的视觉识别任务中。设计的方法复用MNIST Jwb=品∑h(-+wm 数据集上训练的隐藏层,为小型MNIST变体数据 2栈式自编码网络 集来计算中间层的图像表示。实验结果表明,尽管 源任务与目标任务中的两组数据存在差异,迁移的 栈式自编码网络是将多个自编码器堆叠而成的 表示能够导致更加高效和更加准确的识别结果。 深度网络,也是深度学习的一个典型模型。当将原 始数据输入到首个训练好的自编码器后,它的隐藏 1自编码器 层就学习到了一阶特征表示。然后这层隐藏层特征 就作为另一个自编码器的输入,用来学习二阶特征 自编码器属于一种特殊的人工神经网络(artifi- cial neural network,ANN),采用反向传播算法(back 表示。以此类推,原始数据的多阶特征表示便可以 逐一得到。在构建深度网络的时候,各个自编码器 propagation,BP)进行优化。作为无监督的特征检测 需要去除输出层,只保留各阶学习到的特征表示。 模型,自编码器能够学习到输入数据的另一种特征 图2给出了包含两个隐藏层和一个最终分类器输出 表示。典型的模型由输入层、隐藏层和输出层构 层的栈式自编码网络。 成,并且输入层和输出层具有相同个数的神经元。 自编码器的目标是尽可能地让输入等于输出,那么 中间的隐藏层就必须捕捉能够代表输入的最重要因 素,以此给出输入的另一种表示。图1给出了一个 典型自编码器的示意图。 图2栈式自编码器示意图 Fig.2 Stacked auto-encoder diagram 3特征迁移模型 ma(x) 通常,含有多个隐藏层的栈式自编码网络包含 数以百万个模型参数。要训练这样的深度网络,需 图1自编码器示意图 要大量的带标签的训练数据集。然而,现实中这样 Fig.1 Auto-encoder diagram 规模庞大的有标签数据集并不多见,直接从几百个 wb(x)定义了一个复杂且非线性的函数以对每 或者几千个训练图像中学习如此众多的参数是一件 个训练样本x∈R进行拟合,其中W和b是网络 十分困难的事情。现有的解决方式包括手工标注数堆叠自编码器得到的深度网络与堆叠受限玻尔兹曼 机得到的深度网络具有相近的性能。相较而言,自 编码器深度网络作为深度学习中更为简单的模型, 拥有更易于理解的理论基础与实现过程。 近年来,自编码器及其改善的版本(如降噪自 编码器[9-12] 、收缩自编码器[13-14] )在模式识别领域中 展现出优异的性能。相对于手工设计的低层次特 征,这些深度网络的成功归因于它们学习丰富的中 间层特征表示的能力。然而为了估计上百万的参 数,有监督的微调过程需要大量的带标签的样本。 于是,在深度网络强有力的模型表达能力下,如果 提供的有标签样本数量太少就非常容易造成过拟合 的问题。这样的性质就阻止了堆叠的自编码器在有 限训练数据下的施展应用。 为了解决这个问题,我们提取栈式自编码器在 大数据集上学到的图像特征并迁移到只有有限训练 数据的视觉识别任务中。设计的方法复用 MNIST 数据集上训练的隐藏层,为小型 MNIST 变体数据 集来计算中间层的图像表示。实验结果表明,尽管 源任务与目标任务中的两组数据存在差异,迁移的 表示能够导致更加高效和更加准确的识别结果。 1 自编码器 自编码器属于一种特殊的人工神经网络(artificial neural network, ANN),采用反向传播算法(back propagation, BP)进行优化。作为无监督的特征检测 模型,自编码器能够学习到输入数据的另一种特征 表示。典型的模型由输入层、隐藏层和输出层构 成,并且输入层和输出层具有相同个数的神经元。 自编码器的目标是尽可能地让输入等于输出,那么 中间的隐藏层就必须捕捉能够代表输入的最重要因 素,以此给出输入的另一种表示。图 1 给出了一个 典型自编码器的示意图。 hW,b(x) x ∈ R n 定义了一个复杂且非线性的函数以对每 一个训练样本 进行拟合,其中 W 和 b 是网络 hW,b(x) 的权值(weight)参数和偏置参数(bias),xi 表示 x 的 第 i 特征,n 表示样本的维度,+1 表示输入层和隐藏 层的偏置结点。在输出层, 由神经网络的激 活函数(activation function)给出了网络的输出。 hW,b(x) = f(WT x+ b) = f( ∑n i=1 Wixi +b) 常用的激活函数包括逻辑函数(logistic)以及双 曲正切函数(tanh) [15] : flogistic(WT x+ b) = 1 1+e −(WT x+b) ftanh(WT x+ b) = e WT x+b −e −(WT x+b) e WT x+b +e −(WT x+b) J(W, b) 在神经网络训练过程中,需要最小化网络输入 输出差值。由于自编码器的无监督性,需要将损失 函数(loss function) 由最小化输出值和对应 标签值之间的差异替换为最小化输入值和输出值之 间的差异。改变后的损失函数公式为 J(W, b) = 1 m ∑m i=1 1 2 hW,b ( x (i) ) − x (i) 2 2 + λ 2 ∥W∥ 2 2 2 栈式自编码网络 栈式自编码网络是将多个自编码器堆叠而成的 深度网络,也是深度学习的一个典型模型。当将原 始数据输入到首个训练好的自编码器后,它的隐藏 层就学习到了一阶特征表示。然后这层隐藏层特征 就作为另一个自编码器的输入,用来学习二阶特征 表示。以此类推,原始数据的多阶特征表示便可以 逐一得到。在构建深度网络的时候,各个自编码器 需要去除输出层,只保留各阶学习到的特征表示。 图 2 给出了包含两个隐藏层和一个最终分类器输出 层的栈式自编码网络。 3 特征迁移模型 通常,含有多个隐藏层的栈式自编码网络包含 数以百万个模型参数。要训练这样的深度网络,需 要大量的带标签的训练数据集。然而,现实中这样 规模庞大的有标签数据集并不多见,直接从几百个 或者几千个训练图像中学习如此众多的参数是一件 十分困难的事情。现有的解决方式包括手工标注数 x1 x2 xn xˆ n xˆ 2 xˆ 1 +1 +1 hW,b (x) 图 1 自编码器示意图 Fig. 1 Auto-encoder diagram +1 +1 +1 . . . . . . . . . . . . 图 2 栈式自编码器示意图 Fig. 2 Stacked auto-encoder diagram 第 6 期 杨梦铎,等:基于自编码器的特征迁移算法 ·895·