基于特征解耦的多源域适应方法

文档序号:26853578发布日期:2021-10-09 02:45阅读:451来源:国知局
基于特征解耦的多源域适应方法

1.本发明涉及领域自适应领域,尤其涉及一种基于特征解耦的多源域适应方法。


背景技术:

2.域适应是迁移学习的一个分支,特征是源域和目标域的数据分布不同,任务相同。当训练数据集和测试数据集分布不一致的情况下,通过在训练数据集上按经验误差最小准则训练得到的模型在测试数据集上性能不佳。为了在拥有不同分布的数据集上有较好的表现,引入域适应。目标是在带标签的源数据集上训练一个神经网络,并确保在显著不同于源数据集的无标签的目标数据集上也有良好的准确性。
3.区别于一般的域适应问题,多源域适应涉及多于一个的源域,同时将多个源域的知识迁移到目标域中辅助目标域的学习。由于多源域数据不但和目标域数据分布不同,彼此之间也不同,这种场景就更具挑战性。
4.现有方法的关键解决思路在于确定源域和目标域之间共享的不变表示是什么以及如何找到这些表示,目的是将每个源的特征对齐到一个统一的空间来获得领域共享的特征。典型方法包括直接特征对齐方法,该方法通过最小化深度前馈网络内的特征分布之间的差异来提取域共享表示,以及通过欺骗域判别器来提取表征的对抗性学习方法。最近,为了在考虑语义信息的情况下提取领域共享表示,研究者们还提出了细粒度的语义对齐方法。然而,它们中的大多数都需要为目标域样本生成伪标签,以尽量减少同一标签内跨域的差异。由于伪标签存在不确定性,容易导致误差累积。同时,由于域共享语义特征和域私有的特征紧密耦合在一起,以上方法很难在保留域共享语义特征的同时排除每个域私有特征的噪声影响,从而很难为所有的域提取到同样的域共享特征,进而会影响在目标域上的准确度表现。


技术实现要素:

5.本发明的目的是提供一种基于特征解耦的多源域适应方法,通过假设域共享特征和域私有特征之间存在独立性,显式地将这两种特征在潜在空间解耦,让域共享特征覆盖尽量多的类别语义信息,进行目标域上的分类任务。
6.本发明解决其技术问题,采用的技术方案是:本发明提出一种基于特征解耦的多源域适应方法,包括如下步骤:步骤1.分别提取各个域图像的域共享特征和域私有特征,获取提取损失函数,通过正交解耦,使得域私有特征和域共享特征各个维度的表示互相独立,所述域包括一个目标域和多个源域;步骤2.搭建并训练分类器,使分类器通过第一分类损失函数对源域的域共享特征正确分类,并使分类器通过第二分类损失函数对源域的域私有特征无法正确分类;步骤3.搭建并训域判别器,使域判别器通过域判别器交叉熵损失函数无法正确区分域共享特征来自源域还是目标域;
步骤4.搭建解码器,通过解码器的回归损失函数对域共享特征和域私有特征的组合进行解码,使域共享特征和域私有特征耦合,重构回原始表示;步骤5.计算所有损失函数的总损失函数;步骤6.对步骤1

5组成的模型进行整体训练;步骤7.利用所述进行整体训练好后的模型对不带标签的需要分类的目标域图像进行分类。
7.进一步的是,步骤1具体包括如下步骤:步骤101.获取包含多个域的图像数据,将其中一个域作为目标域,目标域样本记为,其余m个域作为源域,,源域的样本记为;步骤102.所有域用一个公共的域共享编码器提取域共享特征,其中,各个域用各自的一个域私有编码器提取域私有特征,其中,图像特征经过特征提取后均以向量的形式存在;步骤103.构建矩阵和,矩阵和的行向量分别为源域的域共享特征和目标域的域共享特征;步骤104.构建矩阵和,和的行向量分别为源域的域私有特征和目标域的域私有特征;步骤105.将矩阵的转置矩阵与矩阵相乘,矩阵的转置矩阵与矩阵相乘,两个乘积相加,获取提取损失函数,表示为:;其中,是frobenius范数的平方;步骤106.最小化提取损失函数,即促使域私有特征向量和域共享特征向量正交,以使得域私有特征和域共享特征向量的每一个维度都彼此独立,完成域私有特征和域共享特征的解耦。
8.进一步的是,步骤2中,搭建分类器c,并通过源域中的图像数据训练,所述分类器包括多个人工神经网络的全连接层,全连接层后接softmax激活函数,所述源域中的图像数据含有类别标签。
9.进一步的是,步骤2中,搭建好分类器后,训练分类器,使分类器通过第一分类损失函数对源域的域共享特征正确分类,具体是指:输入源域的域共享特征,通过最小化分类器输出和源域特征的类别标签的交叉熵损失,使分类器获得对域共享特征的多分类能力,能够对样本的域共享特征进行正确分类;其中,第一分类损失函数定义为一个batch内源域样本分类交叉熵损失的均值,表
示为:其中,为一个batch输入源域样本总的数量,为单个源域样本的one

hot形式的类别标签,为经过softmax激活函数之后的分类器的对域共享特征类别预测结果,具体定义为:其中,表示softmax激活函数。
10.进一步的是,步骤2中,搭建好分类器后,训练分类器,使分类器通过第二分类损失函数对源域的域私有特征无法正确分类,具体是指:将源域私有特征输入经过源域共享特征预训练好的分类器,最小化分类器输出和源域特征的类别标签的交叉熵损失,通过梯度反转层,让梯度反向传播到域私有编码器的参数之前自动取反,使得域私有特征提取器朝着最大化交叉熵损失的方向优化;其中,第二分类损失函数的定义如下:其中,为经过softmax激活函数之后的分类器的对域私有特征的类别预测结果,表示为:其中,r代表梯度反转层,其数学表达为:其中,r代表梯度反转层,其数学表达为:其中,代表单位矩阵,在梯度反转层中,参数是动态变化的,其变化表达式如下式所示:其中,代表训练进程相对值,即当前迭代次数与总迭代次数的比值,为常数10。
11.进一步的是,步骤3中,搭建一个域判别器d,通过梯度反转层,梯度反向传播到域共享特征提取器的参数之前自动取反,使得域共享编码器朝着最大化域判别器交叉熵损失的方向优化,即让提取得到的源域和目标域共享特征在特征空间中混淆。
12.进一步的是,步骤3中,所述域判别器为一个二分类器,输出为0或1,表示输入样本来自源域或者目标域,域判别器交叉熵损失函数定义如下:
其中,为一个batch输入源域样本和目标域样本总的数量,为单个样本来自哪个域的标签,0代表来自源域,1代表来自目标域,为经过softmax激活函数之后的域判别器的对域共享特征来自哪个域的预测结果,具体定义为:其中,表示softmax激活函数,r代表梯度反转层。
13.进一步的是,步骤4中,所述回归损失函数定义为:其中,de为解码器。
14.进一步的是,步骤5具体为:通过将所有损失函数分别乘上一个权重系数,加起来作为总损失函数,并利用随机梯度下降法对总损失函数进行优化,表示为:其中,为各损失函数的权重系数值。
15.本发明的有益效果是,通过上述基于特征解耦的多源域适应方法,为每个域构建两个特征提取器,显式地解耦得到域共享特征和域私有特征,通过对抗学习训练类别分类器对域共享特征正确分类,对域私有特征无法正确分类,从而让域共享特征覆盖尽量多的类别语义信息,域私有特征则包含较少类别信息,训练域判别器无法正确区分共享特征来自哪个域以让各个域的共享特征在特征空间中尽量靠近,重构损失的约束使得重新耦合的特征仍能正确表征原始数据,尽量减少解耦过程中语义信息的损失。
附图说明
16.图1为本发明实施例基于特征解耦的多源域适应方法的流程图;图2为本发明实施例中基于特征解耦的多源域适应方法的整体流程图;图3为本发明实施例中特征解耦示意图;图4为本发明实施例中类别分类器对抗学习示意图;图5为本发明实施例中域判别器对抗学习示意图;图6为本发明实施例中重构示意图。
具体实施方式
17.下面结合附图及实施例,详细描述本发明的技术方案。
实施例
18.本发明提出的一种基于特征解耦的多源域适应方法,其流程图见图1,其中,该方
法包括如下步骤:s1.分别提取各个域图像的域共享特征和域私有特征,获取提取损失函数,通过正交解耦,使得域私有特征和域共享特征各个维度的表示互相独立,所述域包括一个目标域和多个源域;s2.搭建并训练分类器,使分类器通过第一分类损失函数对源域的域共享特征正确分类,并使分类器通过第二分类损失函数对源域的域私有特征无法正确分类;s3.搭建并训域判别器,使域判别器通过域判别器交叉熵损失函数无法正确区分域共享特征来自源域还是目标域;s4.搭建解码器,通过解码器的回归损失函数对域共享特征和域私有特征的组合进行解码,使域共享特征和域私有特征耦合,重构回原始表示;s5.计算所有损失函数的总损失函数;s6.对步骤1

5组成的模型进行整体训练;s7.利用所述进行整体训练好后的模型对不带标签的需要分类的目标域图像进行分类。
19.通过本实施例提出的基于特征解耦的多源域适应方法,可以通过假设域共享特征和域私有特征之间存在独立性,显式地将这两种特征在潜在空间解耦,让域共享特征覆盖尽量多的类别语义信息,进行目标域上的分类任务。
20.为了进一步说明本方法,需要指出的是,本方法具体可以包括以下步骤:步骤s1:提取各个域图像特征并解耦这里,图像来自不同的域,如网页、照片、简笔画等,所有域的图像都分为k个类别。将其中一个域作为目标域,目标域样本记为,剩余的各个域当做源域,,源域的样本记为。利用卷积神经网络作为编码器提取图像特征得到特征向量。如图2所示,所有域用一个公共的特征提取器来提取域共享特征,。同时各个域用各自的一个特征提取器提取域私有特征,。这些数据经过特征提取之后都以向量的形式存在。然后利用正交约束来促使域私有特征和域共享特征各个维度的表示互相独立。
21.具体而言,可以构建矩阵和,它们的行向量分别为源域的域共享特征和目标域的域共享特征。同样地,构建矩阵和,它们的行向量分别为源域的域私有特征和目标域的域私有特征。将矩阵的转置矩阵与矩阵相乘,矩阵的转置矩阵与矩阵相乘,两个乘积相加,提取损失函数的函数形式为:(1)最小化此函数,即促使其正交,以使得向量的每一个维度都彼此独立。这样,提取的特征向量每一个维度就是对样本不同角度的表征,其中,部分维度是对域之间不变的语
义特征的表征,部分维度是对各个域独有特征的表征,这样就完成了对特征的解耦。
22.步骤s2:训练分类器对源域共享特征正确分类域适应的目标是对目标域的图像进行正确分类,因此首先需要训练一个正确的图像分类器。分类器由几个人工神经网络的全连接层组成,全连接层后接softmax激活函数。由于只有源域图像有类别标签,可以为分类器的训练提供指导,所以使用源域数据来训练分类器。如图3所示,本实施例输入源域的域共享特征,通过最小化分类器输出和源域特征的类别标签的交叉熵损失,使分类器获得对域共享特征的多分类能力,能够对样本的域共享特征进行正确分类。第一分类损失函数定义为一个batch内源域样本分类交叉熵损失的均值:(2)其中,为一个batch输入源域样本总的数量,为单个源域样本的one

hot形式的类别标签。为经过softmax激活函数之后的分类器的对域共享特征类别预测结果,具体定义为:具体定义为:表示softmax激活函数。通过对域共享特征的正确分类,促使类别信息包含进域共享特征之中,即让域共享特征提取器获得在不同源域上提取类别语义信息的能力。
23.步骤s3:训练模型,让分类器对域私有特征无法进行正确分类如图3所示,将源域私有特征输入经过源域共享特征预训练好的分类器,由于训练目的是让类别语义信息大多包含在域共享特征中,而域私有特征中包含尽量少的类别信息,因此分类器对域私有特征无法进行正确分类,应该最大化分类器输出和源域特征的类别标签的交叉熵损失,这样就和步骤s2中优化目标相反,构成了对抗训练。为了避免固定参数分阶段训练带来的麻烦和风险,引入梯度反转层(gradient reversal layer)。梯度反转在反向传播过程中梯度方向自动取反,在前向传播过程中实现恒等变换。相关数学表示如下式所示:学表示如下式所示:其中,代表单位矩阵。
24.通过梯度反转层,让梯度反向传播到域私有特征提取器的参数之前自动取反,使得域私有特征提取器朝着最大化交叉熵损失的方向优化,即让分类器对域私有特征的分类结果尽量偏离标签值,让域私有特征尽量少包含类别信息。由于经过公式(1)使得域共享特征和域私有特征得到解耦,这样间接式地让类别信息尽可能多地包含在域共享特征中。第二分类损失函数的定义如下:(3)
形式和(2)中一致,为经过softmax激活函数之后的分类器的对域私有特征的类别预测结果,定义与(2)中区别在于输入为域私有特征,且添加了梯度反转层:其中,r代表梯度反转层。在梯度反转层中,参数并不是固定值,而是动态变化的。其变化表达式如下式所示:其中,代表训练进程相对值,即当前迭代次数与总迭代次数的比值,为常数10。
25.步骤s4:训练模型,让域判别器无法正确区分共享特征来自哪个域如图4所示,搭建一个域判别器,用来判断输入的共享特征是来自源域还是目标域。域判别器实质是一个二分类器,输出为0或1,表示输入样本来自源域或者目标域。由人工神经网络的几个全连接层组成,全连接层后接激活函数。损失函数为各个样本的域标签与域判别器的判断之间的交叉熵。同样通过梯度反转层,让梯度反向传播到域共享特征提取器的参数之前自动取反,使得域共享特征提取器朝着最大化域判别器交叉熵损失的方向优化。域判别器交叉熵损失函数定义如下:(4)其中,为一个batch输入源域样本和目标域样本总的数量,为单个样本来自哪个域的标签,0代表来自源域,1代表来自目标域。为经过softmax激活函数之后的域判别器的对域共享特征来自哪个域的预测结果,具体定义为:其中,表示softmax激活函数,r代表梯度反转层。
26.域共享特征提取器从各个不同的域中提取的特征让域分类器无法正确区分特征来自源域还是目标域,即让提取得到的源域和目标域共享特征在特征空间中混淆。由于公式(2)中的训练已经让域共享特征提取器获得了可以用来正确分类的源域共享特征提取能力,当前步骤的混淆让域共享特征提取器同样可以提取目标域中的含有类别信息的域共享特征。
27.步骤s5:特征耦合重构回原始表示如图5所示,为了保证解耦之后的域共享特征和域私有特征没有损失样本特征的信息,搭建解码器,输入为域共享特征和域私有特征的组合,通过的解码,重构回原始特征。通过最小化重构特征与原始特征的回归损失函数施加约束,优化模型,让特征解耦过程中减少样本原始语义信息的损失。解码器的回归损失函数定义为:(5)其中,de为。即通过缩小解耦前的特征与重新耦合得到的特征之间的差异,促使网络在解耦过程中尽量少损失原始信息,以免由于类别语义信息的减少给分类器的分类带来困难。
28.步骤s6:计算总损失函数将步骤s1~s5中所有损失函数分别乘上一个权重系数,加起来作为总损失函数,再利用随机梯度下降法对总损失函数进行优化,对整个网络进行训练:其中,为各损失函数的权重系数值。这个损失函数值反映得到结果和实际结果之间的差异,用来衡量模型好坏,损失函数值越小,模型的效果越好.步骤s7:模型整体训练重复步骤s1~s6,处理完所有训练数据,并在验证数据集上进行测试。重复训练、验证,在设定的轮次里将验证结果最好的一组训练参数保存下来作为最终的模型参数。
29.步骤s8:对目标域图像进行分类将训练完成的模型参数加载到模型中,输入不带标签的需要分类的目标域图像,执行测试程序,分类器的输出即为分类结果,模型完成多分类任务。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1