[PyTorch][chapter 11][李宏毅深度学习][Semi-supervised Learning]

前言:

这里面简介一下半监督学习,如何利用未打标签的数据集。

重点可以参考一下 Graph-based Approach 方案。


目录:

  1. 简介
  2. Semi-supervised Learning for Generative Model
  3. low-density Separation Assumption
  4. Entropy-based Regularization
  5. semi-supervised SVM
  6. Smoothness Assumption
  7. Graph-based Approach

一 简介

假设我们已经有了R 组有标签的数据集

还有u 组未打标签的数据集

如何利用这些未打标签的数据训练模型, 称为半监督学习

半监督学习分为两类

transductive learning(直推式学习):

unabeled data is the testing data

Inductive learning(归纳推理 学习)

unabeled data is not the testing data

1.1 为什么需要半监督学习

现实生活中,存在大量未打标签的数据集,需要充分利用这种未打标签的数据集

对模型性能的提升非常有帮助.

1.2 为什么半监督学习对分类有帮助呢?

未打标签的数据集分布也可以用于模型分类.如上图分类猫狗的例子:

如果只考虑背景颜色(蓝色,橙色点)其分类边界是红色。 但是加入

灰色的未打标签的数据集进行考虑,分类边界就会发生变化.


二 Semi-supervised Learning for Generative Model

预置条件:

根据已有的标签集得到

迭代流程:

E步 step1 : 计算未打标签的数据集后验概率(posterior probability)

M步:step2: 更新模型,计算先验概率

step3: 计算

反复迭代 step1-step3,知道 不再发生变化

它的理论基础是极大似然估计,对于有标签的数据集:

针对有标签和无标签的数据集:

其中


三 low-density Separation

其典型的代表是self-train

1: 通过已打过标签的数据集训练模型,得到分类器

2: 应用分类器,对未打标签的数据集进行分类,得到

,得到伪标签

3: 从未打标签的数据集中,选择一部分置信度高的添加到已打

标签的数据集中,重新训练模型

但是做回归算法的时候,不能使用该方案,做分类的时候,

采用Hard-label 方案


四 Entropy-based Regularization

这种方案在训练的时候,直接加入unlabeled data 作为正规化项。

我们训练得到的模型,期望其在unlabeled data上面的Entropy 越小越好

(代表其某一类分类概率特别高)


五 semi-supervised SVM

半监督SVM的数学步骤可以分为以下几个步骤:

步骤1:构建初始分类器

首先,我们使用少量的标记数据来构建一个初始的支持向量机分类器。这个分类器将在已知数据上找到一个良好的决策边界.

步骤2:利用未标记数据

然后,我们引入未标记数据。未标记数据不会直接影响初始分类器的决策边界,但它们会在训练过程中起到重要作用.

步骤3:半监督优化

半监督SVM通过考虑未标记数据的分布,调整决策边界以提高分类性能。这通常通过引入正则化项来实现,以平衡标记数据和未标记数据的影响.

步骤4:重复迭代

我们重复执行半监督优化的过程,直到达到预定的迭代次数或决策边界稳定。这个过程将最大化分类性能,并充分利用未标记数据


原文链接:https://blog.csdn.net/DeepViewInsight/article/details/132958722

30:25 秒


六 Smoothness Assumption

问题:

已经打过标签了, 未打标签,

到底打成 还是 的标签

解决方案:

这种假设是基于:之间有大量联通区域(high density region),

所以标签可以认为和相同.

6.1 例子

如上图,中间2 可以通过右边的2经过一系列的变化得到(中间有联通的区域),

但是中间2 无法经过变化得到右边的3 ,所以其标签为2

6.2实践操作原理:

1 通过AE 编码器对已打标签的图像数据进行降维,

2 通过AE 编码器对输入未打标签的图形进行降维

3 最后对降维后的数据集 观察是否有联通区域进行打标签。


七 Graph-based Approach

7.1 问题:

如何判断之间有高密度连接区域,通过graph 来表示数据。

定义 来判断之间的相似度。

添加edge: k 最邻近点

e-邻近点

7.2 相似度函数

(针对所有所有数据,无论是打标签还是未打标签

如下图

7.3 这张图是如何计算出来的

左图:S=0.5

可以通过矩阵表示,比如红色部分

0:

2:

把矩阵里面每个格子里面的元素相乘求和,再处于4(N=4)

右图:S=3

7.4 矩阵计算方式

证明如下:

其中

所以

(i,j的维度相同,数据的标签)

7.5 利用未打标签的数据集重新定义损失函数


参考:

深入半监督学习:半监督支持向量机(Semi-Supervised SVM)_semi_supervised-CSDN博客

使用pytorch实现高斯混合模型分类器 - 知乎

机器学习------概率分类(三)高斯概率密度与混合高斯模型_概率密度分类-CSDN博客

12: Semi-supervised_哔哩哔哩_bilibili

(二)Semi-supervised(半监督学习)李宏毅-CSDN博客

2020李宏毅学习笔记------ 10. Semi-supervised Learning(半监督学习)_semi-supervised few-shot learning via multi-factor-CSDN博客

相关推荐
KoiC2 分钟前
内网环境部署Deepseek+Dify,构建企业私有化AI应用
linux·人工智能·ubuntu·docker·大模型·ai应用·deepseek
程序员Linc13 分钟前
计算机视觉 vs 机器视觉 | 机器学习 vs 深度学习:核心差异与行业启示
深度学习·机器学习·计算机视觉·机器视觉
不去幼儿园13 分钟前
【启发式算法】Dijkstra算法详细介绍(Python)
人工智能·python·算法·机器学习·启发式算法·图搜索算法
云卓SKYDROID23 分钟前
无人机投屏技术解码过程详解!
人工智能·5g·音视频·无人机·科普·高科技·云卓科技
zy_destiny29 分钟前
【YOLOv12改进trick】三重注意力TripletAttention引入YOLOv12中,实现遮挡目标检测涨点,含创新点Python代码,方便发论文
网络·人工智能·python·深度学习·yolo·计算机视觉·三重注意力
自由的晚风31 分钟前
深度学习在SSVEP信号分类中的应用分析
人工智能·深度学习·分类
大数据追光猿31 分钟前
【大模型技术】LlamaFactory 的原理解析与应用
人工智能·python·机器学习·docker·语言模型·github·transformer
Start_Present44 分钟前
Pytorch 第七回:卷积神经网络——VGG模型
pytorch·python·神经网络·cnn·分类算法
玩电脑的辣条哥1 小时前
大模型LoRA微调训练原理是什么?
人工智能·lora·微调
极客BIM工作室1 小时前
DeepSeek V3 源码:从入门到放弃!
人工智能