半监督学习|深度学习(李宏毅)(九)

简介: 半监督学习|深度学习(李宏毅)(九)

一、介绍


  1. 什么是半监督学习


假设有以下数据,一部分是有标签的数据,另一部分是无标签的数据:


UN{0]XL(0LMTH3BU4G)@SKT.png

在实际情况下,一般无标签数据的量远大于有标签数据的量,即XFD3][R9Q$6UAP4[BKX4SRL.png,因为为数据进行标注是需要成本的。半监督学习使用大量的未标记数据,以及同时使用标记数据,来进行模式识别工作。


  1. 半监督学习的分类


半监督学习可以分为transductive semi-supervised learning和inductive semi-supervised learning两种,他们的区别在于:


5VPTT@DUQ~UH)M]]YM@OKV1.png

9{ENQRBR4OX3[NX23{3_Z_O.png


  1. 为什么半监督学习可能会有用


无标签数据虽然没有标签但是它的分布可能会提供一些有用的信息。在进行半监督学习时通常会伴随一些假设,半监督学习效果好不好往往取决于这些假设合不合理。


  1. Outline


接下来将包含以下内容,其中包含两种假设:


LI_L3WWKK[`0T`LQ{6NT`QU.png

                                                  Outline


二、生成模型的半监督学习


)$P@[F}G{BGQ[G%VY$VX(Y1.png

                                              生成模型


对于生成模型,如果再考虑进无标签数据就有可能影响模型的均值、方差以及决策边界。


8V%$N%]TTFB[)9%_}TBJJBB.png

                                     无标签数据对生成模型的影响


可以使用EM算法对模型(这里以两个不同均值相同方差的高斯分布为例)进行更新,该更新过程会收敛,最终获得新的生成模型,该过程的步骤如下:


4BHOOHIK(]HT[$HZ5F{{KRO.png


如果只有标注数据则只需要极大化以下对数似然函数即可求解,且有闭式解:


Z_6Z373HY0C3%4OK)[NT%9G.png


如果考虑进未标注数据就要极大化以下对数似然函数:


D6~)A(6UJ]_K(C5PT36$F$0.png


而极大化上式是没有闭式解的,因此需要迭代的方式来进行参数的更新,也就是说完成一次上述的E步和M步就会使对数似然函数增大一点,最终该方法会收敛。


三、低密度分离假设


  1. 简介


该假设是指在不同的类别的分界处几乎是没有数据的(低密度),也就是说不同类别之间有明显的分界的鸿沟,可以认为数据是“非黑即白”的。


在下图中两种分割方式虽然都能将标注数据100%地分开,但是如果考虑进未标注数据的话显然左边的线效果更好,因此未标注数据的作用就是挑选一条效果更好的分割线。


5Q)[UE`Q@V~%S)C8)2@37TN.png

                                                       非黑即白


  1. Self Training(自学习)


自学习是低密度假设最简单的方法,其主要步骤如下:


D%PWRX@R~PY41S]$PN2BIW5.png

L[70CP8_F{Y(1R)@34J@VTG.png


另外这里还有硬标签软标签两个概念,在生成模型中我们使用软标签(即使用数据作为每一类的概率),而在自学习中使用的是硬标签(即强行根据设定的方法将未标注数据划归到某一类中)。


可以考虑在使用神经网络训练模型的自学习过程中,如下图所示,如果使用软标签则更新模型时新的标注数据不会起作用(因为已有模型已经可以输出软标签的结果),而使用硬标签就可以起到更新模型的效果:


0D`YRIR`)5ODET585JPC~KP.png

                                                  神经网络


  1. Entropy-based Regularization


上面提到的使用硬标签的方式可能会让人觉得过于武断,这里的Entropy-based Regularization将介绍一种新的方式,同样地构建的模型输出一个与类别数量同样维度的向量,每个维度代表该样本属于该类的概率,即K@ZK{91%QTA}]FA45RV}}K2.png,这里

M6DI}EM_PQKKJ_5E{])7W7C.png

                                             模型输出向量

我们的目的是为了使得模型获得}`E[K{U[SFS%)59PIAW@OWV.png作为输入时能输出下面展示的比较好的标签向量(第1、2种情况),也就是说要尽可能地使得输出的标签的数值集中在某一维度:


1_`BTL@TM4CKQJ%Z2_7PY$2.png

                                       3种输出的情况


接着我们定义信息熵的概念,信息熵会告诉我们分布的集中程度,比较集中的分布就会有比较小的信息熵。在上图中,前两种情况的交叉熵就会比较小,而第三种情况的交叉熵就会比较大,交叉熵的计算公式如下:


0DFB~$7GI5L]_4}]_99@POB.png


我们的目的是需要让标注数据的交叉熵和未标注数据的信息熵都要小,也就是说对于训练的模型来说要使得标注数据的预测正确且未标注数据的预测集中,因此我们使用以下损失函数:


SAH3SU%6ZGWU8RC52}`283X.png


上式中$%IBE68Y[J$ZU]`2K3OW0XW.png可以用来调节哪一部分更重要,这一过程类似于正则化的过程,Entropy-based Regularization也因此而得名。


  1. 概览:Semi-supervised SVM(半监督支持向量机)


半监督支持向量机的做法大体是对于未标注数据而言可以穷举其label所有可能的情况,然后对每一种情况训练一个SVM,训练的目标是:


Z]ZI]_WKDL`V1ZGF_2YZ`62.png


如下图所示,在穷举训练的过程中挑选最大margin和最小error的模型,该模型对应的未标注数据的标签就是最好的情况:


R]LVXG_Y0RW93NAM)WS3S}F.png

                                             Semi-supervised SVM


这种方法的缺点就是对于很多的未标注数据穷举的方式几乎不可能完成,因此该方法的作者提供了一种approximate的方法,其基本精神是:一开始首先获得未标注数据的标签,然后改一笔数据的标签看看可不可以使上面提到的度量标准变得好一点,如果可以就保留该标签的变动。


四、平滑性假设


  1. 概念


如果未标注数据不是均匀分布的,则同样类别的数据之间应该会通过一块高密度区域连接在一起,比较精确的定义是:

IT3R7QD`})G_2X8V0YJ6_MJ.png

]1@)9DZO``0%TU]OKXZ4[`M.png

                                                   平滑性假设


  1. 支持平滑性假设的一些例子


  • 数字识别


在下图中,可能两个“2”看起来并不像而第二个“2”和“3”看起来更像一点,因此容易误分类。但如果数据中两个“2”之间有多个过渡形态,则可以利用平滑性假设将两个“2”正确分类到一起:


FDOQSH@[F3MCIE3S)5S(IMH.png

                                                   数字识别


  • 人脸识别


在人脸识别过程中也同理,因为两张人脸之间有逐渐过渡的状态,因此可以将同一个人的人脸识别出来:


RWTBX@2DXLPUZPQEU][SA6D.png

                                                     人脸识别


  • 文档分类


同一类别的文章可能会有专属的词汇,如果如下图某些词既出现在标注的文档里也出现在未标注的文档里,那么分类工作会变得容易些:


42_YMX]O)$[I3~@7%WW@J56.png

                                    词汇重合


但是实际中往往不会出现重合的词汇,这是因为自然语言中的词汇是多种多样的,即使是同一类别的文章也可能不出现重合的词汇,如下图:


RG4E4Q[BN0YK3ZVE%ENY4OO.png

                                 词汇不重合


但是如果有足够多的未标注数据则可以根据词汇间的过渡关系进行正确的分类:


KR~KV](O`X84X%%T$E{_QV5.png

                                               词汇过渡


  1. 平滑性假设的一种简单实现方法


一种简单的实现方法是聚类后标签(cluster and then label),这种方法是先将数据进行聚类然后根据平滑性假设获得数据的标签。


SZV71RYPDORN}2W3_8RX@@P.png

                                          cluster and then label


这种方法是很直观的,但是这种方法不一定会得到好的结果,因为它的假设是你可以把同一类的样本点聚类在一起,而这其实是不容易的。


举例来说,在图像分类中如果单纯地将图像按照像素的相似程度聚类到一起得到的效果一般会很差,需要设计一个较好的表示来描述图像(比如使用Deep AutoEncoder的方式来提取特征),这样的效果会好一些。


  1. 基于图的方法


  • 定性使用基于图的方法


使用图来表示数据与数据之间通过高密度区域相连会有很好的效果,有的数据之间建立图的关系是很自然的比如网页之间的链接关系或论文之间的引用关系。通过构建图可以直观地表示数据之间的连接关系:

$`3VXPP4P34[(30{CM%J33H.png

                                        Graph-based Approach


9AW{8}{3)W2}NFTN06EO5{P.png


通常需要自己去寻找相似性的度量方法,比如在图像处理中如果使用图像像素之间的接近程度作为相似性的度量标准往往效果不太好,但是如果使用Deep AutoEncoder获得的图像的特征来进行度量效果就会好一点。

可以看到该函数由于具有指数的关系,只有当和$5U{4EGS_G{TE7~9N(`_BAR.png非常接近时才会有比较大的相似性,而稍微距离有点远就会使得相似性不高,由此避免了将下图中绿色点和红色点看做高相似性的情况的发生:


3(Q%F2GO8}Y}Y91ZM)(]}1W.png

                                  避免误判相似性


在有了相似性的度量标准后要有具体的方法来决定两个数据之间是否有边,有两种方法:


①K Nearest Neighbor:设定一个K值,将每个点与距离自己最近的前K个点相连;


②e-Neighborhood:将每个与距自己的距离小于e的点相连。


W)D3KK7$~GO0C8VNANLT9FR.png

                       K Nearest Neighbor和e-Neighborhood


图的作用是使得标签可以在相连的其他样本之间传递,如下图所示,一个数据的类别将影响它的临近点。基于图的方法的基本精神是,在图上已经有一些标注数据,那么跟它们相连的样本,属于同一类的概率就会上升,每一笔数据都会去影响它的邻居。而图带来的最重要的好处是,这个影响是会随着边传递出去的,即使有些点并没有真的跟标注数据相连,也可以被传递到相应的属性:


FK8)3INLLRDAJHH$LA1CTTT.png

                                                 标签的传递


  • 定量使用基于图的方法


我们定义图的smooth值,并且我们希望使用训练的模型构建的图的smooth值越小越好。


我们通过以下公式定义图的平滑度(smoothness):


OJAMR2I8F~J(KSCFUGTDRZ0.png

                                                      example

在上图中显然左边的更平滑。左边的图的特点是其环状的节点都是同样的标签,而右边的图的环状的节点的标签不同,因此可以看出我们的目的是使得构建的图的数据较集中的部分具备一致的标签,这也是使0S1MO%[{EEKI$XO06PDRI06.png尽可能要小的作用。

可以将0S1MO%[{EEKI$XO06PDRI06.png写成矩阵或向量相乘的形式:

MJ]472FVTLG@7NF7P7B$_0J.png


AJ540PQ{VE88(BP@M%8TRSR.png

{W$TL`}{E3HY~PZN80(AGO7.png

                                                 D和W计算方式


在模型训练过程中需要使用以下激活函数,将1I5A$(VRI3S%JR6MA1SG7%U.png作为一个正则化项,如此训练的模型才会越来越平滑:


IR44~JZ[_C]2O7$G3~R@5GB.png


具体训练的时候,不一定只局限于模型的输出要smooth,可以对中间任意一个隐藏层加上smooth的限制:


6FPYG]S~QI46JEY))_Z[`KX.png

                                                  smooth的限制


五、Better Representation


这部分只做简单介绍,等到无监督学习的时候再具体介绍。Better Representation的精神是去芜存菁,化繁为简。Better Representation旨在寻找未标注数据的更好的表达。

举个例子,在神雕侠侣中,杨过要在三招之内剪掉樊一翁的胡子,胡子的变化是比较复杂的,但头的变化是有规律的,杨过看透了这一件事情就可以把胡子剪掉。在这个例子中,樊一翁的胡子就是original representation,而他的头就是你要找的better representation。

3@0(VB5V4}8~(%J@TC`JA[9.png

                                                                   example

相关文章
|
19天前
|
机器学习/深度学习 人工智能 自然语言处理
|
22小时前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习在图像识别中的应用与挑战探索机器学习中的自然语言处理技术
【4月更文挑战第30天】 随着人工智能技术的飞速发展,深度学习已经成为计算机视觉领域的核心动力。本文将探讨深度学习在图像识别任务中的关键技术、应用实例以及面临的主要挑战。我们将重点讨论卷积神经网络(CNN)的架构优化、数据增强技术以及迁移学习的策略,并通过具体案例分析其在医疗影像、自动驾驶和面部识别等领域的应用成效。同时,我们也将指出当前模型泛化能力不足、对抗性攻击以及算力资源需求等挑战,并提出潜在的解决方向。 【4月更文挑战第30天】 在人工智能领域,自然语言处理(NLP)是赋予机器理解和响应人类语言能力的关键技术。本文将深入探讨NLP的发展历程、核心技术及其在不同领域的应用案例。我们将从
|
1天前
|
机器学习/深度学习 PyTorch 算法框架/工具
【Python机器学习专栏】PyTorch在深度学习中的应用
【4月更文挑战第30天】PyTorch是流行的开源深度学习框架,基于动态计算图,易于使用且灵活。它支持张量操作、自动求导、优化器和神经网络模块,适合快速实验和模型训练。PyTorch的优势在于易用性、灵活性、社区支持和高性能(利用GPU加速)。通过Python示例展示了如何构建和训练神经网络。作为一个强大且不断发展的工具,PyTorch适用于各种深度学习任务。
|
1天前
|
机器学习/深度学习 人工智能 缓存
安卓应用性能优化实践探索深度学习在图像识别中的应用进展
【4月更文挑战第30天】随着智能手机的普及,移动应用已成为用户日常生活的重要组成部分。对于安卓开发者而言,确保应用流畅、高效地运行在多样化的硬件上是一大挑战。本文将探讨针对安卓平台进行应用性能优化的策略和技巧,包括内存管理、多线程处理、UI渲染效率提升以及电池使用优化,旨在帮助开发者构建更加健壮、响应迅速的安卓应用。 【4月更文挑战第30天】 随着人工智能技术的迅猛发展,深度学习已成为推动计算机视觉领域革新的核心动力。本篇文章将深入分析深度学习技术在图像识别任务中的最新应用进展,并探讨其面临的挑战与未来发展趋势。通过梳理卷积神经网络(CNN)的优化策略、转移学习的实践应用以及增强学习与生成对
|
1天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别在自动驾驶技术中的应用
【4月更文挑战第30天】 随着人工智能技术的飞速发展,深度学习作为其重要分支之一,在图像识别领域取得了显著成果。特别是在自动驾驶技术中,基于深度学习的图像识别系统不仅增强了车辆对环境的感知能力,而且提高了决策系统的智能水平。本文将探讨深度学习在自动驾驶图像识别中的应用机制,分析关键技术挑战,并提出未来的发展趋势。通过综合现有文献和最新研究成果,我们旨在为读者提供一个关于该技术如何塑造未来交通生态的清晰视角。
|
1天前
|
机器学习/深度学习 人工智能 算法
深度学习在图像识别中的应用与挑战移动应用开发的未来:跨平台框架与原生操作系统的融合
【4月更文挑战第30天】 随着人工智能的迅猛发展,深度学习技术已成为图像识别领域的核心竞争力。本文章将探讨深度学习在图像识别中的应用,并分析其面临的主要挑战。我们将从卷积神经网络(CNN)的基础架构出发,讨论其在图像分类、目标检测和语义分割等方面的应用案例,同时指出数据偏差、模型泛化能力以及对抗性攻击等问题对图像识别准确性的影响。通过实例分析和最新研究成果,本文旨在为读者提供一个关于深度学习在图像处理领域内应用的全面视角。
|
2天前
|
机器学习/深度学习 传感器 自动驾驶
探索基于深度学习的图像识别在自动驾驶技术中的应用
【4月更文挑战第29天】 在自动驾驶技术的迅猛发展中,图像识别作为其核心技术之一,正经历着从传统算法向基于深度学习方法的转变。本文深入探讨了深度学习在图像识别领域的应用及其对自动驾驶系统性能的影响。通过分析卷积神经网络(CNN)在特征提取、模式识别中的能力,以及循环神经网络(RNN)在序列数据处理上的优势,文章揭示了深度学习如何提升自动驾驶车辆对环境的感知能力。同时,考察了数据增强、迁移学习等策略在处理自动驾驶中的视觉问题上的实际效果和潜力。最后,讨论了目前技术面临的挑战及未来可能的发展方向。
|
2天前
|
机器学习/深度学习 监控 算法
基于深度学习的图像识别技术在智能监控系统中的应用
【4月更文挑战第29天】 随着人工智能技术的飞速发展,尤其是深度学习算法在图像处理领域的突破性进展,基于深度学习的图像识别技术已经成为智能视频监控系统的核心。本文将深入探讨深度学习技术如何提升监控系统中目标检测、分类和跟踪的准确性与效率,并分析其在实际应用中的优势与挑战,为未来智能监控技术的发展提供参考。
|
3天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别在自动驾驶系统中的应用研究
【4月更文挑战第28天】 随着人工智能技术的突飞猛进,深度学习在图像识别领域的应用已逐渐成熟,并在自动驾驶系统中扮演着至关重要的角色。本文聚焦于探讨深度学习模型如何优化自动驾驶车辆的图像识别过程,以及这些技术如何提高系统的整体性能和安全性。文中首先介绍了深度学习在图像处理中的基础理论,随后详细分析了卷积神经网络(CNN)在车辆环境感知中的应用,并提出了一种新型的融合算法,该算法能更有效地处理复杂环境下的图像数据。通过实验验证,本研究所提出的模型在多个公开数据集上表现出了优越的识别精度和实时性,为未来自动驾驶技术的发展提供了有价值的参考。
|
3天前
|
机器学习/深度学习 传感器 自动驾驶
基于深度学习的图像识别技术在自动驾驶系统中的应用
【4月更文挑战第28天】 随着人工智能技术的飞速发展,深度学习已成为推动技术创新的核心动力之一。特别是在图像识别领域,深度学习技术通过模仿人类视觉系统的机制,实现了对复杂视觉信息的高效处理。本文旨在探讨深度学习技术在自动驾驶系统中图像识别的应用,重点分析卷积神经网络(CNN)的结构优化、训练策略以及在实际道路环境中的感知能力提升。此外,文章还讨论了目前面临的主要挑战和未来的发展趋势。