13.西瓜书——半监督学习

news2024/12/29 10:06:01

1.概述

         

(1) 纯半监督学习 (Pure Semi-Supervised Learning)

        纯半监督学习是一种典型的半监督学习方法,它的主要特点是同时利用有标签数据和无标签数据进行模型训练。目标是通过整合这两种类型的数据来提高模型的泛化性能。在这个过程中,无标签数据被用来揭示数据的底层结构或分布,而有标签数据则用来指导模型进行正确的分类或预测。

        想象你在教一个朋友识别不同种类的水果。你给他们看几个苹果、香蕉和橙子,并告诉他们各是什么。这就像标记数据,因为你给了他们带正确答案的示例。

        但你还有一个大篮子混合的水果,你没有时间去仔细查看。你的朋友尝试根据他们从你给的几个示例中学到的东西来判断每种水果是什么。这就像未标记数据。你的朋友正在使用他们从几个示例中学到的知识来对所有其他的水果进行猜测。

        在纯半监督学习中,计算机使用少量的标记数据来学习一些东西。然后,它试图将所学的知识应用于大量的未标记数据,为那些数据猜测标签。这有点像用有根据的猜测来填补空白。

(2)直推学习 (Transductive Learning)

        直推学习与传统的归纳学习(如纯半监督学习)不同,因为它专注于对特定无标签样本的预测,而不是构建一个可以泛化到新数据的模型。在直推学习中,我们通常假设训练时使用的无标签样本就是最终在测试时需要预测的样本。因此,直推学习的目标是在这些特定的无标签样本上获得最佳的预测性能。

        在半监督学习的背景下,直推学习可能会利用有标签数据来构建一个初步模型,然后利用该模型对无标签数据进行预测,并根据这些预测来优化模型。但是,与纯半监督学习不同,直推学习并不关注模型在新数据上的泛化能力。

(3)主动学习 (Active Learning)

        主动学习在半监督学习中扮演着特殊的角色。在这种方法中,模型不是被动地接受所有可用的有标签和无标签数据,而是主动选择它认为最“有用”或“信息量最大”的样本进行标注。这种方法通常涉及与一个或多个专家(或标注者)的交互,他们会根据模型的请求提供标签。

        在半监督学习的设置中,主动学习可以用于逐步增加有标签数据集的大小。通过精心选择哪些无标签样本进行标注,主动学习可以在保持标注成本较低的同时,显著提高模型的性能。

        总的来说,纯半监督学习、直推学习和主动学习都是利用有标签和无标签数据来提高模型性能的方法,但它们在如何使用这些数据以及追求的目标上有所不同。纯半监督学习注重模型的泛化能力,直推学习关注特定样本的预测性能,而主动学习则通过主动选择样本进行标注来优化模型。

 2.生成式方法

       生成式方法的核心点在于它假设所有数据(无论是否有标签)都是由一个潜在的概率模型生成的。这个模型描述了数据的联合概率分布P(x, c),其中x是特征,c是类别标签。生成式方法的目标是学习这个潜在模型的所有参数,包括那些与无标签数据相关的参数。

        在生成式方法中,无标签数据被用来揭示数据的底层结构或分布,这有助于模型更好地理解数据的整体特性。通过结合有标签数据和无标签数据,生成式方法能够构建一个更全面的模型,该模型不仅能够对已标记的数据进行分类,还能够对未标记的数据进行预测。

具体来说,生成式方法通常涉及以下步骤:

  1. 模型假设:首先,需要假设一个生成式模型来描述数据的联合概率分布P(x, c)。这个模型可以是任何适合数据的概率模型,如高斯混合模型(GMM)、朴素贝叶斯等。

  2. 参数学习:然后,使用有标签数据和无标签数据来学习模型的参数。这通常涉及使用EM算法或其他优化技术来最大化数据的似然性。在EM算法的上下文中,E步用于估计无标签数据的类别概率,而M步用于更新模型参数以最大化似然函数。

  3. 分类器构建:一旦模型参数被学习,就可以使用这些参数来构建分类器。分类器基于条件概率分布P(c|x)进行预测,该分布可以从学习到的联合概率分布P(x, c)中推导出来。

        需要注意的是,生成式方法的性能在很大程度上取决于所选择的模型假设是否与实际数据分布相匹配。如果模型假设不准确,那么利用无标签数据可能会降低模型的泛化性能。因此,在选择生成式方法时,需要仔细考虑数据的特性和领域知识,以确保模型假设的合理性。

3.半监督SVM

        半监督支持向量机(Semi-Supervised Support Vector Machine,简称S3VM)是支持向量机在半监督学习上的推广。与传统的监督SVM不同,S3VM通过结合有标签数据和无标签数据来提高分类器的性能。

        在不考虑未标记样本时,支持向量机试图找到最大间隔划分超平面。而在考虑未标记样本后,S3VM试图找到能将两类有标记样本分开,且穿过数据低密度区域的划分超平面。其基本假设是“低密度分隔”,这是聚类假设在考虑了线性超平面划分后的推广。

S3VM的基本思想和步骤如下:

  1. 利用有标签的数据训练传统的监督SVM,得到一个初步的决策边界。
  2. 利用未标签的数据,尝试优化在第一步得到的分类器。这通常通过在决策边界周围引入一些未标签样本来实现。
  3. 通过半监督优化的方式,最小化有标签样本的分类误差,并在同时最大化未标签样本对分类边界的贡献。这可以通过各种技术来实现,如转导支持向量机(Transductive Support Vector Machines,TSVM)。
  4. 重复上述步骤,直到模型收敛或达到预定的迭代次数。

        需要注意的是,引入未标签样本可能会增加过拟合的风险,因此在使用S3VM时需要注意模型的泛化能力。此外,S3VM的目标是在减少对标签的依赖性的同时提高分类性能,这使得它在处理部分标记数据时具有优势。

4.图半监督学习

        图半监督学习(Graph-Based Semi-Supervised Learning)是半监督学习的一个分支,它利用图结构来表示数据之间的相似性和关系。在这种方法中,数据点被表示为图中的节点,而节点之间的边表示数据点之间的相似性。标签信息可以从已标记的节点传播到未标记的节点,从而利用未标记数据来提高分类器的性能。

        图半监督学习通常基于以下假设:相似的数据点应具有相似的标签。为了利用这个假设,图半监督学习算法定义了一个相似度矩阵,用于度量数据点之间的相似性。然后,根据相似度矩阵和已标记数据的标签信息,算法构建一个图模型,并通过优化目标函数来学习未标记数据的标签。

图半监督学习的核心点

  1. 图结构表示:图半监督学习将数据表示为图结构,其中节点代表数据点,边代表数据点之间的相似性。这种表示方法能够捕捉数据之间的复杂关系。

  2. 相似度度量:在图半监督学习中,定义相似度矩阵是关键。这个矩阵度量了数据点之间的相似性,是后续标签传播和模型构建的基础。

  3. 标签传播:已标记数据的标签信息通过图结构传播到未标记数据。这通常是通过迭代过程实现的,其中标签根据数据点之间的相似性逐渐传播到整个图。

  4. 利用未标记数据:图半监督学习的目标是通过结合有标签数据和无标签数据来提高分类性能。未标记数据通过图结构中的相似性关系被有效地利用起来。

5.基于分歧的方法

        基于分歧的方法(Disagreement-Based Methods)是半监督学习中的一种常用策略,它主要利用多个学习器之间的分歧或差异来优化模型的性能。这种方法的核心思想是,当不同的学习器对同一个未标记样本的预测结果存在分歧时,这个样本很可能位于分类边界附近,因此具有较高的信息量。通过合理地利用这些分歧,我们可以提高模型的泛化能力和鲁棒性。

基于分歧的方法通常涉及以下步骤:

  1. 学习器的生成:首先,需要生成多个不同的学习器。这些学习器可以是同质的(如多个决策树或神经网络),也可以是异质的(如决策树、支持向量机和朴素贝叶斯的组合)。每个学习器都应该具有一定的预测能力,并且它们之间应该存在分歧。

  2. 分歧的度量:接下来,需要定义一个度量标准来衡量学习器之间的分歧程度。常见的度量标准包括投票熵、KL散度、欧氏距离等。这些度量标准可以帮助我们识别出那些在学习器之间存在较大分歧的样本。

  3. 样本的选择与利用基于分歧的方法通常倾向于选择那些分歧较大的样本进行标记或加入训练集。这是因为这些样本往往位于分类边界附近,对于提高模型的性能具有重要意义。一种常见的做法是使用查询策略来选择最具信息量的样本进行标记,然后将这些样本加入训练集以更新模型。

  4. 模型的更新与优化:在利用分歧样本更新模型时,可以采用各种策略,如集成学习、协同训练等。集成学习通过结合多个学习器的预测结果来提高整体性能,而协同训练则通过迭代地选择分歧样本进行标记和更新模型来逐步优化性能。

        想象你和你的朋友们在玩“夺旗”游戏,其中操场被划分为两个领土。领土之间的确切边界没有明确标出,对于一个特定的点是属于哪个领土,你的朋友们有争议。这个点,就像一个未标记的样本,因为其位置(靠近有争议的边界)可能极大地影响游戏的结果。如果你能准确确定这个点属于哪个领土,你就可以做出更好的战略决策。

        在机器学习中,学习器(或模型)正尝试对数据点进行分类(就像确定那个点属于哪个领土)。当不同模型对同一个数据点做出不同分类预测时,这表明该数据点位于分类边界附近——模型不确定它属于这个类别还是那个类别的地方。这种不确定性是有信息量的,因为靠近边界的数据点是模型难以分类的,它们提供了有价值的信息,关于边界实际上可能在哪里,帮助进一步完善模型。

        本质上,如果多个学习器对一个样本的分类存在分歧,这表明该样本提供了一个很好的学习机会。正是这些具有挑战性的、靠近边界的样本可以通过提供关于决策边界应如何调整的见解来帮助改进模型。识别并专注于这类样本允许更有效的学习和模型改进,特别是在标记数据稀缺但对准确定义分类边界至关重要的情景中。

6.半监督聚类

        半监督聚类是一种结合了监督学习和无监督学习的方法,它利用少量的有标记数据和大量的无标记数据来进行聚类分析。与传统的无监督聚类相比,半监督聚类可以利用先验知识或领域信息来指导聚类过程,从而获得更准确的聚类结果。

        半监督聚类的基本思想是利用有标记数据来初始化或约束聚类过程,然后利用无标记数据来进一步优化聚类结果。这种方法可以在一定程度上解决无监督聚类中由于数据分布复杂或存在噪声等问题导致的聚类效果不佳的问题。

基于约束的方法

        基于约束的半监督聚类方法利用有标记数据提供的约束条件来指导聚类过程。这些约束条件可以分为两类:

  1. 必连约束(Must-Link Constraints):如果两个样本属于同一类别,则它们必须在聚类结果中被分配到同一个簇中。这种约束通常用于确保已知属于同一类别的样本不会被错误地分开。

  2. 勿连约束(Cannot-Link Constraints):如果两个样本属于不同的类别,则它们必须在聚类结果中被分配到不同的簇中。这种约束用于防止已知属于不同类别的样本被错误地聚集在一起。

基于距离的方法

        基于距离的半监督聚类方法利用有标记数据和无标记数据之间的距离信息来优化聚类结果。这种方法通常包括以下步骤:

  1. 初始化:使用有标记数据作为种子点来初始化聚类中心。这些种子点可以是已知类别的样本的中心点或其他代表性点。

  2. 距离度量:计算无标记数据与初始化聚类中心之间的距离。这通常使用欧氏距离、余弦相似度等度量方法来完成。

  3. 迭代优化:根据距离度量结果,将无标记数据分配到最近的聚类中心所在的簇中。然后,根据新的簇成员更新聚类中心的位置,并重复此过程直到满足收敛条件(如达到最大迭代次数或聚类中心的位置变化小于某个阈值)。

 

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

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

相关文章

httprunner日志跟踪

1. 日志位置 1.1. 关键字:.log generate testcase log: D:\httprunner\demo\logs\082dd63e-56b9-40c1-9392-039dc0a03667.run.log 1.2. 控制台效果 2. 项目位置 3. 日志输出原理 3.1. 测试用例ID和Request ID 为排除故障,每个测试用例将生成唯一ID&…

物联网的商业模式洞察

大约在十年前(2014年11月),全球知名管理思想家、哈佛商学院教授迈克尔波特与PTC前首席执行官吉姆赫普尔曼,在《哈佛商业评论》上联合撰写了一篇备受赞誉的文章,题为《智能互联产品如何改变竞争》。在这篇文章中&#x…

羊大师分析羊奶滋养,女性魅力绽放

羊大师分析羊奶滋养,女性魅力绽放 羊奶,自古以来便是滋养身心的天然佳品。它富含多种营养成分,如蛋白质、脂肪、矿物质和维生素等,能够为女性提供全面而均衡的营养支持,帮助她们保持健康与活力。 女性是社会的半边天&…

WordPress建站入门教程:如何选择和设置固定链接结构?

我们成功搭建好WordPress网站后,发布的文章对应的URL地址默认是使用“日期和名称型”,即是网站域名跟着的是年月日,最后是文章标题,如http://www.yigujin.com/2024/03/06/免费响应式WordPress博客主题JianYue/ 为了让我们的文章U…

Python算法题集_搜索二维矩阵

Python算法题集_搜索二维矩阵 题51:搜索二维矩阵1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【矩阵展开为列表二分法】2) 改进版一【行*列区间二分法】3) 改进版二【第三方模块】 4. 最优算法5. 相关资源 本文为Python算法题集之…

LeetCode 2482.行和列中一和零的差值

给你一个下标从 0 开始的 m x n 二进制矩阵 grid 。 我们按照如下过程,定义一个下标从 0 开始的 m x n 差值矩阵 diff : 令第 i 行一的数目为 onesRowi 。 令第 j 列一的数目为 onesColj 。 令第 i 行零的数目为 zerosRowi 。 令第 j 列零的数目为 zer…

AIOPS:Zabbix结合讯飞星火做自动化告警+邮件通知并基于人工智能提供解决方案

目前Zabbix官方已经提供Zabbix+ChatGPT的解决方案 ChatGPT一周年,你充分利用了吗?Zabbix+ChatGPT,轻松化解告警! 但是由于需要魔法等其他因素,比较不稳定,遂决定使用国内模型,这里我挑选的是讯飞星火,基于我之前的文档,在此基础上通过Zabbix的告警脚本实现调用AI模型…

二叉树入门

这篇博客通过手动创建的一个简单二叉树,实现二叉树遍历,返回节点,叶子个数,查找结点等相关操作。 1. 二叉树的概念 二叉树不为空时,由根节点,左/右子树组成,逻辑结构如下,当二叉树…

Java多线程——创建线程的几种方式

目录 引出创建线程有几种方式?方式1:继承Thread创建线程方式2:通过Runnable方式3:通过Callable创建线程方式4:通过线程池概述ThreadPoolExecutor API代码实现源码分析工作原理:线程池的阻塞队列选择线程池已…

leetcode 热题 100_轮转数组

题解一&#xff1a; 新数组存储&#xff1a;另外用一个数组存储移动后的结果&#xff0c;再复制回原数组。 class Solution {public void rotate(int[] nums, int k) {int[] result new int[nums.length];for (int i 0; i < nums.length; i) {result[(i k) % nums.lengt…

VS配置开发与远程调试笔记

先简单写一下&#xff0c;后续详细补充 场景&#xff1a;本地机器开发&#xff0c;虚拟机调试 准备工作&#xff1a; 由于要将生成的文件生成在虚拟机&#xff0c;避免反复拷贝&#xff0c;直接配置虚拟机共享文件夹进行写入&#xff0c;步骤如下&#xff1a; 虚拟机打开网…

作业1-32 B3620 x 进制转 10 进制

题目 思路 分析题目可知&#xff0c;此题可以用到大写字母&#xff0c;也就是从A开始&#xff0c;分别表示11往后的数字。 那么就用一个for循环&#xff0c;将零到九划分为一个等级&#xff0c;将A到Z划分为一个等级。 for(int i0;i<str.length();i){if(str[i]>0&&…

大模型时代下的自动驾驶研发测试工具链-SimCycle

前言&#xff1a; 最近OpenAI公司的新产品Sora的发布&#xff0c;正式掀起了AI在视频创作相关行业的革新浪潮&#xff0c;AI不再仅限于文本、语音和图像&#xff0c;而直接可以完成视频的生成&#xff0c;这是AI发展历程中的又一座重要的里程碑。AI正在不断席卷着过去与我们息…

万字详解,Java实现低配版线程池

文章目录 1.什么是线程池2.线程池的优势3.原理4.代码编写4.1 阻塞队列4.2 ThreadPool线程池4.3 Worker工作线程4.4 代码测试 5. 拒绝策略5.1 抽象Reject接口5.2 BlockingQueue新增tryPut方法5.3 修改ThreadPool的execute方法5.4 ThreadPool线程池构造函数修改5.5 拒绝策略实现1…

python 基础知识点(蓝桥杯python科目个人复习计划60)

今日复习计划&#xff1a;做题 例题1&#xff1a;可构造的序列总数 问题描述&#xff1a; 构造王国一年一度的构造大赛又开始了&#xff0c;这次构造王国的国王将只给出两个数k和n&#xff0c;需要大家回答出能够构造多少个符合以下条件的序列&#xff1a; 序列的长度为n&a…

机器学习笔记 计算机视觉中的测距任务常见技术路线

一、计算机视觉中的测距任务 测距是计算机视觉中的一项关键任务,涉及测量物体和相机之间的距离。这些信息可用于多种应用,包括机器人、自动驾驶汽车和增强现实。测距技术有很多种,包括主动式和被动式,每种技术都有自己的优点和局限性。主动测距技术,例如飞行时间、结构光和…

达梦数据库将DMHR模式下的表(迁移)导出为EXCEL文件

数据库迁移工具&#xff08;Data Transfer Service&#xff09;位于/dm8/tool/dts.其中/dm8是数据库安装目录。 在创建数据库时我们如果勾选了 “创建示例库DMHR(R)”&#xff0c;数据库实例中就带有这个数据库。 这里是用MobaXterm客户端远程控制ip地址为192.168.148.130的虚…

微服务架构 | 多级缓存

INDEX 通用设计概述2 优势3 最佳实践 通用设计概述 通用设计思路如下图 内容分发网络&#xff08;CDN&#xff09; 可以理解为一些服务器的副本&#xff0c;这些副本服务器可以广泛的部署在服务器提供服务的区域内&#xff0c;并存有服务器中的一些数据。 用户访问原始服务器…

如何将github上代码克隆到本地

1、需求 想把github上一篇论文的代码下载到本地。 2、前提 本地电脑已经安装了Git。&#xff08;没有安装需要到官网下载安装&#xff09; 3、解决方法 大功告成

20 卷积层里的填充和步幅【李沐动手学深度学习v2课程笔记】

1. 填充和步幅 在上下左右分别填充一些0 2. 代码实现 2.1 填充 我们创建一个高度和宽度为3的二维卷积层&#xff0c;并在所有侧边填充1个像素。给定高度和宽度为8的输入&#xff0c;则输出的高度和宽度也是8。 import torch from torch import nn# 为了方便起见&#xff0c;…