半监督学习

1、什么是Semi-Supervised

2、Semi-Surpervised在生成模型中如何实现的(EM算法)

3、Semi-Surpervised基于Low-density Separation(低密度分离)假设是如何实现的

  1)Self-training方法+Entropy-based Regularization

  2)SVM

4、Semi-Surpervised基于Smoothness Assumption(平滑)假设是如何实现的
  1)Cluster and then Label
  2)Graph-based Approach(KNN算法)

1、什么是Semi-Supervised

  

李宏毅深度学习2020hw3 李宏毅 svm_数据

举个栗子:现在我们要做一个猫狗分类,

  • 只考虑labeled data,我们分类的分界线会画在中间;
  • 把unlabeled data 也考虑进去,我们可能会根据unlabeled data 的分布,分界线画成图中的斜线;
  • 伴随着一些假设,学习有没有用,取决于你这个假设合不合理。(比如灰色的点也可能是个狗不过背景跟猫照片比较像)

    

李宏毅深度学习2020hw3 李宏毅 svm_生成模型_02

            

李宏毅深度学习2020hw3 李宏毅 svm_sed_03

 

 

2、Semi-Surpervised在生成模型中如何实现的(EM算法)

 

  •   回顾有监督学习中的生成模型,由于data都是有label的,P(Ci)是已知的,P(x|Ci)是通过我们基于高斯分布的假设用最大似然估计出来的;
  • EM算法

 

  

李宏毅深度学习2020hw3 李宏毅 svm_sed_04

      

李宏毅深度学习2020hw3 李宏毅 svm_李宏毅深度学习2020hw3_05

 

  EM算法(Expectation-Maximization algorithm,又译为期望最大化算法)

  • 无法观测的隐变量的概率模型估计
  •    第一步,用labeled data算出来的高斯模型参数代入公式去求出unlabeled data的P(C1|Xu);
  • 极大似然估计更新P(Ci)以及高斯模型参数,求出P(x|Ci),进一步求出新的(Ci|Xu),重复这两步直到收敛(似然概率最大)

  (至于为什么更新参数是要加入P(Ci|Xu)这一项,是因为EM算法思想是把不确定的data用一个概率来表示label,而每一笔不确定的data都有可能来自C1和C2,看右下图)

 

  

李宏毅深度学习2020hw3 李宏毅 svm_生成模型_06

                 

李宏毅深度学习2020hw3 李宏毅 svm_sed_07

 

3、Semi-Surpervised基于Low-density Separation(低密度分离)假设是如何实现的

  • 生成模型的假设中,假设不确定的data的label是一个概率值
  • 低密度分离的假设是,不确定的data的label要不是1,要不是0(“非黑即白”)。低密度的意思是,两个Class的分界处是低密度的(分得比较开的)

         

李宏毅深度学习2020hw3 李宏毅 svm_李宏毅深度学习2020hw3_08

  1)Self-training+Entropy-based Regularization

  1.  利用labeled的数据训练(逻辑回归,神经网络,决策树等)出模型;
  2.    将一组unlabeled的数据代入,得到新的标签,称为Pseudo-label伪标签;
  3.    将刚才得到新标签数据的一部分和labeled数据结合到一起,得到训练新的模型,重复以上步骤;

  注:在做regression时是不能用这一招的,主要因为把unlabeled data加入到训练数据中,f*李宏毅深度学习2020hw3 李宏毅 svm_生成模型_09

 

  

李宏毅深度学习2020hw3 李宏毅 svm_sed_10

                

李宏毅深度学习2020hw3 李宏毅 svm_李宏毅深度学习2020hw3_11

 

 

  加上Entropy-based Regularization

  接着Self-Learning做进一步改进:

  •  基于熵的正则假设:假设输出是一个分布(类似于生成模型的概率),那么根据“低密度分离”原则,我们希望每输出一个值,它的分布都是很集中的(“非黑即白”)
  •    用熵可以描述集中不集中这件事情,在Loss函数中加入unlabeled data的熵(相当于上面方法基础上加上正则项),我们希望这个熵越小越好

 

    

李宏毅深度学习2020hw3 李宏毅 svm_数据_12

 

  2)SVM

4、Semi-Surpervised基于Smoothness Assumption(平滑性)假设是如何实现的

平滑性假设 :

  • x的分布是不均匀的,在有的地方是稀疏的,在有的地方是密集的     
  •    如果在高密度区域比较相近,那么这两个数据具有相同的标签。 

    

李宏毅深度学习2020hw3 李宏毅 svm_生成模型_13

                 

李宏毅深度学习2020hw3 李宏毅 svm_李宏毅深度学习2020hw3_14

 

 

  1)Cluster and then Label(先聚类后标注)

 

  2)Graph-based Approach(KNN算法)

目标:我们希望利用基于图的方法,建立起下图的模型

    

李宏毅深度学习2020hw3 李宏毅 svm_sed_15

 

   方法:

  1.    定义相似度,可以根据相似度定权重(加exp)
  2.    添加边界:   用KNN(根据“距离”找出K个最近的邻居)或者e-Neighborhood(超过阈值e才建立边)

要求有足够的数据才work

 

  

李宏毅深度学习2020hw3 李宏毅 svm_李宏毅深度学习2020hw3_16

             

李宏毅深度学习2020hw3 李宏毅 svm_李宏毅深度学习2020hw3_17

 

   

  • 前面说半监督学习有没有用,取决于你这个假设合不合理。那么我们用以下的S值来评价假设有多合理

 

  

李宏毅深度学习2020hw3 李宏毅 svm_sed_18

    

李宏毅深度学习2020hw3 李宏毅 svm_生成模型_19

        

李宏毅深度学习2020hw3 李宏毅 svm_sed_20