机器学习 —— 李宏毅机器学习笔记(五)—— 概率生成模型

概率生成模型

概率生成模型,简称生成模型(Generative Model),是概率统计和机器学习中的一类重要模型,指一系列用于随机生成可观测数据的模型 。生成模型的应用十分广泛,可以用来不同的数据进行建模,比如图像、文本、声音等。比如图像生成,我们将图像表示为一个随机向量X,其中每一维都表示一个像素值。假设自然场景的图像都服从一个未知的分布pr(x)希望通过一些观测样本来估计其分布。也就是说,生成模型考虑的是:生成样本数据的模型是什么样的(也就是样本数据具体满足什么分布/样本会以多大的概率被生成)。

生成模型可以和贝叶斯概率公式进行结合,用于分类问题。原始贝叶斯概率公式为:

P(A|B) = \frac{P(B|A)P(A)}{P(B)},应用到分类问题当中,可以写为如下的形式:

 在分类问题中,训练数据中有两个类别;每个类别下有5个样本,我们想要知道新的测试样本x属于C1类别的可能性,根据贝叶斯概率公式可以得到上述图片所示的概率公式。其中,P(C1)P(C2)表示在训练数据中,随机采样得到C1或者C2的概率,即两个类别在训练数据中所占的比重,可以计算得到。

 

分母项P(x)表示生成数据x的概率,此处可以由生成模型计算得到;P(x) = P(x|C1)P(C1) + P(x|C2)P(C2),因为有两个类别,每个类别下的数据具有不同的规律,服从不同的分布,都有可能生成数据x,所以相加得到生成x的概率(这里计算生成样本数据x的概率就是生成模型在做的事情)。P(C1)P(C2)由训练数据中的统计结果可以计算得到,难点在于如何计算P(x|C1)P(x|C2)。这里使用的方法是:极大似然估计。

 

极大似然估计

极大似然估计的原理,可以借由下面的图片进行直观的理解:

总结起来,最大似然估计的目的就是:利用已知的样本结果,反推最有可能(最大概率)导致这样结果的参数值。

        极大似然估计是建立在极大似然原理的基础上的一个统计方法。极大似然估计提供了一种给定观察数据来评估(求解)模型参数的方法,即:“模型已定,参数未知”。通过若干次试验,观察其结果,利用试验结果得到某个参数值能够使样本出现的概率为最大,则称为极大似然估计。

总结一下:极大似然估计就是先假设生成数据(数据分布)的模型已知(比如高斯分布),但是模型的具体参数不知(不知道高斯分布中的均值和标准差),通过已有的数据,进行参数的推断求解,使得该模型(高斯分布)生成已有观测数据的可能性最大。

经过极大似然估计之后,我们可以得到每个类别下的数据满足的规律(即每个类别下的数据满足什么样的分布),那么我们就可以知道在每个类别的分布下,分别生成新的测试数据x的概率,也就是P(x|C1)P(x|C2)。因此,我们就可以计算得到新的测试数据x属于每个类别的概率P(C1|x)P(C2|x)。

分类问题实例

下面通过一个具体的问题情境,展示生成模型用于分类问题的过程:

预测宝可梦的类别,其中可用的特征信息如下:

1、使用两个类别的宝可梦构成训练数据,分别是水系(Water)和正常系(Normal),数据构成如下:

2、根据贝叶斯概率公式,接下来需要计算P(x|C1)P(x|C2),也就是分析每个类别下的数据分布规律,计算新的测试数据x分别由每个类别的数据模型生成的概率。每个宝可梦,使用其两个特征属性Defence SP Defence,假设数据的分布符合高斯分布。 

3、由极大似然估计法,计算得到高斯分布的参数(均值和标准差)。

4、经过前面的几步,接下来就可以使用贝叶斯概率公式进行分类。

5、实验结果。

(1)测试数据上的准确率为47%,效果很差。使用更多特征(7个特征)之后,准确率为54%,提升有限。

(2)调整模型,也就是计算数据分布处的高斯分布的均值和标准差,效果有一定提升。

所以,总结一下,使用生成模型 + 贝叶斯概率分布 进行分类问题的三个步骤如下:

生成模型 + 贝叶斯概率公式的数学推导

                               (1)                                                                                        (2)

                             (3)                                                                                                   (4)

   

                                                                          (5)

经过最终的化简计算可以知道,生成模型 + 贝叶斯概率公式 本质上是寻找参数w和b的过程,如果我们直接进行参数w和b的求解,是不是就可以简化前面那么复杂的计算过程?这也是接下来要介绍的逻辑回归算法(其实判别模型都是这样做的,直接进行最终参数w和b的求解,不去考虑数据的生成)。

判别模型 VS 生成模型

两个模型最主要的区别就是:

判别模型:直接在训练数据的特征空间进行学习,对于一个输入,直接输出预测的标签。

生成模型:会考虑数据的生成情况,即每个类别下的数据分布规律,满足什么样的分布。

详细的介绍可以参加这篇博客,写得十分清楚。

 

参考资料

1、李宏毅机器学习-概率生成模型:https://study.163.com/course/courseLearn.htm?courseId=1208946807#/learn/text?lessonId=1278430134&courseId=1208946807

2、极大似然估计详解:https://blog.csdn.net/qq_39355550/article/details/81809467

3、判别模型和生成模型:https://blog.csdn.net/Fishmemory/article/details/51711114

  • 19
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
李宏毅的2020机器学习笔记中,有一个关于注意力机制(Attention)的部分。这部分内容主要介绍了生成模型(Generation)、注意力(Attention)、生成的技巧(Tips for Generation)以及指针网络(Pointer Network)。在生成模型中,主要讲述了如何生成一个有结构的对象。接下来介绍了注意力机制,包括一些有趣的技术,比如图片生成句子等。在生成的技巧部分,提到了一些新的技术以及可能遇到的问题和偏差,并给出了相应的解决方案。最后,稍微提到了强化学习。其中还提到了在输出"machine"这个单词时,只需要关注"机器"这个部分,而不必考虑输入中的"学习"这个部分。这样可以得到更好的结果。另外,还提到了关于产生"ei"的方法,其中有研究应用了连续动态模型自注意力(Self-attention)来学习位置编码的方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [2020李宏毅机器学习笔记-Condition Generation by RNN&Attention](https://blog.csdn.net/zn961018/article/details/117593813)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [李宏毅机器学习学习笔记:Self-attention](https://blog.csdn.net/weixin_44455827/article/details/128094176)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值