李宏毅机器学习2023-HW11-Domain Adaptation

文章目录

  • Task
  • Link
  • Baseline
    • Simple Baseline
    • Medium Baseline
    • Strong Baseline
    • Boss Baseline

Task

Domain Adaptation
通过训练真实图片得到分类模型,并将其应用到涂鸦图片上进行分类,来获得更高的精准度。
在这里插入图片描述

Link

kaggle
colab

Baseline

Simple Baseline

acc≥0.44280, < 1hour
Just run the code and submit answer.

Medium Baseline

acc≥0.65994, 2~4 hours
方法:增加epoch+ 改变 λ 值

  • Set proper λ in DaNN algorithm.
  • Training more epochs.
    epoch从200增加到800,λ 从0.1变为0.7,提升lambλ 意味着更注重domain classifier的表现,让source domain和target domain的表现更一致,不过也不能一直提升,太大会影响label predictor的能力

Strong Baseline

acc≥0.75342, 5~6 hours
增加epoch+ 动态调整 λ 值。将epoch调整到1000。根据DANN论文,可使用动态调整的 λ 值,从0.02动态的调整为1,这样前期可让label predictor更准确,后期更注重domain classifier的表现

代码中输出了0, 199, 399, 599, 799, 999 epoch的训练效果图。在这些epoch,将5000张source和target图片,输入到feature_extractor模型,每张图片的输出是一个512维度的图片,然后利用t-SNE方法降维到2维,最后画出source图片的不同类别分布图和source target分布对比度。随着epoch增加,target和source的分布基本一致了,达到了DANN模型的目的。 这里不展示,具体可见代码

for epoch in range(epochs):lamb = np.log(1.02 + 1.7*epoch/epochs)train_D_loss, train_F_loss, train_acc = train_epoch(source_dataloader, target_dataloader, lamb=lamb)
def visualization(features):for i, feature in enumerate(features):data = np.concatenate([feature.X, feature.TX])num_source = len(feature.labels)X_tsne = manifold.TSNE(n_components=2, init='random', random_state=5, verbose=1).fit_transform(data)# Normalization the processed features x_min, x_max = X_tsne.min(0), X_tsne.max(0)X_norm = (X_tsne - x_min) / (x_max - x_min)plt.figure(figsize=(16, 8))plt.subplot(121)plt.title(f'epoch {marked_epoch[i]}:distribution of features accross different class')plt.scatter(X_norm[:num_source, 0], X_norm[:num_source, 1], c=feature.labels, label='source domain')plt.subplot(122)plt.title(f'epoch {marked_epoch[i]}:distribution of features accross different domain')plt.scatter(X_norm[:num_source, 0], X_norm[:num_source, 1], c='b', label='source domain')plt.scatter(X_norm[num_source:, 0], X_norm[num_source:, 1], c='r', label='target domain', alpha=0.5)plt.legend()plt.show()

Boss Baseline

acc ≥0.81072

  • 调整参数:optimizer, learning rate, set lr_scheduler, etc…
  • Ensemble: Ensemble the model or output you tried.
  • 其他advanced adversarial training,比如DALN
  • Semi-supervised learning
  • Universal Domain Adaptation

借鉴DIRT的两步训练法
这里利用DANN模型生成伪标签(pseudo-label)。第一步用adversarial的方法训练一个模型,这里我们使用strong baseline得到的模型;第二步是利用第一步产生的模型,对target图片生成伪标签,有了标签,就可以对target做有监督学习,该方法能充分利用模型的潜在价值。
在具体的实现环节,为了保证伪标签的可靠性,设计了一个超参数赋值0.95,所产生的伪标签概率高于该值才被使用,另外为保证训练的稳定性,使用了teacher网络,利用teacher网络生成伪标签,teacher网络的初始值也来自strong base模型,在训练过程中,teacher网络更新比较慢,做法是设计了一个超参数赋值0.9,teacher网络的更新中0.9的权重来自于自己,0.1的权重来自于主干网络

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/146709.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

12V转100V低压升高压DC/DC电源GRB12-100D-100mA-Uz(0-3V)

特点 ● 效率高达75%以上 ● 1*2英寸标准封装 ● 单电压输出 ● 超高性价比 ● 电压控制输出,输出电压随控制电压的变化而线性变压 ● 工作温度: -40℃~75℃ ● 阻燃封装&#xff0c;满足UL94-V0 要求 ● 温度特性好 ● 可直接焊在PCB 上 应用 GRB 系列模块电源是一…

【计算机网络篇】数据链路层 功能|组帧|流量控制与可靠传输机制

&#x1f9f8;安清h&#xff1a;个人主页 &#x1f3a5;个人专栏&#xff1a;【计算机网络】 &#x1f6a6;作者简介&#xff1a;一个有趣爱睡觉的intp&#xff0c;期待和更多人分享自己所学知识的真诚大学生。 系列文章目录 【计算机网络篇】计算机网络概述 【计算机网络篇…

cmake--set_target_properties

作用 设置某个指定的目标(文件&#xff0c;)的某些属性&#xff1b; 可以设置的属性 设置版本属性 cmake_minimum_required(VERSION 3.10)project(test_set_target_properties)add_library(mylib SHARED src/test.cpp) set_target_properties(mylib PROPERTIES VERSION 1.0.…

使用Kali Linux系统生成木马病毒并实现远程控制计算机

木 马 生成木马病毒并实现远程控制计算机 木马病毒是指隐藏在正常程序中的一段具有特殊功能的恶意代码 通常有控制端和被控制端两个可执行程序。 它通过将自身伪装吸引用户下载执行&#xff0c;向施种木马者提供打开被种者电脑的门户&#xff0c;使施种者可以任意毁坏、窃…

红队攻防 | 凭证获取的10个方法,零基础入门到精通,收藏这一篇就够了

作为红队成员&#xff0c;就像许多其他APT一样&#xff0c;我们须找到通往目标网络和资产的方法&#xff0c;因此要付出大量努力&#xff0c;从我们可以获得的任何资源中获取登录凭证或令牌。 这并不意味着我们只寻找登录特定服务的用户名和密码&#xff0c;在许多情况下&…

500元以内头戴式耳机哪款好?盘点500元以内百元宝藏品牌机型推荐

作为耳机发烧友&#xff0c;我深知一副优质的头戴式耳机都能为我们带来沉浸式的听觉体验&#xff0c;但然而&#xff0c;面对市场上琳琅满目的耳机品牌和型号&#xff0c;500元以内头戴式耳机哪款好&#xff1f;对于这个问题我将为大家盘点500元以内百元宝藏品牌机型推荐无论你…

读构建可扩展分布式系统:方法与实践10最终一致性

1. 最终一致性 1.1. 在一些应用领域&#xff0c;通常谈论的是银行和金融行业&#xff0c;最终一致性根本不合适 1.2. 事实上&#xff0c;最终一致性在银行业已经使用了很多年 1.2.1. 支票需要几天时间才能在你的账户上进行核对&#xff0c;而且你可以轻松地开出比账户余额多的…

【Elasticsearch】-实现向量相似检索

1、http请求方式 如果elasticsearch服务设置账号密码&#xff0c;则在请求的header中添加 Basic Auth 认证 请求方式&#xff1a;Post 请求地址&#xff1a;/index_name/_search 请求body&#xff1a;json格式 {"size": 10, //返回条数"min_score": 0.…

一生一芯 预学习阶段 PA1--RTFSC中“make menuconfig”

Enable debug information 问题如上。 在menuconfig将 Enable debug information 选项打开&#xff0c;编译时会产生什么变化&#xff1f; 从选项上看是打开了支持调试的选项&#xff0c;编译时应该是添加了支持编译的参数&#xff0c;具体看代码。 首先&#xff0c;我们先看…

Tomcat 乱码问题彻底解决

1. 终端乱码问题 找到 tomcat 安装目录下的 conf ---> logging.properties .修改ConsoleHandler.endcoding GBK &#xff08;如果在idea中设置了UTF-8字符集&#xff0c;这里就不需要修改&#xff09; 2. CMD命令窗口设置编码 参考&#xff1a;WIN10的cmd查看编码方式&am…

【hot100-java】【组合总和】

R8-回溯篇 印象题&#xff0c;很基本的回溯 class Solution {void backtrack(List<Integer> state,int target,int[] choices,int start,List<List<Integer>> ret){//子集和等于target&#xff0c;记录解if (target0){ret.add(new ArrayList<>(state)…

Java ----常用类

包装类 包装类的分类 1) 针对八种基本数据类型相应的引用类型—包装类2) 有了类的特点&#xff0c;就可以调用类中的方法。3) 如图 包装类和基本数据的转换 jdk5 前的手动装箱和拆箱方式&#xff0c;装箱&#xff1a;基本类型转包装类型&#xff0c;拆箱&#xff1a;包装类型…

探索丹摩智算平台的奇妙之旅:我的CogVideoX实践实验与深刻体验

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀CogVideoX &#x1f4d2;1. 初识CogVideoX&#x1f4da;2. 部署与准备&#x1f31e;在丹摩智算平台上创建实例&#x1f338;CogVideoX代码仓库…

Vue3 中组件传递 + css 变量的组合

文章目录 需求效果如下图所示代码逻辑代码参考 需求 开发一个箭头组件&#xff0c;根据父组件传递的 props 来修改 css 的颜色 效果如下图所示 代码逻辑 代码 父组件&#xff1a; <Arrow color"red" />子组件&#xff1a; <template><div class&…

公司网站改版时,需要注意哪些细节?

在公司网站改版时&#xff0c;需要注意的细节非常多&#xff0c;这些细节将直接影响到网站的用户体验、SEO效果以及整体品牌形象。以下是一些关键的注意事项&#xff1a; 明确改版目标&#xff1a; 在改版前&#xff0c;要明确改版的目标是什么&#xff0c;比如提升用户体验、增…

Linux:权限管理

基本权限和归属 权限和归属 基本权限与归属 • 访问权限 – 读取&#xff1a;允许查看内容-read – 写入&#xff1a;允许修改内容-write – 可执行&#xff1a;允许运行和切换-excute对于文本文件&#xff1a;r读取权限&#xff1a;cat、less、grep、head、tailw写入权限&am…

[已更新前两问代码+全部建模]2024华为杯C题详细思路代码文章建模分享研究生数学建模竞赛数学建模研赛

截止9.21 12点 已更新问题一二的代码和全部内容的建模 下面我们会先进行代码讲解,之后给出全部内容的建模公式 ## https://docs.qq.com/doc/DVWhyZ1NFY01XcmNw基于磁通密度数据的特征提取与分类分析。 问题一代码详解 1. 导入必要的库 import pandas as pd import numpy as…

Innodb内存结构

缓冲池Buffer Pool: 缓冲池是innodb内存结构缓冲区中的核心部分&#xff0c;在服务启动的时候服务器会向操作系统申请一块大小为128MB的内存空间&#xff0c;所有对数据库中数据的增删查改操作均在缓冲池bufferPool中完成&#xff0c;并且缓冲区中其他组件的描述信息也都存储在…

AI绘画Flux【lora模型】【微缩景观】:惊艳!3D场景融入手机上的微景观!

大家好&#xff0c;我是灵魂画师向阳 今天和大家分享一款基于Flux底模训练的微缩景观模型——FLUX|手机上的微景观。此模型主要将手机作为微型景观的基底&#xff0c;强制将3d情景融入手机并控制在手机屏幕上方范围内。 作者在使用提示词直出和使用该Loar提示词生成的图片进行…

手撕小顶堆

1. 抛砖引玉 给定两个以升序排列的整数数组 nums1 和 nums2 , 以及一个整数 k 。 定义一对值 (u,v)&#xff0c;其中第一个元素来自 nums1&#xff0c;第二个元素来自 nums2 。 请找到和最小的 k 个数对 (u1,v1), (u2,v2) … (uk,vk) 。 分析 大根堆&#xff08;大顶堆&#x…