半监督学习介绍

article/2025/3/15 17:00:20

转载地址

https://blog.csdn.net/ice110956/article/details/13775071

什么是半监督学习?


传统的机器学习技术分为两类,一类是无监督学习,一类是监督学习。

无监督学习只利用未标记的样本集,而监督学习则只利用标记的样本集进行学习。

但在很多实际问题中,只有少量的带有标记的数据,因为对数据进行标记的代价有时很高,比如在生物学中,对某种蛋白质的结构分析或者功能鉴定,可能会花上生物学家很多年的工作,而大量的未标记的数据却很容易得到。

这就促使能同时利用标记样本和未标记样本的半监督学习技术迅速发展起来。

半监督学习理论简述:


半监督学习有两个样本集,一个有标记,一个没有标记.分别记作

Lable={(xi,yi)},Unlabled={(xi)}.并且数量上,L<<U.

1. 单独使用有标记样本,我们能够生成有监督分类算法

2. 单独使用无标记样本,我们能够生成无监督聚类算法

3. 两者都使用,我们希望在1中加入无标记样本,增强有监督分类的效果;同样的,我们希望在2中加入有标记样本,增强无监督聚类的效果.

一般而言,半监督学习侧重于在有监督的分类算法中加入无标记样本来实现半监督分类.也就是在1中加入无标记样本,增强分类效果.

半监督学习的动力,motivation


某人讨论的时候,总是教导我们的词,motivation.一下午四五遍地强调写论文要有motivation.下面说说半监督学习的motivation.

1. 有标记样本难以获取.

需要专门的人员,特别的设备,额外的开销等等.

2. 无标记的样本相对而言是很廉价的.

半监督学习与直推式学习的区别:


这个网上也有论述.主要就是半监督学习是归纳式的,生成的模型可用做更广泛的样本;而直推式学习仅仅为了当前无标记样本的分类.

简单的说,前者使用无标记样本,为了以后其他样本更好的分类.

后者只是为了分类好这些有限的无标记样本.

下面几个图来生动形象地诠释半监督的好处:

上图中,只有两个标记样本,X,O,剩下绿点是无标记的样本.通过无标记样本的加入,原来的分类界限从0移到了0.5处,更好地拟合了样本的现实分布.

半监督学习算法分类:


1. self-training(自训练算法)

2. generative models生成模型

3. SVMs半监督支持向量机

4. graph-basedmethods图论方法

5. multiview learing多视角算法

6. 其他方法

接着简单介绍上述的几个算法

self-training算法:

还是两个样本集合:Labled={(xi,yi)};Unlabled= {xj}.

执行如下算法

Repeat:

1. L生成分类策略F;

2. F分类U,计算误差

3. 选取U的子集u,即误差小的,加入标记.L=L+u;

重复上述步骤,直到U为空集.

上面的算法中,L通过不断在U中,选择表现良好的样本加入,并且不断更新子集的算法F,最后得到一个最有的F.

Self-training的一个具体实例:最近邻算法

记d(x1,x2)为两个样本的欧式距离,执行如下算法:

Repeat:

1. L生成分类策略F;

2. 选择x = argmin d(x, x0). 其中x∈U,min x0∈L.也就是选择离标记样本最近的无标记样本.

2. F给x定一个类别F(x).

3. (x,F(x))加入L中

重复上述步骤,直到U为空集.

上面算法中,也就是定义了self-training的”误差最小”,也就是用欧式距离来定义”表现最好的无标记样本”,再用F给个标记,加入L中,并且也动态更新F.

下面是这种算法的效果图:

上图从两个点出发,不断加入最近邻点,不断更新F.

上面的算法表现良好,当然更多的是表现不好.如下:


生成模型


生成算法来源于假设,比如我们假设原样本满足高斯分布,然后用最大释然的概率思想来拟合一个高斯分布,也就是常用的高斯混合模型(GMM).

简单介绍下高斯混合模型:

假设如下的样本分布:

我们假设他们满足高斯分布.

高斯分布的参数有: θ = {w1, w2, µ1, µ2, Σ1, Σ2}

利用最大释然的思想,最大化如下概率:

p(x, y|θ) = p(y|θ)p(x|y, θ).

得到如下的假设分布:

顺便贴一个介绍高斯混合模型日志:

http://blog.csdn.net/zouxy09/article/details/8537620


接着是我们的半监督生成算法:


样本分布如下:

算法过后,得到如下分布:


对比这两个图,说明下高斯混合模型与半监督生成模型的区别:

这两种方法的释然函数不同,前者最大化标记样本出现概率,后者加入了无标记样本出现概率.

算法的具体实现,请参见E-M算法.

这样生成的算法也有许多不良表现,如下:

假设原始的分布式这样的:


通过GMM,它变成了这样:


几个需要注意的地方:

1. 高斯混合的局部收敛性

2. 减少无标记样本的权值

半监督SVM,图算法模型,流行模型等.


SVM的理论不再赘述,就是一个最优超平面:

偷一张很牛逼的SVM图:



这些内容涵盖比较广泛,一篇日志装不下.有兴趣地可以进一步了解.

最后是小结


上两张图:



由于我们对火星基本不了解,探索号带着稀少的标记样本知识飞到了火星.接着就是不断地接触新的样本,更新自己的算法来适应火星环境.

还有我们,从小不断地接触新的事物,不断地被灌输标记或无标记的样本,活到老学到老.


http://chatgpt.dhexx.cn/article/kyOCPkcK.shtml

相关文章

半监督目标检测相关方法总结

戳我&#xff0c;查看GAN的系列专辑~&#xff01; 等你着陆&#xff01;【GAN生成对抗网络】知识星球&#xff01; 作者丨kinredon知乎 编辑丨极市平台 来源丨https://zhuanlan.zhihu.com/p/404160115 近期阅读了一些半监督目标检测&#xff08;Semi-Supervised Object Detecti…

半监督深度学习

个人博客&#xff1a;wyxogo.top 半监督学习 在有标签数据无标签数据混合成的训练数据中使用的机器学习算法。一般假设&#xff0c;无标签数据比有标签数据多&#xff0c;甚至多得多。 要求&#xff1a; 无标签数据一般是有标签数据中的某一个类别的&#xff08;不要不属于的…

半监督学习深度学习算法

该文章主体摘自知乎糯米稻谷的文章&#xff0c;对一些细节添加了自己的理解 文章链接https 半监督学习 啥是半监督学习&#xff08;Semi-supervised Learning&#xff09;1.简单自训练&#xff08;simple self-training&#xff09;2.协同训练&#xff08;co-training&#xff…

深度半监督学习方法总结

深度神经网络已被证明在对大量标记数据进行监督学习的训练中是非常有效的。 但是大多数现实世界的数据并没有被标记&#xff0c;并且进行全部标记也是不太现实的&#xff08;需要大量的资源、时间和精力&#xff09;。 为了解决这个问题半监督学习 ( semi-supervised learning)…

深度半监督学习

半监督学习介绍 Zhu X, Goldberg A B. Introduction to semi-supervised learning[J]. Synthesis lectures on artificial intelligence and machine learning, 2009, 3(1): 1-130. 链接半监督 无监督学习&#xff1a;主要目的是从独立同分布采样中得到的n个独立样本中找到in…

半监督SVM

半监督SVM 什么是半监督学习半监督SVM要做什么TSVM 这里是阅读周志华的《机器学习》中关于半监督SVM&#xff08;S3VM&#xff09;的笔记。 什么是半监督学习 在数据的搜集中&#xff0c;获得标记数据的成本是高昂的&#xff0c;而获得未标记的数据则是低廉的&#xff0c;为此…

半监督学习代码实战

sklearn官方例子——用半监督学习做数字识别 什么是半监督学习 半监督学习很重要&#xff0c;为什么呢&#xff1f;因为人工标注数据成本太高&#xff0c;现在大家参加比赛的数据都是标注好的了&#xff0c;那么如果老板给你一份没有标注的数据&#xff0c;而且有几百万条&am…

半监督学习综述

Chapter 7 Semi-supervised Learning 翻译不易&#xff0c;未经允许请勿转载&#xff01; Author: Mohamed Farouk Abdel Hady and Friedhelm Schwenker Translator: Howard Wonanut 摘要 传统的监督学习方法需要使用有标签数据建立模型。然而&#xff0c;在现实世界中给训练…

半监督学习(一)

什么是半监督学习? 传统的机器学习技术分为两类&#xff0c;一类是无监督学习&#xff0c;一类是监督学习。 无监督学习只利用未标记的样本集&#xff0c;而监督学习则只利用标记的样本集进行学习。 但在很多实际问题中&#xff0c;只有少量的带有标记的数据&#xff0c;因为…

半监督学习简介

“我们预计从长远来看&#xff0c;无监督学习将变得更加重要。人类和动物的学习在很大程度上是不受监督的&#xff1a;我们通过观察来发现世界的结构&#xff0c;而不是通过被告知每个物体的名称。”——LeCun, Bengio, Hinton, Nature (2015)。 Semi-Supervised Learning 半监…

半监督学习

1. 介绍 1.1 什么是半监督学习 所给的数据有的是有标签的&#xff0c;而有的是没有标签的。常见的两种半监督的学习方式是直推学习&#xff08;Transductive learning&#xff09;和归纳学习&#xff08;Inductive learning&#xff09;。   直推学习&#xff08;Transduct…

半监督学习(SEMI-Supervised Learning)

半监督学习的工作原理 想象一下&#xff0c;收集了大量未标记的数据&#xff0c;您想在这些数据上训练模型。手动标记所有这些信息可能会花费你一大笔钱&#xff0c;除了需要几个月的时间来完成注释。这时候半监督机器学习方法就派上用场了。工作原理很简单。无需将标签添加到…

半监督学习概述

1、半监督学习 今天在阅读一篇论文时了解了这个之前一直不太清晰的概念。下面是查阅了相关资料后对半监督学习的理解。如有错误&#xff0c;望更正。 半监督学习是一种介于监督学习和无监督学习之间的学习凡是&#xff0c;我们都知道&#xff0c;在监督学习中&#xff0c;样本…

JS中使数组倒序排列

使用reverse方法 注意&#xff1a;reverse方法会使得原数组发生变化

JS实现数组和数组对象倒序(reverse方法)

const arr1 [{a:1},{b:2},{c:3},{d:4}]; const arr2 [1,2,3,4,5,6,7]; console.log(倒序前,arr1,arr2); arr1.reverse(); arr2.reverse(); console.log(倒序后,arr1,arr2);

js实现数组翻转(倒序输出)

//倒序排列var arr[2,30,1,9,5,7];var brrarr.reverse();for(var i0;i<brr.length;i){document.write(brr[i]);}console.log(brr);//控制台也能看到数组的输出

js实现数组元素的倒序

模拟循环录入采集名单存储到数组中并编码实现数组元素的倒序查看名单 :例如数组原名单: A B C D E ,倒序后展示为: E D C B A 运行后的结果如下图所示&#xff1a;

JS数组对象的正序、倒序和根据中文首字母排序

//数组对象方法排序:升序 sortByKey(array,key){return array.sort(function(a,b){var xa[key];var yb[key];return ((x<y)?-1:((x>y)?1:0));}); },//数组对象方法排序:降序 sortDownByKey(array,key){return array.sort(function(a,b){var xa[key];var yb[key];return…

js中数组反向、排序reverse、sort

全栈工程师开发手册 &#xff08;作者&#xff1a;栾鹏&#xff09; js系列教程1-数组操作全解 js中数组反向、排序 数组反向使用reverse函数&#xff0c;数组排序使用sort函数&#xff0c;排序函数可以传入比较函数&#xff0c;也可以修改数组圆形&#xff0c;自定义添加排序…