首页 > 其他分享 >迁移学习《Asymmetric Tri-training for Unsupervised Domain Adaptation》

迁移学习《Asymmetric Tri-training for Unsupervised Domain Adaptation》

时间:2023-04-06 20:57:08浏览次数:39  
标签:Tri training right 训练 Unsupervised 标签 样本 分类器 left

论文信息

论文标题:Asymmetric Tri-training for Unsupervised Domain Adaptation
论文作者:Kuniaki SaitoY. UshikuT. Harada
论文来源:27 February 2017——ICML
论文地址:download 
论文代码:download
视屏讲解:click

1 介绍

  简单的域分布对齐可能无法提供有效的判别表示,为学习目标域的判别表示,本文假设人工标记目标样本可以产生良好的表示。

  在本文中,提出了一种用于无监督域适应的非对称三重训练方法,将伪标签分配给未标记的样本,并像训练真实标签一样训练神经网络。 本文工作,不对称地使用三个网络。 不对称是指两个网络用于标记未标记的目标样本,一个网络由样本训练以获得目标判别表示。 

2 相关工作

  [1] 研究了伪标签在神经网络中的作用。他们认为,使用伪标签训练分类器的效果等同于熵正则化,从而导致类之间的低密度分离。

3 方法

  整体框架:

  

  算法伪代码:

  

  为使 $F_{1}$, $F_{2}$ 从不同视角分类样本,将分类器权重 $\left|W_{1}^{T} W_{2}\right|$ 考虑到损失函数:

    $E\left(\theta_{F}, \theta_{F_{1}}, \theta_{F_{2}}\right)=\frac{1}{n} \sum_{i=1}^{n}\left[L_{y}\left(F_{1} \circ F\left(x_{i}\right), y_{i}\right)+L_{y}\left(F_{2} \circ F\left(x_{i}\right), y_{i}\right)\right]+\lambda\left|W_{1}^{T} W_{2}\right|  \quad\quad\quad(1)$

  伪代码主要分为两部分:

    • 第一部分:使用训练集训练整个网络,$F_{1}$, $F_{2}$ 使用 $\text{Eq.1}$ 优化,$F_{t}$ 使用标准的分类损失训练;
    • 第二部分:为目标域样本提供伪标签,要求1:$F_{1}$, $F_{2}$  的预测类别相同;要求2:$F_{1}$, $F_{2}$  预测的概率大于 $0.9$ 或 $0.95$;

  为防止过拟合得到伪标签,重采样参与的伪标签样本。设置 $N_{\text {init }}=5000$ ,然后逐步增 加参与的数量 $N_{t}=k / 20 * n$ , $n$ 为所有目标域样本数量。设置参与训练的价标签样本最大数量为 $40000$。

  通过构建仅在目标域样本上训练的特定于目标域的网络,将学习判别性表示。但是仅使用有噪声的伪标签样本训练,网络可能无法学习有用的表示。然后我们使用源域和伪标签样本训练三个分类器以保证准确率。同随着训练, $F$  将学习目标域判别性表示,使分类器 $F_{1}$, $F_{2}$  的正确率提升。这个周期逐渐增强目标域上的准确率。

[1] Lee, Dong-Hyun. Pseudo-label: The simple and efficient semi-supervised learning method for deep neural networks. In ICML workshop on Challenges in Representation Learning, 2013.

标签:Tri,training,right,训练,Unsupervised,标签,样本,分类器,left
From: https://www.cnblogs.com/BlairGrowing/p/17291334.html

相关文章

  • 【segmentation fault】std::string析构崩溃
    今天写了一个小工具,运行时发生segmentationfault,现象如下第一步:review崩溃附近代码,产生疑惑,崩溃的地方居然是变量定义的地方std::stringaccessToken;崩溃在这个地方,我直接懵了,只是变量定义为啥会报错,没有任何思路,打算单步调试。第二步:单步调试代码,发现并且是定义的时候崩......
  • WPF的控件字符串内容使用StringFormat进行字符串转换
    在WPF中TextBlock的Text有时内容只需要改变个别数字,而不需要所以内容都修改,这时候就要使用StringFormat, 如:<TextBlockText="Ihavexxxfriends"/>这里面的xxx是个变量,那在Binding时应该怎样写呢<TextBlockText="{BindingFirendNumber,StringFormat='Ihave{0}firends......
  • c++ string类的字符在内存的储存位置
    1.数据<=16字节,在当前栈区#include<iostream>#include<stdio.h>#include<stdlib.h>usingnamespacestd;intmain(){stringtemp="123456789012345";//注意长度int*a=(int*)malloc(sizeof(int));intb=0;for(a......
  • 内网穿透神器NeutrinoProxy 1.8.0版本发布
    项目简介中微子代理(neutrino-proxy)是一款基于netty的内网穿透神器。该项目采用最为宽松的MIT协议,因此您可以对它进行复制、修改、传播并用于任何个人或商业行为。Gitee地址:https://gitee.com/dromara/neutrino-proxy官网地址:http://neutrino-proxy.dromara.org服务端管理......
  • 流媒体技术学习笔记之(四)解决问题video.js 播放m3u8格式的文件,根据官方的文档添加vide
    源码地址:https://github.com/Tinywan/PHP_Experience总结:说明:测试环境:本测试全部来自阿里云直播和OSS存储点播以及本地服务器直播和点播播放器:VideoJs直播:1、阿里云直播,需要CDN设置HTTP头2、本地直播需要设置直播访问服务器的头部信息(本地为Nginx)add_header'Access-......
  • c++ std::string_view
    std::string_view系C++17标准发布后新增的内容。C++17中我们可以使用std::string_view来获取一个字符串的视图,字符串视图并不真正的创建或者拷贝字符串,而只是拥有一个字符串的查看功能。std::string_view比std::string的性能要高很多,因为每个std::string都独自拥有一份字符串的拷......
  • __attribute__ ((cleanup(xxx)))
    编译器属性__attribute__用于向编译器描述特殊的标识、检查或优化.(一)基本用法__attribute__((cleanup(...))),用于修饰一个变量,在它的作用域结束时可以自动执行一个指定的方法,如://指定一个cleanup方法,注意入参是所修饰变量的地址,类型要一样//对于指向objc对象的指针(id*),......
  • java -- Stringbuild、Date和Calendar类
    Stringbuild类由于String类的对象内容不可改变,每次拼接都会构建一个新的String对象,既耗时,又浪费内存空间这时需要通过java提供的StringBuild类解决这个问题StringBuilder又称为可变字符序列,它是一个类似于String的字符串缓冲区,可以看作是一个容器,容器中可以装很多字符串可......
  • Unity-NaughtAttributes
    SpecialAttributesAllowNestingStruct需要嵌套时使用DrawerAttributesAnimator显示下拉参数publicAnimatorsomeAnimator;[AnimatorParam("someAnimator")]publicintparamHash;Button直接执行函数[Button("ButtonText")]privatevoidMethodTwo(){}Ani......
  • c++实现Matlab矩阵Matrix类(实矩阵Matrix、复矩阵CMatrix)
    全栈工程师开发手册(作者:栾鹏)matlab2c动态链接库下载matlab库函数大全matlab2c基础教程matlab2c开发全解教程开发注意事项:1、目前matlab2c对矩阵的实现仅包含实数型、复数型数据。实数型矩阵使用Matrix定义,复数型矩阵使用CMatrix定义。2、实数矩阵元素int、float元素类型会自动......