马尔科夫模型

来源:互联网 发布:无法连接windows系统 编辑:程序博客网 时间:2024/06/16 03:10

马尔科夫模型


我们经常会考虑一个由并不互相独立的随机变量组成的序列。
例如我们在自然语言处理中,我们遇到以下一段文字序列:

今天你吃饭了吗

很明显,这些单个的文字并不是完全独立产生的,“今天你吃饭了吗”这七个字每一个字的出现都与前面文字的出现有着一定的关系。在某一个段落里,出现了这样一个语句,我们大致可以视为,“吃”字的出现,只与“今天你”的出现有关,跟前面段落无关。当然,我们也可以再大胆做一个假设,“吃”的出现,只与“你”有关。也就是说,句子中每一个字的出现,只与前一个字有关。

假设X=(X1,X2,···,Xt)是一个取值于有限集合S = {S1,···,Sn}的随机变量序列,则马尔科夫模型有以下两个性质:

有限视野
P(Xt+1=Sk|X1,X2,···Xt) = P(Xt+1=Sk|Xt)
序列中未来某个随机变量的产生只与此刻产生的随机变量有关,与以前出现的随机变量无关。
时间不变性
P(Xt+1=Sk|Xt) = P(X2=Sk|X1)
某个随机变量的产生与该变量和前一个变量组成的二元序列的出现时间(前后位置)没有关系

序列X称为一个马尔科夫链
同时方便计算第一个随机变量的概率,我们额外制定某个特殊状态S0为初始状态,则P(X)=P(X1|S0) * P(X2|X1) * ··· * P(Xt|Xt-1)


隐马尔科夫模型

隐马尔科夫模型是马尔科夫模型的延伸,简单举一个例子:
我们有三个骰子,分别是1~4点的,1~6点的,1~8点的。
我们每次在三个中选择一个骰子,然后我们规定,下一个选中的骰子跟本次不同。很明显,骰子序列是一条马尔科夫序列。
然后扔骰子,记录出现的点数,某次点数的出现的概率与选中的骰子有关,这样一个模型便是隐马尔科夫模型。
之所以叫做隐马尔科夫模型,是因为骰子的序列我们并不记录,因此并不知道序列的顺序,这条马尔科夫链是不可见的,相比之下,每一个骰子影响的可见量是点数。

隐马尔科夫模型的五个基本量

状态集合S
状态集合的内的元素可以组成一条状态序列,对应于骰子序列,该序列是马尔科夫链。
输出集合K
输出集合的内的元素可以组成一条输出序列,对应于骰子点数。
状态转移概率A
状态集合内的元素之间某两个元素组成的条件概率
输出发射概率B
已知处于某一个状态元素,该状态元素对应的输出元素出现的概率
初始状态概率π
状态序列第一个位置,各个元素出现的概率

隐马尔科夫模型的三个基本问题

令O为模型空间,即O=(A,B,π)

  1. 已知O和一个输出序列,求该输出序列出现的概率。
  2. 已知O和一个输出序列,求一个最符合该输出序列的状态序列。
  3. 已知O和一个输出序列,求如何调整O中参数使得该模型空间最好解释该输出序列
0 0
原创粉丝点击