APP下载

基于注意力机制和迁移学习的古壁画朝代识别

2023-07-03张慧斌冯丽萍郝耀军王一宁

计算机应用 2023年6期
关键词:朝代壁画分类器

张慧斌,冯丽萍,郝耀军,王一宁

(1.忻州师范学院 计算机系,山西 忻州 034000;2.燕山大学 信息科学与工程学院,河北 秦皇岛 066004)

0 引言

中国敦煌古代壁画作品是中国重要的文化遗产,敦煌古壁画的朝代分类更是学者们研究的首要因素。敦煌莫高窟壁画始建于中国古代前秦朝时期,拥有将近1 600 年历史,先后经历北魏、西魏、北周、隋朝、唐朝、五代十国等朝代的兴建,但是受上千年风雨侵蚀和人为因素的影响,古代壁画都遭到了不同程度的损坏,因此对壁画朝代的判别变得困难,成为了历史文化研究中的一大阻碍。利用深度学习智能技术对古代壁画朝代识别分类鉴定成为学者们研究的重要方向之一。

深度卷积神经网络(Convolutional Neural Network,CNN)在图像处理方面取得了巨大的成功[1],在艺术绘画识别分类问题上也取得了很大突破。文献[2]中使用迁移学习(Transfer Learning)方法在CNN 模型上对敦煌古壁画进行朝代识别分类,分类准确率达到88.7%。文献[3]中使用迁移学习方法把已经预训练好的残差网络ResNet(Residual Network)模型ResNet50[4]以及VGGNet 模型[1]进行再训练,先后预测了10 位以及20 位艺术家的画作,分别达到了90.75%以及87.8%的测试准确率。文献[5]中收集了6 个朝代的3 860 张敦煌壁画,并提出了DunNet 模型对敦煌壁画朝代分类。文献[6]中对胶囊网络进行适应性增强,在提高梯度平滑度基础上,利用自适应学习率优化模型,提高模型的分类精度,提出了适应性增强胶囊网络,对敦煌壁画所属朝代进行分类达到了84.44%的测试准确率。文献[7]中对ResNet50 第49 层的平均池化用最大池化代替,对敦煌壁画朝代进行分类达到了88.46%的准确率。

基于深度学习的古代壁画分类方法比传统算法在准确率上有了很大的提高,但是CNN需要大量的训练学习样本,然而古代壁画的数量有限,一般采用数据增强方法解决训练学习不足问题。但是,数据增强方法存在两个缺点:一是有些数据增强方法在扩充训练集的数量的同时,增加了训练时间;二是有些数据增强方法改变了训练集的数据概率分布,使得训练和测试数据的概率分布差异变大,反而降低了预测准确率。当数据增强方法无效甚至可能降低分类性能的情况下,使用小样本迁移学习方法[8]成为解决上述问题的一个选择。迁移学习是将一个领域学到的知识转移到另一个标注数据为小样本的领域,迁移学习能够在标注数据小样本的情况下获得比较好的测试结果。

从数据分析的角度,预训练的数据集和任务目标数据集相关性越强,迁移学习的先验知识获取的效果越好;而古代壁画数据集本身的样本数很少,与之相关的数据集更难获得,因此需要把没有相关性的数据集作为预训练的数据集进行迁移学习,通过改进网络模型、改进分类器算法和训练方法构造域适应(domain adaption)方法以解决源域(source domain)和目标域(target domain)数据分布不相关问题,使得目标域尽可能利用源域知识提高任务目标分类的性能,这是本文研究探索的方向。

针对上述深度学习对古代壁画朝代识别任务中存在标注数据严重不足的问题,提出一种基于注意力机制的ResNet20 模型[4]对古代壁画进行朝代分类识别,同时改进了ResNet 的残差连接方式,然后在不相关性的CIFAR10 数据集[9]上进行预训练,在目标数据集训练时,改进分类器的算法,用以加大不同类之间数据分布的差异性。实验结果表明,本文的基于小样本迁移学习的网络模型在敦煌古代壁画朝代分类任务中获得了很高的分类准确率,表明了基于注意力机制和迁移学习的ResNet20 网络模型在古代壁画朝代识别任务中的有效性。

1 相关理论

1.1 迁移学习

文献[10-11]中指出,在图像分类任务中,CNN 通过训练数据从而获得数据的分层特征表达能力,CNN 的深层用于语义分类,CNN 的底层用于描述低级语义特征(边缘信息、颜色信息等局部特征),这样的特征实际上在不同的分类任务中没有太大的区别,而真正有区别的是深层特征。

文献[12]中认为迁移学习是利用有大量标注数据的源域(预训练数据集)映射到任务目标域(任务目标数据集)的知识迁移方法。域之间的差异使得在不同域之中使用预测模型时存在障碍,需要通过域适应解决该问题,即对来自两个相关域但服从不同分布的数据,建立模型学习这两个域的域不变特征(domain-invariant feature)。迁移学习的目标是从数据中学习域不变特征,从而沟通源域和目标域在一个同构的隐特征空间。文献[13]中认为,域适应方法旨在通过学习域不变特征把源域和目标域连接起来,从而能够利用源域所学到的知识对目标域进行预测。源域和目标域上的数据分布偏差较大,这是域适应要解决的问题,也是迁移学习核心要解决的问题。将域适应问题转换为寻找公共特征表示空间的问题,也就是寻找学习域的不变特征。

在理论上,任何领域之间都可以作迁移学习;但是,如果源域和目标域之间数据分布差别太大、相似度不够,迁移学习效果会很不理想。当源域与目标域相关度较小或互不相关时,迁移学习可能失败,甚至表现为负迁移。域适应方法在一定程度上可以解决这个问题,它的基本思想是保证域差异最小,具体方法都是改进损失函数,或者在损失函数上添加一些约束项,或者对分类器的算法进行改进。

本文通过改进分类器算法和训练方法解决域适应问题,使用与古代壁画没有相关性的CIFAR10 数据集[9]作为源域,在古代壁画目标域上进行迁移学习。

1.2 注意力机制

注意力机制(attention mechanism)是神经网络研究中的一个非常重要的研究领域,已经被广泛地应用在自然语言处理、统计学习语音识别和计算机视觉等人工智能相关领域[14]。

Bahdanau 等[15]首次将注意力机制应用到机器翻译的任务中,实现了翻译和对齐同时进行,解决了语句长度不同的问题。Vaswani 等[16]提出了以自注意力为基本单元的Transformer 模型,使得注意力机制得到真正的成功运用。此后,学者们 提出了Non-local neural network[17]、Triplet Attention[18]和cosFormer Attention[19]等注意力机制。

没有注意力机制的CNN 一般对图像的所有信息都要处理,无法对重要的信息进行选择,缺乏辨别学习的能力,并且不会重点注意图像中的关键信息。

网络模型需要提取壁画的纹理、细节特征,也要提取壁画的轮廓、形状特征,壁画的细节特征、纹理等表现在网络模型的通道上,而壁画的轮廓形状等全局特征表现在网络模型的空间通道上,因此在卷积网络中加入通道空间的极化自注意力(POlarized Self-Attention,POSA)模块[20],如图1 所示。POSA模块在通道和空间注意力计算中具有较高的内部分辨率。

图1 POSA模块的结构Fig.1 Structure of POSA module

2 网络结构模型

2.1 基于注意力机制的改进的ResNet网络模型

标准的ResNet 中,对于特征图大小不一致的残差连接使用1×1 卷积核(步长为2)进行卷积计算,显然输入特征图像的一半像素没有卷积计算,这样会丢失一些图像特征信息。本文用3×3 卷积核(步长为2)进行卷积计算的残差连接方式代替,如图2 所示。

设输入向量为yl-1,残差块输出向量为yl,关系可表示为:

其中:函数F(·)表示的是图2 残差连接⊕前的两个卷积运算、批归一 化(Batch Normalization,BN)运算和ReLU(Rectified Linear Unit)激活函数运算。

因为敦煌壁画的样本数较少,不适用于深度和宽度比较大的网络模型,否则很容易产生过拟合,致使分类性能不足,所以使用参数量较少的小网络模型,故选用ResNet20 作为网络模型。本文在ResNet20 模型中引入POSA 模块加强敦煌壁画的边缘关键信息特征抽取。一般地,在深度学习的分类任务中,浅层网络提取的是图像的细节特征,因此把POSA模块插入网络模型的浅层的卷积层中用来提取图像的细节特征;而网络模型深层的卷积层提取的是具有概括性、全局性的图像数字特征信息。

本文的网络模型在ResNet20[4]的浅层加POSA 机制,结构如表1 所示。

表1 基于注意力机制的ResNet20结构Tab.1 ResNet20 structure based on attention mechanism

2.2 改进的迁移学习

数据增强方法可以增加训练数据集的样本数,然而有些数据增强方法可能使得某些训练集和测试集数据的概率分布产生比较大偏差,致使网络模型分类性能下降,因此本文的网络模型训练不使用数据增强技术。

通常使用基于模型微调的迁移学习解决标注数据严重不足问题,它的训练过程为:首先在大数据集上进行预训练,训练完成后,对应小样本目标数据任务,固定浅层的权重参数值,仅对深层的权重参数进行训练。模型微调小样本学习方法在训练数据集和测试数据集概率分布相差很小情况下,学习效果非常有效,当二者数据概率分布相差较大时,则学习效果性能较低。

文献[21]中提出了一种称为Baseline++的基于模型微调的小样本图像分类方法,改进的分类器算法更适合模型微调的迁移学习。

因为古代壁画数量较少,相关的数据集几乎没有,使用模型微调的迁移学习方法学习性能必然很低,所以本文对预训练后的网络模型的权重参数进行全部再训练。在图像分类任务中,在卷积层构成的特征提取器后,把每个特征map平均池化为一个特征神经元,然后使用Softmax 分类器把特征神经元构成的特征向量与线性层的权重矩阵作向量积,得到一个类别向量,再比较类别向量的标量数值大小以预测样本的类别。有大量训练数据集的前提下,Softmax 分类器方法可以充分训练到同类别的数字特征值,因此能获得较好的分类效果;但是当训练数据集是小样本时,训练出来的不同类之间的特征向量的数字特征差异不明显,故降低了网络模型分类性能。

使用没有相关性的CIFAR10 数据集作为预训练,迁移到任务目标数据集上训练,仅仅微调网络模型是无法获得较好分类性能的,所以再对网络模型的权重参数进行训练更新。同时,为了适用目标数据集的图像分类任务,需要对分类器的算法进行改进。网络模型特征提取器特征map 经过BN 层和ReLU 激活函数计算后,再经过平均池化输出一个一维特征向量。由概率论与统计学的2σ法则可知,一维向量中的数据95.44%的概率在[0,2),为了增加特征向量数据间的差异性,本文对分类器的特征向量作线性映射,把特征向量中的数据的值映射到[0,3]上。设特征向量元素最大值为xmax,最小值为xmin,特征向量的任一数据值为x,关系可表示为:

为了增加不同类之间的特征值的差异性,对线性层的分类层的每个神经元数值的概率分布进行正态分布的标准化处理,线性变换后的表达式表示为:

其中:μ是输出层神经元的均值,σ是输出层神经元的方差。

3 网络参数设置

3.1 实验数据集

实验数据集是敦煌壁画图像数据集(DH1926),出自《中国敦煌壁画全集》电子资源画册。壁画的朝代分别是北魏、北周、隋代、唐朝、五代和西魏这6 个不同的朝代时期,总共有1 926 张壁画图像,各朝代壁画示例如图3 所示。

图3 敦煌古壁画各朝代图像示例Fig.3 Examples of images of ancient murals from Dunhuang in different dynasties

本文网络模型没有对训练集作数据增强处理。从每个朝代的壁画随机抽取128 个作为测试数据集、剩余部分为训练集,这样训练集有1 158 个样本、测试集有768 个样本,每个朝代的壁画训练集、测试集和壁画总数如表2 所示。

表2 DH1926数据集中的各朝代图像数量Tab.2 Numbers of images in different dynasties in DH1926 dataset

3.2 学习率和训练轮次

在预训练阶段,用CIFAR10 数据集作为源域数据集,它的训练集有50 000 个彩色图片,测试集有10 000 个,网络模型训练的batchsize 设置为128,训练200 轮。

学习率是卷积神经网络的最重要的超参数,对网络的收敛速度和性能有重要的作用。在预训练阶段和目标域训练的迁移学习阶段,学习率的衰减方法都采用余弦退火衰减下降法[22]。余弦函数中随着训练轮次和迭代次数的增加,学习率首先缓慢下降,然后加速下降,再次缓慢下降,这种下降模式可以使神经网络产生很好的学习效果。本文实验最后一轮的最后一次迭代的学习率降为0。其关系可表示为:

其中:ηmax是神经网络模型训练学习的初始学习率,也是实验的最大学习率;ηmin是神经网络衰减到最小的学习率,设置ηmin=0;Tmax=200 是总共训练的轮次数;Tcur为当前正在训练的轮次数;iters为训练一轮的迭代次数;iter为当前训练轮次的当前迭代数。实验的学习率衰减如图4 所示。

图4 使用余弦衰减法的学习率Fig.4 Learning rate with cosine decay method

在预训练阶段,初始学习率设置为0.1;在目标域训练的迁移学习阶段,初始学习率设置为0.005,网络模型训练的batchsize 设置为16,训练200 轮。

3.3 网络的初始化

深度CNN 优化是一个非常复杂的非线性模型,网络的初始化直接影响模型的收敛和模型训练的准确率。初始化是CNN 的基础研究,Kaiming 初始化[23]是CNN 最常用的初始化方法,近两年出现新的研究方向,如通过算法寻找初始化值的GradInit[24]和通过缩放因子进行初始化的SkipInit[25]。

本文网络模型根据文献[26]中的CNN 收敛的必要性条件和卷积核的初始化公式进行初始化,卷积核按照式(5)初始化:

其中:wl表示神经网络第l层的卷积核权重参数;nl=cl×kl2,cl是神经网络第l层的输出通道数,kl是神经网络第l层卷积核的维数。第l层的卷积核按照式(5)作均值为0 方差为3.0/nl的随机高斯分布初始化,同时把偏置值(bias)初始化为0。

在目标域训练的迁移学习阶段,初始学习率设置为0.005,对网络模型的线性分类器按照式(6)初始化:

其中:w表示线性分类器的权重参数;m是线性分类器的输出通道数。

3.4 损失函数

在深度学习中,损失函数至关重要,通过最小化损失函数使模型达到收敛状态,减小模型预测值的误差。本文实验的神经网络使用的交叉熵损失(Cross-entropy Loss)函数,又称为对数似然损失(Log-likelihood Loss)函数,是神经网络的多分类损失函数,可以表示为:

其中:p(xi)表示真实标记的分布,q(xi)为训练后的模型的预测标记分布。交叉熵损失函数可以衡量p(xi)与q(xi)的相似性。

PyTorch 的交叉熵损失函数加上了Softmax 函数,关系表达式如式(8)所示:

其中:x表示CNN 输出层的输出分类向量,class表示分类的类别。

3.5 网络优化器设置

CNN 的优化器Adam 算法[27]是目前公认的优秀自适应学习优化器之一,它不仅考虑了一阶动量更新,还考虑了二阶动量,收敛速度非常快;但是在壁画样本数较少的图像分类中,本文使用基础的优化方法随机梯度下降(Stochastic Gradient Descent,SGD)优化器。实验结果显示,SGD 优化器泛化能力强,有一定的防过拟合能力,分类准确率更高,同时设置SGD 优化器的momentum 为0.9,神经网络的激活函数采用ReLU 函数。

3.6 迁移学习训练方法

网络模型的训练过程如下。首先,在CIFAR10 数据集上对网络模型进行饱和预训练,即训练数据集的包含的信息量要大于网络模型的参数所能学到的信息量,这样把网络模型的参数接近最优化状态;然后,在任务目标数据集上,用改进的分类器算法(式(2)(3))代替原先的标准线性分类器算法,对网络模型的所有参数再进行训练更新,对改进的分类器按照式(6)初始化。

3.7 实验环境

实验使用深度学习框架PyTorch 1.3 版本,Linux 的Ubuntu 版本20.0 操作系统,Python3.7 作为神经网络编程语言,实验使用的GPU 是NVIDIA GTX 1070ti GPU。

4 实验与结果分析

4.1 与其他模型结果对比分析

为了验证本文提出的基于注意力机制和迁移学习的网络模型在古壁画朝代识别分类中的性能和有效性,与文献[2,5-7]算法的预测准确率进行对比,结果见表3。

表3 不同网络模型的实验结果对比Tab.3 Comparison of experimental results of different network models

文献[2,5,7]把数据集分为训练集、验证集和测试集,也就是分别把数据集分为970 张图片的训练集、160 张图片的验证集和254 张图片的测试集,其中160 张验证集图片在模型训练中检验模型的状态和收敛情况。由表3 可以看到,其他对比文献用于古壁画朝代识别的网络模型的训练数据集样本数远大于本文网络模型的训练数据集样本数,然而分类准确率却远低于本文网络模型的分类准确率。文献[7]中采用标准的ResNet50 网络模型对古代壁画进行朝代分类,网络模型的宽度和深度都远大于本文网络模型的宽度和深度,但是其朝代分类准确率比较低,原因可能如下:一是网络模型对图像特征提取能力不足;二是过大的网络模型造成了过拟合。文献[6]中采用数据增强技术扩充了训练数据集,然而准确率较低,有可能是采用的数据增强技术使得训练集和测试集数据的概率分布差异变大,从而降低了识别准确率。

4.2 改进的分类器性能对比分析

在训练方法一致的前提下,将本文改进的分类器、基本的分类器Baseline 和Baseline++小样本迁移学习分类器[21]进行性能对比实验,实验结果如表4 所示。

表4 分类器性能对比分析Tab.4 Comparative analysis of classifier performance

由表4 可以看出,本文的分类器在敦煌古代壁画的分类效果优于Baseline++小样本迁移学习分类器。本文实验中的Baseline++分类器性能低于基本的分类器性能的可能原因是Baseline++分类器是基于微调的迁移学习,而本文的迁移学习的源域和目标域几乎不相关,因此使用基于模型微调的Baseline++出现负迁移现象。

4.3 不同训练样本数对比分析

为进一步验证基于注意力机制和迁移学习的ResNet 的学习能力,分别随机抽取总样本数的50.1%、60.1% 和80.1%作为训练集,剩余样本作为测试集,实验结果如表5所示。

表5 不同样本数的训练集和测试集的测试准确率对比Tab.5 Comparison of test accuracy on training sets and testing sets with different sample sizes

由表5 可以看出,基于注意力机制和迁移学习的残差网络对训练集的样本数并不敏感,即使训练集的样本数相差较大,测试准确率也只相差1 个百分点左右,说明本文网络模型具有较强的学习能力,可以通过少量的数据集获得古代壁画朝代分类识别的能力。

4.4 优化器对比分析

本文对优化器Adam 和SGD 作了实验对比,如图5 所示,虽然两个优化器的损失函数值在训练200 轮次后非常接近,但是网络模型使用优化器Adam 的测试准确率为95.23%,使用优化器SGD 的测试准确率为98.05%,可见优化器SGD 在图像分类方面泛化能力更强,分类准确率更高。

图5 优化器SGD和Adam的损失值和测试准确率对比Fig.5 Comparison of loss value and test accuracy between optimizer SGD and Adam

4.5 POSA极化自注意力模块的性能分析

为了验证POSA 模块在古壁画朝代分类识别网络模型中所起的作用和性能,本文对POSA 模块作消融实验,该实验没有进行迁移学习预训练,实验结果如表6 所示。

表6 POSA模块的性能分析Tab.6 Performance analysis of POSA module

由表6 可以看出,在ResNet20 模型的浅层引入POSA 模块使古壁画分类准确率提高了3.16 个百分点,表明POSA 模块对古壁画的分类性能有所提升。在此基础上再进行迁移学习,由表4 可知有98.05%的朝代分类准确率,与标准的ResNet20 网络模型相比,朝代识别准确率提高了5.21 个百分点。

5 结语

迁移学习对图像分类具有很重要的研究价值和学术意义,本文提出了一种基于注意力机制和迁移学习的残差网络模型对莫高窟古代壁画朝代进行识别分类。首先,改进了ResNet 的残差连接方式,可以把浅层的信息无损地送入深层;其次,把用于图像分割的POSA 模块放到ResNet 的浅层中,有效地获取图片边缘信息,故有较强的图像特征抽取能力;然后,采用迁移学习方法,在CIFAR10 数据集上进行了饱和预训练;最后,改进了分类器算法,加大不同类之间数据分布的差异性,从而提高了网络模型的分类能力。通过实验对比分析,本文的网络模型展现了良好的性能,测试准确率高于其他网络模型10 个百分点,表明了网络模型的有效性和可行性。

在今后的工作中,研究的重点将考虑迁移学习的域泛化(Domain Generalization,DG)学习方法,使得在小数据集上进行目标域训练的网络模型可以更深更宽,测试准确率更高。

猜你喜欢

朝代壁画分类器
敦煌壁画中的消暑妙招
壁画上的数学
猜朝代
北朝、隋唐壁画
BP-GA光照分类器在车道线识别中的应用
朝代谁也不服谁
朝代谁也不服谁
不懂就百度
帮壁画“治病”
加权空-谱与最近邻分类器相结合的高光谱图像分类