您现在的位置是:首页 > 社会

DupGan的论文及代码学习

作者:时间:2024-04-10 12:41:39分类:社会

简介  论文题目:Duplex Generative Adversarial Network for Unsupervised Domain AdaptationCVPR 2018 Open Access Repository代码地址:http://vipl.ict.ac.cn/view_database.php?

论文题目:Duplex Generative Adversarial Network for Unsupervised Domain AdaptationCVPR 2018 Open Access Repository

代码地址:http://vipl.ict.ac.cn/view_database.php?id=6

这篇文章主要解决的是非监督域调整问题(unsupervised domain adaptation),关于域调整问题,可以稍微解释如下:两个数据集标签都是一样的,带有完整标签信息的叫做源域,而只有样本没有对应标签的数据集叫目标域,域调整的目标是将在源域学习到的目标分类器同时适用于目标域。

文中的解决方法是寻求一个潜在空间,在潜在空间上保持域不变性和类别信息信息,即在潜在空间上,无论来源于源域或是目标域,同属于一个类别的聚成一块,而不属于一个类别的相互分离。

作者实现这个目标,主要依靠一个编码器,一个生成器和两个判别器。编码器和生成器是两个域(目标域和源域共享的),而判别器有两个(分别对应源域数据和目标域数据),整个模型框架如下:

对于生成的潜在表示为什么是域不变的,文章给出的解释如下:

解释一下,就是说:z可以同时生成源域和目标域的信息,当有矛盾时,可以通过引入的这个潜在空间兼容两个域的不同,于是,关于编码器编码器这部分的目标函数如下:

因为要使用对抗学习,生成的样本希望可以骗过对应的判别器,所以,对于生成的样本的标签是定义如下的:

目标域的类别信息预先是不知道的,文中是通过预训练的方法学习到了。

关于两个判别器的部分,和传统的判别器相差差不大,真实的样本判别出属于哪一类(不仅判别出为真,还需要判别出属于哪一类,这点是不同的,即保留了类别信息),生成的样本判别出为假的样本(同时也就判断出不属于某一个类别)。

此时,对于类别标签的定义是如下的:

以下是对代码的解读:

以上是对两个判别器的训练,但是真实样本时,对应的判别器将该样本判别为对应的类别(也同时判定为真实的样本了,第11类才代表是假的样本),当输入生成的样本时,对应的判别器判别为第11类(代表样本是假的样本)。

训练生成器,生成器是由两部分组成的,第一部分是卷积层,第二部分是反卷积,生成图像。

生成器的定义如下:

对于生成器的训练如下:

这部分的代码对应的公式是文中的式子(7):

生成的样本希望可以欺骗过对应的D1和D2判别器,而不是判别为第11类(即假的类别),同时域内重构的样本需要和输入的样本相似。

特点:构建的潜在特征是域不变和具有类别信息的。从而可以在潜在空间上进行分类。

郑重声明:

本站所有活动均为互联网所得,如有侵权请联系本站删除处理

我来说两句