zoukankan      html  css  js  c++  java
  • PRML 4: Generative Models

      从概率论的角度出发,一个分类问题通常分为两个阶段:(I) inference stage 是指建立某种含参概率模型,通过一定方式得到后验概率分布 $p(C_k ext{ | }vec{x})$;(II) decision stage 是根据后验概率分布,对标签未知的特征向量做出预测。在具体实现过程中又可分为两个学派:(I) 统计学派往往利用 MLE 或 MAP 等手段对模型参数进行点估计,在 inference stage 得到确定的概率分布,然后在 decision stage 中找到使得 expected loss 达到最小的预测值;(II) 贝叶斯学派则对参数分布进行学习和近似,然后对所有可能的参数进行 marginalization 以得到预测值,如

        $p(C_k|vec{x}_{N+1},X,vec{t})=int p(C_k|vec{x}_{N+1},vec{w})cdot p(vec{w}|X,vec{t})cdot dvec{w}$,  其中求 $p(vec{w}|X,vec{t})$ 取共轭先验往往有在线算法 。 

      无论对于哪一种学派,inference stage 都可以分为两种建模方式:(I) generative model 是建立 class-conditional distribution $p(vec{x} ext{ | }C_k)$ 的含参模型,先得到联合概率分布 $p(C_k,vec{x})$ 再计算后验概率分布 $p(C_k ext{ | }vec{x})$;(II) discriminative model 则直接对后验概率分布进行建模和学习,最经典的例子就是逻辑回归。

      从前提到的 discriminant function 是一类投机取巧的判定方法,并不基于概率论,而是直接对分类决策进行建模,再构造适当的目标函数进行优化。相比于这种方法,基于概率论的方法优势在于:(I) 可以随时修改 expected loss;(II) 能够通过构造适当先验分布的训练集解决正负样本不平衡的问题;(III) 可以融合特征独立、标签相同的模型,如 $p(C_k ext{ | }vec{x},vec{y})=frac{p(C_k ext{ | }vec{x})p(C_k ext{ | }vec{y})}{p(C_k)}$

      A typical generative model is Naive Bayes Classifier with Laplace Smoothing: given the class label, we assume the feature components are conditionally independent distributed, i.e. $p(vec{x}^{(i)}=a_{is},vec{x}^{(j)}=a_{jr} ext{ | }C_k)=p(vec{x}^{(i)}=a_{is} ext{ | }C_k)cdot p(vec{x}^{(j)}=a_{jr} ext{ | }C_k)$.

      (1) Prior: $p(C_k)=frac{sum_{n=1}^N I(y_n=C_k)+1}{N+k}$ for $0leq k<K$;

      (2) Likelihood: $p(vec{x}^{(j)}=a_{jl} ext{ | }C_k)=frac{sum_{n=1}^N I(vec{x}_n^{(j)}=a_{jl},C_k)+1}{sum_{n=1}^N [I(y_n=C_k)+1]}$;

      (3) Prediction: $y=mathop{argmax}_{C_k}p(C_k)cdot prod_{j=1}^{m}p(vec{x}^{(j)}=vec{x}_{N+1}^{(j)} ext{ | }C_k)$.

      Gaussian Dicriminant Analysis (GDA) is another example that makes an MAP estimate to do a prediction: given the class label, we assume the feature vector is Gaussian distributed. Here we take $K=2$ for example.

      (1) Prior: $p(C_k)=frac{1}{N}cdotsum_{n=1}^N I(y_n=C_k)$ for $k=0,1$;

      (2) Likelihood: $p(vec{x} ext{ | }C_k)=Gauss(vec{x} ext{ | }vec{mu}_k,Sigma)$,  where by MLE we have

        $vecmu_k=frac{sum_{n=1}^N I(y_n=C_k)cdotvec x_n}{sum_{n=1}^N I(y_n=C_k)}$,  and  $Sigma=frac{1}{N}sum_{n=1}^N(vec x_n-vecmu_{y_n})cdot(vec x_n-vecmu_{y_n})^T$;

      (3) Prediction: $y=mathop{argmax}_{C_k} p(C_k)cdot p(vec{x}_{N+1} ext{ | }C_k)$.

      GDA 与 logistic regression 的区别在于:与 GDA 相比,logistic regression 的模型假设更弱一些,不要求数据服从同方差正态分布,适用范围更广;但 GDA 的优势在于当数据服从其假设条件的时候,它比 logistic regression 更加精准,且只要较少的样本就可以达到相同的收敛效果。NB 与 softmax regression 的关系与之相近:softmax regression 不要求各特征分量服从 independent conditional distribution,它事实上可以替代所有满足 $p(vec{x} ext{ | }C_k)propto e^{vec{w}_k^Tvec{x}}$ 分布假设的生成模型。一般而言,general model 往往具有 high bias, low variance(容易造成 underfitting),适用于小训练集;discriminative model 往往具有 low bias, high variance(容易造成 overfitting),适用于大训练集。

    References:

      1. Bishop, Christopher M. Pattern Recognition and Machine Learning [M]. Singapore: Springer, 2006

      2. Andrew Ng's  lecture notes

  • 相关阅读:
    深入理解HTTP协议及原理分析
    如何提高php应用的性能?
    PHP的网站主要攻击方式有哪些?
    五种常见的 PHP 设计模式
    排序算法之插入排序类
    排序算法之交换排序类
    Redis之Zset
    Redis之Set
    Redis之List
    Redis之Hash
  • 原文地址:https://www.cnblogs.com/DevinZ/p/4575786.html
Copyright © 2011-2022 走看看