《机器学习高频面试题详解》3.1:半监督学习

点击上方卡片链接就可以进入专栏,专栏右上角有订阅选项,欢迎大家订阅~

前言

大家好,我是鬼仔,今天带来《机器学习高频面试题详解》专栏的第三章内容:半监督学习。第一节主要涉及核心概念、基本算法和原理,第二节会重点讲述有代表性的半监督学习算法:PUlearning。

这是鬼仔第一次开设专栏,每篇文章鬼仔都会用心认真编写,希望能将每个知识点讲透、讲深,帮助同学们系统性地学习和掌握机器学习中的基础知识,希望大家能多多支持鬼仔的专栏~

目前这篇是试读,后续的文章需要订阅才能查看哦,专栏预计更新30+篇文章(只增不减),具体内容可以看专栏介绍,大家的支持是鬼仔更新的动力!

本文大纲

一、原理

1. 应用场景

2. 三大基本假设

3. 算法分类

二、面试真题

1. 半监督学习中,如何解决维度诅咒现象?

2. 半监督学习中,常用的自训练算法有哪些?

3. 半监督深度学习有哪些常用方法?

4. 半监督学习在实际应用中存在哪些问题?

5. 半监督学习的优缺点?

一、原理

1. 应用场景

在实际业务中,样本数据需要请专门的审核人员进行标注,成本很高,而且很多任务很难获得如全部真实标签这样的强监督信息。所以,算法同学获得的数据往往缺乏有效的标签。半监督学习的提出就是为了解决此类问题。

半监督学习可以自动地利用未标记样本来提升学习性能,而不需要依赖外界交互。即使在少量样本标签的情况下,也可以充分利用大量无标签样本来提高学习性能,避免了数据资源的浪费。同时,半监督学习可以解决有标签样本较少时监督学习方法泛化能力不强和缺少样本标签引导时无监督学习方法不准确的问题。

半监督学习的意义在于:

1)节省标记数据的成本。标记数据的获取和标记是非常耗时和昂贵的,利用未标记数据可以减少标记数据的需求和成本。

2)提高模型的泛化能力。利用未标记数据可以提高模型的泛化能力,因为未标记数据可以提供更多的信息和更广泛的数据分布。

3)提高分类准确率。利用未标记数据可以提高分类准确率,因为未标记数据可以提供更多的信息和更广泛的数据分布。

2. 三大基本假设

与只使用带标签数据的有监督学习相比,半监督学习还使用了未标记的数据,要想因此获得更准确的预测结果,首先需要满足一个先决条件:未标记数据必须是有意义的,具有潜在价值的样本而非无用的噪声样本。同时半监督学习还需要满足以下几个基本假设:

1)平滑假设

如果两个数据点在低维空间中很接近,那么它们在高维空间中也很可能属于同一类别。这个假设可以用来设计半监督学习算法,例如基于图的半监督学习算法。

基于图的半监督学习算法利用未标记数据和标记数据构建一个图,其中每个节点表示一个数据点,边表示两个节点之间的相似度或距离。然后,通过在这个图上进行流形学习或半监督分类,来预测未标记数据的标签。

2)聚类假设

如果样本点在同一簇中,它们很可能属于同一类。实际上,聚类假设是平滑假设的一种特殊情况。在平滑假设中,样本不一定要形成明显的簇,例如整个样本空间都是稠密且均匀的情况下,就没有聚类簇的概念。只有当样本空间中形成明显的簇时,聚类假设才会发挥作用。

3)流形假设

当特征维度不断增加时,距离度量的计算很容易就失效,此时密度和距离的概念趋于无效,则上述两大假设难以成立,而流形假设主要内容即假定如果高维样本恰好可以映射到一个低维的流形结构上,此时在低维的流型空间中,前两大假设仍旧是可以成立的。

3. 算法分类

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

一种简单而有效的半监督学习方法。它的基本思想是使用已经标记的数据训练一个分类器,然后使用这个分类器对未标记的数据进行分类,将分类器对未标记数据的分类结果作为标记数据,将这些数据加入到已标记的数据集中,然后重新训练分类器。这个过程不断迭代,直到分类器的性能不再提高或者达到预设的迭代次数为止。

self-training算法的优点是简单易用,不需要复杂的模型和算法,而且可以利用未标记的数据来提高分类器的性能。但是,它也存在一些缺点,例如可能会出现错误传播的问题,即分类器对未标记数据的分类结果可能是错误的,这些错误标记会影响后续的训练,导致分类器性能下降。

为了解决这个问题,可以采用一些改进的self-training算法,例如加入阈值控制、利用置信度筛选可靠的未标记数据等方法,来提高分类器的性能和鲁棒性。同时,self-training算法也可以与其他的半监督学习方法结合使用,例如基于图的半监督学习方法、基于生成模型的半监督学习方法等,来进一步提高分类器的性能。

2)Graph-based Semi-supervised Learning(基于图的半监督算法)

基于图的半监督学习算法是一类常见的半监督学习方法,它的基本思想是通过构建一个图来表示数据之间的相似性或关系,然后利用图上的标记信息和未标记信息进行学习。

基于图的半监督学习算法可以分为以下几类:

  • 基于标签传播的算法:该算法基于一个假设,即相似的数据点在标签空间中也应该是相似的。它通过构造图结构(数据点为顶点,点之间的相似性为边)来寻找训练数据中有标签数据和无标签数据的关系。它将标记信息在图上进行传播,来预测未标记数据的标签。基于标签传播的算法包括标签传播算法、半监督谱聚类算法等。
  • 基于图嵌入的算法:该算法通过将图嵌入到低维空间中,来学习数据的低维表示。它通常使用流形学习和降维技术来实现。基于图嵌入的算法包括半监督流形学习算法、半监督多任务学习算法等。
  • 基于半监督支持向量机的算法:该算法通过构建一个最大边界超平面来进行分类,同时利用未标记数据来扩展支持向量机的边界,提高分类的准确性。基于半监督支持向量机的算法包括半监督支持向量机算法、半监督核支持向量机等。

基于图的半监督学习算法的优点是可以利用未标记数据来提高分类器的性能,同时可以通过图的结构来表达数据之间的相似性和关系,从而提高分类器的鲁棒性。但是,基于图的半监督学习算法也存在一些问题,例如如何选择合适的相似度度量和图构建方法,如何避免过拟合和错误传播等问题。

3)Semi-supervised supported vector machine(半监督支持向量机,S3VM)

在传统的支持向量机中,只

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

机器学习高频面试题详解 文章被收录于专栏

专栏作者曾在校招期间拿到包括字节、微信和华为等多家大厂的SSP offer,该专栏主要是为了帮助同学们系统性地学习和掌握机器学习中的基础知识。专栏详细地整理了各大厂的算法岗面经,力争深入浅出地讲解重要知识点,适合人群为准备校招或者实习,且目标岗位为算法岗、数据挖掘岗或者数据分析岗的同学。

全部评论

相关推荐

最终还是婉拒了小红书的offer,厚着脸皮回了字节。其实这次字节不管是组内的氛围、HR的沟通体验,都比之前好太多,开的薪资也还算过得去,这些都是让我下定决心的原因之一。但最核心的,还是抵不住对Agent的兴趣,选择了Ai Coding这么一个方向。因为很多大佬讲过,在未来比较火的还是属于那些更加垂类的Agent,而Ai Coding恰好是Coding Agent这么一个领域,本质上还是程序员群体和泛程序员群体这个圈子的。目前也已经在提前实习,也是全栈这么一个岗位。就像最近阿里P10针对前端后端等等不再那么区分,确实在Agent方向不太区分这个。尤其是我们自己做AI Coding的内容,基本上90%左右的内容都是AI生成的,AI代码仓库贡献率也是我们的指标之一。有人说他不好用,那肯定是用的姿态不太对。基本上用对Skill、Rules 加上比较好的大模型基本都能Cover你的大部分需求,更别说Claude、Cursor这种目前看来Top水准的Coding工具了(叠甲:起码在我看来是这样)。所以不太区分的主要原因,还是针对一些例如Claude Code、Cursor、Trae、Codex、CC等一大堆,他们有很多新的概念和架构提出,我们往往需要快速验证(MVP版本)来看效果。而全栈就是这么快速验证的一个手段,加上Ai Coding的辅助,目前看起来问题不大(仅仅针对Agent而言)。而且Coding的产品形态往往是一个Plugin、Cli之类的,本质还是属于大前端领域。不过针对业务后端来看,区分还是有必要的。大家很多人也说Agent不就是Prompt提示词工程么?是的没错,本质上还是提示词。不过现在也衍生出一个新的Context Eneering,抽象成一种架构思想(类比框架、或者你们业务架构,参考商品有商品发布架构来提效)。本质还是提示词,但是就是能否最大化利用整个上下文窗口来提升效果,这个还是有很多探索空间和玩法的,例如Cursor的思想:上下文万物皆文件, CoWork之类的。后续也有一些Ralph Loop啥的,还有Coding里面的Coding Act姿态。这种才是比较核心的点,而不是你让AI生成的那提示词,然后调用了一下大模型那么简单;也不是dify、LangGraph搭建了一套workflow,从一个node走到另外一个node那么简单。Agent和WorkFLow还是两回事,大部分人也没能很好的区分这一点。不过很多人说AI泡沫啥啥啥的,我们ld也常把这句话挂在嘴边:“说AI泡沫还是太大了”诸如此类。我觉得在AI的时代,懂一点还是会好一点,所以润去字节了。目前的实习生活呢,除了修一些Tools的问题,还包括对比Claude、Cursor、Trae在某些源码实现思想上的点,看看能不能迁移过来,感觉还是比较有意思。不过目前组内还是主要Follow比较多,希望下一个阶段就做一些更有创新的事情哈哈。这就是一个牛马大学生的最终牧场,希望能好好的吧。说不定下次发的时候,正式AI泡沫结束,然后我又回归传统后端这么一个结局了。欢迎交流👏,有不对的🙅不要骂博主(浅薄的认知),可以私聊交流
码农索隆:和优秀的人,做有挑战的事
点赞 评论 收藏
分享
评论
4
5
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务