机器学习算法笔记2_1:生成学习算法(Generative Learning algorithms)

我们之前学习的算法都是基于 p(y|x;θ) , 他的思想是找出找出一个决策边界来将两类分开,而生成算法是先对两个类别分别建模,为了将样本分开,将样本代入两个模型,看样本与哪个类别更匹配。
这种试图直接从输入 x 映射到类别标签{0,1}的算法被称为判别学习算法;而通过计算p(x|y)(和p(y))来得到模型的算法被称为生成学习算法
通过贝叶斯函数得到 p(y|x)=p(x|y)p(y)p(x) ,

argmaxyp(y|x)=argmaxyp(x|y)p(y)p(x)=argmaxyp(x|y)p(x)

  1. 高斯判决分析(GDA, Gaussian discriminant analysis)
    假设p(x|y)服从多元正太分布.
    1. 多元正太分布


      Cov(X)=Σ=E[(XE(X)(XE(X))T)]=E[XXT](E[X]E[X]T)

      左图 Σ=I ,中图 Σ=0.6I ,右图 Σ=2I ,可以看到随着协方差增大,分布越趋近”扁平”。


      机器学习算法笔记2_1:生成学习算法(Generative Learning algorithms)_第1张图片
      随着协方差非对角线元素的增大,分布越趋于正45度方向压缩
      机器学习算法笔记2_1:生成学习算法(Generative Learning algorithms)_第2张图片
      随着协方差非对角线元素的减小, 分布逐渐向-45度方向压缩。右图显示,任意地改变参数分布投影趋近椭圆。
    2. 高斯判决分析模型(GDA)
      • 应用条件:特征x为连续随机变量
      • 模型:用多远正态分布给 f(x|y) 建模,模型如下:

        即:
        机器学习算法笔记2_1:生成学习算法(Generative Learning algorithms)_第3张图片
        从上式可以看出这个模型通常采用不同的均值,相同的方差。即模型的参数为 ϕ,Σ,μ0,μ1 ,写成对数形式如下:
        机器学习算法笔记2_1:生成学习算法(Generative Learning algorithms)_第4张图片
        参数计算如下
        机器学习算法笔记2_1:生成学习算法(Generative Learning algorithms)_第5张图片
        样本分布图
        机器学习算法笔记2_1:生成学习算法(Generative Learning algorithms)_第6张图片
    3. 高斯决策模型与逻辑回归的关系
      如果将 p(y=1|x;ϕ,μ0,μ1,Σ) 看成关于x的函数,则其形式可以改写成:

      这正是LR的形式。即如果 p(x|y) 符合多元高斯分布且共享 Σ ,则 p(y|x) 将符合Logistics函数的形式,但这只是充分不必要条件, f(y|x) 若符合Logistic函数,不能推出 f(x|y) 符合多元正太分布。
      GDA与LR的比较:
      1. GDA对x具有很强的假设(服从多元正太分布),如果满足则能更好的适应样本,会是更好的模型,且asymptotically efficient;在大的训练样本的前提下,没有模型能比GDA更好。但是LR鲁棒性更强,不要求x一定符合高斯分布;
      2. GDA需要的训练样本比LR更少
        实际中由于LR对数据先验概率的适应性而更多的被使用。
  2. 朴素贝叶斯(Naive Bays):适用于文本分类
    GDA中,要求x是连续的向量,而朴素贝叶斯则是针对输入x是离散变量的情况。
    1. 朴素贝叶斯假设
      假设当给定 y 时向量 x 的各个分量相互独立
    2. 推论
      p(x1,...,x50000)=p(x1|y)p(x2|y,x1)p(x3|y,x1,x2)...p(x3|y,x1,x2,...x49999)=p(x1|y)p(x2|y)p(x3|y)p(x50000|y)=i=1np(xi|y)

      以垃圾邮件过滤为例,假设样本是如下所示的向量,每个元素对应词汇表中一个词汇,如果邮件中存在对应词则置为1否则为0;

      那么模型参数是
      ϕi|y=1=p(xi=1|y=1)ϕi|y=0=p(xi=1|y=0)ϕy=p(y=1)
      ,对于训练集 {(x(i),y(i));i=1,2,...,m} ,可以写出如下联合似然函数:
  3. Laplace平滑
    上面的朴素贝叶斯有一个问题,当有一个此前从未出现的词出现在一个新的email中时,由于:
    机器学习算法笔记2_1:生成学习算法(Generative Learning algorithms)_第7张图片
    从而使

    造成无法判决。
    为避免这种情况,可以使用拉普拉斯平滑法:

    其中k为z可能取值的数量。
  4. 文本分类事件模型(Event models for text classification)
    在的朴素贝叶斯模型是基于多元伯努利分布(x向量元素只能取0或1),其生成一封邮件的过程是
    机器学习算法笔记2_1:生成学习算法(Generative Learning algorithms)_第8张图片
    与不素贝叶斯模型不同的是,多项事件模型(multinomal event model)表示一封邮件的向量x中的元素取自{1,2,…,|V|}, 其中,V为字典长度,这样,一封邮件就被表示成长度等于邮件词汇数的向量。该模型生成邮件的过程是这样的:

    虽然概率形式上和朴素贝叶斯很相似,但是其含义发生了很大的变化,特别是 xi|y 已经变成了多项式分布。

    参数:
    机器学习算法笔记2_1:生成学习算法(Generative Learning algorithms)_第9张图片
    使用拉普拉斯平滑后的参数:
    机器学习算法笔记2_1:生成学习算法(Generative Learning algorithms)_第10张图片

(斯坦福机器学习笔记)

你可能感兴趣的:(算法,机器学习)