Semi-supervised Learning(半监督学习)

news2025/1/15 17:43:11

目录

Introduction

Why semi-supervised learning help?

Semi-supervised Learning for Generative Model

Supervised Generative Model

Semi-supervised Generative Model

Low-density Separation Assumption

Self Training

Entropy-based Regularization(基于熵的正则化)

Semi-supervised SVM

Smoothness Assumption

 cluster and then label

Graph-based Approach

Better Representation


Introduction

Supervised Learning(监督学习):

Training data为 ,每一笔data都有输入和输出(标签)。

  • Semi-supervised Learning(半监督学习)

Training data 为 ,其中部分data没有标签。通常情况下无标签的数据远远大于有标签的数据,即U>>R。

半监督学习可以分为以下两种:

  1. Transductive Learning(转换学习):unlabeled data is the testing data,把testing data当做无标签的training data使用,适用于事先已经知道testing data的情况。
  2. Inductive Learning(归纳学习):unlabeled data is not the testing data,不把testing data的feature拿去给机器训练,适用于事先并不知道testing data的情况(更普遍的情况)
  • 为什么要做semi-supervised learning?

实际上我们不缺data,只是缺有label的data。

Why semi-supervised learning help?

unlabeled data虽然只有input,但它的分布,却可以告诉我们一些事情。以下图为例,在只有labeled data的情况下,红线是二元分类的分界线。但当我们加入unlabeled data的时候,由于特征分布发生了变化,分界线也随之改变。

semi-supervised learning的使用往往伴随着假设,而该假设的合理与否,决定了结果的好坏程度;比如上图中的unlabeled data,它显然是一只狗,而特征分布却与猫被划分在了一起,很可能是由于这两张图片的背景都是绿色导致的,因此假设是否合理显得至关重要。

Semi-supervised Learning for Generative Model

Supervised Generative Model

在监督学习中,进行分类训练时,我们首先会计算class1和class2的先验概率P(C1)P(C2) ,然后计算类条件概率P(x|C1)P(x|C2) (假设它们服从高斯分布),最后计算后验概率P(C1|x)

Semi-supervised Generative Model

在基于监督模型的基础上,增加一些无标签的数据之后,就会发现之前那的μ和∑是不合理的,所以需要用无标签的数据重新估计。

具体步骤如下:

  1. 初始化class1和class2的均值、协方差矩阵以及先验概率,统称为θ。可以随机初始化,也可以用有标签数据估算。
  2. 根据θ计算出unlabeled data的后验概率。
  3. 更新参数。 

以上的推导基于的基本思想是,把unlabeled data 看成一部分属于 ,一部分属于 ,则用全概率公式就可以求出x属于unlabeled data的概率。

Low-density Separation Assumption

通俗来讲,就是这个世界是非黑即白的,在两个class的交界处data的密度(density)是很低的,它们之间会有一道明显的鸿沟,此时unlabeled data(下图绿色的点)就是帮助你在原本正确的基础上挑一条更好的boundary。

Self Training

  1. 首先从labeled data去训练一个model ;
  2. 对unlabeled data打上label,叫作pseudo label(伪标签);
  3. 从unlabeled data中拿出一些data加到labeled data里;
  4. 继续训练model

  • self-training在regression上有用吗?

 Regression的output是一个数值,因为unlabeled data代入模型变成labeled data,重新训练的模型不会发生改变。

该方法与之前提到的generative model还是挺像的,区别在于:

  1. Self Training使用的是hard label:假设一笔data强制属于某个class。
  2. Generative Model使用的是soft label:假设一笔data可以按照概率划分,不同部分属于不同class。

可以看到,在neural network里使用soft label是没有用的,因为把原始的model里的某个点丢回去重新训练,得到的依旧是同一组参数,实际上low density separation就是通过强制分类来提升分类效果的方法。

Entropy-based Regularization(基于熵的正则化)

这种方法是Self-training的进阶版。我们可以使用Entropy评估分布 的集中程度,Entropy越大分布越离散。反之则分布越集中。因此,在unlabeled data上,output的entropy要越小越好。

对labeled data来说,它的output要跟正确的label越接近越好,用cross entropy表示;对unlabeled data来说,要使得该output的entropy越小越好,两项综合起来,可以用weight来加权,以决定哪个部分更为重要一些。

Semi-supervised SVM

SVM为两个类别的数据找到一个boundary,一方面要有最大的margin,让这两个class分的越开越好;另一方面,要有最小的分类错误。

SVM穷举所有unlabled data的类别并进行计算,最终选择与两个类别的margin最大、分类错误最小的boundary。

但是这么做会存在一个问题,数据量大的时候,几乎难以穷举完毕。下面给出的paper提出了一种approximate的方法,基本精神是:一开始你先得到一些label,然后每次改一笔unlabeled data的label,看看可不可以让你的objective function变大,如果变大就去改变该label。

Smoothness Assumption

smoothness assumption的基本精神是:近朱者赤,近墨者黑。即相似的x 具有相同的y ,其具体定义为:

  1. 的分布是不平均的。
  2. 如果今天x1和x2在一个高密度的区域很相似的话, 才相同。

以手写数字识别为例,对于最右侧的2和3以及最左侧的2,显然最右侧的2和3在pixel上相似度更高一些;但如果把所有连续变化的2都放进来,就会产生一种“不直接相连的相似”,根据Smoothness Assumption的理论,由于2之间有连续过渡的形态,因此第一个2和最后一个2是比较像的,而最右侧2和3之间由于没有过渡的data,因此它们是比较不像的。人脸的过渡数据也同理。

Smoothness Assumption在文件分类上是非常有用的。假设对天文学(astronomy)和旅行(travel)的文章进行分类,它们有各自的专属词汇,此时如果unlabeled data与label data的词汇是相同或重合(overlap)的,那么就很容易分类;但真实情况中unlabeled data和labeled data之间可能没有任何重复的word,因为世界上的词汇太多了,sparse的分布中overlap难以发生。

但如果unlabeled data足够多,就会以一种相似传递的形式,建立起文档之间相似的桥梁。

 cluster and then label

cl then label就是先聚类后标记。假设数据分布如下,橙色是class 1,绿色是class 2,蓝色是未标注数据。接下来做聚类,可能把所有数据分成3个cluster。在cluster1里,class 1的label最多,那cluster1里所有数据标记为class 1,同样的cluster2和cluster3都标记为class 2。然后把标记后的数据拿去learn。

Graph-based Approach

通过引入图结构,来表达通过高密度路径进行连接这件事情。所谓的高密度路径的意思是说,如果有两个点,在图上是相连的,那它们就是同一个class,如果没有相连,就算距离很近,也走不到。

  • 如何构建图?
  1. 先定义两个对象之间的相似度
  2. 然后就是添加边,构建graph,方式有很多种: k nearest neighbor:计算数据与数据之间的相似度,然后设置k例如3,就是3个最相似的点相连。 e-Neighborhood:只有相似度超过某个阈值的点才会相连。
  3. 除此之外,还可以给Edge特定的weight,让它与相似度s成正比。

graph-based approach的基本思想就是,在graph上已经有一些labeled data,那么跟它们相连的point,属于同一类的概率就会上升,每一笔data都会去影响它的邻居,,并且这个影响是会随着edges传递出去的。但是如果数据不够多,中间就有断开,那信息就传递不过去。

然后定义一个S函数,定量分析graph的平滑度,数值越小表示越滑。

 S可以稍微整理下,写成向量形式如下图。

如果要把平滑度考虑到神经网络里时,就是在原来的损失函数里加上 。不一定要在output上计算平滑度,在深度神经网络里,可以把平滑度计算放在网络的任何地方。

Better Representation

Better Representation的精神是,去芜存菁,化繁为简。就是要抓住核心。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/589664.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

docker启动MYSQL8并挂载数据目录

1.创建需要docker挂载的数据目录 mkdir -p /datah/mydata/mysql/conf mkdir -p /datah/mydata/mysql/data mkdir -p /datah/mydata/mysql/log mkdir -p /datah/mydata/mysql/mysql-files 2. 在目录下面 /datah/mydata/mysql/conf 创建配置文件 my.cnf [client] default-charact…

VH6501使用

目录 1.VH6501接口介绍 2.使用场景 2.1当VH6501作为硬件接口卡作通信/监测使用时,使用CH1的任意接口与总线连接即可 2.2针对单节点干扰时,使用CH1的任意接口与被测节点连接即可 2.3针对多节点干扰时,需要通过CH1的两个接口将VH6501串联到…

C++ ---- 模板

目录 泛型编程 函数模板 函数模板语法 模板使用 函数模板原理 函数模板的实例化 隐式实例化 显示实例化 模板参数的匹配原则 类模板 类模板的定义语法 类模板的实例化 非类型模板参数 类模板的特化 全特化 半特化(部分特化) 两个参数偏…

排查Javascript内存泄漏案例(一)

Chrome DevTools里的Performance面板和Memory面板可以用来定位内存问题。 如何判断应用发生内存泄漏? 为了证明螃蟹的听觉在腿上,一个专家捉了只螃蟹并冲它大吼,螃蟹很快就跑了。然后捉回来再冲它吼,螃蟹又跑了。最后专家把螃蟹的…

浅谈 ChatGPT —— 现代巴别塔

theme: nico 一、用 ChatGPT 一搜就到你这了 ChatGPT 在去年 11 月发布以后,上线 5 天后就有了 100 万用户,上线两个月后已有上亿用户,可谓一炮而红。起初我对 ChatGPT 是没有什么感知的,我单纯认为人工智能还没有发展到完全超越人…

数字经济等相关概念与官方文档

一、数字经济 数字经济,作为一个内涵比较宽泛的概念,凡是直接或间接利用数据来引导资源发挥作用,推动生产力发展的经济形态都可以纳入其范畴。在技术层面,包括大数据、云计算、物联网、区块链、人工智能、5G通信等新兴技术。在应…

美食菜谱类APP小程序开发功能有哪些?

想要开发出一款靠谱好用的美食菜谱APP小程序系统,需要具备哪些基本功能呢? 1、视频教学。对于美食的教学教学方法最直接受用的就是视频教学,用户浏览起来更加方便而且可以直接跟着视频操作,效果更佳。用户也可以自己拍摄制…

JVM垃圾回收篇之相关概念和算法

垃圾回收相关概念 什么是垃圾 垃圾就是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收掉的垃圾,如果不及时进行清理,越积越多就会导致内存溢出. 为什么需要GC 不进行回收,早晚会导致内存溢出,Java自动管理垃圾回收,不需要开发人员手动干预,这就有可能导致开…

【记录】OLAP和OLTP

下面为提炼的重点内容,全部内容参考:OLAP和OLTP OLAP和OLTP的不同设计要求 对于OLTP系统和OLAP系统有哪些不同的要求?要说清楚这个,首先需要分析一下这两个系统的关键特征。 对于OLTP系统来说,最重要的事情是&#…

LIS系统字典模块功能

字典管理模块: 系统参数功能简介:集中设置系统使用过程中所需的参数值,一般由开发或实施人员进行设置。 标本管理功能简介:标本管理是对检验业务中涉及的检验标本类型进行初始化设置, …

Spring Cloud Zuul 是什么?如何使用它来实现 API 网关?

Spring Cloud Zuul 是什么?如何使用它来实现 API 网关? 在微服务架构中,服务之间的通信变得非常频繁和复杂。为了简化服务之间的通信和管理,很多企业都采用了 API 网关的架构模式。API 网关可以帮助我们统一处理服务的入口、路由…

【简单实用框架】【AddressablesMgr】【可移植】

☀️博客主页:CSDN博客主页💨本文由 萌萌的小木屋 原创,首发于 CSDN💢🔥学习专栏推荐:面试汇总❗️游戏框架专栏推荐:游戏实用框架专栏⛅️点赞 👍 收藏 ⭐留言 📝&#…

提升您的 MQTT 云服务:深入探索 BYOC

引言 您是否希望将物联网基础设施提升到更高的水平?为了应对业务的不断扩展,您需要一个强大且安全的消息平台来支持它。 MQTT 协议凭借其轻量级、发布/订阅模型和可靠性,已经成为构建物联网平台的首选方案。但是,随着业务的增长…

​力扣解法汇总1110. 删点成林

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: GitHub - September26/java-algorithms: 算法题汇总,包含牛客,leetCode,lintCode等网站题目的解法和代码,以及完整的mode类&#…

Linux安装Redis数据库,实现远程连接

文章目录 1. Linux(centos8)安装redis数据库2. 配置redis数据库3. 内网穿透3.1 安装cpolar内网穿透3.2 创建隧道映射本地端口 4. 配置固定TCP端口地址4.1 保留一个固定tcp地址4.2 配置固定TCP地址4.3 使用固定的tcp地址连接 转发自cpolar内网穿透的文章:公网远程连接…

L-shape 方法

L-shape 方法是求解两阶段随机规划的一种常用方法,基本思想是利用切平面将第二阶段的反馈函数线性化,在构造切平面条件时有点类似 bender’s 方法。 注:这个图形中黑实线 Q ( x ) \mathcal{Q}(x) Q(x) 就是下面模型中的 L ( x ) \mathscr{L…

剑指 Offer 04. 二维数组中的查找解题思路

文章目录 标题解题思路优化 标题 在一个 n * m 的二维数组中,每一行都按照从左到右 非递减 的顺序排序,每一列都按照从上到下 非递减 的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整…

ARM-伪操作

目录 协处理器指令 伪操作 安装交叉编译工具 Makefile 进入命令:vi ASM-ARM.s 宏定义 make之后查看ASM-ARM.dis反汇编文件 预编译指令 申请一个字的空间 .word 申请多个字节空间 嵌套编程 方式一:汇编跳转到C 方式二:C跳转到汇编 方式三&…

2023/5/30面试小结

一、本应会但并不会的题 1.用js写一个栈 class Stack {constructor() {this.items [];}// 添加元素到栈顶push(element) {this.items.push(element);}// 移除栈顶元素并返回pop() {return this.items.pop();}// 返回栈顶元素peak() {return this.items[this.items.length - …

HashMap有哪些线程安全的处理方式(面试题)

HashMap有哪些线程安全的处理方式&#xff08;面试题&#xff09; 概念1. synchronizedMap(Map<K,V> m)2. ConcurrentHashMapConcurrentHashMap Jdk1.7 vs Jdk1.8 概念 基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作&#xff0c;并允许使用 null 值和 null…