一种基于深度网络和对抗技术的领域适配方法与流程

文档序号:16136986发布日期:2018-12-01 01:07阅读:347来源:国知局

本发明了一种基于深度网络和对抗技术的领域适配算法,算法涉及包括卷积神经网络、深度学习、机器学习优化,属于人工智能领域。特别涉及基于公式推导的新的误差上届增加多分支结构和损失函数,在子网中对抗后将预训练好的alexnet微调,涉及出一种新的组合对抗网络,能够有效的完成人工智能中的领域适配(迁移学习)任务,在不同领域间进行知识的表示迁移。

背景技术

数据集偏移是机器学习领域中一个不容忽视的问题。数据集是描述现实世界物体的片面化表述,在描述同一个物体集合的数据集上训练相同结构的模型,泛化能力往往存在偏差,效果不够理想。数据集偏移降低了模型在同一类物体上的泛化能力。对于真实世界而言,数据集偏移可以理解为模型在数据集上发生了过拟合问题。域适配尝试解决数据集偏移问题,基于源领域和目标领域间的相似性、差异性提高模型在目标领域数据上的表现。深度学习的发展使得深层次的学习模型具有更多需要学习的参数,也意味着需要大量的样本训练模型。另一方面,寻找到数量足够的有标签样本支撑模型训练是极为困难的。



技术实现要素:

为了解决上述问题,本发明一种基于深度网络和对抗技术的领域适配方法,不仅能够有效的修正领域数据之间的偏移问题,而且可以学习到领域间共享的表示空间,算法可以适用于无监督的领域适配任务,即目标领域不需要存在任何的标签就可运行。本发明的领域适配方法能够省去大量的人力标记工作,对于解决大数据下标记数据稀少的问题有着广泛的实用性。

本发明一种基于深度网络和对抗技术的领域适配方法,主要包括以下步骤:

步骤1:获取源领域的样本和标签以及目标领域的样本。源领域和目标领域分别取自两个近似的领域,其中源领域的样本有标签,目标领域的样本没有标签,两个领域之间要有一定的相似性,即在领域间可以学到可以复用的知识。

步骤2:构建适配网络,使用imagenet预训练好的参数初始化alexnet,随机初始化网络其它参数。算法的目的是在领域间建立一个特征子空间,这个特征子空间中的特征可以被两个领域所共享。alexnet是一种深度卷积网络,我们利用深度网络来构建这种领域知识表示,同时通过增加对抗损失来修正领域之间的差异程度。损失的传播过程通过反向梯度下降法实现。

步骤3:根据任务,初始化网络相关超参数,如学习率,概率阈值,dropout率等。网络超参数需要人工来决定,对算法的收敛和性能有着重要的影响。通常,算法的学习率可以给一个很小的值,利用更多次的批梯度下降来使网络收敛,概率阈值根据具体的领域差异程度来决定,dropout率则为了防止过拟合。

步骤4:使用概率交替的梯度反向传播算法如sgd训练网络参数,训练结束获得最终模型以及结果。概率交替的梯度反向传播算法可以将超参数”概率阈值”控制在很小的范围内,使得超参数更容易搜索。训练通常采用若干个周期,每一个周期我们使用sgd遍历一次所有的数据样本。在几个周期后,深度网络训练完成,算法终止。

本发明具有一下优点及效果:

1)我们提出新的目标域误差上界,基于新的误差上界,建立新的网络结构用于域适配,模型由两个子对抗网络组成,具有更强的对抗力度和公共特征表达能力。

2)相比于将超参数用于控制损失的平衡,我们提出了一种更灵活的替换方法,大幅度减少了超参数的搜索和控制困难,更容易的适应不同程度的分布差异。

3)我们的算法在一些经典的域适配数据集上获得了目前最好的表现。

附图说明

图1为本发明一种基于深度网络和对抗技术的领域适配方法的网络结构示意图。

图2为本发明一种基于深度网络和对抗技术的领域适配方法的算法流程示意图。

具体实施方式

本发明一种基于深度网络和对抗技术的领域适配方法的实现由初始化阶段,训练阶段和使用阶段组成。初始化阶段包括数据初始化和模型初始化,训练阶段包括若干次梯度反向传播过程,根据数据集的大小,迭代次数从几百次到几万次不等,直至迭代次数满足某一条件或者网络收敛,则训练完成。

初始化阶段:

步骤1,数据初始化。网络的输入是一个张量,通常是具有rgb三通道的彩色图像,首先,对于所有的图片,我们将其尺寸缩放到227×227×3的张量,对于灰度图通过简单的将图像重复3次,变为彩色图。其次,r,g,b三维需要首先减去数据集的均值,然后除以标准差,使得数据满足标准正太分布,这一操作也被称为z-score标准化。这样的数据预处理使得训练的时候网络参数更容易收敛。

步骤2,模型初始化:

模型初始化首先载入alexnet即相关预训练好的参数,其次,增加一些层和对应的损失、正则化项,如图1所示的结构,对alexnet原有层之外的每层参数,进行初始化,初始化为服从均值为0,标准差为1的截断正太分布随机数,对于偏置参数初始化时将其置为0。

训练阶段:

步骤1,网络的训练:

训练方法基于如下的公式:令h是vc-dimension为d的假设集空间,m个有标签样本从ds中采样获得,m'个无标签样本分别从中采样获得,对于所有的η∈h至少以概率1-δ不等式

我们设法优化如下目标:

其中超参数λ>0,β>0控制两个对抗子网相应损失项的影响。

我们需要学习参数θ={θc,θl,θm}。我们将两个对抗子网的3个损失函数拆解出来,并在一次迭代中用如下的训练目标替换优化过程:

其中p1,p2∈[0,1]为概率阈值,用于控制迭代中各个损失函数的训练情况,在网络开始训练时,给出概率阈值,每一次迭代前,生成一个0到1的随机数,如果随机数在0到p1之间,则选择lm作为这次迭代的损失函数,同理,如果随机数在p1和p2之间,选择作为当前迭代的目标,如果随机数在p2到1之间,选择lc作为损失函数。

步骤2,网络的终止:

网络的训练过程在达到下面任意一个条件时终止:

1)设定值maxiter表示最大迭代次数,如果训练过程达到最大迭代次数,则训练终止。

2)在网络达到maxiter迭代次数之前,设定阈值losschangethreshold,如果连续两次网络的损失差的绝对值小于losschangethreshold,则认为网络参数已经收敛,训练终止。

按照上述的初始化和训练操作,网络将会收敛到一个损失足够低的点,在这个点的解就是模型最终的解,最终,训练完成的网络可以用于预测目标领域无标记的样本,代替人工以较高的准确率标记未知数据。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1