概率图模型
概率图模型(PGM)是一种对现实情况进行描述的模型。其核心是条件概率,本质上是利用先验知识,确立一个随机变量之间的关联约束关系,最终达成方便求取条件概率的目的。
概率图中的节点分为隐含节点和观测节点,边分为有向边和无向边,节点对应于随机变量,边对应于随机变量的依赖或相关关系。
概率图模型分为贝叶斯网络和马尔科夫网络两大类。贝叶斯网络可以用一个有向图表示,马尔科夫网络可以用一个无向图表示。更详细的说,概率图模型包括了朴素贝叶斯模型、最大熵模型、隐马尔科夫模型、条件随机场、主题模型等。
贝叶斯模型
朴素贝叶斯(Naive Bayes)是基于贝叶斯定理与特征条件独立假设的分类方法。
算法推导
给定训练数据集$(X,Y)$,其中每个样本$x$都包括$n$维特征,即$x=(x_1,x_2,…,x_n)$, 类标记集合含有k种类别,即y=(y_1,y_2,…,y_k)
对于一个新样本x,需要求后验概率最大的输出:
$$
\argmax_{y_k} P(y_k|x)
$$
其中,
$$
P(y_k|x) = \frac{P(x|y_k)P(y_k)}{P(x)}
$$
根据全概率公式,可以进一步地分解上式中的分母:
$$
P(y_k|x)=\frac{P(x|y_k)P(y_k)}{\sum_k P(x|y_k)P(y_k)}
$$
朴素贝叶斯算法对条件概率分布作出了独立性的假设, 则条件概率可以转化为:
$$
P(x|y_k)=P(x_1,x_2,..,x_n|y_k)=\prod_{i=1}^n P(x_i|y_k)
$$
代入上式,可得:
$$
P(y_k|x)=\frac{P(y_k) \prod_{i=1}^n P(x_i|y_k) }{\sum_k P(y_k) \prod_{i=1}^n P(x_i|y_k)}
$$
注意到分母对所有都是相同的,所以,朴素贝叶斯分类器最终表示有
$$
f(x) = \argmax_{y_k}P(y_k) \prod_{i=1}^n P(x_i|y_k)
$$
关于$P(y_k)$,$P(x_i|y_k)$的求解,有以下三种常见的模型.
- 多项式模型
当特征是离散的时候,使用多项式模型。多项式模型在计算先验概率,和条件概率时,会做一些平滑处理,具体公式为:
$$
P(y_k)=\frac{N_{y_k}+\alpha}{N+k \alpha} \\
P(x_i|y_k)=\frac{N_{y_k x_i}+\alpha}{N+n \alpha}
$$
其中,
$N$是总的样本个数,$k$是总的类别个数,$N_{y_k}$是类别为y的样本个数,$\alpha$是平滑值。
$N_{y_k}$是类别为$y_k$的样本个数,$n$是特征的维数,$N_{y_k x_i}$是类别为$y_k$的样本中,第i维特征的值是$x_i$的样本个数,$\alpha$是平滑值。
当$\alpha=1$时,称作Laplace平滑,当$0<\alpha<1$时,称作Lidstone平滑,$\alpha=0$时不做平滑。
如果不做平滑,当某一维特征的值$x_i$没在训练样本中出现过时,会导致$P(x_i|y_k)=0$,从而导致后验概率为0,使分类产生偏差。加上平滑就可以克服这个问题。 - 高斯模型
当特征是连续变量的时候,运用多项式模型就会导致很多$P(x_i|y_k)=0$(不做平滑的情况下),此时即使做平滑,所得到的条件概率也难以描述真实情况。处理连续的特征变量,应该采用高斯模型。
当特征是连续变量的时候,可以假设每一维特征都服从高斯分布(正态分布),通过样本计算出均值和方差,也就是得到正态分布的密度函数。有了密度函数,就可以把值代入,算出某一点的密度函数的值。 - 伯努利模型
与多项式模型一样,伯努利模型适用于离散特征的情况,所不同的是,伯努利模型中每个特征的取值只能是1和0(以文本分类为例,某个单词在文档中出现过,则其特征值为1,否则为0).
相关问题
为什么说朴素贝叶斯是高偏差低方差?
它简单的假设了各个特征之间是无关的,是一个被严重简化了的模型。所以,对于这样一个简单模型,大部分场合都会bias部分大于variance部分,也就是高偏差,低方差
怎么利用贝叶斯方法,实现”拼写检查”的功能?
用户输入一个单词时,可能拼写正确,也可能拼写错误。如果把拼写正确的情况记做c(代表correct),拼写错误的情况记做w(代表wrong),那么”拼写检查”要做的事情就是:在发生w的情况下,试图推断出c。换言之:已知w,然后在若干个备选方案中,找出可能性最大的那个c,也就是求P(c|w)的最大值。而根据贝叶斯定理,有:
$$
P(c|w)=\frac{P(w|c)P(c)}{P(w)}
$$
由于对于所有备选的c来说,对应的都是同一个w,所以它们的P(w)是相同的,因此我们只要最大化P(w|c)P(c)即可。其中:
P(c)表示某个正确的词的出现”概率”,它可以用”频率”代替。如果我们有一个足够大的文本库,那么这个文本库中每个单词的出现频率,就相当于它的发生概率。某个词的出现频率越高,P(c)就越大。比如在你输入一个错误的词“Julw”时,系统更倾向于去猜测你可能想输入的词是“July”,而不是“Jult”,因为“July”更常见。
P(w|c)表示在试图拼写c的情况下,出现拼写错误w的概率。为了简化问题,假定两个单词在字形上越接近,就有越可能拼错,P(w|c)就越大。举例来说,相差一个字母的拼法,就比相差两个字母的拼法,发生概率更高。你想拼写单词July,那么错误拼成Julw(相差一个字母)的可能性,就比拼成Jullw高(相差两个字母)。值得一提的是,一般把这种问题称为“编辑距离”.
所以,我们比较所有拼写相近的词在文本库中的出现频率,再从中挑出出现频率最高的一个,即是用户最想输入的那个词。
隐马尔可夫模型
隐马尔可夫模型(Hidden Markov Model,HMM)是关于时序的概率模型,描述由一个隐藏的马尔科夫链随机生成不可观测的状态随机序列,再由各个状态生成一个观测而产生观测随机序列的过程。
隐藏的马尔科夫链随机生成的状态的序列,称为状态序列;每个状态生成的观测,称为观测序列。
隐马尔科夫模型的三大要素,三大假设和三大问题。
隐马尔科夫模型是由初始状态向量、状态转移概率矩阵A和观测概率矩阵B决定。pi和A决定状态序列,B决定观测序列。因此,A,B,pi称为马尔科夫的三要素。
三大假设:
1)齐次马尔可夫假设。又叫一阶马尔可夫假设,即任意时刻的状态只依赖前一时刻的状态,与其他时刻无关。
2)观测独立性假设。任意时刻的观测只依赖于该时刻的状态,与其他状态无关。
3)参数不变性假设。上面介绍的三大要素不随时间的变化而改变,即在整个训练过程中一直保持不变。
隐马尔科夫模型通常用来解决序列标注问题,这时状态对应着标注。标注问题是给定观察的序列预测其对应的标记序列。
隐马尔科夫模型包括三个基本问题:
1)概率计算问题:已知模型的所有参数,计算观测序列Y出现的概率,可使用前向和后向算法求解。
2)预测问题:也称为解码问题。已知模型所有参数和观测序列Y,计算最有可能的隐状态序列X,可使用经典的动态规划算法-维特比算法求解
3)学习问题:已知观测序列Y,求解使得该观测序列概率最大的模型参数,包括隐状态序列、隐状态序列之间的转移概率分布以及从隐状态到观测状态的概率分布,可使用Baum-Welch算法进行参数的学习,Baum-Welch算法是最大期望算法的一个特例。
主题模型
主题模型,它可以将文档集 中每篇文档的主题以概率分布的形式给出,从而通过分析一些文档抽取出它们的主题(分布)出来后,便可以根据主题(分布)进行主题聚类或文本分类。同时,它是一种典型的词袋模型,即一篇文档是由一组词构成,词与词之间没有先后顺序的关系。
条件随机场
条件随机场(Conditional random field,CRF)是条件概率分布模型 P(Y|X) ,表示的是给定一组输入随机变量 X 的条件下另一组输出随机变量 Y 的马尔可夫随机场,也就是说 CRF 的特点是假设输出随机变量构成马尔可夫随机场。
条件随机场可被看作是最大熵马尔可夫模型在标注问题上的推广。
相关问题
隐马尔可夫模型(Hidden Markov Model,HMM),最大熵马尔可夫模型(Maximum Entropy Markov Model,MEMM)以及条件随机场(Conditional Random Field,CRF)是序列标注中最常用也是最基本的三个模型。HMM首先出现,MEMM其次,CRF最后。三个算法主要思想如下:
- HMM模型是对转移概率和表现概率直接建模,统计共现概率。
- MEMM模型是对转移概率和表现概率建立联合概率,统计时统计的是条件概率,但MEMM容易陷入局部最优,是因为MEMM只在局部做归一化。
- CRF模型中,统计了全局概率,在 做归一化时,考虑了数据在全局的分布,而不是仅仅在局部归一化,这样就解决了MEMM中的标记偏置(label bias)的问题。
首先,CRF,HMM(隐马模型),MEMM(最大熵隐马模型)都常用来做序列标注的建模。
隐马模型一个最大的缺点就是由于其输出独立性假设,导致其不能考虑上下文的特征,限制了特征的选择。
最大熵隐马模型则解决了隐马的问题,可以任意选择特征,但由于其在每一节点都要进行归一化,所以只能找到局部的最优值,同时也带来了标记偏见的问题,即凡是训练语料中未出现的情况全都忽略掉。
条件随机场则很好的解决了这一问题,他并不在每一个节点进行归一化,而是所有特征进行全局归一化,因此可以求得全局的最优值。