[机器学习]半监督学习

本文档记录了《机器学习》第 13 章半监督学习相关内容

未标记样本

半监督学习

学习器不依赖外界交互、自动的利用未标记样本来提升学习性能。

利用未标记样本的相关假设

本质——相似的样本具有相似的输出。

  • 聚类假设:假设数据存在簇结构,同一个簇的样本同属一个类别。
  • 流形假设:假设数据的分布在一个流形结构上,邻近的样本具有相似的输出值。

半监督学习的种类

  • 纯半监督学习:假定训练数据中的未标记样本并非接下来需要预测的数据。
  • 直推半监督学习:假定训练数据中的未标记样本正是接下来需要预测的数据。

生成式方法

  • 假设:不论是否有标记,所有数据都是由同一个潜在的模型”生成的“,通过潜在模型的参数将未标记数据(不是对应的标签)与学习目标联系起来,未标记数据的标签可看作是模型的缺失参数。
  • 缺陷:模型假设必须准确。

高斯混合模型生成

混合成分与类别一一对应

  • 符号标记

    • 标记样本集: Dl={(x1,y1),(x2,y2),...,(xl,yl)}
    • 未标记样本集: Du={xl+1,xl+2,...,xm=l+u}
    • 标签个数: N
    • 混合系数:Ni=1αi=1,αi0
    • 高斯混合成分: Θ{1,2,...N}
    • 样本属于第 i 个高斯混合成分的概率p(x|μi,Σi)
    • 样本的生成概率: p(x)=Ni=1αip(x|μi,Σi)
    • 样本由第 i 个高斯混合成分生成的后验概率

      p(Θ=i|x)=αip(x|μi,Σi)Nj=1αjp(x|μj,Σj)

    • 样本由第 i 个高斯混合成分生成的情况下,类别为 j 的概率:

      p(y=j|Θ=i,x)

  • 模型预测

    f(x)=argmaxji=1Np(y=j|Θ=i,x)p(Θ=i|x)

  • 参数更新见 P297 EM算法。

半监督 SVM(二分类)

目标

  • 尽可能的将有标记样本分开
  • 超平面穿过数据低密度区域划分

Transductive(直推式) SVM

形式化定义

  • 参数:
    • Cl/Cu :用于平衡模型复杂度、有/无标记样本重要程度的折中参数。
    • ξ :松弛向量。
  • 目标函数:

    minw,b,ŷ ,ξ12w22+Cli=1lξi+Cui=l+1mξi

  • 约束条件:

    • 对有标记样本: yi(wxi+b)1ξi
    • 对无标记样本: ŷ i(wxi+b)1ξi
    • 松弛向量: ξi0

算法实现

  • 输入:
    • 标记样本集: Dl={(x1,y1),(x2,y2),...,(xl,yl)}
    • 未标记样本集: Du={xl+1,xl+2,...,xm=l+u}
    • 折中参数: Cl/Cu
  • 输出:未标记样本的预测结果 ŷ 
  • 算法:

    SVM_l = train(D_l) # 有标签数据训练
    y_hat = SVM_l.predicate(D_u) # 无标签数据预测
    C_u.init() << C_l.init()
    while C_u < C_l do
        (w,b),xi = SVM_l.optimize(D_l,D_u,y_hat,C_l,C_u) # 根据目标函数优化模型参数
        # 若存在一对未标记样本 (x_i,x_j),它们的指派标记不同,且对应的松弛变量之和过大,说明它们的指派标记很可能是错的
        def traverse(y_hat):
            if y_hat[i]*y_hat[j]<0 and xi[i]>0 and xi[j]>0 and xi[i]+xi[j]>2:
                y_hat[i] = -y_hat[i]
                y_hat[j] = -y_hat[j]
                (w,b),xi = SVM_l.optimize(D_l,D_u,y_hat,C_l,C_u)
        C_u = min(2*C_u,C_l)
    end while
  • 存在问题:
    • traverse(y_hat) 部分计算开销过大。
    • 未标记样本中存在类别不平衡问题: C+u=uu+Cu

图半监督学习???

基于分歧的方法

特点

  • 使用多学习器,各个学习器之间的“分歧”对于未标记数据的利用至关重要。
  • 学习器之间具有显著差异即可。
  • 选择合适的基学习器。
  • 不适用于标记样本过少,尤其是不具有多视图的数据。

协同训练与多视图学习

多视图的特点

  • “相容互补性”
    • 充分:每个视图都包含足以产生最优学习器的信息
    • 条件独立:给定类别标记条件下两个视图独立

协同训练算法

  • 主要思想:互相学习,共同进步
    1. 在每个视图上基于标记样本训练出一个分类器
    2. 让每个分类器分别挑选自己最有把握的未标记样本赋予伪标记
    3. 将伪标记样本作为新的标记样本给其他学习器训练更新
    4. 循环上述过程
  • 算法实现:见 P306

半监督聚类

两种辅助的监督信息:
* 必连集合 和勿连集合
* 少量的标记样本信息

约束 k 均值算法

  • 主要思想:利用必连集合 和勿连集合 ,在 k-means 的基础上每次更新中心之后,节点重新的归属要满足必连关系和勿连关系。
  • 算法实现:见 P307

约束种子 k 均值算法

  • 主要思想:利用少量的标记样本信息,首先通过标记样本计算每个簇的中心,然后在 k-means 的基础上对每个点寻找最近的簇并加入其中,此过程不包含标记样本点,仅对未标记样本点执行。此外,每次样本点重新确定中心的过程中要保证标记样本点始终属于标签簇。
  • 算法实现:见 P309
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
中的一种方法,它结合了有标签数据和无标签数据进行模型训练。在半监督学习中,我们通常只有一小部分数据被标记,而大部分数据是未标记的。通过利用未标记数据的信息,我们可以提高模型的性能。 半监督学习的思想是利用未标记数据的分布信息来增强模型的泛化能力。通常情况下,未标记数据往往比标记数据更容易获取,因此可以利用大量的未标记数据来帮助模型学习更好的表示。常见的半监督学习方法包括自训练、生成模型和图半监督学习等。 自训练是一种简单而有效的半监督学习方法。它通过使用已标记数据训练一个初始模型,然后将该模型应用于未标记数据,并根据模型对未标记数据的预测结果进行筛选和标记,将预测结果最可信的样本加入到已标记数据集中,不断迭代这个过程直到满足停止条件。 生成模型方法利用生成模型对未标记数据进行建模,并通过生成模型生成与已标记数据相似的样本,从而扩充已标记数据集。这样一来,我们可以利用更多的数据来训练模型,提高性能。 图半监督学习是一种基于图的半监督学习方法。在这种方法中,我们将数据表示为图的形式,其中节点表示样本,边表示样本之间的关系。通过在图上进行标签传播,将已标记节点的标签传递给未标记节点,从而扩充已标记数据集。 总的来说,半监督学习是一种有效利用未标记数据提高模型性能的方法,它可以在标记数据有限的情况下,充分利用未标记数据的信息,提升模型的泛化能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值