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

    到目前为止,我们讨论的学习算法都是以$p(y mid x; heta)$为模型 ,即给定x以后y的 条件分布。接下来讨论一个不同类型的学习算法。

    举个例子:有一个分类问题,基于动物得而一些特征分辨它是大象(y=1)还是狗(y=0)。对于逻辑回归算法或感知算法会找出一条直线作为判别边界。这里提出一个新的方法:分别建立一个大象特征的模型和狗特征的模型、对于一个新的动物,使之与大象模型和狗的模型分别匹配,以此判断该新的动物与哪个更匹配。

     

    判别学习算法

    直接学习$p(y mid x)$或学习输入空间X到标签{0,1}的映射

    生成学习算法

    以$p(x mid y)$为模型

    比如,y表示样本是大象(1)还是狗(0),则$p(x mid y=0)$表示狗特征的分布模型。

    建立$p(y)$(类的先验)和$p(x mid y)$,使用贝叶斯准则推导出给定x以后y的分布:

    $p(y mid x) = frac {p(x mid y)p(y)}{p(x)}$

    这里的分母可由$p(x)=p(x mid y=1)p(y=1)+p(x mid y=0)p(y=0)$得到。然后以我们学习得到的$p(x mid y)$和$p(y)$来表示

    实际上,计算$p(y mid x)$时,我们并不需要计算分母,因为:

    $arg~~underset{y}{max} p(y mid x)= arg~~underset{y}{max}frac{p(x mid y)p(y)}{p(y)}$

    $arg~~underset{y}{max} p(y mid x)= arg~~underset{y}{max}p(x mid y)p(y)$

     

    高斯判决分析(GDA)

    多维正太分布

    u为均值向量,$u in R^{n}$,协方差矩阵$Sigma in R^{n imes n}$,

    概率密度函数:

    $p(x;u,Sigma) = frac{1}{(2pi)^{n/2}left | Sigma ight |}exp(-frac{1}{2}(x-u)^{T}Sigma^{-1}(x-u))$

    上式的$left | Sigma ight |$表示矩阵的行列式

    随机变量Z的协方差表示为:$Cov(Z)=E[(Z-E[Z])(Z-E[Z])^{T}]=E[ZZ^{T}]-(E[Z])(E[Z])^{T}$

    这里$X~N(u,Sigma)$,则:

    $Cov(X) = Sigma$

    以下分别为$Sigma=I,Sigma=0.6I,Sigma=2I$时的分布图,均值为2X1的零向量:

    以下分别表示其它不同$Sigma$时的分布:

    以上最左边的图为标准正态分布,后面添加对角线元素后,概率密度被沿着45度线压缩,为了更清楚,显示如下:

    对角线添加负值时:

    固定协方差矩阵为I,改变u,观察概率密度分布:

    高斯判别分析模型(GDA)

    当分类问题中,x是连续的随机变量,则可以使用该模型,$p(x mid y)$使用多维正态分布。模型如下:

    $y ~ Bernoulli(phi)$

    $x mid y = 0 ~N(u_{0},Sigma)$

    $x mid y = 1 ~N(u_{1},Sigma)$

    $p(y)=phi^{y}(1-phi)^{1-y}$

    $p(x mid y=0) =  frac{1}{(2pi)^{n/2}left | Sigma ight |}exp(-frac{1}{2}(x-u_{0})^{T}Sigma^{-1}(x-u_{0}))$

    $p(x mid y=1) =  frac{1}{(2pi)^{n/2}left | Sigma ight |}exp(-frac{1}{2}(x-u_{1})^{T}Sigma^{-1}(x-u_{1}))$

    这里模型参数为$phi,Sigma,u_{0},u_{1}$,$u_{0},u_{1}$是不同的均值向量。

    对数似然函数:

    $iota (phi,u_{0},u_{1},Sigma) = log prod_{i=1}^{m}p(x^{(i)},y^{(i)};phi,u_{0},u_{1},,Sigma)$

    $iota (phi,u_{0},u_{1},Sigma) = log prod_{i=1}^{m} p(x^{(i)}mid y^{(i)};u_{0},u_{1},Sigma)p(y^{(i)};phi)$

    得到参数的最大似然估计:

    得到两组高斯分布:

    如上,两组高斯分布拥有相同的形状和方向,因为他们拥有共同的协方差矩阵。但他们的均值$u_{0},u_{1}$不同。

    朴素贝叶斯

    在GDA模型中,特征向量x是连续的,接下来讨论离散的情况。

    比如,训练一组标志为垃圾和非垃圾的邮件。我们通过一个长度为字典的单词数的特征向量来表示一封邮件。当邮件含有第i个单词时,设$x_{i}=1$,否则$x_{i}=0$。

     

    为了计算方便,我们假设当给定y(一封邮件)后,$x_{i}$是条件独立的。即有:

    $p(x_{1},...,x_{5000} mid y) = prod_{i=1}^{n}p(x_{i} mid y)$

    这种假设称为朴素贝叶斯假设,对应算法称为朴素贝叶斯分类器。

    模型参数为:$phi_{i mid y=1}=p(x_{i}=1 mid y=1),phi_{i mid y=0}=p(x_{i}=1 mid y=0),phi_{y}=p(y=1)$。对于给定的训练集,${(x^{(i)},y^{(i)});i=1,2,...,m}$,则联合似然函数:

    根据$phi_{y},phi_{i mid y=0},phi_{i mid y=1}$:

    等式中的$wedge $表示“与”。

    预测:

    最后,我们注意到贝叶斯算法主要是针对特征$x_{i}$是二值情形,容易得到一般情形$x_{i}$取${1,2,...,k_{i}}$。这里,我们的模型$p(x_{i} mid y)$是多项式,而不是伯努利。当输入是连续数值时,一般需要将其离散化。比如以下住房面积:

    拉普拉斯平滑

    比如,在文本分类的例子中,你需要判别邮件的类型。当训练集不含单词“nips”,而当前需要分类的邮件含有这个词,并且假设该词处在字典的第35000的位置。则贝叶斯模型计算最大似然估计如下:

    因为之前从没有出现过“nips”,因此类的后验概率为:

    参数化多项式:$phi_{i}= p(z=i)$。给定一组具有m个独立观察值的数据${z^{(1)},...,z^{(m)}}$,最大似然估计如下表示:

    如前面所述,这种最大似然估计会出现某些$phi_{j}$为0的情况。为了避免这个情况,我们使用拉普拉斯平滑,最大似然估计表示如下:

    其中,$sum_{j=1}^{k}phi_{j}=1$依然成立。

    因此对于前面的估计,表达如下:

     

  • 相关阅读:
    Eclipse安装SVN插件(转载)
    推荐eclipse插件Properties Editor(转)
    Eclipse快捷键(转载)
    添加路由命令
    oracle 随机数(转载)
    《图解CSS3——第1章 揭开CSS3的面纱》
    css高度自适应
    JS生成随机数
    判断IE浏览器版本
    IE下SCRIPT5009: “JSON”未定义
  • 原文地址:https://www.cnblogs.com/wuchaodzxx/p/5735927.html
Copyright © 2011-2022 走看看