Laine, Samuli, and Timo Aila. "Temporal Ensembling for Semi-Supervised Learning." arXiv preprint arXiv:1610.02242 (2016).

这篇论文投在ICLR 2017上:https://openreview.net/forum?id=BJ6oOfqge&noteId=BJ6oOfqge

Github: https://github.com/smlaine2/tempens

这篇论文提出了利用ensembling(组合)的方法来完成半监督学习(semi-supervised learning)的任务。

模型:

作者提出了两个模型:,暂且翻译为 双模型 和 时序组合模型

首先介绍 双模型:

作者让同一个图片输入网络两次,由于有一些随机的因素(dropout, augmentation等),会使得两次的隐藏层的输出(也就是z)会不一样,作者把两个不同的z做差,然后求l2,作为loss的一部分,当然loss的另一部分就是那些有标签数据的交叉熵(cross entropy)。另外,由于模型最开始时是很不准确的,所以产生的z可能没有多大意义,所以需要先对有label的数据进行训练,也就是需要把两次不同的z比较的loss进行屏蔽。作者这里设置了一个随时间变化的变量w(t),在t=0时,设置w(t)为0,也是z比较的loss权重为0,然后w(t)随着时间增大而增大。

然后介绍时序组合模型:

时序组合模型和双模型的不同点在于,比较的z来源不同。在双模型中,两个z都是来自同一迭代时间内产生的两次结果。但在时序组合模型中,一个z来自上次迭代周期产生的结果,一个z来自当前迭代时间内产生的结果,也就是比较了两次不同时间内产生的z。在时序组合模型中,由于一次迭代期间内,只用产生一次z,那么相比于双模型,它就有了两倍的加速。作者在论文中说,他们使用的以前的z,并不是恰恰上次迭代的z,而是历史z的加权和,即(这个看着和reinforcement learning 中的reward的更新类似)。这样做的好处是能够保留历史信息,衰减长远历史信息和稳定当前值。

 

实验:

作者做了半监督学习和监督学习的实验,都取得了不错的效果。作者还说他们的这个模型具有鲁棒性,也就是对错标的数据有一定的容忍性。

评语:方法简单实用

Temporal Ensembling for Semi-Supervised Learning的更多相关文章

  1. A Brief Review of Supervised Learning

    There are a number of algorithms that are typically used for system identification, adaptive control ...

  2. Machine Learning Algorithms Study Notes(2)--Supervised Learning

    Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 本系列文章是Andrew Ng 在斯坦福的机器学习课程 CS 22 ...

  3. Supervised Learning and Unsupervised Learning

    Supervised Learning In supervised learning, we are given a data set and already know what our correc ...

  4. A brief introduction to weakly supervised learning(简要介绍弱监督学习)

    by 南大周志华 摘要 监督学习技术通过学习大量训练数据来构建预测模型,其中每个训练样本都有其对应的真值输出.尽管现有的技术已经取得了巨大的成功,但值得注意的是,由于数据标注过程的高成本,很多任务很难 ...

  5. temporal credit assignment in reinforcement learning 【强化学习 经典论文】

    Sutton 出版论文的主页: http://incompleteideas.net/publications.html Phd  论文:   temporal credit assignment i ...

  6. 监督学习Supervised Learning

    In supervised learning, we are given a data set and already know what our correct output should look ...

  7. 学习笔记之Supervised Learning with scikit-learn | DataCamp

    Supervised Learning with scikit-learn | DataCamp https://www.datacamp.com/courses/supervised-learnin ...

  8. (转载)[机器学习] Coursera ML笔记 - 监督学习(Supervised Learning) - Representation

    [机器学习] Coursera ML笔记 - 监督学习(Supervised Learning) - Representation http://blog.csdn.net/walilk/articl ...

  9. Introduction - Supervised Learning

    摘要: 本文是吴恩达 (Andrew Ng)老师<机器学习>课程,第一章<绪论:初识机器学习>中第3课时<监督学习>的视频原文字幕.为本人在视频学习过程中逐字逐句记 ...

随机推荐

  1. Android jni GetFieldID 和 GetMethodID 函数的说明

    Android jni GetFieldID 和 GetMethodID 函数的说明 GetFieldID是得到java类中的参数ID,GetMethodID得到java类中方法的ID,它们只能调用类 ...

  2. php使用curl请求数据(采集数据)

    <?php $url = "http://www.baidu.com/s?wd=刘俊涛的博客"; $header = array( 'User-Agent: Mozilla/ ...

  3. struts xml中的result的类型、全局结果集、异常mapping、继承

    例子: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC     ...

  4. Js实现AES/RSA加密

    1. function aesEncrypt(text, secKey) { var key = CryptoJS.enc.Utf8.parse(secKey); var iv = CryptoJS. ...

  5. Tcp Ip -- tcpdump win窗口大小

    问题介绍 今天,有内部模块与外部系统断连. (外部系统smgw,内部接口interface) smgw <----> interface 有消息交互. 通过tcpdump -xns0 po ...

  6. net 将WebService生成dll文件

    通过dll来引用webservice的方法 1.打开浏览器,然后写输入http://192.168.0.2/RentService.asmx?wsdl 2.然后选择浏览器->文件->另存为 ...

  7. 点滴积累【C#】---序列化和反序列化

    序列化和反序列化效果图: 序列化和反序列化代码: 需要添加两个命名空间: using System.IO; using System.Runtime.Serialization.Formatters. ...

  8. NGUI的一个bug记录

    在当前帧内触发按钮事件,然后把click事件的list删去,再添加,这时候会再次触发. 不确定,先记一下

  9. G1日志分析

    1. 概述 来自对官方G1垃圾收集器的日志解释分析,官方地址:https://blogs.oracle.com/poonam/understanding-g1-gc-logs或https://blog ...

  10. [python小记]使用lxml修改xml文件,并遍历目录

    这次的目的是遍历目录,把目标文件及相应的目录信息更新到xml文件中.在经过痛苦的摸索之后,从python自带的ElementTree投奔向了lxml.而弃用自带的ElementTree的原因就是,na ...