对于某个系统包含了n个有限状态,某个状态随着时刻推移而转移到另外一个状态。若是t时刻状态与前面m个时刻相关则称为m阶马尔科夫链,即马尔可夫过程是一个随机过程,系统从一个状态到另一个状态存在转移几率,而转移几率经过前m个状态来计算出来。这就是马尔科夫模型,即MM,也可认为是随机有限状态自动机。mysql
根据 ‘the quick brown fox jumps over the lazy dog’这句话,要获得马尔科夫链,先给每个单词设定成一个状态,而后计算状态间转换的几率。算法
当用大量文本去作统计的时候,会获得更大的状态转移矩阵,例如 the 后面能够链接的单词,及相应的几率sql
马尔科夫模型能处理直接观察的序列的几率问题,经过马尔科夫假设能创建起马尔科夫链,从而解决一些序列问题。但有时候观察的对象并非咱们待处理的目标对象,它的规律隐含在观察对象中,观察的事件和隐含事件存在必定的相关关系,这时候就要用到隐马尔科夫模型,即HMM。网络
实际上隐马尔科夫模型是一个双重随机过程,过程当中包含状态序列和观察序列。第一重随机过程是状态通过随机转移生成状态序列,而第二重随机过程则是根据状态序列随机转移生成观察序列。数据结构
最大熵模型是一种根据熵来肯定的模型,最大熵模型认为在全部可能的几率模型中熵最大模型是最好的。也就是说咱们只掌握未知分布的部分信息,而契合已知分布的有多个,而后经过熵最大来肯定分布。并发
事件发生的几率只要知足全部已知约束,而且不对任何未知信息作假设,对将来作等几率处理。熵最大时,系统的不肯定性最大。机器学习
隐马尔科夫模型中存在观察独立性假设,也就是任意时刻的观察只依赖于该时刻的状态,与其它时刻的观察和状态无关。但不少场景中咱们须要将观察的特征考虑进去,即认为某个时刻的状态取决于前一时刻状态和当前时刻的观察。而若是再使用最大熵模型来学习这些条件几率,则此为最大熵马尔科夫模型。函数
每一个时刻的条件几率以下,其中Z用于归一化,为每一个特征函数的权重参数,f为特征函数,根据实际状况能够定义不少特征函数的。学习
对于序列的处理,若是既想要考虑观察与状态之间的特征,也要考虑先后状态之间的特性,则会考虑条件随机场,更具体的是线性条件随机场。条件随机场摒弃了隐马尔科夫中的齐次马尔科夫性假设和观测独立性假设,模型更加复杂,但能学习到更多特征。ui
条件随机场引入了特征函数,在实际使用中咱们能够定义不少个特征函数,包括各类状态的特征和观察的特征。
若是再加上归一化,最终条件随机场的条件几率为,
其中,
条件随机场的训练与隐马尔科夫模型的训练不一样,隐马尔科夫模型是对各种条件几率进行建模,而条件随机场是从总体去拟合函数,能够采用极大似然估计法。
-------------推荐阅读------------
个人开源项目汇总(机器&深度学习、NLP、网络IO、AIML、mysql协议、chatbot)
跟我交流,向我提问:
欢迎关注: