【半监督学习】半监督学习中的时间集合

news2025/1/22 21:34:54

         在本文中,我们提出了一种在半监督环境下训练深度神经网络的简单而高效的方法,在这种环境下,只有一小部分训练数据是有标签的。我们引入了self-ensembling技术,即利用网络在不同历时最重要的是在不同正则化和输入增强条件下的训练输出,形成对未知标签的共识预测与网络在最近训练历时的输出相比,这种集合预测可以更好地预测未知标签,因此可以作为训练的目标。使用我们的方法,我们在两个标准半监督学习基准测试中创造了新纪录,在有 500 个标签的 SVHN 中,分类错误率(未增强)从 18.44% 降至 7.05%;在有 4000 个标签的 CIFAR-10 中,分类错误率从 18.63% 降至 16.55%;启用标准增强后,分类错误率进一步降至 5.12% 和 12.16%。此外,通过在训练过程中使用来自 Tiny Images 数据集的随机图像作为未标记的额外输入,我们还明显提高了 CIFAR-100 的分类准确率。最后,我们还展示了对错误标签的良好耐受性。

介绍: 

        众所周知,多个神经网络的集合通常会比集合中的单个网络产生更好的预测效果。在通过 dropout(Srivastava 等人,2014 年)、dropconnect(Wan 等人,2013 年)或随机深度(Huang 等人,2016 年)正则化方法训练单个网络时,以及在 swapout 网络(Singh 等人,2016 年)中,这种效应也被间接利用,在 swapout 网络中,训练总是集中在网络的特定子集上,因此完整的网络可以被视为这些训练好的子网络的隐式集合。我们扩展了这一想法,在训练过程中,利用单个网络在不同训练历时、不同正则化和输入增强条件下的输出,形成集合预测。我们的训练仍然是在单个网络上进行的,但由于采用了滤除正则化,在不同历元上进行的预测相当于大量单个子网络的集合预测

        这种集合预测可用于半监督学习,在这种情况下,只有一小部分训练数据是有标签的。如果我们将集合预测与正在训练的网络的当前输出进行比较,集合预测很可能更接近于未标记输入的正确未知标签。因此,通过这种方法推断出的标签可以作为未标记输入的训练目标。我们的方法在很大程度上依赖于剔除正则化和多功能输入增强。事实上,如果没有这两个因素,我们就没有理由相信为未标注训练数据推断出的任何标签。

        我们介绍了两种实现自组装的方法:Π 模型和时间组装。这两种方法在半监督学习方面都大大超越了之前最先进的结果。此外,我们还发现,自组装(self-ensembling)还能提高完全标签情况下的分类准确率,并提供对错误标签的容忍度。

        Sajjadi 等人(2016b)最近提出的转换/稳定性损失与我们的工作基于相同的原理,Π 模型可视为其特例。Π模型也可以看作是 Rasmus 等人(2015 年)对梯形网络Γ模型的简化,这是之前提出的一种用于半监督学习的网络架构。我们的时序集合方法与 Reed 等人(2014)针对有噪声标签的训练所采用的引导方法有关。

在训练过程中自我组装:

        我们介绍了两种在训练过程中实现自组网的方法。第一种是Π-模型,鼓励在两种不同的辍学条件下,同一输入刺激的两次实现之间的网络输出保持一致。第二种方法是时间集合,它将网络对之前多个训练历时的预测考虑在内,从而简化并扩展了这种方法。

        我们将结合传统的图像分类网络来描述我们的方法。假设训练数据总共由 N 个输入组成,其中 M 个是有标签的。所有训练数据的输入刺激均以 xi 表示,其中 i ∈ {1 .N }.让集合 L 包含标注输入的索引,|L| = M。对于每个 i ∈ L,我们都有一个已知的正确标签 yi ∈ {1 .C},其中 C 是不同类别的数量。

Π-MODEL 

        Π模型的结构如图 1(上图)所示,伪代码如算法 1 所示。在训练过程中,我们对每个训练输入 xi 进行两次网络评估,得出预测向量 zi 和 ̃ zi。我们的损失函数由两部分组成。第一个部分是标准的交叉熵损失,仅针对标记输入进行评估。第二个部分针对所有输入进行评估,通过均方差对同一训练输入 xi 的不同预测进行惩罚。为了将有监督和无监督的损失项结合起来,我们通过与时间相关的加权函数 w(t) 对后者进行缩放。通过比较整个输出向量 zi 和 ̃ zi,我们有效地要求两个评估之间的 "暗知识"(Hinton 等人,2015 年)接近,这比传统训练中只要求最终分类保持不变要强得多。

        需要注意的是,由于采用了 dropout 正则化,训练过程中的网络输出是一个随机变量。因此,在相同的网络权重 θ 下对相同的输入 xi 进行两次评估会产生不同的结果。此外,高斯噪声和随机平移等增强因素也会被评估两次,从而产生额外的变化。这些影响的组合解释了预测向量 zi 和 ̃ zi 之间的差异。鉴于原始输入 xi 是相同的,这种差异可视为分类中的误差,因此将其最小化是一个合理的目标。 

        在我们的实施过程中,无监督损失加权函数 w(t) 从零开始,在前 80 个训练历元中沿着高斯曲线逐渐上升。有关该函数和其他训练参数的更多详情,请参阅附录 A。因此,一开始的总损失和学习梯度都是由监督损失部分(即仅标签数据)主导的。我们发现,无监督损失分量的上升速度必须足够慢,否则网络很容易陷入退化解,无法对数据进行有意义的分类

        我们的方法与 Rasmus 等人(2015 年)的梯形网络Γ模型有些类似,但概念上更简单。在Π模型中,比较直接在网络输出上进行,即在软最大激活之后,两个分支之间没有辅助映射,例如梯形网络架构中学习到的去噪函数。此外,我们对两个分支的输入应用了相同的增强和噪声,而不是像Γ模型那样有一个 "干净 "分支和一个 "损坏 "分支。

TEMPORAL ENSEMBLING

        分析 Π 模型的工作原理,我们同样可以将两个分支的评估分成两个独立的阶段:首先对训练集进行一次分类,而不更新权重 θ然后在不同的增强和剔除条件下对相同的输入进行网络训练,并将刚刚获得的预测结果作为无监督损失部分的目标由于这种方法获得的训练目标是基于对网络的单次评估,因此可能会产生噪声时间集合法将之前多个网络评估的预测结果汇总到一个集合预测中,从而缓解了这一问题它还能让我们在训练过程中只对网络进行一次评估,与 Π 模型相比,速度提高了约 2 倍

        图 1(下)显示了我们的时空集合方法的结构,算法 2 则显示了其伪码。与 Π 模型的主要区别在于,每个输入每个历元只对网络和增强进行一次评估,无监督损失分量的目标向量 ̃ z 基于之前的网络评估,而不是对网络进行第二次评估

        每次训练历时结束后,网络输出 zi 通过更新 Zi ← αZi + (1 - α)zi 被累积为集合输出 Zi,其中 α 是一个动量项,用于控制集合在训练历史中的累积程度。因此,由于去掉正则化和随机增强,Z 包含了网络集合 f 在之前训练历时的输出的加权平均值最近的历时比较远的历时具有更大的权重为了生成训练目标 ̃ z,我们需要通过除以系数 (1 - αt)来修正 Z 中的启动偏差。亚当(Kingma & Ba,2014 年)和纯均值批次归一化(Salimans & Kingma,2016 年)等研究也采用了类似的偏差校正方法。在第一个训练期,Z 和 ̃ z 为零,因为没有之前训练期的数据。因此,我们指定无监督权重提升函数 w(t) 在第一个训练历时也为零。 

        与 Π 模型相比,时态集合有两方面的优势。首先,训练速度更快,因为网络在每个历元上对每个输入只评估一次。其次,与 Π 模型相比,训练目标 ̃ z 的噪声更小。正如第 3 节所示,在相同训练历元数的情况下,时空集合的结果确实比 Π 模型要好一些。虽然当数据集包含大量项目和类别时,矩阵 Z 可能相当大,但其元素的访问频率相对较低。因此,可以将其存储在内存映射文件中。

        时空集合的另一个有趣的可能性是从网络预测 zi 中收集除均值之外的其他统计数据。例如,通过跟踪网络输出的第二原始矩,我们可以估计每个输出成分 zi,j 的方差。这样就能以一种原则性的方式推理出网络输出的不确定性(Gal & Ghahramani,2016 年)。基于这一信息,我们可以在无监督损失项中,将更多权重放在更确定的预测上,而不是不确定的预测上。不过,我们会在今后的工作中继续探索这些途径。

[论文笔记]Temporal Ensembling for Semi-supervised Learning - 知乎 (zhihu.com)

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

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

相关文章

Nginx part3 创建一个https的网站

目录 HTTPS 公钥和密钥 加密解密方式: https搭建步骤 强调一下 1、准备环境 2、配置文件 3、制作证书 4、进行设置 HTTPS 啥是https,根据百度:HTTPS (全称:Hypertext Transfer Protocol Secure)&a…

AI大语言模型在公共服务中的应用实例

随着计算机技术的飞速发展,人工智能已经成为了当今科技领域的热门话题。从早期的图灵测试到现在的深度学习和神经网络,人工智能已经取得了令人瞩目的成就。特别是近年来,大数据、云计算、高性能计算等技术的发展为人工智能的研究提供了更加广…

AI预测福彩3D采取887定位大底=23策略+杀断组+杀组选+杀和尾+杀和值012缩水测试5月16日预测第2弹

昨天的88723大底测试第一次测试,已经成功命中! 今天继续测试,仍旧目标为:10期中至少5中期。好了,废话不多说了,直接上结果吧~ 首先,887定位如下: 百位:5,7,6,4,2,9,0,1…

玩转Matlab-Simscape(初级)- 08 - 基于Solidworks、Matlab Simulink、COMSOL的协同仿真(案例实战)

** 玩转Matlab-Simscape(初级)- 08 - 基于Solidworks、Matlab Simulink、COMSOL的协同仿真(案例实战) ** 目录 玩转Matlab-Simscape(初级)- 08 - 基于Solidworks、Matlab Simulink、COMSOL的协同仿真&…

信息安全相关内容

信息安全 安全防护体系 安全保护等级 安全防护策略 安全技术基础 安全防护体系 安全防护体系有7个等级 安全保护等级 安全保护等级有5个等级,从上到下是越来越安全的用户自主其实就是用户自己本身具有的相应的能力 安全防护策略 安全策略是对抗攻击的主要策略安全日志: …

(论文笔记)TABDDPM:使用扩散模型对表格数据进行建模

了解diffusion model:什么是diffusion model? 它为什么好用? - 知乎 摘要 去噪扩散概率模型目前正成为许多重要数据模式生成建模的主要范式。扩散模型在计算机视觉社区中最为流行,最近也在其他领域引起了一些关注,包括语音、NLP…

Spring Security实现用户认证一:简单示例

Spring Security实现用户认证一:简单示例 1 原理1.1 用户认证怎么进行和保存的?认证流程SecurityContext保存 2 创建简单的登录认证示例2.1 pom.xml依赖添加2.2 application.yaml配置2.3 创建WebSecurityConfig配置类2.4 测试 1 原理 Spring Security是…

全栈式数据统计:Flask+Pandas按年,季度,月统计显示

话不多说,有图有源码 1.实现效果: 按季度统计 按月度统计: 2.实现源码: 2.1)test_pandashtml.py from flask import Flask, render_template import pandas as pdapp Flask(__name__)# 自定义千分位格式化函数 def format_thousands(x):return f{x:,.2f}app.route(/) def …

JVS物联网模拟点位:如何配置并自动生成点位数据全教程

模拟点位 功能描述 模拟点位常用于业务的调试或数据展示,通过配置对应点位实现自动生成点位数据的功能。 界面操作 如下图所示,从模拟点位菜单进入模拟点位管理界面 模拟点位新增 点击新增按钮,如下图所示: ①:用户…

一键解锁!贸易行业实现银行与财务系统秒级对接,效率飙升!

客户介绍 某贸易有限公司是一家实力雄厚的工贸一体跨国集团企业。作为行业内的佼佼者,该公司以出口家纺产品和生产销售建材洁具为核心业务。公司始终坚持以市场为导向,不断创新和优化产品和服务,以满足不断变化的市场需求。 客户痛点 以往&…

猛兽派对是什么游戏 猛兽派对攻略大全 苹果电脑怎么玩《猛兽派对》?

猛兽派对是多人派对类型的游戏,该款游戏的动作基于物理原理设计的,体验游戏玩家可以选择自己喜欢的小动物角色参加派对,游戏内具有很多不同的关卡可供挑战。 在steam平台上,猛兽派对对应英文名称是PartyAnimals,官方正…

服务器数据恢复—服务器重装系统导致分区丢失的数据恢复案例

服务器数据恢复环境: 一台服务器MD1200磁盘柜通过RAID卡创建了一组RAID5阵列并分配一个LUN。在Linux系统层面将该LUN划分了sdc1和sdc2两个分区。通过LVM扩容的方式将sdc1分区加入到了卷组中的一个逻辑卷中,sdc2分区格式化为XFS文件系统使用。Linux操作系…

Qt编译和使用freetype矢量字库方法

在之前讲过QT中利用freetype提取字库生成图片的方法: #QT利用freetype提取字库图片_qt freetype-CSDN博客文章浏览阅读1.2k次。这是某个项目中要用到的片段,结合上一篇文章#QT从字体名获取字库文件路径使用// 保存位图int SaveBitmapToFile(HBITMAP hBi…

一行代码实现vip标志的显示

需求说明 在项目中,后期添加了一种用户类型。需要再用户头像右下角显示一个vip的标志。问题是只要有头像的地方都要显示。而有头像的地方很多,设置到的接口也很多。后面考虑通过一个工具类,将这个功能外挂到原来的业务需要的地方。 实现效果…

二进制部署Kubernetes集群——单Master和Node组件

前言 本文将介绍如何使用二进制文件手动搭建 Kubernetes v1.20 集群。通过这种方法,我们可以更好地理解 Kubernetes 的内部工作原理,并具备更大的灵活性和控制权。下面将逐步构建 Kubernetes 集群,并进一步了解其各个组件之间的交互和配置。…

【python量化交易】—— 双均线择时策略 - Qteasy自定义交易策略【附源码】

使用qteasy自定义并回测双均线交易策略 使用qteasy自定义并回测一个双均线择时策略策略思想导入qteasy模块创建一个新的策略回测交易策略,查看结果 使用qteasy自定义并回测一个双均线择时策略 我们今天使用qteasy来回测一个双均线择时交易策略,qteasy是…

kettle从入门到精通 第六十一课 ETL之kettle 任务调度器,轻松使用xxl-job调用kettle中的job和trans

想真正学习或者提升自己的ETL领域知识的朋友欢迎进群,一起学习,共同进步。若二维码失效,公众号后台加我微信入群,备注kettle。 1、大家都知道kettle设计的job流程文件有个缺点:只能设置简单的定时任务,无法…

React 第三十七章 Scheduler 最小堆算法

在 Scheduler 中&#xff0c;使用最小堆的数据结构在对任务进行排序。 // 两个任务队列 var taskQueue: Array<Task> []; var timerQueue: Array<Task> [];push(timerQueue, newTask); // 像数组中推入一个任务 pop(timerQueue); // 从数组中弹出一个任务 time…

HNU-算法设计与分析-作业3

第三次作业【动态规划】 文章目录 第三次作业【动态规划】<1>算法实现题 3-1 独立任务最优解问题<2>算法实现题 3-4 数字三角形问题<3>算法实现题 3-8 最小m段和问题<4>算法实现题 3-25 m处理器问题 <1>算法实现题 3-1 独立任务最优解问题 ▲问…