zoukankan      html  css  js  c++  java
  • 广义线性模型 GLM

    Logistic Regression 同 Liner Regression 均属于广义线性模型,Liner Regression 假设 $y|x ; heta$ 服从 Gaussian 分布,而 Logistic Regression 假设 $y|x ; heta$ 服从 Bernoulli 分布.

    这里来看线性回归,给定数据集 $left { (x_i,y_i) ight }_{i=1}^N$ ,$x_i$ 与 $y_i$ 的关系可以写成 $y_i = heta^Tx_i + varepsilon$ 的形式,这里 $varepsilon$ 为一个误差项 且满足 $varepsilon sim N(0,sigma^2)$ ,这意味着对于相应变量 $ y_i sim N( heta^Tx_i,sigma^2) $ ,即 有:

    [ p(y_i|x_i ; heta) =frac{1}{sqrt{2pi} sigma}exp left (-frac{(y- heta^Tx_i)^2}{2 sigma^2} ight ) ]

    现在可以用 MLE 的方式来对线性回归做一个似然估计,联合概率分布为

    [prod^N_{i=1} frac{1}{sqrt{2pi} sigma}exp left (-frac{(y_i- heta^Tx_i)^2}{2 sigma^2} ight ) ]

    因此可以得到似然函数:

    egin{aligned}
    L( heta) &= sum^N_{i=1} log frac{1}{sqrt{2pi} sigma}exp left (-frac{(y_i- heta^Tx_i)^2}{2 sigma^2} ight )\
    &=m  logfrac{1}{sqrt{2pi} sigma}-frac{1}{sigma^2} left(frac{1}{2}sum_{i=1}^N(y_i- heta^Tx_i)^2 ight )
    end{aligned}

    也就是说,极大化似然函数 等价于极小化 $frac{1}{2}sum_{i=1}^N(y_i- heta^Tx_i)^2$ 即可,这便是最小均方的由来了.至于 Logistic Regression 更是显而易见的可以通过极大似然得到,可见这两种模型之间自有一些联系。

    广义线性模型中的因变量 y 都是 exponential family 分布,exponential family 是啥呢,其形式如下:

    [ p(y; eta) = b(y)exp(eta^TT(y)-a(eta) )]

    指数族分布的参数 $eta$ ,$T(y)$ 为关于 $y$ 的函数,$e^{-a(eta)}$ 为归一化常量,使得 $sum_y{p(y ; eta)} = 1$.可见当固定参数 $T$,$a$,$b$ 便确定了一个参数为 $eta$ 的 exponential family 分布,且一般有 $T(y) = y$ 。指数族分布有一堆优良的性质,在 MLAPP 里都有列出,这里只列出两个能看懂的,1)The exponential family is the only family of distributions for which conjugate priors exist, which simplifies the computation of the posterior; 这个是在说只有指数分布族才存在共轭先验.2) The exponential family can be shown to be the family of distributions that makes the least set of assumptions subject to some user-chosen constraints。这个是在说这个分布性质良好,MaxEnt性质的.

    Bernoulli 与 Gaussian 均是 exponential family 中的一员。对于参数为 $phi$ 的Bernoulli 分布:

    [p(y=1 ; phi) = phi ;  p(y=0 ; phi) = 1- phi]

    为了写成 exponential family 的形式:

    egin{aligned}
    p(y;phi)&=phi^y (1-phi)^{1-y} \
    &=expleft (ylogphi+(1-y)log(1-phi)  ight ) \
    &=expleft (ylog frac{phi}{1-phi}+log(1-phi)  ight )
    end{aligned}

    将Bernoulli 与 指数分布族对应起来:

    [T(y) = y]

    [eta = logleft ( frac{phi}{1-phi} ight )]

    [a(eta) = –log(1-phi)  =log(1+e^{eta})]

    [b(y) = 1]

    接下来看 Gaussian 分布,这里先做一个简单的假设 即另 $sigma = 1$ ,因为 $sigma$ 的取值第最后的结果没有任何影响:

    egin{aligned}
    p(y;mu)& =frac{1}{sqrt{2pi}}exp(-frac{1}{2}(y-mu)^2) \
    &=frac{1}{sqrt{2pi}} exp(-frac{1}{2} y^2)exp(mu y-frac{1}{2} mu^2)
    end{aligned}

    可见 Gaussian 与指数分布族的对应关系:

    [eta = mu]

    [T(y) = y]

    [a(eta) = frac{1}{2} mu^2 = frac{1}{2} eta^2]

    [b(y) = frac{1}{sqrt{2pi}}exp left( –frac{1}{2} y^2 ight)]

    还有许多其他的分布也属于 exponential family ,比如 Multinomial、Possion 、Gamma、exponential、Beta、 Dirchlet 等分布 ,有了 exponential family 的概念之后,现在来看 GLM,考虑一个分类或者回归问题,我们的目标是预测 $y$ 的取值 ,这里 $y$ 是关于 $x$ 的函数,为了得到广义线性模型,我们要对模型做如下三个假设:

    1)$[y|x; heta] sim p(eta)$,这里的 p 即为某种 exponential family.

    2)由于通常有 $T(y) = y$,所以只要建立一个假设函数 $y = h(x) =E[y|x; heta]$.这里 h(x)即为得到的模型.

    3)参数 $eta$ 与 $x$ 是线性相关的, 即 $eta = heta^T x$.

    这三个假设使得我们可以推导出一类有良好性质的学习算法,因为这可以帮助我们建立许多概率判别模型,因为以上三个条件联合起来就是说 $y sim ExponentialFamily( heta^Tx)$ ,所以 $y$ 的期望变为 $ heta^Tx$ 的函数即 $E[y|x] = h(x)$ :

    对于 $p(y|x; heta) sim N( mu ,sigma^2)$ ,$x$ 的取值会导致不同的 $mu$ ,则可以得到模型:

    [h(x) = E[y|x; heta ] = mu = eta = heta^Tx]

    因为 $y$ 是服从 exponential family 中的正态分布,所以有 $mu = eta $

    而对于 $p(y|x; heta) sim Brenoulli( phi)$:

    [ h(x) = E[y|x; heta ] = phi =frac{1}{1+e^{- eta}} =frac{1}{1+e^{- heta^Tx}} ]

    还有当 $p(y|x; heta) sim Multinomial  ( phi_1,phi_2,…,phi_k)$ 时,得到的 $h(x)$ 即为 softmax 了,所以不同的分布得到不同的模型,另外注意这些  MaxEnt 推倒得到的模型与极大似然估计得到的是一致的,详见最大熵模型 Maximum Entropy Model ,应该就是说对  exponential family  中的分布进行 MLE 得到的结果 是满足 Maxent 性质的,关于 MaxEnt 与 exponential family 还有待进一步多查阅资料。

  • 相关阅读:
    LeetCode 712. Minimum ASCII Delete Sum for Two Strings
    LeetCode 1143. Longest Common Subsequence
    LeetCode 334. Increasing Triplet Subsequence
    Atom支持Markdown和Latex
    使用pudb调试python
    Caffe学习笔记2--Ubuntu 14.04 64bit 安装Caffe(GPU版本)
    Window7下安装Ubuntu 14.04 64bit
    Cnblogs支持Latex及测试
    Caffe学习笔记1--Ubuntu 14.04 64bit caffe安装
    g++编译流程
  • 原文地址:https://www.cnblogs.com/ooon/p/5681255.html
Copyright © 2011-2022 走看看