• 斯坦福CS229机器学习课程笔记四:GDA、朴素贝叶斯、多项事件模型


    距离上一篇笔记竟然快要一个月了……希望这周能把cs229监督学习部分的知识搞定。

    生成学习与判别学习

    像逻辑回归,用hθ(x) = g(θTx) 直接地来建模 p(y|x; θ) ;或者像感知机,直接从输入空间映射到输出空间(0或1),它们都被称作判别学习(discriminative learning)。 与之相对的是生成学习(generative learning),先对 p(x|y) 与 p(y) 建模,然后通过贝叶斯法则导出后验条件概率分布

     分母的计算规则为全概率公式:p(x) = p(x|y = 1)p(y = 1) + p(x|y =0)p(y = 0)。 这一节介绍的三个算法GDA、朴素贝叶斯、多项事件模型,都属于生成学习的范畴。

    GDA (Gaussian discriminant analysis)

    1.多元正态分布

    因为GDA要通过多元正态分布来对p(x|y)进行建模,所以先介绍一下多元正态:

     其中两个参数:μ为均值向量,Σ为协方差矩阵。 接下来从比较容易可视化的二元正态分布图像入手,了解参数变化对概率分布变化的影响:

     

      

     

    2.模型

      

     注:虽然在y分别为0与1的时候,有两个不同的均值向量,这个模型通常接受使用同一个协方差矩阵。

    3.策略

    极大化似然函数 

    4.算法

    极大化似然函数可以得到解析解: 

    5.GDA与逻辑回归的联系与比较

    如果我们把p(y=1 | x; Φ, μ0, μ1, Σ)当成x的函数,那么GDA的模型可以用逻辑回归的形式来表示:

     在这里,θ是Φ, μ0, μ1, Σ的一个函数。 更进一步,如果p(x|y)是一个多元正态分布(共享协方差矩阵Σ),那么p(y|x)将服从一个逻辑函数;但是反过来,如果p(y|x)是一个逻辑函数,那么p(x|y)不一定是一个多元正态分布。也就是说GDA与逻辑回归相比有更强的建模假设,如果这些假设是正确的,那么GDA将拟合出更好地模型,尤其是当p(x|y)确实是两个个共享协方差矩阵的多元正态分布时,那么GDA被成为asymptotically efficient(也就是当数据量很大时,没有算法能够比GDA更好),在这个背景下,即使数据量不大,我们任然会认为GDA的效果会优于逻辑回归。 但是,逻辑回归有更好地鲁棒性,不像GDA对建模的假设那么敏感,例如:如果 x|y=0 ~ Possion(λ0)   x|y=1 ~ Possion(λ1),那么p(y|x)也将服从逻辑模型,但如果用GDA来建模的话,效果就会不理想。当数据确实不服从正态分布,并且数据量很大时,逻辑回归几乎总是优于GDA,因此在实践中,逻辑回归的使用要比GDA普遍。 接下来我们来看一个更为流行的生成学习算法:朴素贝叶斯

    朴素贝叶斯 Naive Bayes

    在GDA中,特征向量x都是连续型变量(对应于多元正态分布的随机变量),而朴素贝叶斯的特征向量x则均为离散型变量。

    1.朴素贝叶斯(NB)假设

    朴素贝叶斯模型常被用于文本分类中,比如垃圾邮件的甄别:从训练集中提取出的所有词去重之后得到一个词汇表(vaocabulary),每封邮件由一个特征向量表示(特征向量的长度与词汇表的长度相同),如果第i个词在邮件中出现则xi为1否则为0(p(xi|y)除了可以建模为贝努力分布,也可建模为多项分布)。最后,由输入的特征向量对邮件进行分类,判别是否为垃圾邮件。 现在对p(x|y)进行建模,假设我们的词汇表中有50000个词,如果用多项分布对x进行建模,那么将有 250000 种可能的结果,也就是会有 250000-1 个参数,这显然不太具有操作性。因此我们进行NB假设:xi条件独立于给定的y ==> p(x1|y) = p(x1|y, x2) 条件独立的典型例子:人的手臂长度与阅读能力条件独立于给定的年龄。(成年人相对于少年手更长,阅读能力也更强;但是当年龄一定时,手的长度与阅读能力就是相互独立的了) 这样,我们就可以大大削减参数的数量:

     虽然这个假设的要求非常高,但是对于许多问题算法的结果还是足够好的。

    2.模型

    3.策略

    极大化似然函数: 

    4.算法

    极大化似然函数可以得到解析解:

     ==> 

    5.拉普拉斯平滑(Laplace smoothing)

    将训练集中没出现过的情况的概率估计为0并不是一个好的想法,比如:垃圾邮件分类的问题中,当一封新的邮件中包含了训练集的词汇表中未曾出现过的新词,那么此时p(y=1|x) = p(y=0|x) = 0,将无法进行分类。 因此,我们有了拉普拉斯平滑。举例来说:多项分布的参数估计(m个训练样本,变量z的取值为{1,...,k})

     这样我们既保证了

     也使得未在训练集中出现的情况,不会被估计为0。 朴素贝叶斯的参数估计依据拉普拉斯平滑,可调整为: 

    多项事件模型

    专为文本分类而生。

    1.模型

    xi代表邮件中第i个词在词汇表中的索引(也就是xi在{1,...,|V|}中取值,|V|是词汇库的词汇量),n个词的邮件将由一个长度为n的向量代表,不同文章的向量长度将可能不相同。 在多项事件模型中,我们假设邮件是这样产生的:首先通过p(y)决定这是否是一封垃圾邮件,然后通过多项分布p(x|y)分别独立地决定每一个词。最终生成整个邮件的概率为

     注:这里基于的假设是:每个词在一篇邮件中出现的概率,与其所在的位置无关。

    2.策略

    极大化似然函数: 

    3.算法

    极大化似然函数可以得到解析解:

     进行拉普拉斯平滑后得到: 

  • 相关阅读:
    ZYNQ xilinx之困惑
    位操作的宏函数实现
    BCG信号的检测【时时更新】
    课题兼申请任务Freescale的K60系列
    SDRAM之持续中。。。。。。
    几款常见的免费网站程序
    常用运放选型
    SDRAM之开始burst length
    谈 数学之美 和 看见
    C语言中的可变参数(...)
  • 原文地址:https://www.cnblogs.com/logosxxw/p/14400410.html
Copyright © 2020-2023  润新知