zoukankan      html  css  js  c++  java
  • 生成学习算法

         这节主要介绍了生成学习算法。首先与逻辑回归分类算法进行比较,引出生成学习算法的核心思想,然后介绍了一种基本的生成学习算法——高斯判别分析,并进一步对高斯分布条件进行讨论,比较生成学习算法与判别学习算法的区别,最后介绍了两种适合文本分类的朴素贝叶斯方法,并由引入新数据时产生的问题介绍拉普拉斯平滑法

         基本思路是:

    • 生成学习算法(Generative Learning Algorithms)
    • 高斯判别分析(Gaussian Discriminant Analysis)
    • 朴素贝叶斯(Naive Bayes)
    • 拉普拉斯平滑(Laplace Smoothing)

    一、生成学习算法

        判别学习算法,计算条件概率p(y|x;θ),直接学习从特征X到标签y∈{0,1}的映射。如逻辑回归,寻找一条直线(决策边界)将两类数据集分开,新数据落入哪边就属于哪类。

        生成学习算法,计算联合概率p(x,y),或者理解为对p(x|y)和p(y)同时进行建模。对不同类别的数据集分别进行建模,看新输入的数据更符合哪类模型,该数据就属于哪类。

        Case, 对动物进行分类,y=1表示是大象,y=0表示是小狗,p(x|y=1)是对大象特征建模后的分布,p(x|y=0)是对小狗特征建模后的分布。

        结合贝叶斯公式,可以由先验概率p(x|y)和p(y)求出后验概率p(y|x)。

        

        其中,p(x)=p(x|y=1)p(y=1)+p(x|y=0)p(y=0).

       

    二、高斯判别分析

    1. 多元正态分布(multivariate normal distribution)

      (1)定义:

        n维的多元正态分布(多元高斯分布),由参数均值向量μ∈Rn和协方差矩阵Σ∈R(nXn)确定,记作N(μ,Σ),它的概率密度公式为:

        

        其中,|Σ|为Σ的行列式。

        对于随机变量X~N(μ,Σ),它的期望为多元正态分布的均值μ,协方差为其协方差矩阵Σ。

        

        

      (2)参数:

    • 协方差Σ

         

                                (a)Σ=I                                                (b)Σ=0.6I                                           (c)Σ=2I 

           (a)中协方差为一个2维的单位矩阵,均值为0,也被叫做标准正态分布。当Σ变大时,高斯分布会变得更加拓展(c);当Σ变小时,高斯分布变得更加压缩(b)。

          

          以上三图,均值为0,协方差矩阵Σ分别为:

           

         当增加协方差矩阵斜对角线的值,分布沿着45度角的方向压缩,随着它的值增加,压缩得越多。当协方差矩阵斜对角线值减小为负时,分布沿着45度的反方向压缩。

         

    • 均值μ

          

         当固定协方差的值,随着均值μ的变化,可以看出,分布的位置随之而变化。

         

     2. 高斯判别分析建模

        假设输入x为连续值的随机变量,且满足多元正态分布。

        

        于是,可以得到p(x|y)的表达式。

        

        模型的参数为Φ,μ1,μ2,Σ,它的对数似然函数为,这里所求的是联合概率

       

        最大化对数似然函数,可得各个参数的估计值:

       

          对实际例子进行建模后的等高图如下,两类样本集拥有相同的协方差Σ,故它们的形状是完全相同的,而均值μ不同,所以位置是不同的。图中的直线表示的是p(y=1|x)=0.5的决策边界

        

     3.  比较GDA和逻辑回归

     (1)引例

        由于

        

        特别地,当p(y)是均值分布,即p(y)对于不同的y值取值都相同,可以继续简写为argmax p(x|y)。也就是说,最终问题可以简化为求p(x|y)。

        现在讨论两个一维正态分布的GDA问题,求取p(y=1|x),即为求p(x|y=1)和p(x|y=0)。

        观察p(y=1|x),它其实是一个关于x的函数,形状类似Sigmoid函数,可以表示为:

        

        其中,θ是关于Φ,μ1,μ2,Σ的函数。

     (2)比较

         那么,GDA和逻辑回归哪种分类模型更好呢?

         由GDA模型的推导过程可知,当p(x|y)是多元正态分布时,可以推到出p(y|x)满足逻辑函数,而反之不成立。这说明GDA比逻辑回归做了更强的模型假设。

         其实,还有很多其他分布条件满足时,可以推导出p(y|x)满足逻辑函数的结论。例如,x|y服从泊松分布:x|y=1~Poisson(λ1),x|y=0~Poisson(λ0),则p(y|x)也是逻辑函数。推广之,x|y=1~ExpFamily(λ1),x|y=0~ExpFamily(λ0),则p(y|x)也是逻辑函数。当把GDA应用在不服从高斯分布却又能推导出逻辑函数的条件下,效果也并不好。

         总之,当高斯分布成立或大概成立,模型假设的条件性更强,那么GDA将优于逻辑回归,GDA是渐进有效的(asymptotically efficient)。当若相反的并不知道是否成立时,假设性更弱,逻辑回归会更好,具有更强的鲁棒性。事实上,当未知训练集是否服从高斯分布,且在规模有限时,逻辑回归的表现往往要好于GDA。因此,逻辑回归比GDA要常用。

    三、朴素贝叶斯

       GDA针对的是连续变量,现在要来说一个针对离散变量的分类模型:朴素贝叶斯。

     (1)多元伯努利事件模型(multi-variate Bernoulli event model)

       引例,垃圾邮件分类

       特征向量x,当邮件中含有词典中的第i个词,则设置xi=1,反之则为xi=0.例如,

       

        假设xi是条件独立的(朴素贝叶斯假设),有50000个词。现在要建立一个生成学习算法,就要计算p(x|y),于是有:

        

        模型参数:

        

        联合似然函数为:

       

        极大似然函数的参数估计为:

       

        预测一个新的输入x:

        

       

       总之,假设xi∈{0,1},y=词典中词的个数,求p(x|y)和p(y)来求后验概率p(y|x)最大。这种模型也叫做多元伯努利事件模型。

       针对文本分类,还有另外一种更为有效的模型。

     (2)多项式事件模型( multinomial event model)

       多元伯努利事件模型中的特征向量缺少某些信息,如不同的词语在邮件中出现的次数

       假设ni=邮件中词的总个数,xj∈{1,2,...,50000},表示对应邮件中第j个位置出现的词,也就是指向词典的索引。

       一个邮件的联合概率分布为:

       

       参数为:

       

       Φk|y=1表示的是在垃圾邮件中词k所占比例。

       对数似然性为:

       

       由于考虑了一个文档中词出现的次数,故文本分类效果比第一种朴素贝叶斯的事件模型要好。

       

     (3)存在的问题:

       假设有一个未在之前的词典中出现过的新词,它的位置在35000,则参数估计为:

       

       则后验概率为:

       

        最终得到的是一个不定式,也就是说此时模型无法判断这个新词的分类。为了解决这种问题,引入拉普拉斯平滑。

    四、拉普拉斯平滑

        朴素贝叶斯的问题出在,Φ的有些极大似然估计值可能取值为0,归根结底,是Φj的分子可能为0导致的。

        

        拉普拉斯平滑就是通过增加一些修正因子,分子增加1,分母增加k来优化。

        

        这样做并不改变Φj整体概率仍然为1。

        朴素贝叶斯第一种模型的拉普拉斯平滑为:

        

         朴素贝叶斯第二种模型的拉普拉斯平滑为:

        

      

    参考文献:

    【斯坦福---机器学习】复习笔记之生成学习算法

  • 相关阅读:
    【转载】分布式环境Raft一致性共识算法解读
    从码农到工程师:只要做到这6点
    产品思维的修炼–技术的必修课
    工具篇
    安全测试
    测试体会
    测试题目
    软件测试工具
    常见的性能测试方法
    性能测试在软件测试的周期位置
  • 原文地址:https://www.cnblogs.com/wallacup/p/6043784.html
Copyright © 2011-2022 走看看