• 生成模型(1)无监督生成模型


    原文链接:https://zhuanlan.zhihu.com/p/273245785,原作者小米粥,本文是原博文的内容摘要。

    一、监督学习与无监督学习

    无监督学习和监督学习的最大区别是标签有无。

    • 在监督学习中,训练模型的目的是学习输入到标签的映射
    • 无监督学习只有样本的特征向量,学习的目的是深入挖掘数据内部的潜在信息

    三类常见的无监督学习任务:

      1. 降维。处理高维度、高冗余的数据(比如图片),维度过大容易导致模型过拟合,所以可以使用降维算法来对高维数据进行压缩。 常用算法有主成分分析、因子分析、隐含狄利克雷分布、自编码器等。
      1. 聚类。将样本依据一定的规则进行类别分配,实现样本的自动分类。常用方法有层次聚类、k-means聚类、谱聚类等。
      1. 概率模型估计。对于一个可以生成样本的概率模型,我们使用样本对概率模型的结构、参数进行学习,使得概率模型生成的样本与训练样本最相似。其中一种比较简单的概率密度估计任务便是对随机变量的概率密度函数进行学习,常用的算法有极大似然估计、对抗生成网络、变分自编码器等,这部分内容非常丰富。

    监督学习需要测试样本来评价模型效果,而无监督学习不需要

    无监督学习只需要训练集

    二、监督学习中的判别模型与生成模型

    模型的函数形式和条件概率分布形式

    模型无非就是输入到输出的映射关系的表示。

    • 函数形式 Y = f ( X ) Y=f(X) Y=f(X)
    • 条件概率分布形式: p ( Y ∣ X ) p(Y|X) p(YX)

    判别模型与生成模型

    模型可以分为判别模型和生成模型,两者的目标都是获得X到Y的映射 P ( Y ∣ X ) P(Y|X) P(YX),但是实现方法有区别。

    在判别模型中,我们直接对 p ( Y ∣ X ) p(Y|X) p(YX)进行建模。 判别模型关心的是如何从X得到Y,比如输入一张图片,判断它是猫还是狗。实际上学习到的内容是判别边界。
    生成模型对特征X和标签Y的联合分布 p ( X , Y ) p(X,Y) p(X,Y)进行建模。然后利用条件概率公式来计算 P ( Y ∣ X ) P(Y|X) P(YX)

    P ( Y ∣ X ) = P ( X , Y ) P ( X ) P(Y|X)=\frac{P(X,Y)}{P(X)} P(YX)=P(X)P(X,Y)
    联合分布可以进一步求解:
    P ( Y ∣ X ) = P ( X ∣ Y ) P ( Y ) P ( X ) P(Y|X)=\frac{P(X|Y)P(Y)}{P(X)} P(YX)=P(X)P(XY)P(Y)

    • P(Y):Y的先验概率,也就是标签Y单独的分布情况
    • P(Y|X): Y的后验概率,也就是得知X后Y的分布

    判别模型与生成模型的具体区别:
    以猫狗二分问题举例:现在分别训练出了生成模型和判别模型,并且有一张图片X待识别

    • 假如使用判别模型,直接将X带入P(Y|X)中,然后得出 P ( Y 猫 ∣ X ) 、 P ( Y 狗 ∣ X ) P(Y_猫|X)、P(Y_狗|X) P(YX)P(YX)
    • 假如使用生成模型,将X带入 P ( X , Y 猫 ) 、 P ( X , Y 狗 ) P(X,Y_猫)、P(X,Y_狗) P(X,Y)P(X,Y)中,得到两种情况下的联合概率分布,然后利用条件概率公式得出 P ( Y 猫 ∣ X ) 、 P ( Y 狗 ∣ X ) P(Y_猫|X)、P(Y_狗|X) P(YX)P(YX)

    生成模型直接学习联合分布,可以更好地表示数据的分布,更好反映同类数据的相似度。当样本数量比较大时,生成模型往往可以更好地收敛到真实模型上,其收敛速度快。另外,生成模型可以处理含有隐变量的情况,而判别模型对此无能为力。生成模型也可以通过计算边缘分布 而检测某些异常值。但实践中,生成模型计算开销一般比较大,而且多数情况下其效果不如判别模型

    三、无监督生成模型

    生成模型需要对特征X和标签Y的联合分布P(X,Y)进行建模,无监督学习意味着不存在标签信息。

    无监督生成模型意味着:对输入特征X的概率密度函数 P ( X ) P(X) P(X)建模。通过训练构造 P ^ ( X ) \hat{P}(X) P^(X)使之与 P ( X ) P(X) P(X)尽可能接近。那么就可以使用 P ^ ( X ) \hat{P}(X) P^(X)生成样本了。

    生成模型有很多分类,按照概率密度函数的处理方式可以如下分类
    在这里插入图片描述

  • 相关阅读:
    Android进阶之旅(第八天:尝试实现BottomDialog)
    ThreadLocal模板
    【算法基础】第五章:动态规划
    MySQL之从单机到集群
    关于我用python表白成功这件事【表白成功】
    extractvalue报错注入理论及实战
    【2023C卷题限时免费】20天拿下华为OD笔试之 【不定滑窗】2023C-最长的指定瑕疵度的元音子串【欧弟算法】全网注释最详细分类最全的华为OD真题题解
    假如我写了几个函数,想将函数像存放数据一样放在数组里,方便调用,怎么做?
    Linux 内存管理 页回收和swap机制
    YoloV8改进策略:FastVit与YoloV8完美融合,重参数重构YoloV8网络(全网首发)
  • 原文地址:https://blog.csdn.net/weixin_46183779/article/details/127654731