概率图模型的作业越往后变得越来越有趣了。当然,难度也是指数级别的上涨啊,以至于我用了两个周末才完成秋名山神秘车牌的寻找,啊不,CRF模型的训练。

  条件随机场是一种强大的PGM,其可以对各种特征进行建模,同时可以使用随机梯度下降算法进行训练,训练的结果就是PGM中那些定义变量交互方式的参数。

1、LR模型的训练

  LR模型可以看作是CRF模型的低配版,在完全不定义随机变量交互,只考虑P(Y|X)的情况下,得到的就是LR模型。其数学表达如下:

  这里theta是参数,X是特征也是像素值,该形式成为Logistic Regression。训练的本质是针对theta在训练集上进行优化,使得 P_trainSet 的概率达到最大,P_trainSet = P_data1*P_data2.......*P_datan,用公式表达可以写作:

  

  这里连乘的形式并不利于我们分析,所以可以对目标方程取负对数——nll。同时将最大化问题转为最小化问题。

  

  函数求最小值只要沿起梯度方向改变自变量即可,所以这里使用梯度下降法来求取目标函数的最小值。所以,使用梯度下降法来训练核心有就是——找到梯度的表达式

  对于LR模型来说,其梯度有着非常优雅的解析解,见之前博客

  解决了梯度表达式之后,还有一个核心问题就是过拟合,这里可以用L2-norm来强迫参数趋近于0.参数趋近于0就代表弱化特征作用。特征被弱化了模型就无法贴近YLabel了。L2-norm的参数Lamda是诗出來的。此时使用的是矫正集,不能使用训练集。

  LR模型只是小小的热身。关键是CRF的建模与训练。

2、CRF的训练

  拿到CRF的训练对象的时候我是一脸濛逼的。既没有概率图,也没有团树图。只有模型参数和训练集。CRF的数学表达见之前博客。从程序设计的角度,要做的是由CRF模型参数生成FeatureSet.模型参数如下:

  

  1、隐性节点的状态card;2、观测节点的状态card。 除了模型参数之外,还需要定义模型交互方式(PGM factors),以OCR为例,模型有三种交互方式:1、Yi-Yi:表达了每个标签本身的概率。2、Yi-xi:对于给定像素位置Yi的概率。3、Yi-Yi+1:相邻标签各取某值的概率。由此可针对训练集中的每个数据生成CRF模型。虽然不同数据的模型是相似的(共享theta),但是其本身结构存在差异(单词长度不同)。

  实际上,每个feature的本质是 最终的table CPD 里的一个assignment. 而每个exp( fi*theta ),则是其中的val。所以   feature -- theta 和 table CPD 是联系在一起的。 所以这里也很好理解为什么一个theta可以对应多个feature. 因为CPD在概率图节点之间是复制的!(回忆一下遗传模型,遗传模式就是CPD,遗传模式在所有变量(人)之间不断复制....)CPD的复制就相当与feature的theta share.

  这里假设L2-norm的lamda是已知的。并且模型采用L2-norm。所以,核心的任务就是针对训练集中的每对数据,找到grad,然后整个模型按照grad下降寻找最合适的一组theta.求grad的理论分析不赘述,这里只从算法实现的角度来研究。为获得grad和cost,我们一共有5个量需要求:

2.1 LogZ

  LogZ的计算是全局最难的。其数学表达如下:

  

  其需要对所有Y的取值求和。这代表要对 x 对应的所有可能的标签求和。换言之,要对最终联合分布CPD的val进行求和。如果是一个长度为7的单词,那就是26^7个数据求和。这显然是不现实的此数目多过太阳系里所有的星球。。。这里的第一个trick是利用团树标定算法求取Z.

  exp(XXXX)求的是整体概率(每个exp(fi*theta)是一个val),连乘是联合分布。团树算法中,每个消息 u 都是对之前变量进行边际化之后得到的。假设有一个3节点的团树链,团中分别有变量x1x2 ,x2x3, x3x4. 那么消息传递可以有以下形式:

  u12 = Σ1Φ

  u23 = Σ2Φ2 *  u12   =  Σ2Φ2 * Σ1Φ1  = Σ12  Φ2 Φ

  u32 = Σ4Φ3 

  重点在于 Σ3 u32*u23 = Σ1234 Φ2 Φ2 Φ = Z

  从定性上而言,消息携带了两边全部的信息,所以一条边上两个方向的消息携带了整个概率图中的信息。注意,这里的消息不能归一化,而团树标定中,消息必须归一化才能传递。

2.2 Model Expected feature Count

  第二个难点在于模型feature count的计算。

  对于每次梯度计算,我们手上都有一套完整的模型。模型的特征是一个指示函数,只要模型里有该特征,f取值都是1。ΣP*f 表达了当前模型对这些特征的肯定程度。f 是 table CPD的一个assignment,所以其 var , assignment 会对应一个特定的概率,也就是P。这里要算概率,似乎又要求那个26^7的联合分布了,然而并不是。由于特征本质是一个factor的assignment,而之前我们已经得到了标定好的团树模型,只需要在单个团树里求取Y'assignment对应的概率即可。因为clqiue的scope肯定要比feature大!!!

  这里比较trick的是,形式上,一个特征不止出现一次(意义不同)。比如说相邻的两个Y,取值分别为ab,这本质上是一个特征,只对应一个theta。但是这里的theta是share的。所以计算时必须把所有对应相同theta的f 都算进来。其数学表达式应该修正为:

2.3 Data Count

  Data Count 则是一个和数据有关的量了,表达了特征(shared)在当前数据中是否出现,是则置1,否则置0.

 

3、总结

  条件随机场的训练中真的充满了trick,通过此次作业,我加深了对Representation, Inference, Learning 的理解。

  最后,今天是母亲节~~亲爱的老妈节日快乐~ 

  

机器学习 —— 概率图模型(Homework: CRF Learning)的更多相关文章

  1. 机器学习 —— 概率图模型(Homework: MCMC)

    除了精确推理之外,我们还有非精确推理的手段来对概率图单个变量的分布进行求解.在很多情况下,概率图无法简化成团树,或者简化成团树后单个团中随机变量数目较多,会导致团树标定的效率低下.以图像分割为例,如果 ...

  2. 机器学习 —— 概率图模型(Homework: Exact Inference)

    在前三周的作业中,我构造了概率图模型并调用第三方的求解器对器进行了求解,最终获得了每个随机变量的分布(有向图),最大后验分布(双向图).本周作业的主要内容就是自行编写概率图模型的求解器.实际上,从根本 ...

  3. 机器学习 —— 概率图模型(学习:CRF与MRF)

    在概率图模型中,有一类很重要的模型称为条件随机场.这种模型广泛的应用于标签—样本(特征)对应问题.与MRF不同,CRF计算的是“条件概率”.故其表达式与MRF在分母上是不一样的. 如图所示,CRF只对 ...

  4. 机器学习 —— 概率图模型(Homework: Representation)

    前两周的作业主要是关于Factor以及有向图的构造,但是概率图模型中还有一种更强大的武器——双向图(无向图.Markov Network).与有向图不同,双向图可以描述两个var之间相互作用以及联系. ...

  5. 机器学习 —— 概率图模型(Homework: StructuredCPD)

    Week2的作业主要是关于概率图模型的构造,主要任务可以分为两个部分:1.构造CPD;2.构造Graph.对于有向图而言,在获得单个节点的CPD之后就可依据图对Combine CPD进行构造.在获得C ...

  6. 机器学习 —— 概率图模型(Homework: Factors)

    Talk is cheap, I show you the code 第一章的作业主要是关于PGM的因子操作.实际上,因子是整个概率图的核心.对于有向图而言,因子对应的是CPD(条件分布):对无向图而 ...

  7. 机器学习 —— 概率图模型(Homework: Structure Learning)

    概率图的学习真的要接近尾声了啊,了解的越多越发感受到它的强大.这周的作业本质上是data mining.从数据中学习PGM的结构和参数,完全使用数据驱动 —— No structure, No par ...

  8. 机器学习 —— 概率图模型(CPD)

    CPD是conditional probability distribution的缩写,翻译成中文叫做 条件概率分布.在概率图中,条件概率分布是一个非常重要的概念.因为概率图研究的是随机变量之间的练习 ...

  9. 机器学习 —— 概率图模型(推理:MAP)

    MAP 是最大后验概率的缩写.后验概率指的是当有一定观测结果的情况下,对其他随机变量进行推理.假设随机变量的集合为X ,观察到的变量为 e, W = X-e , AP = P(W|e). 后验概率和联 ...

随机推荐

  1. postmortem report of period M1

    一.设想和目标 1.我们的软件主要要解决学长设计的学霸系统中视频及文档的浏览功能问题. 2.时间相对充裕.不过对于我们这些零基础的人来说还是比较困难. 3.我们团队中不同意见通常会进行进一步讨论,说出 ...

  2. 监听文本框输入开发仿新浪微博限制输入字数的textarea插件

    监听文本框输入 Firefox.Chrome.IE9,IE10 均支持 oninput 事件,此外所有版本的 IE 均支持 onpropertychange 事件. oninput 事件在用户输入.退 ...

  3. 三、freemarker数据、模版指令

    数据类型 1.         直接指定值(字符串.数值.布尔值.集合.Map对象) 2.         字符串:直接指定字符串使用单引号.双引号,字符中间可以使用转义符“\”,如果字符内有大量特殊 ...

  4. angularjs源码分析之:angularjs执行流程

    angularjs用了快一个月了,最难的不是代码本身,而是学会怎么用angular的思路思考问题.其中涉及到很多概念,比如:directive,controller,service,compile,l ...

  5. From 《Soft Skill》——Chapter 69. My personal success book list

    There have been many excellent books that have greatly influenced what I believe and how I behave. I ...

  6. 在线自动下载最新版本jquery

    <script src="http://code.jquery.com/jquery-latest.js">

  7. 【转】免装版tomcat注册成windows系统服务方法

    转自:http://blog.csdn.net/huiwenjie168/article/details/42267353 一.下载Tomcat Tomcat可以从http://tomcat.apac ...

  8. 二分--LIGHTOJ 1088查找区间(水题)

    #include <iostream> #include <cstdio> #include <cmath> using namespace std; const ...

  9. Vim 常用命令 一

    今天第一次学习了 Vim编辑器的一些使用  拿出来和大家分享下. 1.首先 列出 常用快捷键 u 表示 撤销上一步 x 表示 删除光标位内容 dd 表示 删除光标所在行内容 >G   表示 光标 ...

  10. linux install

    http://www.ubuntu.org.cn/index_kylin 先在官网下个Ubuntu  是个iso 然后下个UltraISO 是个软件 插好空u盘 打开软件 在菜单栏上 点击 文件-&g ...