半监督学习——数据精馏(论文阅读)

2023-11-19

论文地址:https://arxiv.org/pdf/1712.04440.pdf

1. 论文与摘要

      《Data Distillation: Towards Omni-Supervised Learning

        摘要:作者提出一种特殊的半监督学习方法,取名为数据精馏。该方法通过利用标注的数据和未标注的数据一起训练模型,最终超越了全监督最好的模型。作者在人体关键点和通用目标检测任务上做了实验,精度均有提升。

2. 主要方法

Caption

       如上图所示,作者首先用全监督的方法训练模型A,随后用模型A测试不同数据增强的图片,最后将测试结果进行融合得到图片的标签。在训练student model时,把人工标注的图片和通过模型A生成标签的图片一起送进神经网络,得到训练好的student model。transform的方法主要是多尺度测试和水平翻转。作者的方法比较简单,一旦生成了标注数据,就把该数据当做真实标签,不需要对网络结构和其他部分做较大修改。

3. 实现细节

      1. 在没有标签的数据上生成label

Caption

             如上图所示,模型首先预测图片(图片经过了不同的变化),最后将前面的预测结果进行融合,得到生成的标签。如果是目标检测任务,不同的目标要设置不同的阈值。标签生成以后,就把生成的标签当做真实标签。

        2. 训练细节

              (1) 在训练学生模型时,要保证每个minibatch中同时包含手工标注的数据和自动生成的数据,这样能使模型训练得更好。作者训练模型时,手工标注的数据和自动生成数据的比例为6:4。

              (2) 由于增加了自动生成的数据,在训练模型时,应该使用更多的迭代次数,使模型收敛更好。     

4. 消融实验

       1. 用数据精馏的对比试验

Caption

            该实验说明:当训练数据较少(35K)时,用数据精馏能有效的提高模型精度(54.9-->60.2)。但是如果将这些无标签的数据进行人工标注后一起训练时,模型的精度能提高更多(54.9-->65.1)。

        2.  不同迭代次数的对比

Caption

             该实验说明:当使用数据精馏时,更多的训练迭代次数能使模型收敛得更好,从而提高模型在测试集上的精度。

       3. 老师模型对学生模型的影响

Caption

                该实验说明:教师模型越好,训练出来的学生模型也会越好。

          4. 学生模型用测试数据增强

Caption

                该实验说明:学生模型用测试数据增强,也能提高模型的精度。

                有意思的是:学生模型运用测试数据增强时,达到了68.9AP,其精度比教师模型还要高(教师模型67.8AP)。作者认为,学生模型不仅学到了变换信息,还从额外的数据中学到了新的知识。

5. 总结

       作者通过实验证明,运用额外的无标签数据,通过半监督学习能达到更好的效果(相比与仅用标注的数据)。

如需交流,请在下方留言!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

半监督学习——数据精馏(论文阅读) 的相关文章

  • 时序预测

    时序预测 MATLAB实现RF 随机森林 时间序列预测 目录 时序预测 MATLAB实现RF 随机森林 时间序列预测 预测效果 基本介绍 预测准备 程序设计 主程序 训练子函数 预测子函数 参考资料 致谢 预测效果 基本介绍 在机器学习中
  • Maven依赖冲突

    依赖冲突 依赖冲突是指项目依赖的某一个jar包 有多个不同的版本 因而造成类包版本冲突 依赖传递 项目依赖了A A依赖了B 项目自动依赖了B 注意 父项目中的依赖有
  • GitHub 上最火的开源项目 —— Java 篇

    很多开发者在看到自己感兴趣的项目时会使用 Star 功能 可以说 Star 的数量在一定程度上代表了开源项目的热门程度 本文整理了 Java 语言中 star 数最多的十五款开源项目 这些项目在 GitHub 上的 star 数均超过 15

随机推荐

  • 开发 Leader 们最该了解的软件度量指标

    无论何时 只要是要评估或对比某些东西 就需要使用度量指标 它们是可量化的衡量标准 用于判断每个行业的进展 这其中包括软件开发 在该领域 开发负责人依靠软件度量指标来跟踪性能和生产 在我们关于如何衡量和提高开发人员工作效率的博客文章中 我们讨
  • ext 6.0开发实例二

    由于Ext JS 6将原来的Ext JS和Sencha Touch合并为一个框架 因而在使用CMD来创建应用程序前 需要考虑清楚你是要创建一个通用应用程序 还是仅仅只是针对桌面或移动设备的应用程序 要做这样的考量 是因为通用应用程序和比较单
  • 关于java/android 数据序列化后SerialVersionUID的获取

    本人android 开发 遇到了一个关于数据序列化的坑 纪录下来以便以后查看 所有需要序列化本地的bean都需要继承Serializable 否则无法序列化 如果不了解序列化的知识请自行百度 我继承了Serializable 但是没有设置S
  • 2.5.14 动态内存共享AMS

    最后更新2021 08 02 这个还算是比较实用的功能 最早介绍过CPU共享 也提到过内存共享 但CPU共享是动态 实时 按需分配的 虽然有限制条件 而内存需要用DLPar功能 收工调节 至少不是实时分配 那内存可不可以实现类似CPU的实时
  • python笔记2--python 中安装package注意事项

    python笔记2 python 中安装package注意事项 使用python时候 经常需要安装相关的包 安装方法包括两种 1 直接使用easy install或者pip安装 2 下载package源码安装 1 直接使用easy inst
  • macbook上的vim怎么设置语法高亮和显示行号

    在我写这篇文章之前我的vim就很普通 没有语法高亮 无法显示行号 但是我通过在网上不断查阅一些处理方法和经验之后 我终于能将我MacBook电脑上的vim配置出语法高亮和显示行号了 作为一名乐于分享 乐于助人的新手程序员 我决定把我的解决办
  • 《Web应用安全权威指南》学习笔记

    第1章 什么是Web应用的安全隐患 第2章 搭建试验环境 邮件发送服务器Postfix POP3服务器Dovecot SSH服务器OpenSSH Web应用调试工具Fiddler 第3章 Web安全基础 HTTP回话管理 同源策略 Cook
  • k8s安全04--kube-apiserver 安全配置

    k8s安全04 kube apiserver 安全配置 1 介紹 2 安全配置 2 1 配置 insecure port 2 2 RBAC 2 3 Service Accounts 2 4 Researching Pod Security
  • Nginx 无法转发本地端口

    问题描述 本文主要分析解决 centos 下 nginx 配置端口转发后不生效 通过 nginx 配置 server 转发后 无法达到预期的转发目的 并出现502错误的问题 假设虚拟机 ip 为 192 168 0 8 并且在虚拟机内部署一
  • ISO七层模型

    物理层 O S I 模型的最低层或第一层 该层包括物理连网媒介 如电缆连线连接器 物理层的协议产生并检测电压以便发送和接收携带数据的信号 在你的桌面P C 上插入网络接口卡 你就建立了计算机连网的基础 换言之 你提供了一个物理层 尽管物理层
  • uni-app项目在微信开发者工具打开时报错[ app.json 文件内容错误] app.json: 在项目根目录未找到 app.json

    uni app项目在微信开发者工具打开时控制台报错 app json 文件内容错误 app json 在项目根目录未找到 app json env Windows mp 1 06 2303220 lib 2 32 0 解决方案 以下是一个u
  • 前端基础之ES6

    1 前后端对比 2 ES6 ECMAScript6 0 以下简称ES6 ECMAScript是一种由Ecma国际通过ECMA 262标准化的脚本 是JavaScript语言的下一代标准 2015年6月正式发布 从ES6开始的版本号采用年号
  • S-DES加密

    S DES加密 Simplified Data Encryption Standard S DES 是一个供教学的非安全的加密算法 它与DES的特性和结构类似 但参数小 明文分组为8位 主密钥分组为10位 采用两轮迭代 S DES加密过程包
  • 第十一讲、FPGA开发中xilinx vivado 平台时序分析系列课程-边沿对齐input delay ddr双沿采样时序约束与收敛

    我们在使用一些以太网PHY和FPGA接口是RGMII接口是DDR双沿结构 还有ADC芯片也也是DDR双沿采样接口 以及CMOS视频传感器也有很多DDR双沿源同步接口 我们这里以IMX222视频传感器的的DDR为例约束input ddr 接口
  • FPGA提示产生latch的报错

    在fpga的设计中有时会遇到 latch 的报错 1 latch是什么 Latch 就是锁存器 是一种在异步电路系统中 对输入信号电平敏感的单元 用来存储信息 锁存器在数据锁存使能时 数据被锁存 输入信号不起作用 这违背了组合逻辑中输出随输
  • selenium元素定位方法 id,name,class

    1 导入selenium from selenium import webdriver from time import sleep 2 打开浏览器 最大化 driver webdriver Chrome driver maximize w
  • Java 学习路线大全,再也不用迷路啦(持续更新)

    路线特点 最新 完整一条龙 从入门到入土 表示推荐学习 给出目标 学习建议 关键知识点 最优资源以及各类资源推荐 视频 书籍 文档 项目 工具等 划分阶段 更有计划 且在最后给出持续学习的方向 探索 Java 程序员发展的无限可能 前言 首
  • SQLSERVER排查CPU占用高的情况

    一般排查都是用下面的脚本 一般会用到三个视图 sys sysprocesses dm exec sessions dm exec requests sys sysprocesses 系统表是一个很重要的系统视图 主要用来定位与解决Sql S
  • 存储类型auto,static,extern,register的区别 <转>

    变量和函数的属性包括数据类型和数据的存储类别 存储类别指数据在内存中存储方式 静态和动态 包含auto static register extern四种 内存中 具体点来说内存分为三块 静态区 堆区 栈区 外部变量和全局变量存放在静态区 局
  • 半监督学习——数据精馏(论文阅读)

    论文地址 https arxiv org pdf 1712 04440 pdf 1 论文与摘要 Data Distillation Towards Omni Supervised Learning 摘要 作者提出一种特殊的半监督学习方法 取