首页 > 其他分享 >半监督学习

半监督学习

时间:2023-02-17 17:58:42浏览次数:35  
标签:分类器 标签 学习 监督 类别 数据 标注

1   相关概念

1.1  半监督学习的定义

同时利用有标注数据无标注数据学习

 

1.2  半监督分类/回归

给定标注数据和无标注数据,学习得到一个分类器f,要求该分类器f比只用标注数据学习得到的学习器更优。

 

1.3  半监督聚类/降维

给定标注数据,但是另外对数据做一些限制

聚类:两个点必须在一个簇,或两个点一定不能在一个簇

降维:两个点降维后必须接近

 

1.4  半监督学习的基本假设

半监督学习有效,必须满足一些假设。

1.4.1 平滑假设

如果高密度区域中在两个点x1,x2距离较近,那么对应的输出y1,y2也应该接近。

1.4.2 聚类假设

如果两个点在同一个簇,那么它们很有可能属于同一个类别。

1.4.3 流形假设

输入空间由所有数据点所在的多个低维流行构成。

位于同一个流形上的数据点具有相同的标签。

流形上距离近的点的标签相似。

 

2   半监督分类

2.1  自我训练算法

2.1.1 基本假设

输出的高度置信的预测是正确的

2.1.2 自学习算法基本流程

1.从(xL,yL)学习f

2.对x∈Du,计算预测结果f(x)。

3.把(x,f(x))加入到标注数据。

4.重复

2.1.3 自我训练的变体

加入一些置信度最高的(x,f(x))到标注数据集

把所有(x,f(x))加到标注数据

把所有(x,f(x))加到标注数据,为每条数据安置置信度赋予权重

2.1.4 自我训练的优点

简单,效果好

是一种wrapper方法,可以应用到已有的(复杂)分类器上

2.1.5 自我训练的缺点

早期的错误会被强化。

在收敛性方面没有保障。

 

2.2  协同训练

2.2.1 基本思想

在标注数据上训练多个分类器,多个分类器互相教对方,将各自最有信心的的预测加到其他分类器的标注数据。

2.2.2 协同训练的基本假设

要求特征可分裂x=[x(1);x(2)],x(1)x(2)在给定类别后条件独立

 

2.2.3 协同训练的算法流程

1.训练两个分类器,从(XL(1),yL)学习f(1),从(XL(2),yl)学习f(2)

2.用f(1)和f(2)分别对Du分类

3.把f(1)的k个置信度最高的预测结果(x,f(1)(x))当做f(2)的标注数据

4.把f(2)的k个置信度最高的预测结果(x,f(2)(x))当做f(1)的标注数据

5.重复第2步

 

2.2.4 协同训练案例(以网页为例)

多视图学习

从不同的视图看待一个对象,如一个网页,可以从图像角度和HTML文本角度看待,训练一个图像分类器和一个文本分类器,两个分类器互相教对方。

特征分裂

每个实例由两个特征集合x=[x(1);x(2)]表示

x(1) = 图像特征

x(2) = web页面文本

2.2.5  协同训练的优点

对错误不那么敏感。

2.2.6 协同训练的缺点

自然的特征可能无法分裂。

使用全部特征的模型可能更好。

 

2.3 生成模型

2.3.1 特点

假设所有数据都由一个潜在的模型生成

模型参数将无标注数据和学习目标联系起来

无标注数据的标签可视为模型的缺失参数,可通过基于EM算法进行极大似然估计求解。

2.3.2 应用

高斯混合模型(GMM)

混合多项式分布(朴素贝叶斯)

隐马尔科夫模型(HMM)

 

2.3.3 以二分类任务的高斯混合模型为例

1. 先在有标签数据上使用MLE估计参数θ={π,μ,Σ}。

  类别k的比例:

  类别k的样本均值:

  类别k的样本协方差:

 

2. 在E步骤中,计算所有无标签数据数据所属类别的期望。

p(y=k|xi,θ):给定标签xi,其属于k的概率。

 

3. 在M步骤中,用有标签数据XL和无标签数据XU,采用MLE估计参数θ。(标红的为原始估计公式,黑色部分为新添加的无标签数据)

加上了属于k类别的无标签数据的期望概率

分子第一项加上了属于k类别的无标签数据的值,由于与后验概率相乘,样本越偏离k类,概率越小,x的值越小,权重越轻。

2.3.4 生成模型的优点

清晰,有良好的理论基础

当模型接近真实的分布时,非常有效

2.3.5 生成模型的缺点

验证模型的正确性困难

EM局部最优

生成模型错误时,无监督数据错误也会加重

2.3.6 减少风险的方法

更加仔细的建立生成模型,如每个类别使用多个高斯分布,降低无标签数据的权重

 

2.3.7 基于聚类标签法半监督分类

先在无标注数据上进行聚类。一个簇内,以样本数量最多的类别为准,将其他类别的标记为该类。

优点:简单。

缺点:很难分析好坏,簇的假设不正确,结果会很差。

 

2.4  半监督SVM(S3VM)

2.4.1 SVM回顾

标准SVM

两类:y∈{+1,-1}

标注数据:{XL,YL}

权重:w

寻找一个函数f(x)=wTx+b

通过sign(f(x))分类

软间隔SVM

尝试保持标注点远离边界的同时最大化间隔。允许分类错误少数点。

ξi为松弛变量

 

合页损失

令f(xi)=wTxi+b,则zi=1-yi(wTxi+b)=1-yif(xi)

目标函数:

更加倾向于标注的点正确的一边

2.4.2 无标注数据的合页损失

在无标注数据中,令yif(xi)=|f(xi)|

故合页损失为:1-yif(xi)+=(1-|f(xi)|)+

无标注数据原理决策边界f(x)=0

2.4.3 S3VM目标函数

在合页损失SVM的目标函数加上无标注数据的合页损失。

第二项偏好最大化两类样本之间的间隔,第三项偏好使得无标注的点尽可能的远离间隔。

 

2.4.4 类别平衡限制

直接优化S3VM目标函数经常会导致大多数点落在一个类内,所以要使用一些类别平衡方法。

启发式的类别平衡方法:

放松的类别平衡限制:

这些作为约束。

 

2.4.5 S3VM算法

输入:权重w,C1,C2,(XL,yL),XU

求解优化问题f(x)=wTx+b

通过sign(f(x))分类新的测试点x

2.4.5 S3VM的训练优化方法

SVMlight算法流程(局部最优):

根据有标注数据训练一个SVM;

对无标注数据根据f(XU)进行排序,以合适的比例对无标注数据进行标注y=1,-1(分配一个“硬”标签到无标注数据);

for C'=10-5C2 to C2 :(外层循环:C2从0开始向上退火)

while TRUE :(内存循环成对标签交换)

  

  如果存在(i,j)可交换,则交换yi,yj

  如果没有可以交换的,结束while循环

 

分支定界法流程(全局最优解,但复杂度高,只能处理数百个无标注的点)

在无标注数据上构建一颗部分标注的树:

根节点:不标注

子节点:比父节点多一个无标注数据被标注

叶子节点:所有无标注数据被标注

在树上深度优先搜索

记录一个到当前为止的完整目标函数值

搜索时,如果遇到一个比最好的目标函数差的,就进行剪枝。

 

2.4.6 S3VM优点

SVM可以应用的地方,S3VM都可以

清晰的数学框架

2.4.7 S3VM缺点

半监督SVM的目标函数是非凸函数,优化困难

可能陷入局部最优

相比于生成模型和基于图的方法使用了更弱的假设,收益可能较小

 

2.5 基于图的算法

2.5.1 假设

基于所有数据点建立一个相似性图

图中数据点之间边的权重表示两个数据点的相似度

图中紧密相连的点趋向于有相同的标签

标签传播:近邻节点应该有相似的标签

2.5.2 图的构造

节点:XL∪XU

边:基于特征来计算相邻接点之间的相似度

目标:通过所有的路径来推导相似度

2.5.3 图的平滑性

图的平滑性计算(带权重的每对节点标签差值的总和),基于图的算法的目标就是构造图,使得图最平滑。

S越小越平滑

S=[ 2 x 1 +1 x 0 + 3 x 1 + 1 x 1 ] / 2 = [2+3+1]/2=3

2.5.4 拉普拉斯矩阵与平滑性关系

拉普拉斯矩阵L=D-W

D:度矩阵。

W:对角矩阵。

平滑性计算可以写成拉普拉斯矩阵表示

 

2.5.5 拉普拉斯矩阵最优解

无监督学习中,利用有标注点和无标注点构造的图的平滑性与标签有关,所以图的平滑性函数为:

目标是让图整体更加平滑,使得S(f)最小,故目标为求解S(f)的最小值,对S(f)求导:

用分块矩阵表示:

    

    

    

对于无标签数据(第二行):

令:

最终得到(最优解):

2.5.6 基于图的算法的优点

清晰的数学框架

2.5.7 基于图的算法的缺点

图质量差的时候性能也差

对图的结构和权重铭感

存储需求大

3  半监督回归

大部分半监督分类算法无法直接扩展到半监督回归,且半监督回归研究相对较少

基于图的半监督回归:正则项为实数的预测值的平滑约束

基于包装器的半监督回归:自我训练\协同训练,在标注数据上构件K最近邻回归器,迭代地将伪标注数据互相传递,根据置信度选择数据点进行伪标注。

 

4  半监督聚类

聚类本身是一种无监督算法,半监督是聚类同时加入一系列领域知识

已知少量标记信息算法基本流程:

开始时利用有标注数据计算均值,将有标记数据划分到对应的簇中,开始划分无标注样本。

已知相关不相关的算法基本流程:

与K均值基本类似

K为样本xi与均值向量μj(簇的中心)的距离dij的集合。

在K中寻找距离最小的样本和簇,尝试将样本加入到该簇,判断是否违背比连约束集合M和勿连约束集合C中的约束,满足约束才加入,否则不加;

 

 

 

 

标签:分类器,标签,学习,监督,类别,数据,标注
From: https://www.cnblogs.com/RedNoseBo/p/17118176.html

相关文章

  • 如何在机器学习中处理长尾数据分布?丨曼孚科技
    如果代码质量是区分软件系统好坏的标准,那么数据质量便是区分AI系统智能化的标准。对模型来说,使用正确的数据不可或缺。而实际训练中,常出现场景数据分布不均衡的现象,长尾数......
  • 机器学习--2神经网络
    神经网络神经网络模型神经网络与线性回归的思想类似,然后添加相应的激活函数输出对应的结果。经典的神经网络有以下三个层次组成:输入层(inputlayer),隐藏层(hiddenla......
  • #yyds干货盘点 react笔记之学习之显示日期
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从......
  • #yyds干货盘点 react笔记之学习之修改log组件
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从......
  • 【IMX6ULL学习笔记】八、Linux启动流程
    一、链接脚本vmlinux.ldsLinux内核的链接脚本文件arch/arm/kernel/vmlinux.lds中有如下代码:ENTRY指明了了Linux内核入口,入口为stext,stext定义在文件arch/arm/k......
  • MongoDB学习笔记三(查询)
    一、比较查询运算符 $eq相等 ①等于指定值 等价于: 查询结果: ②嵌入式文档中的字段等于一个值 查询结果: ③数组元素等于一个值执行结果: ④等于......
  • 【IMX6ULL学习笔记】九、Linux内核移植
    一、在Linux中添加自己的开发板1、添加开发板默认配置文件将arch/arm/configs目录下的imx_v7_mfg_defconfig重新复制一份,命名为imx_kodo_emmc_defconfig,命令如......
  • 【IMX6ULL学习笔记】四、 U-BOOT启动流程
    一、链接脚本u-boot.lds详解要分析uboot的启动流程,首先要找到“入口”,找到第一行程序在哪里。程序的链接是由链接脚本来决定的,所以通过链接脚本可以找到程序的入口。......
  • 【IMX6ULL学习笔记】五、U-BOOT移植与解析
    一、移植自定义开发板流程1、添加mx6ull_kodo_emmc_defconfig配置文件(.config)在/configs目录下,复制mx6ull_14x14_evk_emmc_defconfig文件,重命名为mx6ull_kodo_emm......
  • 【和ChatGPT对话】学习使用时序数据库
    前言和小结从昨天的文章来看【和ChatGPT对话】就让它帮我做完成绩数据分析、【和ChatGPT对话】帮助新手批量提取图片文字信息到文件,ChatGPT完成基本的数据处理业务已经在......