迁移学习(CLDA)《CLDA: Contrastive Learning for Semi-Supervised Domain Adaptation》
论文信息
论文标题:CLDA: Contrastive Learning for Semi-Supervised Domain Adaptation
论文作者:Ankit Singh
论文来源:NeurIPS 2021
论文地址:download
论文代码:download
视屏讲解:click
1 简介
提出问题:半监督导致来自标记源和目标样本的监督只能确保部分跨域特征对齐,导致目标域的对齐和未对齐子分布形成域内差异;
解决办法:
- 提出基于质心的对比学习框架;
- 提出基于类级的实例对比学习框架;
评价:牛马.................
2 方法
2.1 整体框架

2.2 源域监督训练
源域监督损失:
$\mathcal{L}_{\text {sup }}=-\sum_{k=1}^{K}\left(y^{i}\right)_{k} \log \left(\mathcal { F } \left(\mathcal{G}\left(\left(x_{l}^{i}\right)\right)_{k}\right.\right.$
2.3 域间对比对齐
基于 $\text{mini-batch}$ 的源域质心(类级):
$C_{k}^{s}=\frac{\sum_{i=1}^{i=B} \mathbb{1}_{\left\{y_{i}^{s}=k\right\}} \mathcal{F}\left(\mathcal{G}\left(x_{i}^{s}\right)\right)}{\sum_{i=1}^{i=B} \mathbb{1}_{\left\{y_{i}^{s}=k\right\}}}$
动量更新源域质心:
$C_{k}^{s}=\rho\left(C_{k}^{s}\right)_{s t e p}+(1-\rho)\left(C_{k}^{s}\right)_{s t e p-1}$
无标签目标域样本的伪标签:
$\hat{y_{i}^{t}}=\operatorname{argmax}\left(\left(\mathcal{F}\left(\mathcal{G}\left(x_{i}^{t}\right)\right)\right)\right.$
域间对比对齐(类级):
$\mathcal{L}_{c l u}\left(C_{i}^{t}, C_{i}^{s}\right)=-\log \frac{h\left(C_{i}^{t}, C_{i}^{s}\right)}{h\left(C_{i}^{t}, C_{i}^{s}\right)+\sum_{\substack{r=1 \\ q \in\{s, t\}}}^{K} \mathbb{1}_{\{r \neq i\}} h\left(C_{i}^{t}, C_{r}^{q}\right)}$
其中:
$h(\mathbf{u}, \mathbf{v})=\exp \left(\frac{\mathbf{u}^{\top} \mathbf{v}}{\|\mathbf{u}\|_{2}\|\mathbf{v}\|_{2}} / \tau\right)$
2.4 实例对比对齐
强数据增强:
$\tilde{x}_{i}^{t}=\psi\left(x_{i}^{t}\right)$
实例对比损失:
$\mathcal{L}_{i n s}\left(\tilde{x}_{i}^{t}, x_{i}^{t}\right)=-\log \frac{h\left(\mathcal{F}\left(\mathcal{G}\left(\tilde{x}_{i}^{t}\right), \mathcal{F}\left(\mathcal{G}\left(x_{i}^{t}\right)\right)\right)\right.}{\sum_{r=1}^{B} h\left(\mathcal{F}\left(\mathcal{G}\left(\tilde{x}_{i}^{t}\right)\right), \mathcal{F}\left(\mathcal{G}\left(x_{r}^{t}\right)\right)\right)+\sum_{r=1}^{B} \mathbb{1}_{\{r \neq i\}} h\left(\mathcal{F}\left(\mathcal{G}\left(\tilde{x}_{i}^{t}\right)\right), \mathcal{F}\left(\mathcal{G}\left(\tilde{x}_{r}^{t}\right)\right)\right)}$
2.5 训练目标
$\mathcal{L}_{\text {tot }}=\mathcal{L}_{\text {sup }}+\alpha * \mathcal{L}_{\text {clu }}+\beta * \mathcal{L}_{\text {ins }}$
3 总结
略
迁移学习(CLDA)《CLDA: Contrastive Learning for Semi-Supervised Domain Adaptation》的更多相关文章
- 迁移学习(JDDA) 《Joint domain alignment and discriminative feature learning for unsupervised deep domain adaptation》
论文信息 论文标题:Joint domain alignment and discriminative feature learning for unsupervised deep domain ad ...
- 【转载】 迁移学习简介(tranfer learning)
原文地址: https://blog.csdn.net/qq_33414271/article/details/78756366 土豆洋芋山药蛋 --------------------------- ...
- 【迁移学习】2010-A Survey on Transfer Learning
资源:http://www.cse.ust.hk/TL/ 简介: 一个例子: 关于照片的情感分析. 源:比如你之前已经搜集了大量N种类型物品的图片进行了大量的人工标记(label),耗费了巨大的人力物 ...
- 《A Survey on Transfer Learning》迁移学习研究综述 翻译
迁移学习研究综述 Sinno Jialin Pan and Qiang Yang,Fellow, IEEE 摘要: 在许多机器学习和数据挖掘算法中,一个重要的假设就是目前的训练数据和将来的训练数据 ...
- Sebastian Ruder : NLP 领域知名博主博士论文面向自然语言处理的神经网络迁移学习
Sebastian Ruder 博士的答辩 PPT<Neural Transfer Learning for Natural Language Processing>介绍了面向自然语言的迁 ...
- 迁移学习( Transfer Learning )
在传统的机器学习的框架下,学习的任务就是在给定充分训练数据的基础上来学习一个分类模型:然后利用这个学习到的模型来对测试文档进行分类与预测.然而,我们看到机器学习算法在当前的Web挖掘研究中存在着一个关 ...
- 迁移学习(Transfer Learning)(转载)
原文地址:http://blog.csdn.net/miscclp/article/details/6339456 在传统的机器学习的框架下,学习的任务就是在给定充分训练数据的基础上来学习一个分类模型 ...
- 迁移学习-Transfer Learning
迁移学习两种类型: ConvNet as fixed feature extractor:利用在大数据集(如ImageNet)上预训练过的ConvNet(如AlexNet,VGGNet),移除最后几层 ...
- 【深度学习系列】迁移学习Transfer Learning
在前面的文章中,我们通常是拿到一个任务,譬如图像分类.识别等,搜集好数据后就开始直接用模型进行训练,但是现实情况中,由于设备的局限性.时间的紧迫性等导致我们无法从头开始训练,迭代一两百万次来收敛模型, ...
- 迁移学习(Transfer Learning)
原文地址:http://blog.csdn.net/miscclp/article/details/6339456 在传统的机器学习的框架下,学习的任务就是在给定充分训练数据的基础上来学习一个分类模型 ...
随机推荐
- python——numpy
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库. import numpy a = num ...
- K8S的基础概念
一.Kubernetes介绍 1.什么是Kubernetes? Kubernetes(通常称为K8s,K8s是将8个字母"ubernete"替换为"8"的缩写) ...
- JAVA面经-基础篇-线程
1.创建线程有哪几种方式? 创建线程有3种方式,分别是继承Thread类.实现Runnable类.实现Callable类. 继承Thread类的步骤: 1. 定义Thread类的子类, ...
- SpringMvc配置和原理
运行原理 DispatcherServlet通过HandlerMapping在MVC的容器中找到处理请求的Controller,将请求提交给Controller,Controller对象调用业务层接口 ...
- 复杂数据类型(signal)的解读-C语言基础
这一篇文章要探讨的是C语言中复杂数据类型的解读.涉及到signal()函数数据类型的解读(并不解释signal()的作用)以及对于数据类型的理解,属于C语言基础篇. 在开始解读signal()这种复杂 ...
- 【node打包缺包】Error: Can't walk dependency graph: Cannot find module 'jquery' from
问题: 在使用node打包时,终端报错提示Error: Can't walk dependency graph: Cannot find module 'jquery' from/.../ 这个提示缺 ...
- Unity_飞机大战记录总结
记录步骤:win+R→PSR.exe 一.竖屏设置 分辨率设为9:16 二.主控脚本 添加一个空节点,命名"游戏主控" 新建游戏的主控脚本,命名为MyGame.cs,方便管理(即, ...
- python字符操作超全总结
在python中,字符串是数据类型之一,属于不可变序列. 转义字符的使用 转义字符是指使用反斜杠"\"对一些特殊字符进行转义.几个常用的转义字符如下: \ -续行 \n -换行 ...
- 与NewBing一起写作:《Web应用安全入门》
前言 本文内容基于我的<Web应用安全入门>公开课视频. Prompt:下面是一篇课程音频转录后的文本,请把它转成老师和学生对话形式的文本,要求遵循原文结构,语言衔接流畅,保持 Markd ...
- Javaweb学习笔记第十六弹--Vue、Element
Vue(一套前端框架,MVVM主要用于实现数据的双向绑定) Vue快速入门 //新建HTML页面,引入Vue.js文件 <script src="js.Vue.js"> ...