Press "Enter" to skip to content

朴素贝叶斯(NB)、逻辑回归(LR)、隐马尔科夫模型(HMM)、条件随机场(CRF)

梗概

 

 

朴素贝叶斯:生成式模型,条件独立 —> 序列形式 隐马尔科夫模型 —> 图形式 通用有向图模型

 

逻辑回归:判别式模型,条件不独立 —> 序列形式 线性链条件随机场 —> 序列形式 通用条件随机场

 

朴素贝叶斯(NB)

 

贝叶斯公式

 

P(Y|X)=P(X|Y)∗P(Y)P(X)

 

P(Y|X)=P(X|Y)∗P(Y)P(X)

 

一般形式:

 

P(Y|X1,X2,X3,…Xn)=P(X1,X2,X3,…Xn|Y)∗P(Y)P(X1,X2,X3,…Xn)

 

P(Y|X1,X2,X3,…Xn)=P(X1,X2,X3,…Xn|Y)∗P(Y)P(X1,X2,X3,…Xn)

 

条件独立性假设: 特征之间互相独立,没有耦合,互不干扰。

 

P(X1,X2,X3,…Xn|Y)=P(X1|Y)∗P(X2|Y)∗P(X3|Y)∗…P(Xn|Y)

 

P(X1,X2,X3,…Xn|Y)=P(X1|Y)∗P(X2|Y)∗P(X3|Y)∗…P(Xn|Y)

 

===>

 

P(Y|X1,X2,X3,…Xn)=P(X1,X2,X3,…Xn|Y)∗P(Y)P(X1,X2,X3,…Xn)=[P(X1|Y)∗P(X2|Y)∗P(X3|Y)∗…P(Xn|Y)]∗P(Y)P(X1,X2,X3,…Xn)

 

P(Y|X1,X2,X3,…Xn)=P(X1,X2,X3,…Xn|Y)∗P(Y)P(X1,X2,X3,…Xn)=[P(X1|Y)∗P(X2|Y)∗P(X3|Y)∗…P(Xn|Y)]∗P(Y)P(X1,X2,X3,…Xn)

 

因为有条件独立假设,朴素贝叶斯可以不使用梯度下降,而直接通过统计每个特征的逻辑发生比来当做权重。

 

它是生成模型,实际上用作分类时比的是分子大小,即联合概率分布P(X,Y),而P(X,Y)=P(X|Y)*P(Y), P(X|Y)和P(Y)都可由从训练数据里统计获得

 

P(Y|X)=P(X,Y)P(X)=P(X|Y)∗P(Y)P(X)

 

P(Y|X)=P(X,Y)P(X)=P(X|Y)∗P(Y)P(X)

 

逻辑回归(LR)

 

逻辑回归(Logistic Regression)与线性回归(Linear Regression)都是一种广义线性模型(generalized linear model)因此与线性回归有很多相同之处,去除Sigmoid映射函数的话,逻辑回归就是一个线性回归。可以说,逻辑回归是以线性回归为理论支持的,但是逻辑回归通过Sigmoid函数引入了非线性因素,因此可以轻松处理0/1分类问题。

 

注意逻辑回归和线性回归都是回归,但是线性回归就是用来回归,而是逻辑回归回归的是概率,是用来分类的,这是因为由于条件之间不独立,不能求出联合概率分布,只能回归后验概率,大于0.5即为yes,所以是判别模型

 

P(y|x)=g(wTx)=11+exp(−wTx)

 

P(y|x)=g(wTx)=11+exp(−wTx)

 

损失函数(逻辑回归就是BCE,二分类是逻辑回归,多分类就是softmax):

 

线性回归中的代价函数看上去很好理解,但却不能用于逻辑回归,原因如下:由于g(x)是一个sigmoid函数,使用mse作为损失函数,会成为一个非凸函数,因此,我们需要另外找到一个不同的代价函数,它是凸函数,使得我们可以使用很好的算法,如梯度下降法,而且能保证找到全局最小值。

 

从概率角度解释(最大似然估计):

 

逻辑回归假设因变量 y 服从伯努利分布

 

线性回归假设因变量 y 服从高斯分布 y=f(x,w)+εy=f(x,w)+ε, ε is a zero mean Gaussian with precision β

 

线性回归的MSE损失函数加上L2正则化后,概率解释就是在MAP中假设权重W服从高斯分布了,这个更多解释搜索MLE(Maximum Likelihood Estimation)和MAP(Maximum A Posteriori)

 

隐马尔科夫模型(HMM)

 

HMM模型中存在两个假设:一是输出观察值之间严格独立,二是状态的转移过程中当前状态只与前一状态有关。

 

可以求出联合概率分布:

 

例子参考李航老师的《统计机器学习方法》p173 例10.1:概率计算算法有有前向算法(α算法)和后向算法(β算法)

 

(线性链)条件随机场(CRF)

 

HMM模型中存在两个假设:一是输出观察值之间严格独立,二是状态的转移过程中当前状态只与前一状态有关。但实际上序列标注问题不仅和单个词相关,而且和观察序列的长度,单词的上下文,等等相关。MEMM解决了HMM输出独立性假设的问题。因为HMM只限定在了观测与状态之间的依赖,而MEMM引入自定义特征函数,不仅可以表达观测之间的依赖,还可表示当前观测与前后多个状态之间的复杂依赖。

 

这里由于去掉了独立性假设,所以不能给出联合概率分布,只能求后验概率,所以是判别模型

 

但是MEMM存在标注偏置问题(Label Bias Problem)

 

实际上,在上图中,状态1偏向于转移到状态2,而状态2总倾向于停留在状态2。

 

而路径1-1-1-1的概率:0.4*0.45*0.5=0.09

 

而路径1-2-2-2的概率:0.6*\0.3*0.3=0.054

 

这是因为s1的转移状态很少,由于每一步的状态转移概率都要归一化,所以s1的转移概率都会被放大,而s2由于转移状态多,因此每一步转移概率归一化的时候都被平均分摊了(比如s2到s2在那个状态最大但由于s2的转移状态多,一分摊才为0.3,而s1到s2在它那个状态下概率最小但是由于转移状态少,不用分摊太多为0.4)。

 

CRF不仅解决了HMM输出独立性假设的问题,还解决了MEMM的标注偏置问题,MEMM容易陷入局部最优是因为只在局部做归一化,而CRF统计了全局概率,在做归一化时考虑了数据在全局的分布,而不是仅仅在局部归一化,这样就解决了MEMM中的标记偏置的问题。使得序列标注的解码变得最优解,和MEMM一样是判别模型

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注