机器学习之自训练&协同训练

前言

监督学习往往需要大量的标注数据, 而标注数据的成本比较高 . 因此 , 利用大量的无标注数据来提高监督学习的效果有着十分重要的意义. 这种利用少量标注数据和大量无标注数据进行学习的方式称为 半监督学习 ( Semi-Supervised Learning, SSL ). 本文将介绍两种半监督学习算法 : 自训练和协同训练 .

自训练

自训练(Self-training )是一种半监督学习的方法,它通过结合有标签数据和无标签数据来提高模型的性能。在自训练中,首先使用有标签数据进行初始模型的训练,然后使用该模型对无标签数据进行预测,并将置信度较高的预测结果作为伪标签加入到有标签数据集中,再重新训练模型。通过迭代这个过程,逐步扩充有标签数据集和改进模型。
自训练流程图

协同训练

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

协同训练的基本框架如下:

  1. 初始阶段:将有标签数据集随机分成两个子集,分别为视角 1 和视角 2 。使用视角 1 的特征训练模型 1 ,使用视角 2 的特征训练模型 2 。
  2. 交替迭代:在每次迭代中,使用已训练好的模型对无标签数据进行预测,并选择置信度较高的样本加入到相应的视角的有标签数据集中。
  3. 模型更新:使用扩充后的有标签数据集重新训练模型 1 和模型 2 。
  4. 重复步骤 2 和步骤 3 ,直到满足停止条件(如达到最大迭代次数或模型性能不再提升)。
相关推荐
瑶光守护者43 分钟前
并行计算编程模型的发展方向与RISC-V的机遇
人工智能·笔记·学习·架构·risc-v
初心丨哈士奇1 小时前
基于大模型的GitLab CodeReview 技术调研
前端·人工智能·node.js
Luis Li 的猫猫1 小时前
基于MATLAB的冰块变化仿真
开发语言·图像处理·人工智能·算法·matlab
xiatian_win1232 小时前
本地部署 OpenManus 保姆级教程(Windows 版)
人工智能·windows
蹦蹦跳跳真可爱5892 小时前
Python----计算机视觉处理(opencv:像素,RGB颜色,图像的存储,opencv安装,代码展示)
人工智能·python·opencv·计算机视觉
BIT_Legend2 小时前
Torch 模型 model => .onnx => .trt 及利用 TensorTR 在 C++ 下的模型部署教程
c++·人工智能·python·深度学习
蹦蹦跳跳真可爱5892 小时前
Python----计算机视觉处理(Opencv:自适应二值化,取均值,加权求和(高斯定理))
人工智能·python·opencv·计算机视觉
轻松Ai享生活3 小时前
从代码粘贴侠到优雅的Coder? - 3个大神教我的脱坑不传之秘
人工智能·面试·程序员
机器之心3 小时前
GPT4规模大模型落地,Meta提ExFM框架:万亿参数基础大模型的工业级落地成为可能
人工智能·openai
Scabbards_3 小时前
理解知识如何在大型Vision-Language Models 中演化
人工智能·语言模型·自然语言处理