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

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

一、介绍


  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

相关文章
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
|
7天前
|
机器学习/深度学习 人工智能 测试技术
深度学习在图像识别中的应用与挑战
本文探讨了深度学习技术,尤其是卷积神经网络(CNN)在图像识别任务中的最新进展和面临的主要挑战。通过分析不同的网络架构、训练技巧以及优化策略,文章旨在提供一个全面的概览,帮助研究人员和实践者更好地理解和应用这些技术。
36 9
|
3天前
|
机器学习/深度学习 人工智能 算法
深度学习在图像识别中的应用与挑战
本文探讨了深度学习技术在图像识别领域的应用,重点分析了卷积神经网络(CNN)的工作原理及其在处理图像数据方面的优势。通过案例研究,展示了深度学习如何提高图像识别的准确性和效率。同时,文章也讨论了当前面临的主要挑战,包括数据不足、过拟合问题以及计算资源的需求,并提出了相应的解决策略。
|
13天前
|
机器学习/深度学习 人工智能 监控
深度学习在图像识别中的应用与挑战
本文探讨了深度学习技术在图像识别领域的应用,并分析了当前面临的主要挑战。随着卷积神经网络(CNN)的发展,图像识别的准确性和效率得到了显著提升。然而,数据不平衡、模型泛化能力、计算资源消耗等问题仍然是制约深度学习在图像识别领域进一步发展的关键因素。本文将详细介绍深度学习在图像识别中的应用案例,并讨论解决现有挑战的可能策略。
|
4天前
|
机器学习/深度学习 分布式计算 并行计算
深度学习在图像识别中的应用与挑战
本文深入探讨了深度学习技术在图像识别领域的应用,分析了当前主流的卷积神经网络(CNN)架构,并讨论了在实际应用中遇到的挑战和可能的解决方案。通过对比研究,揭示了不同网络结构对识别准确率的影响,并提出了优化策略。此外,文章还探讨了深度学习模型在处理大规模数据集时的性能瓶颈,以及如何通过硬件加速和算法改进来提升效率。
|
4天前
|
机器学习/深度学习 人工智能 计算机视觉
深度学习在图像识别中的应用与挑战
【10月更文挑战第38天】本文将深入探讨深度学习如何在图像识别领域大放异彩,并揭示其背后的技术细节和面临的挑战。我们将通过实际案例,了解深度学习如何改变图像处理的方式,以及它在实际应用中遇到的困难和限制。
|
4天前
|
机器学习/深度学习 传感器 自动驾驶
深度学习在自动驾驶中的应用与挑战####
本文探讨了深度学习技术在自动驾驶领域的应用现状、面临的主要挑战及未来发展趋势。通过分析卷积神经网络(CNN)和循环神经网络(RNN)等关键算法在环境感知、决策规划中的作用,结合特斯拉Autopilot和Waymo的实际案例,揭示了深度学习如何推动自动驾驶技术向更高层次发展。文章还讨论了数据质量、模型泛化能力、安全性及伦理道德等问题,为行业研究者和开发者提供了宝贵的参考。 ####
|
6天前
|
机器学习/深度学习 人工智能 算法框架/工具
深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【10月更文挑战第36天】探索卷积神经网络(CNN)的神秘面纱,揭示其在图像识别领域的威力。本文将带你了解CNN的核心概念,并通过实际代码示例,展示如何构建和训练一个简单的CNN模型。无论你是深度学习的初学者还是希望深化理解,这篇文章都将为你提供有价值的见解。
|
7天前
|
机器学习/深度学习 算法 数据处理
深度学习在图像识别中的应用与挑战
本文深入探讨了深度学习技术在图像识别领域的应用,分析了其背后的原理、主要算法以及在实际场景中的应用效果。同时,文章也指出了当前深度学习在图像识别领域面临的挑战,包括数据不平衡、模型泛化能力、计算资源需求等问题,并展望了未来的研究方向。
|
4天前
|
机器学习/深度学习 自然语言处理 监控
探索深度学习在自然语言处理中的应用与挑战
本文深入分析了深度学习技术在自然语言处理(NLP)领域的应用,并探讨了当前面临的主要挑战。通过案例研究,展示了如何利用神经网络模型解决文本分类、情感分析、机器翻译等任务。同时,文章也指出了数据稀疏性、模型泛化能力以及计算资源消耗等问题,并对未来的发展趋势进行了展望。