统计模式识别学习笔记(十)

真的很意外,没想到这个系列的学习笔记已经写到第十篇了。而其他感兴趣的栏目也仅仅写了个开头。感谢朋友们的支持,给了我继续成文的动力。在这十篇文章中,我其实最满意的是第一篇。但是只从浏览量来看,第八篇的人气属实很高,可能是因为那篇文章的题目叫马尔可夫链蒙特卡罗 ( M C M C ) (MCMC) (MCMC) 方法。在那篇博客中,关于马尔可夫链蒙特卡洛方法我觉得没有讲透,或者说因为数学公式较多,直观概念较少,理解起来比较困难。综合了其他统计学和机器学习的书籍,我借本篇博客再讨论一下。

一、 马尔可夫链蒙特卡罗算法

从名字上来看,马尔可夫链蒙特卡罗算法其实综合了马尔可夫链和蒙特卡罗算法。然而在之前的文章中,我却对此只字未提,便从这篇文章中补足了。

  1. 蒙特卡罗法

    情形一:假设,随机变量 x ( x ∈ X ) x (x\in X) x(xX) 的概率密度函数 p ( x ) p(x) p(x) x x x 定义在 X X X 上的函数 f ( x ) f(x) f(x) 已知。现求, f ( x ) f(x) f(x) 关于 p ( x ) p(x) p(x) 的数学期望 E p ( x ) [ f ( x ) ] E_{p(x)}[f(x)] Ep(x)[f(x)]

    情形二:假设,已知变量 x x x X X X 上的函数 h ( x ) h(x) h(x) ,现求,该函数在 X X X 上的积分 ∫ X h ( x ) d x \int_X h(x)dx Xh(x)dx

    在这两个情境中,其实都涉及到积分问题,如果用解析的形式把情形一写出来,则为:
    E p ( x ) [ f ( x ) ] = ∫ X p ( x ) f ( x ) d x E_{p(x)}[f(x)]=\int_Xp(x)f(x)dx Ep(x)[f(x)]=Xp(x)f(x)dx
    针对这个问题,蒙特卡罗算法按照 p ( x ) p(x) p(x) 的分布,从样本中抽取一系列的样本 x 1 , . . . , x n x_1,...,x_n x1,...,xn,之后计算这些样本函数值的均值,记为:
    f ^ n = 1 n ∑ i = 1 n f ( x i ) \hat{f}_n=\frac{1}{n}\sum_{i=1}^nf(x_i) f^n=n1i=1nf(xi)
    以此作为均值的估计,而学过大数定理的朋友们都知道,当样本容量足够大时,这一估计将以值为1的概率收敛到数学期望。

    所以,有这样的形式。

    f ^ n = 1 n ∑ i = 1 n f ( x i ) ≈ E p ( x ) [ f ( x ) ] \hat{f}_n=\frac{1}{n}\sum_{i=1}^nf(x_i)\approx E_{p(x)}[f(x)] f^n=n1i=1nf(xi)Ep(x)[f(x)]

    而情形二的计算方法更令人惊讶,如果能把 h ( x ) h(x) h(x) 拆分成一个函数 f ( x ) f(x) f(x) 和概率分布 p ( x ) p(x) p(x) 相乘的形式,那么关于函数 h ( x ) h(x) h(x) 的积分就可以转化为上述的期望求解。而其本质在于样本的采样。

  2. 马尔可夫链

    马尔可夫链可能名字更为响亮一些。比如自然语言处理、语音处理中经常用到的语言模型。接下来说一下它的定义:

    考虑一个随机变量的序列 X = { X 0 , . . . , X t , . . . } X=\lbrace X_0,...,X_t,... \rbrace X={ X0,...,Xt,...},这里 X t X_t Xt 表示时刻 t t t 的随机变量, t = 0 , 1 , 2 , . . . t=0,1,2,... t=0,1,2,... 每个随机变量的取值集合相同,称为状态空间,表示为 S S S 。随机变量可以是连续的,也可是离散的,以上随机变量的序列构成随机过程。

    如果有下式成立,
    P ( X t ∣ X 0 , X 1 , . . . , X t − 1 ) = P ( X t ∣ X t − 1 ) P(X_t|X_0,X_1,...,X_{t-1})=P(X_t|X_{t-1}) P(XtX0,X1,...,Xt1)=P(XtXt1)
    即, X t X_t Xt 的 状态之和前一时刻 X t − 1 X_{t-1} Xt1 的状态有关,而不依赖过去的随机变量,这一性质称为马尔可夫性,那我们说随机序列称为马尔可夫链或马尔可夫过程。

由于,本篇文章的重点并不是重新介绍马尔可夫链蒙特卡罗法。这里只是对马尔可夫链和蒙特卡罗方法进行一个补充。

二、 贝叶斯判别方法

本讲讨论如何将贝叶斯学习方法应用到判别问题中,什么时候适合用解析法,什么时候适合用数值方法?

  1. 标记训练数据

    D D D 表示用于用于训练分类的训练集 { ( x i , z i ) , i = 1 , . . . , n } \lbrace (x_i,z_i),i=1,...,n \rbrace { (xi,zi),i=1,...,n} ,其中 z i = j z_i=j zi=j 意味着样本 x i x_i xi 取自 ω j \omega_j ωj 类。我们希望预测样本的类别,在最早的最小错误贝叶斯决策中,如果 p ( ω j ∣ x ) , j = 1 , . . . , C p(\omega_j|x),j=1,...,C p(ωjx),j=1,...,C ,通过比较上式后验分布,可知样本属于哪一类别。而在已知标签的训练数据下,此时的后验分布为:
    p ( z = j ∣ D , x ) , j = 1 , . . . , C p(z=j|D,x),j=1,...,C p(z=jD,x),j=1,...,C
    也可以写作,
    p ( z = j ∣ D , x ) ∝ p ( x ∣ D , z = j ) p ( z = j ∣ D ) p(z=j|D,x)\propto p(x|D,z=j)p(z=j|D) p(z=jD,x)p(xD,z=j)p(z=jD)
    p ( x ∣ D , z = j ) p(x|D,z=j) p(xD,z=j) 是在 x x x 处求得的 ω j \omega_j ωj 类的概率密度函数。如果假定该密度是一个 ϕ j \phi_j ϕj 的模型,就可以将模型进一步改写为
    p ( x ∣ D , z = j ) = ∫ p ( x ∣ ϕ j ) p ( ϕ j ∣ D , z = j ) d ϕ j p(x|D,z=j)=\int p(x|\phi_j)p(\phi_j|D,z=j)d\phi_j p(xD,z=j)=p(xϕj)p(ϕjD,z=j)dϕj
    此式,来源于贝叶斯法类条件概率密度的单一预测。

  2. 解析和数值方法的使用

    p ( x ∣ ϕ j ) p(x|\phi_j) p(xϕj) 这一项如果是特定情况,如之前所述的一维高斯分布或多元正态分布,可以通过它的共轭先验密度来构造后验分布。此时,可以用解析的方法。

    如果无法获得解析解,则使用数值的方法,比如马尔可夫链蒙特卡罗算法 ( M C M C ) (MCMC) MCMC。解析法从参数的后验密度中 p ( ϕ j ∣ D , z = j ) p(\phi_j|D,z=j) p(ϕjD,z=j) 抽取样本,于是这一问题就又回到了开篇所讲的蒙特卡洛积分问题了。

  3. p ( z = j ∣ D ) p(z=j|D) p(z=jD)

    这一项是给定数据集下 ω j \omega_j ωj 类的概率,而这一项是可以通过数据更新的先验概率,如果假定 ω j \omega_j ωj 类的先验密度服从狄利克雷先验分布,那么

    p ( z = j ∣ D ) = E [ π j ∣ D ] = α 0 j + n j ∑ j = 1 C ( α 0 j + n j ) p(z=j|D)=E[\pi_j|D]=\frac{\alpha_{0j}+n_j}{\sum_{j=1}^C(\alpha_{0j}+n_j)} p(z=jD)=E[πjD]=j=1C(α0j+nj)α0j+nj
    其中, n j n_j nj ω j \omega_j ωj 类在 D D D 中的训练样本数。

猜你喜欢

转载自blog.csdn.net/qq_44868018/article/details/108334787
今日推荐