github code

CyCADA论文中,定义了一种问题——无监督适配,即仅提供源数据 \(X_S\) 和源标签 \(Y_S\),以及源域目标数据\(X_T\),没有目标标签或者不利用它。问题的目的是学习一个模型 \(f\),它可以正确预测目标数据的标签。

CYCADA 的模型基本如上图所示,论文的主要思路来自于cycleGAN, 利用cycle GAN来完成image-level的适配问题。通过讲图像变换到目标域来实现域适配的问题。

源域训练模型的loss函数

\[\mathcal{L}_{task}(\mathcal{f}_S, \mathrm{X}_S, \mathrm{Y}_S) = -\mathbb{E}_{(x_S,y_S)~(X_S,Y_S)}\sum_{k=1}^{K}\mathbb{1}_{k=y_s}\log{(\sigma(f_S^{(k)}(x_s)))}
\]

其中\(\sigma\) 是softmax

在论文中,加入语义一致性(semantic consistency)是一个贡献,因为已知源标签。语义损失为:

\[L_{sem}(G_{S \rightarrow T}, G_{T \rightarrow S}, X_S, X_T, f_S) = L_{task}(f_S, G_{T \rightarrow S}(X_T), p(f_S, X_T)) + L_{task}(f_S, G_{S \rightarrow T}(X_S), p(f_S, X_S))
\]

损失函数如下:

\[\begin{aligned}
& L_{CyCADA}(f_T, ,X_S, X_T, Y_S, G_{S \rightarrow T}, G_{T \rightarrow S}, D_S, D_T) \\
&= L_{task}(f_T, G_{S \rightarrow T}(X_S), Y_S)\\
&+ L_{GAN}(G_{S \rightarrow T}, D_T, X_T, X_S) \\
&+ L_{GAN}(G_{T \rightarrow S}, D_S, X_S, X_T)\\
& + L_{GAN}(f_T, D_{feat}, f_S(G_{S \rightarrow T}(X_S)), X_T)\\
& + L_{cyc}(G_{S \rightarrow T}, G_{T \rightarrow S}, X_S, X_T)\\
& + L_{sem}(G_{S \rightarrow T}, G_{T \rightarrow S}, X_S, X_T, f_S)
\end{aligned}
\]

第一项 \(L_{task}(f_T,G_S→T(X_S),Y_S)\) 表示,源图像 \(X_S\) 经过变换(全卷积网络?)\(G_S→T\) 伪目标图像, 然后该图像经过分割网络得到源预测结果,与源标签\(Y_S\) 得到\(L_{task}\) 损失;

第二项\(L_{GAN}(G_S→T,D_T,X_T,X_S)\) 表示,变换 \(G_S→T\) 根据源图像\(X_S\) 生成伪目标图像去fool对抗判别器 \(D_T\), 并且该判别器尝试从源目标数据(source target data)(生成?)中识别出真实目标数据(real target data)。

第三项类似于第二项,然后就是CyCleGAN的思路。

第四项为特征水平的GAN损失,如图1中橙色部分。

第五项为CyCleGAN中的重建损失。第六项为语义一致性,如图1中黑色部分。

【论文阅读】CYCADA CYCLE-CONSISTENT ADVERSARIAL DOMAIN ADAPTATION的更多相关文章

  1. 迁移学习(CDAN)《Conditional Adversarial Domain Adaptation》(已复现迁移)

    论文信息 论文标题:Conditional Adversarial Domain Adaptation论文作者:Yaroslav Ganin, Evgeniya Ustinova, Hana Ajak ...

  2. 论文阅读 | A Curriculum Domain Adaptation Approach to the Semantic Segmentation of Urban Scenes

    paper链接:https://arxiv.org/pdf/1812.09953.pdf code链接:https://github.com/YangZhang4065/AdaptationSeg 摘 ...

  3. 虚假新闻检测(CADM)《Unsupervised Domain Adaptation for COVID-19 Information Service with Contrastive Adversarial Domain Mixup》

    论文信息 论文标题:Unsupervised Domain Adaptation for COVID-19 Information Service with Contrastive Adversari ...

  4. 迁移学习(ADDA)《Adversarial Discriminative Domain Adaptation》

    论文信息 论文标题:Adversarial Discriminative Domain Adaptation论文作者:Eric Tzeng, Judy Hoffman, Kate Saenko, Tr ...

  5. 迁移学习(PAT)《Pairwise Adversarial Training for Unsupervised Class-imbalanced Domain Adaptation》

    论文信息 论文标题:Pairwise Adversarial Training for Unsupervised Class-imbalanced Domain Adaptation论文作者:Weil ...

  6. 【论文笔记】Domain Adaptation via Transfer Component Analysis

    论文题目:<Domain Adaptation via Transfer Component Analysis> 论文作者:Sinno Jialin Pan, Ivor W. Tsang, ...

  7. Domain Adaptation论文笔记

    领域自适应问题一般有两个域,一个是源域,一个是目标域,领域自适应可利用来自源域的带标签的数据(源域中有大量带标签的数据)来帮助学习目标域中的网络参数(目标域中很少甚至没有带标签的数据).领域自适应如今 ...

  8. [论文阅读笔记] Adversarial Learning on Heterogeneous Information Networks

    [论文阅读笔记] Adversarial Learning on Heterogeneous Information Networks 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问 ...

  9. [论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding

    [论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding 本文结构 解决问题 主要贡献 算法原理 实验结果 参考文献 ...

  10. 论文解读(CDCL)《Cross-domain Contrastive Learning for Unsupervised Domain Adaptation》

    论文信息 论文标题:Cross-domain Contrastive Learning for Unsupervised Domain Adaptation论文作者:Rui Wang, Zuxuan ...

随机推荐

  1. 我没能实现始终在一个线程上运行 task

    前文我们总结了在使用常驻任务实现常驻线程时,应该注意的事项.但是我们最终没有提到如何在处理对于带有异步代码的办法.本篇将接受笔者对于该内容的总结. 如何识别当前代码跑在什么线程上 一切开始之前,我们先 ...

  2. CentOS&RHEL内核升级

    在安装部署一些环境的时候,会要求内核版本的要求,可以通过YUM工具进行安装配置更高版本的内核,当然更新内核有风险,在操作之前慎重,严谨在生产环境操作! 安装源 # 为 RHEL-8或 CentOS-8 ...

  3. 有关使用druid配置多数据源多个实例数据源和配置一个实例多个库

    配置多数据源有以下几个说法. 1.多数据库类同时链接mysql,oracle,mongo等等 一般这样的配置这几个数据源不会存在一个实例(机器等)上.也属于多实例数据源. 类似如下图 有的是aliyu ...

  4. 四月七号java基础学习

    1.数据类型分为基本数据类型以及引用数据类型 基本数据类型有整型.浮点型.字符型.布尔型 引用数据类型有类.数组以及接口 2.常量的声明需要用关键字final来标识 3.JAVA语言的变量名称由数字, ...

  5. Ubuntu2204部署容器引擎Containerd

    为什么使用containerd? 使用containerd的原因主要有两点吧,第一个是docker在k8s1.24以后不再支持,如果需要在k8s中继续使用docker作为容器引擎,我们需要额外部署cr ...

  6. HOOPS Exchange助力Shapr3D产品实现了“无障碍的用户体验”

    HOOPS SDK是用于3D工业软件开发的工具包,其中包括4款工具,分别是用于 读取和写入30多种CAD文件格式的HOOPS Exchange.专注于Web端工程图形渲染的HOOPS Communic ...

  7. Github 添加贪吃蛇动画

    前言 我们都知道,对于Github来说,当你选择你的账户时,可以看到自己的提交记录. 于是就有大神动脑筋了,这些commit记录都是一些豆,如果弄一条蛇来,不就可以搞个贪吃蛇了吗? 有道理有道理,本文 ...

  8. 【SSM项目】尚筹网(二)基于Servlet3.0项目搭建:日志系统以及声明式事务

    1 日志系统 常见的日志系统实现log4j.JUL(jdk自带).log4j2.logback(和SLF4J同一个作者,能够天然衔接),这些实现就类似于java的接口实现,而SLF4J就类似于java ...

  9. Sentinel实战

    一.Sentinel简介 Sentinel是阿里开源的面向服务流量治理的框架,官方原文是Sentinel 是面向分布式.多语言异构化服务架构的流量治理组件,主要以流量为切入点,从流量路由.流量控制.流 ...

  10. shell脚本编程(一)

    c81ba641-5ed7-4ab9-a7c0-e319e0f3890b 初识shell脚本编程 最近项目需求,需要了解下shell脚本编程,所以自己就必须玩玩了= = 初识shell脚本编程,找了几 ...