文章目录

  • Semi-supervised Learning
    • Introduction
      • Supervised Learning
      • Semi-supervised Learning
      • Why semi-supervised learning?
    • Why semi-supervised learning?
    • Outline
    • Semi-supervised Learning for Generative Model
      • Supervised Generative Model
      • Semi-supervised Generative Model
      • Supervised Generative Model 流程
        • Step1:计算每笔unlabelled data的后验概率
        • Step2:更新模型
        • Why?
    • Semi-supervised Learning Low-density Separation
      • Self-training
        • 对比
      • Entropy-based Regularization
      • Outlook: Semi-supervised SVM
    • Semi-supervised Learning Smoothness Assumption
      • Smothness Assumption
      • 如何实现Smoothness Assumption
        • Cluster and then Label
        • Graph-based Approach
    • Semi-supervised Learning Bette Representation

Semi-supervised Learning

Introduction

Supervised Learning

训练数据是一个function的输入和输出构成的pair

Semi-supervised Learning

训练数据有两部分:

  • 在label data上一个function的输入和输出构成的pair
  • 在unlabel data上,只有function的输入,没有输出

期待unlabel的data数量远大于label的data数量

半监督学习氛围两种:

  • Transductive learning:unlabel data就是测试集,使用他的feature(如果使用测试集的label就是作弊)
  • Inductive learning:unlabel data不是测试集,无法事先根据测试集做任何事情

Why semi-supervised learning?

  • 收集数据很容易,但是收集有标签的数据很难。
  • 对人类来说,我们在我们的生活中也是做半监督学习的。

Why semi-supervised learning?

有一部分labeled的data,还有一部分unlabeled的data

unlabeled data的分布可能会告诉我们一些信息,eg切割的边界线,但是半监督学习使用unlabelled data 的方式往往伴随着一些假设,半监督学习是否有用,往往取决于假设是否符合实际,是否精确。

所以半监督学习未必一直有用,他取决于所做的假设是否合适。

Outline

Semi-supervised Learning for Generative Model

Supervised Generative Model

Semi-supervised Generative Model

Supervised Generative Model 流程

Step1:计算每笔unlabelled data的后验概率

假设是二元分类问题的话,先初始化一组参数,初始化P(C1)P(C_1)P(C1​)和P(C2)P(C_2)P(C2​),μ1\mu^1μ1,μ2\mu^2μ2,∑\sum∑,初始化的值可以random产生也可以又labelled data得来。

把P(C1)P(C_1)P(C1​)和P(C2)P(C_2)P(C2​),μ1\mu^1μ1,μ2\mu^2μ2,∑\sum∑这些参数统称为:θ\thetaθ

根据已有的θ\thetaθ,可以估算每笔unlabelled data属于class1 的几率,几率取决于model的θ\thetaθ。

Step2:更新模型

更新模型的公式很直觉。

原来没有考虑unlabelled data的时候,N可能是所有的example,N1是标记为C1的example数目,则不考虑unlabelled data时候,P(C1)=N1/NP(C_1)=N_1/NP(C1​)=N1​/N

现在考虑unlabelled data的公式:
P(C1)=N1+∑xuP(C1∣xu)NP(C_1)=\frac{N_1+\sum_{x^u}{P(C_1|x^u)}}{N} P(C1​)=NN1​+∑xu​P(C1​∣xu)​

在更新之后,有了新的model,返回第一步;
有了新的model后,几率Pθ(C1∣xu)P_\theta(C_1|x^u)Pθ​(C1​∣xu)又会改变,就会进行第二步,model又不一样了,以此类推。。。

理论上这个方法在最后是收敛的,但是初始值会影响收敛的结果。

Why?

  • Maximum likelyhood with labelled data

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

  • Maximum likelyhood with labelled + unlabelled data
    公式纠正:
    logL(θ)=∑xrlogPθ(xr,y^r)+∑xulogPθ(xu)logL(\theta)=\sum_{x^r}logP_\theta(x^r,\hat{y}^r)+\sum_{x^u}logP_\theta(x^u)logL(θ)=∑xr​logPθ​(xr,y^​r)+∑xu​logPθ​(xu)

labelled data和前面公式一样,但是unlabelled data需要估测他的概率,一笔unlabelled data不知道是从C1还是C2来,所以,

一笔unlabelled data出现的概率 = C1的概率和C1类别产生这笔unlabelled data的概率之积 + C2的概率和C2类别产生这笔unlabelled data的概率之积,求和后,即为这笔unlabelled data出现的概率。

接下来,就是最大化该式——logL(θ)logL(\theta)logL(θ)。

但是不幸的是,解开这个式子只能重复地去解这个式子(即,前面幻灯片里的step1和step2不断重复),不断地增大logL(θ)logL(\theta)logL(θ),最后会收敛到一个locla minimum局部最优的地方。


Semi-supervised Learning Low-density Separation

比较通常的一个方法,基于的假设为Low-density Separation,即“非黑即白”,在labelled和unlabelled data之间有很明显的分界线。

给出如图的data,边界线可能有如图两条,但是要考虑unlabelled data的话,左边的是好的,右边的是不好的,

在两个class的交界处的density是最低的,这种边界才是比较合理的。

Self-training

最简单,最具代表性,太直觉了。

有labelled和unlabelled 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∗,十分直觉

这个方法可以用在回归问题上吗?

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

对比

  • 与Semi-supervised Learning for Generative Model很相似
  • 在做Self-training的时候用的是Hard label,在做Semi-supervised Learning for Generative Model的时候,用的是soft label。
  • 在做Self-training的时候会强制指定一笔训练数据属于某一个class,而在做Semi-supervised Learning for Generative Model的时候,根据后验概率,一部分属于class1,一部分属于class2.
  • 在使用神经网络的时候,一定要用hard的label,soft label没有用!(hard label的假设更加强烈,而soft的相当于没有,原本的参数就可以达到target了)

Entropy-based Regularization

可能前面的hard label的方法太武断,可以用Entropy-based Regularization

output是一个分布,但是分布也要集中,因为“世界”是非黑即白的,过于平均不符合low-density separation的假设。

那么要如何用一个数值来评价一个分布是好还是不好,集中还是不集中呢??

使用Entropy来评价。分布比较集中的Entropy比较小。

根据前面的内容,重新设计Loss function

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

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

Outlook: Semi-supervised SVM

目标:
找一个可以提供最大margin,最小error的分界线。

过程:

  • 穷举unlabelled data的所有可能的标签
  • 对每种可能的标签都做一次SVM

Semi-supervised Learning Smoothness Assumption

思想:近朱者赤近墨者黑

Smothness Assumption

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

更精确的假设:

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

假设有3笔data,分布如图,貌似x2和x3离得近,如果考虑那个比较粗糙的假设,则他们比较像。
但是在更精确的假设中,要通过一个高密度的区域来像,即x1和x2中间有一个高密度的区域,相连是通过一条高密度的路径。


中间的2貌似和3更相似

但是第一个2可以通过一系列连续的形态转换为第二个2
所以我们要用Smoothness Assumption

人脸同理。左1到右1有很多过度形态。

在文件分类上也有用,天文学和旅游文章分类。

数据足够多的时候

如何实现Smoothness Assumption

Cluster and then Label

这是最简单的方法。

橙色是class1,绿色是class2,蓝色是unlabelled data。

把所有数据先聚类,分出三个cluster,观察cluster1中,class1的label data最多,所以把cluster1中的所有data都归于class1,同理,cluster2和cluster3都归于class2。

Graph-based Approach

引入Graph structure,使用图结构来表达conneced by a high density path。

把所有的数据点都建成一个图,每笔data point x都是图上一个点,想要计算他们的相似度,要把图的边建立出来。

如果现在有两个点之间有边,可以走的到,说明是同一个class,否则,哪怕距离很近,也走不到,不是同一类。

如何建图呢?

  • 有时建图是很自然的。eg:网页超链接,论文的引用关系。
  • 有时需要自己想办法自己建图


Graph-based Approach - Graph Construction

  • 定义两个点之间计算相似度的方法
  • 添加边
  • 边的权重与点和点之间的距离成正比


如何定量地描述这个图上label的光滑度呢?


训练也可以运用梯度下降

smoothness可以放在任何地方

Semi-supervised Learning Bette Representation

思想:去芜存菁,化繁为简

【李宏毅机器学习】Semi-supervised Learning 半监督学习(p24) 学习笔记相关推荐

  1. 【李宏毅机器学习】Classification_1 分类(p10) 学习笔记

    李宏毅机器学习学习笔记汇总 课程链接 文章目录 Classification Probabilistic Gernerative Model 分类:概率遗传模型 ==**如何完成这个任务?**== = ...

  2. ML之SSL:Semi-Supervised Learning半监督学习的简介、应用、经典案例之详细攻略

    ML之SSL:Semi-Supervised Learning半监督学习的简介.应用.经典案例之详细攻略 目录 Semi-Supervised Learning半监督学习的简介 1.直推学习Trans ...

  3. semi-suppervised learning 半监督学习

    文章目录 1. Semi-supervised Learning for Generative Model 2. Semi-supervised Learning Low-density Separa ...

  4. 机器学习的五大分类,监督学习 无监督学习 半监督学习 迁移学习 增强学习

    机器学习的五大分类,监督学习 无监督学习 半监督学习 迁移学习 增强学习@监督学习 无监督学习 半监督学习 监督学习 在监督学习中,给定一组数据,我们知道正确的输出结果应该是什么样子,并且知道在输入和 ...

  5. 【周志华机器学习】十三、半监督学习

    文章目录 参考资料 1. 未标记样本 1.1 主动学习 1.2 常见假设 1.3 半监督学习划分 2. 生成式方法 3. 半监督SVM 4. 基于分歧的方法 5. 半监督聚类 5.1 Constrai ...

  6. Domain adaptation:连接机器学习(Machine Learning)与迁移学习(Transfer Learning)

    domain adaptation(域适配)是一个连接机器学习(machine learning)与迁移学习(transfer learning)的新领域.这一问题的提出在于从原始问题(对应一个 so ...

  7. 机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记...

    机器学习实战(Machine Learning in Action)学习笔记----06.k-均值聚类算法(kMeans)学习笔记 关键字:k-均值.kMeans.聚类.非监督学习 作者:米仓山下 时 ...

  8. 浙江大学机器学习(胡浩基)课程学习笔记一:概述与支持向量机

    一.基本概念 1.1 机器学习 机器学习:采用非显著式编程(不一步一步定义操作步骤的编程方式)的方式赋予计算机学习能力. 机器学习:一个计算机程序被称为可以学习,是指它能够针对某个任务T和某个性能指标 ...

  9. Machine Learning with Python Cookbook 学习笔记 第9章

    Chapter 9. Dimensionality Reduction Using Feature Extraction 前言 本笔记是针对人工智能典型算法的课程中Machine Learning w ...

最新文章

  1. c++中文件应用的一点小变化
  2. Java虚拟机jvm 调优总结
  3. C++ Primer 5th笔记(8)chapter8 类:IO库-总览
  4. armv8-M(cortex-m) Trustzone总结和介绍
  5. java增加内容辅助_Eclipse代码自动提示(内容辅助content assist)
  6. OFFICE2019精简安装D盘(包括Word、PPT、Excel,可根据需要调整)+VISIO2019+Mathtype7.4.0完美下载安装教程
  7. ☆【UVA - 624 】CD(dp + 0-1背包 + 记录路径)
  8. 信息学奥赛一本通(1122:计算鞍点)
  9. 《一张图看懂华为云BigData Pro鲲鹏大数据解决方案》
  10. VOIP术语及相关知识
  11. java三种注释_Java中三种常见的注释(注解) Annotation
  12. GB BIG5 转码原理全解析
  13. 转:走向自治:关于德鲁克的五个关键词
  14. 电工结业试卷_修补电工结业论文
  15. 夏雨老师:告诉你常见颜色对人心理上的影响
  16. ping github.com 请求超时/丢包率为100% || Windows “您没有权限在此位置保存文件”(已解决)
  17. mysql数据库的介绍与初始配置
  18. 我的物联网大学【第六章】:个人英雄主义和组织效率的矛盾
  19. 切断ADG的关联,划分为两个独立的数据库
  20. php星星符号怎么打,如何用html5写特殊符号五角星

热门文章

  1. 输入一批整数,输出最大最小值,输入0结束
  2. 从零开始的LCA(最近公共祖先)
  3. 详解jenkins几个有用的插件如何使用(emma,findbugs)
  4. 开源软件free download manager在windows defender中报毒
  5. SIP学习之网络链接
  6. 我TM快疯了,在博客园开博短短2个月,经历博客园数次故障。。。
  7. VPC 2007 Console界面消失以及解决方法
  8. python查找元素的下标 leetcode 392
  9. 数据库实验一(MySQL基本操作命令总结)
  10. 遇见未来 | 软件定义数据中心:人类文明运行在软件之上