2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)

文章目录

  • 摘要
  • 1. Introduction
    • 1.1 Why Semi-supervised Learning?
    • 1.2 why Semi-supervised Learning helps ?
  • 2. Semi-supervised Learning for Generative Model
    • 2.1 Supervised Generative Model
    • 2.2 Semi-supervised Generative Model
  • 3. Low-density Separation Assumption
    • 3.1 Self Training
    • 3.2 Entropy-based Regularization
  • 4. Semi-supervised Learning Smoothness Assumption
    • Smothness Assumption
      • 4.1 cluster and then label
      • 4.2 Graph-based Approach
        • Graph-based Approach - Graph Construction
  • 5. Semi-supervised Learning Bette Representation
  • 6. 总结与展望

摘要

本章首先讲解了什么是半监督学习,以及分类与作用;其次讲解了基于高斯分布与似然估计的半监督学习基础理论,其主要实现有四种Semi-supervised Learning for Generative Model)生成模型中的半监督学习,对比了Supervised Generative Model;Low-density Separation Assumption,基本思想是非黑即白,以及两种方法self training与 Entropy-based Regularization;Smoothness Assumption,基本思想是近朱者赤,近墨者黑,以及如何实现Smoothness Assumption的方法cluster and then label与Graph-based Approach,引入了Graph structure;Better Representation,基本思想是去芜存菁,化繁为简,具体内容将在unsupervised Learning中展开。

1. Introduction

分类(classification)这种机器学习算法就是一种监督学习。对于分类,输入的训练数据有特征(feature),有标签(label)。也就是我们之前的输入x和输出y。每一个x样本都对应着一个y(输出)标签。所谓的学习,其本质就是找到特征和标签间的关系(mapping),也就是找规律。这样当有特征而无标签的未知数据输入时,我们就可以通过已有的关系得到未知数据标签,即根据新数据进行预测。在上述的分类过程中,如果所有训练数据都有标签,则为有监督学习(supervised learning)。如果训练数据既有标签,又有无标签的,那就是半监督学习(Semi-supervised learning)。如果数据没有标签,显然就是无监督学习(unsupervised learning),即聚类(clustering)。2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第1张图片

Supervised learning: 在训练数据中,所有的data都是有label的,即输入数据Xi都有与之对应的目标输出Yi(标签)。
Semi-supervised learning: 在训练数据中,既有label data,又有unlabeled data,且通常情况下U>>R 。

对于半监督学习分为两大类:

  • Transductive learning(直推学习): 用有+无标签数据训练,把无标签数据作为测试数据。
  • Inductive learning(归纳学习): 用单独的有标签数据测试,无标签数据不作为测试数据。

1.1 Why Semi-supervised Learning?

1.我们不缺数据,但是缺有标签的数据。
2.我们的现实生活中大多数都是半监督学习方式。

1.2 why Semi-supervised Learning helps ?

2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第2张图片
上图中有一部分labeled的data,还有一部分unlabeled的data。
2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第3张图片
unlabeled data的分布可能会告诉我们一些信息,比如切割的边界线,但是半监督学习使用unlabelled data 的方式往往伴随着一些假设,半监督学习是否有用,往往取决于假设是否符合实际,是否精确。所以半监督学习未必一直有用,他取决于所做的假设是否合适。

2. Semi-supervised Learning for Generative Model

2.1 Supervised Generative Model

根据高斯分布,估测, Σ,然后就可以估测出一个新的data属于哪类(生成模型可以去回顾一下)
2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第4张图片

2.2 Semi-supervised Generative Model

2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第5张图片
如果在原先的数据下多了unlabeled data(上图中绿色的点),它就会影响最终的决定,你会发现原先的, Σ显然是不合理的,新的, Σ需要使得样本点的分布更接近上图虚线圆所标出的范围。此时,unlabeled data对P(C1)、P(C2)、u1、u1、Σ 都产生了一定程度的影响,划分两个class的decision boundary也会随之发生变化。

半监督学习的生成模型,一般分为三步:

  1. Initialization :初始化模型参数,假设是二元分类问题的话,先初始化一组参数,初始化 P ( C 1 ) 和 P ( C 2 ) , μ 1 , μ 2 P ( C 1 ) 和P ( C 2 ) ,\mu^1 , \mu^2 P(C1)P(C2)μ1μ2 ,∑,初始化的值可以random产生也可以又labelled data得来。
    P ( C 1 ) 和 P ( C 2 ) , μ 1 , μ 2 P ( C 1 ) 和P ( C 2 ) ,\mu^1 , \mu^2 P(C1)P(C2)μ1μ2 ,∑,这些参数统称为:θ,根据已有的θ ,可以估算每笔unlabelled data属于class1 的几率,几率取决于model的θ 。

  2. compute the posterior probability of unlabeled data:计算无标签数据的分类概率,原来没有考虑unlabelled data的时候,N可能是所有的example,N1是标记为C1的example数目,则不考虑unlabelled data时候, P ( C 1 ) = N 1 / N P ( C 1 ) = N 1 / N P(C1)=N1/N

现在考虑unlabelled data的公式:
在这里插入图片描述
3.update model :根据无标签数据的分类概率更新所有参数,重复步骤以上,计算P和 μ 1 \mu^1 μ1等,有了新的model后,几率 P θ ( C 1 ∣ x u ) P _\theta(C_1|x^u) Pθ(C1xu)又会改变,就会进行第二步,model又不一样了,以此类推。。。(如下图计算所示)

2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第6张图片
理论上这个方法在最后是收敛的,但是初始值会影响收敛的结果。

为什么这个方法是表现成这个样子?
2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第7张图片

  • Maximum likelyhood with labelled data
    原来只有labelled data的时候,我们要做的事情是要最大化一个likelyhood,每笔训练数据的likelyhood是可以计算的(如图),求和后是total likelyhood。

  • Maximum likelyhood with labelled + unlabelled data
    公式纠正:在这里插入图片描述
    labelled data和前面公式一样,但是unlabelled data需要估测他的概率,因为一笔unlabelled data不知道是从C1还是C2来,所以,一笔unlabelled data出现的概率:2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第8张图片

即为这笔unlabelled data出现的概率。接下来,就是最大化该式 — — l o g L ( θ ) ——logL(θ) logL(θ)。不幸的是,解开这个式子只能重复地去解这个式子(即,前面方法步骤里的step1和step2不断重复),不断地增大 l o g L ( θ ) logL(θ) logL(θ),最后会收敛到一个locla minimum局部最优的地方。
注意:最大化该样本出现的原因,监督学习是可以得到最优解的,但是由于半监督方法中的优化函数不是凸函数,即不能得到最优解,所以只能迭代求解。

3. Low-density Separation Assumption

通俗来讲,就是这个世界是非黑即白的,在两个class的交界处data的密度(density)是很低的,它们之间会有一道明显的鸿沟,此时unlabeled data(下图绿色的点)就是帮助你在原本正确的基础上挑一条更好的boundary。2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第9张图片

3.1 Self Training

low-density separation最具代表性也最简单的方法是self training
2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第10张图片
首先将data分为两组,一组是labeled data,一组是unlabeled data

  • 从labelled data中训练一个模型 f ∗ f^* f,训练方式没有限制。
  • 然后用这个模型去label你的unlabelled data,即输入unlabelled data,查看输出,叫做Pseudo-label。
  • 从unlabelled data set中拿出一些放到labelled data set中,具体如何选择要加进去是一个开放问题,需要自己想办法解决。
  • 有了更多的data之后,labelled data从unlabelled data中得到了更多的data,就返回第一步,再去训练 f ∗ f^* f,循环即可。

Q问:这个方法可以用在回归问题上吗?
A答:回归问题是要输出一个实数,把一部分data加入labelled data后,再训练,并不会影响 f ∗ f^* f,所以regression不可以使用这个方法。

self training与Semi-supervised Learning for Generative Model很相似,对比
2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第11张图片

  • 在做Self-training的时候用的是Hard label,在做Semi-supervised Learning for Generative Model的时候,用的是soft label。
  • 在做Self-training的时候会强制指定一笔训练数据属于某一个class,而在做Semi-supervised Learning for Generative Model的时候,根据后验概率,按概率划分了,一部分属于class1,一部分属于class2。
  • 在使用NN神经网络的时候,一定要用hard的label,soft label没有用(hard label的假设更加强烈,而soft的相当于没有,得到的参数相当于没有改变。)

3.2 Entropy-based Regularization

前面的hard label的方法太武断,可以用Entropy-based Regularization,output是一个分布,但是分布也要集中,因为“世界”是非黑即白的,过于平均不符合low-density separation的假设。
2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第12张图片
Q问:那么要如何用一个数值来评估一个分布是好还是不好,集中还是不集中呢?
A答:使用Entropy来评估,分布比较集中的Entropy比较小。

上图中可见entropy越大,distribution就越分散,entropy越小,distribution就越集中,因此我们的目标是在labeled data上分类要正确,在unlabeled data上,output的entropy要越小越好,此时就要修改loss function。

重新设计Loss function:

  • labelled data部分, y r y^r yr y ^ r \hat{y}^r y^r 之间越近越好,可以使用cross entropy来评价距离。
  • unlabelled data部分,使用每笔data的output的分布的entropy,希望越小越好。
  • 还可以添加一个weight参数λ \lambdaλ来代表,其所占的权重。

训练依旧使用梯度下降来最小化L,类似于Regularization(在原来的loss function后,加一个参数的L1或L2,来防止过拟合),现在这个很类似,现在加上一个根据unlabelled data来得到的entropy,来防止过拟合,称作Entropy-based Regularization。

4. Semi-supervised Learning Smoothness Assumption

基本思想:近朱者赤,近墨者黑。
2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第13张图片

Smothness Assumption

假设: 如果x是像的,那么他们的label y也会相似。(但是这样假设是不精确的)
更精确的假设:

  • x的分布是不平均的,某些地方很集中,某些地方很分散。
  • x1和x2在一个高密度的区域的话,那么x1和x2很接近的时候,他们的label才会很像。x1和x2之间有一条高密度的路径。

假设下图是data的分布,x1,x2,x3是其中的三笔data,如果单纯地看x的相似度,显然x2和x3更接近一些,但对于smoothness assumption来说,x1和x2是处于同一块区域的,它们之间可以有一条相连的路径;而x2与x3之间则是“断开”的,没有high density path,因此x1与x2更“像”。2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第14张图片
比如的应用:
2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第15张图片

4.1 cluster and then label

如何实现Smoothness Assumption,有一种简单的方法是cluster and then label(先聚类后标记),也就是先把data分成几个cluster,划分class之后再拿去训练,但这种方法不一定会得到好的结果,因为它的假设是你可以把同一个class的样本点cluster在一起,而这其实是没那么容易的。

下图中有 橙色是class1,绿色是class2,蓝色是unlabelled data。
把所有数据先聚类,分出三个cluster,观察cluster1中,class1的label data最多,所以把cluster1中的所有data都归于class1,同理,cluster2和cluster3都归于class2。
2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第16张图片

4.2 Graph-based Approach

引入Graph structure,使用图结构来表达conneced by a high density path。
把所有的数据点都建成一个图,每笔data point x都是图上一个点,想要计算他们的相似度,要把图的边建立出来。如果现在有两个点之间有边,可以走的到,说明是同一个class,否则,哪怕距离很近,也走不到,不是同一类。

如何建图呢?

  • 有时建图是很自然的,比如网页之间的链接关系,论文之间的引用关系。
  • 有时需要自己想办法自己建图。
    2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第17张图片
Graph-based Approach - Graph Construction
  1. 首先定义两个object 之间的相似度。
  2. 算完相似度后,添加边,就可以建graph了,方式有很多种:
  • k nearest neighbor:假设k=3,则每个point与相似度最接近的3个点相连。
  • e-neighborhood:每个point与相似度超过某个特定threshold e的点相连。
  1. 除此之外,还可以给Edge边特定的weight,让它与相似度成正比。
    2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第18张图片
    建议用RB function(径向基函数)来确定相似度,使用exponential的RB function可以做到只有非常近的两个点才能相连,稍微远一点就无法相连的效果(有海沟),避免了跨区域相连的情况。

graph-based approach的基本精神:在graph上已经有一些labeled data,那么跟它们相连的point,属于同一类的概率就会上升,假设有两把data属于class1,那相邻邻居也可能是class1,所以会像传染病一样传递下去。2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第19张图片
以上是定性的例子。

如何定量使用graph ?
定义一个计算smoothness的函数,常用函数:
2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第20张图片
我们期望smooth的值越小越好:
2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第21张图片
将计算smoothness的函数转换成矩阵相乘:
2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第22张图片2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第23张图片
这样在构建loss function 的时候,可以将监督学习的误差和smoothness of label的值结合起来表示,后者作为regularization term来调节,smoothness可以放在任何地方,不一定是output的地方(视情况而定)。2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第24张图片

5. Semi-supervised Learning Bette Representation

基本思想:去芜存菁,化繁为简
找到表面观察背后的隐含特征,更好地表示这个物体。
2020李宏毅学习笔记—— 10. Semi-supervised Learning(半监督学习)_第25张图片

算法具体思路和内容到unsupervised learning的时候再介绍!!!

6. 总结与展望

本章学习了半监督学习的分类与作用,以及四种实现方式;半监督学习的价值在于大大降低了机器学习模型对于标注数据的依赖,未标注数据的分布,也能提供很多信息,对模型迭代有指导意义,即使他们是没有标签。半监督学习方法一般都具有某些假设,半监督学习方法有没有作用,取决于这些假设的正确程度。最重要的三个假设是Low-density Separation Assumption和Smoothness Assumption以及Better Representation假设。low density separation就是通过强制分类来提升分类效果的方法(基本思想是非黑即白),而smoothness assumption的思想就是近朱者赤近墨者黑,better representation的思想是,去芜存菁,化繁为简.算法具体思路和内容到unsupervised learning的时候再介绍,下一章将学习无监督学习及无监督学习的类别,以及其作用与科学原理等。

你可能感兴趣的:(机器学习基础课程知识,机器学习,深度学习,人工智能)