当前位置: 首页 > article >正文

自训练和协同训练简述

在深度学习中,自训练和协同训练是两种常见的半监督学习算法,本文将简单介绍两种算法的基本思想。

一、自训练

自训练 Self-Training Self-Teaching ), 也叫 自举法 Bootstrapping),是一种非常简单的半监督学习算法。 自训练是首先使用标注数据来训练一个模型, 并使用这个模型来预测无标 注样本的标签 把预测置信度比较高的样本及其预测的伪标签加入训练集 然后 重新训练新的模型 并不断重复这个过程。具体算法流程可参照下图:
自训练算法 通过不断地迭代来提高模型能力。但自训练的缺点是无法保证每次加入训练集的样本的伪标签是正确的。此时 如果选择样本的伪标签是错误的 反而会损害模型的预测能力。 因此 自训练算法最关键的步骤是如何设置挑选样本的标准。

二、协同训练

协同训练 Co-Training 是自训练的一种改进方法 通过两个基于不同 视角 view 的分类器来互相促进。 很多数据都有相对独立的不同视角。 比如互联网上的每个网页都由两种视角组成: 文字内容 text )和指向其他网页的链接 hyperlink )。 如果要确定一个网页的类别 既可以根据文字内容来判断 也可根 据网页之间的链接关系来判断。
假设一个样本 𝒙 = [𝒙1 , 𝒙2 ],其中  𝒙 1 和 𝒙2 分别表示两种不同视角 𝑉1 𝑉 2 的特征, 并满足下面两个假设:
1. 条件独立性。给定样本标签 𝑦 时, 两种特征条件独立𝑝(𝒙1 , 𝒙 2 |𝑦) = 𝑝(𝒙 1 |𝑦)𝑝(𝒙 2 |𝑦);
2.充足和冗余性。当数据充分时,每种视角的特征都足以单独训练出一个正确的分类器。
我们令 𝑦 = 𝑔(𝒙) 为需要学习的真实映射函数,𝑓1 𝑓 2 分别为两个视角的分类器 有:
 ∃𝑓1 , 𝑓2 , ∀𝒙 ∈ 𝒳, 𝑓 1 (𝒙 1 ) = 𝑓 2 (𝒙 2 ) = 𝑔(𝒙)
其中  𝒳 为样本𝒙的取值空间。
协同算法要求两种视角是条件独立的。 如果两种视角完全一样 则协同训练退化成自训练算法。协同训练算法的具体流程如下图所示:

由于不同视角的条件独立性,在不同视角上训练出来的模型就相当于从不同视角来理解问题,具有一定的互补性。协同训练就是利用这种互补性来进行自训练的一种方法。首先在训练集上根据不同视角分别训练两个模型 𝑓1 和 𝑓2,然后用 𝑓1 和  𝑓2 在无标注数据集上进行预测,各选取预测置信度比较高的样本加入训练集,重新训练两个不同视角的模型,并不断重复这个过程


http://www.kler.cn/a/994.html

相关文章:

  • Java语言的正则表达式
  • SQLite 语法快速入门
  • fisco bcosV3 Table智能合约开发
  • .NET Core NPOI 导出图片到Excel指定单元格并自适应宽度
  • 单元测试概述入门
  • 【论文阅读+复现】High-fidelity Person-centric Subject-to-Image Synthesis
  • C/C++考试必考题目(含答案*仅供参考)
  • 0108 JQuery
  • C # FileStream文件流
  • Vue初入,了解Vue的发展与优缺点
  • 第二章 测验【嵌入式系统】
  • stack_queue | priority_queue | 仿函数
  • 《伤寒论》398条文——张仲景
  • 重构对象-Introduce Local Extension引入本地扩展八
  • 手把手教你 在linux上安装kafka
  • SpringBoot自定义Mybatis拦截器实现扩展功能(比如数据权限控制)
  • 关于利用FFT分析时域信号幅相的思考与验证
  • python 正则使用详解
  • vFlash软件简介
  • 重构对象-Remove Middle Man移除中间人六
  • 漫画:什么是快速排序算法?
  • 一文读懂Js中的this指向
  • 像ChatGPT玩转Excel数据
  • 前端性能优化之HTTP缓存
  • vue以及前端css组件
  • 【C++笔试强训】第三十二天