从点到线:逻辑回归到条件随机场

2017 年 7 月 22 日 夕小瑶的卖萌屋 夕小瑶

开篇高能预警!本文前置知识:

1、理解特征函数/能量函数配分函数的概念及其无向图表示,见《逻辑回归到受限玻尔兹曼机》《解开玻尔兹曼机的封印》

2、理解特征函数形式的逻辑回归模型,见《逻辑回归到最大熵模型》

 


从逻辑回归出发,我们已经经过了朴素贝叶斯浅层神经网络最大熵分类模型。显然,分类模型是不考虑时间的,仅仅计算当前的一堆特征对应的类别。因此,分类模型是“点状”的模型。

 

想一下,如果我们有一个词性标注(POS)的任务,在这个任务中,类别有动词、名词、形容词、副词、介词、连词等有限个类别。样本呢,当然就是自然语言序列啦,例如“夕小瑶喜欢 狗狗”这个序列就对应着“名词 动词 名词”这三个对应类别。

 

这时我们如果用“点状”模型,也就是分类模型来做这个任务,会产生什么现象呢?


假如我们选取的特征就是当前位置词,那么我们将分类器训练完成后,分类器遇到“夕小瑶”就会输出“名词”这个类别,也就是说它是不考虑上下文的,预测每个词的词性的时候才不会考虑整个句子的情况呢。在这里简单例子中看似没有什么影响,然而实际上非常多的词在不同的句子中会表现出不同的词性。比如“谷歌”一词,在“我今天参观了谷歌”中就是名词,在“你谷歌一下”中就是动词。可以看出,词性不仅取决于它自己,还取决于它的上下文(它两边的词)!

 

那么,有没有可能让逻辑回归、朴素贝叶斯这类点状模型利用好上下文信息呢?最容易想到的做法就是将上下文信息编码成特征啦!

 

比如加入当前词的2-gram上下文作为特征,这时在“你谷歌一下”中去预测“谷歌”的词性的时候,特征就是三维的:1、“谷歌”2、“你 谷歌”3、“谷歌 一下”。而在“我今天参观了谷歌”中,特征是1、“谷歌”2、“了 谷歌”3、“谷歌 <EOS>”这样就能根据不同的特征值在不同的句子中更精确的分类“谷歌”的词性啦~


《逻辑回归到最大熵模型》中,小夕详细讲了如何将逻辑回归的传统形式转换成特征函数/能量函数描述的形式,而如《解开玻尔兹曼机的封印》所示,这种形式很容易画成有向图或无向图的形式:

 

(上面白色圈圈是类别,下面灰色圈圈是各个特征,小黑框表示这一类别-特征对的能量函数/特征函数)

 

问题来了。对于一些更复杂的句子,可能决定某个词的词性的关键词距离该词有好长的距离,那怎么办呢?难道要扩展到10gram?


我们知道,ngram越长,训练数据就越稀疏,导致模型容易过拟合,泛化能力明显变差。显然点状的机器学习模型是很难在当前分类点利用到长距离信息的,也就是说,其最多能通过加入短距离上下文特征来做到局部最优分类,而无法做到整个序列的最优分类

 

显然呐,自然语言文本的词性标注任务本来就是个“线状”的任务,你非要用“点状”的模型去做,肯定很差劲啦~那么我们能不能基于逻辑回归这个经典的判别式点状分类器来改良成“线状”,或者说“链状”模型呢?如果让你去改造,你会怎么改呢?

 

最简单的做法当然就是将序列前一时刻/位置的输出连到当前时刻到输出阿,也就是同时用当前时刻的输入前一时刻的输出来决定当前时刻的输出(类别),画出图来就是:

 

(当然啦,这里白色圈圈依然代表类别,灰色圈圈代表特征。为了画图简单,这里只画出了一个灰色圈圈(三个特征的时候应该在每个时刻画出三个灰色圈圈哦))

 

看,是不是超级简单的就改完了呢?这样在判断每一时刻的类别的时候就会不得不去参考前一时刻的类别,而参考前一时刻的类别的时候就隐含的包含了更早时刻的类别,这样就把整个句子串起来啦。


画起来容易,但是这个模型该如何用数学语言描述呢?

 

回顾一下可以直接画出上面逻辑回归的无向图的逻辑回归假设函数:



扩展到多个类别的话,就是:

 

 

从假设函数也可以看出,逻辑回归是个点状模型,当前时刻的类别预测不依赖任何其他时刻。

 

那么根据上面我们画的判别式链状模型图,我们唯一需要做的就是加入前一时刻y与当前时刻y的特征函数就可以啦~所以假设函数就很简单的变为了:

 

 

只是看起来有点长而已,而本质上还不是用特征函数描述了我们画的线状图嘛~


仔细观察,可以发现相比较点状模型,链状模型考虑了全部时间点,对全部时间点下的每个旧y与当前y,以及每个当前x与当前y做了求和,进而通过配分函数Z算出了整个序列的条件概率!注意对比逻辑回归的假设函数,逻辑回归的各个时间点是相互独立的,而这个链状模型则是统一考虑所有时间点,因此是基于整个序列去做每个单词的词性预测

 

这个看似复杂,实则至简的链状模型就是“线性链条件随机场(CRF)”。实际上,线性链的条件随机场也是使用最广泛的条件随机场,几乎成了条件随机场的代名词。

 

这个模型的训练方法与隐马尔可夫模型是一样的,都是基于最大化似然函数的方法,方法已经在《HMM(下)》中讲解啦,在此不再赘述。当然啦,小夕只讲了最理想的情况,也就是训练集中既有X(观测序列),也有Y(隐状态序列)的情况。对于无法得到隐状态序列的情况,可以使用《EM算法》来迭代训练,在这里叫做BaumWelch算法,有兴趣的同学自行了解,这里不再展开啦。

 

诶?还有一个问题!虽然CRF的假设函数可以直接得到当前序列的每种可能的词性标注序列的概率,但是如果要枚举出所有可能的词性序列再找最大概率的那个词性序列的话,显然是指数爆炸的。对此有维特比算法进行优化,也已在《HMM(下)》中详细讲解过啦。在此不再赘述。值得一提,维特比算法的本质即动态规划

 

看,是不是感觉一切都是一通百通了呢?这么看来条件随机场真的是没有新奇的东西,仅仅是用特征函数的老办法来将人人都能想到的前后两个时刻的y连起来,就结束了,结束了,束了,了。。

 

登录查看更多
15

相关内容

逻辑回归(也称“对数几率回归”)(英语:Logistic regression 或logit regression),即逻辑模型(英语:Logit model,也译作“评定模型”、“分类评定模型”)是离散选择法模型之一,属于多重变量分析范畴,是社会学、生物统计学、临床、数量心理学、计量经济学、市场营销等统计实证分析的常用方法。在统计学中,logistic模型(或logit模型)用于对存在的某个类或事件的概率建模,例如通过/失败、赢/输、活着/死了或健康/生病。这可以扩展到建模若干类事件,如确定一个图像是否包含猫、狗、狮子等。图像中检测到的每个物体的概率都在0到1之间,其和为1。
少标签数据学习,54页ppt
专知会员服务
196+阅读 · 2020年5月22日
一份循环神经网络RNNs简明教程,37页ppt
专知会员服务
172+阅读 · 2020年5月6日
【Nature论文】深度网络中的梯度下降复杂度控制
专知会员服务
38+阅读 · 2020年3月9日
【经典书】精通机器学习特征工程,中文版,178页pdf
专知会员服务
354+阅读 · 2020年2月15日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
谷歌机器学习速成课程中文版pdf
专知会员服务
145+阅读 · 2019年12月4日
【机器学习课程】Google机器学习速成课程
专知会员服务
164+阅读 · 2019年12月2日
一文读懂线性回归、岭回归和Lasso回归
CSDN
34+阅读 · 2019年10月13日
已删除
将门创投
4+阅读 · 2018年6月12日
简明条件随机场CRF介绍 | 附带纯Keras实现
PaperWeekly
23+阅读 · 2018年5月22日
【直观详解】支持向量机SVM
机器学习研究会
18+阅读 · 2017年11月8日
10分钟搞懂Tensorflow 逻辑回归实现手写识别
全球人工智能
5+阅读 · 2017年10月19日
机器学习(18)之支持向量机原理(三)线性不可分支持向量机与核函数
机器学习算法与Python学习
3+阅读 · 2017年9月23日
机器学习(15)之支持向量机原理(一)线性支持向量机
机器学习算法与Python学习
6+阅读 · 2017年9月1日
机器学习(13)之最大熵模型详解
机器学习算法与Python学习
7+阅读 · 2017年8月24日
干货|如何轻松愉快的理解条件随机场(CRF)?
机器学习研究会
26+阅读 · 2017年8月2日
从逻辑回归到最大熵模型
夕小瑶的卖萌屋
4+阅读 · 2017年7月11日
Do RNN and LSTM have Long Memory?
Arxiv
19+阅读 · 2020年6月10日
Arxiv
6+阅读 · 2019年8月22日
Stock Chart Pattern recognition with Deep Learning
Arxiv
6+阅读 · 2018年8月1日
Arxiv
5+阅读 · 2018年1月29日
VIP会员
相关VIP内容
少标签数据学习,54页ppt
专知会员服务
196+阅读 · 2020年5月22日
一份循环神经网络RNNs简明教程,37页ppt
专知会员服务
172+阅读 · 2020年5月6日
【Nature论文】深度网络中的梯度下降复杂度控制
专知会员服务
38+阅读 · 2020年3月9日
【经典书】精通机器学习特征工程,中文版,178页pdf
专知会员服务
354+阅读 · 2020年2月15日
Transformer文本分类代码
专知会员服务
116+阅读 · 2020年2月3日
谷歌机器学习速成课程中文版pdf
专知会员服务
145+阅读 · 2019年12月4日
【机器学习课程】Google机器学习速成课程
专知会员服务
164+阅读 · 2019年12月2日
相关资讯
一文读懂线性回归、岭回归和Lasso回归
CSDN
34+阅读 · 2019年10月13日
已删除
将门创投
4+阅读 · 2018年6月12日
简明条件随机场CRF介绍 | 附带纯Keras实现
PaperWeekly
23+阅读 · 2018年5月22日
【直观详解】支持向量机SVM
机器学习研究会
18+阅读 · 2017年11月8日
10分钟搞懂Tensorflow 逻辑回归实现手写识别
全球人工智能
5+阅读 · 2017年10月19日
机器学习(18)之支持向量机原理(三)线性不可分支持向量机与核函数
机器学习算法与Python学习
3+阅读 · 2017年9月23日
机器学习(15)之支持向量机原理(一)线性支持向量机
机器学习算法与Python学习
6+阅读 · 2017年9月1日
机器学习(13)之最大熵模型详解
机器学习算法与Python学习
7+阅读 · 2017年8月24日
干货|如何轻松愉快的理解条件随机场(CRF)?
机器学习研究会
26+阅读 · 2017年8月2日
从逻辑回归到最大熵模型
夕小瑶的卖萌屋
4+阅读 · 2017年7月11日
Top
微信扫码咨询专知VIP会员