在0-1中提到了,当最终output的p=0时,这个时候模型无法正常使用,为了解决这个问题,在0-4中会有所提及。

在本节中,其实,计算概率的时候,我们应该假设某一个位置的词与它前面的所有词都是相关的,但是,如果我们这样计算的话,可以计算出来,计算量是相当大的。例如在p(x1,x2,x3…xn)中,x是集合V中的一个单词,假设v的大小为|v|,也就是说(x1,x2…xn)就一共有|v|的n次方中可能。提出了马尔可夫过程来解决。在计算P的时候,实际上我们给出了一个独立性假设,这个独立性假设就是说所有的随机变量只于它前面的随机变量条件相关。

其实不难理解:

  • 假设,有一串随机的变量X1,X2,…XN.(a sequence of random variables)
  • 每一个变量可以设置成任何值,并且这些值来自于有限的集合V。(each random variable can take any value in a finite set V)
  • 目前,我们把N的值设置成定值。(for now we assume the lenght n is fixed)

我们的目标是计算:

P(X1=x1,X2=x2,X3=x3…Xn=xn)也就是计算0-1中提到的p(x1,x2,x3…xn)

第一种计算P的方法是First-Order Markov Processes,一阶马尔可夫过程

现在来解释一下这个公式:

其实,计算概率的时候,我们应该假设某一个位置的词与它前面的所有词都是相关的,但是,如果我们这样计算的话,可以计算出来,计算量是相当大的。例如在p(x1,x2,x3…xn)中,x是集合V中的一个单词,假设v的大小为|v|,也就是说(x1,x2…xn)就一共有|v|的n次方中可能。

所以,为了简化问题,在一阶马尔可夫过程中,我们只假设当前的词至于前面的一个单词相关,所以得到了上图中的公式。

也就是说,在一阶马尔可夫过程中:

for any i属于{2….n},for any x1,x2…xi

P(Xi=xi|X1=x1…Xi-1=xi)=P(Xi=xi|Xi-1=xi-1)

那么,同理,我们也可以假设当前的单词,至于前面的两个单词相关,这样,就出现了二阶马尔可夫过程。

Second-Order Markov Processes

为了表示方便,引入了*来代表x0,x-1

如果上面的公式推导看着比较费劲,那么需要补充一下概率知识,建议阅读相关资料。这里稍微普及一下:

例如:

p(a,b)=p(a)*p(b|a)

p(a,b,c)=p(a)*p(b|a)*p(c|a,b)

在一些英文文献中p(b|a)有的时候被写作conditional probability of p of b given a.

在这一节中,我们把n的值设置成了定值,在下一节中,将会讨论,n的值可变的时候怎么办。

最新文章

  1. web优化 js性能高级篇
  2. 查看某个线程占得CPU高
  3. [iOS] 使用xib做为应用程序入口 with Code
  4. POJ2115 C Looooops(线性同余方程)
  5. http响应状态码301和302
  6. Bootstrap入门一:Hello Bootstrap
  7. poj 2349 Arctic Network
  8. google map 点击获取经纬度
  9. 转载Sql 获取数据库所有表及其字段名称,类型,长度
  10. DATASNAP复杂中间件的一些处理方法
  11. Linux的文件/目录访问权限
  12. [转] JSON for java入门总结
  13. mybatis的那些事
  14. 学习JS的心路历程-范围Scope和提升(Hoisting)
  15. jquery获取焦点位于的元素
  16. rfid 125khz
  17. MySQL 语句的规范
  18. python中几种常用的数据类型
  19. UVA-10801 Lift Hopping (最短路)
  20. 解决无法启动mysql服务错误1069

热门文章

  1. postman 简单使用教程
  2. [CSP-S模拟测试]:数字(数学+高精度)
  3. loj#2838 「JOISC 2018 Day 3」比太郎的聚会
  4. sts测试流程
  5. 上海站赛后总结&反思
  6. Node.js实战2:模块使用入门。
  7. C++ std::isnan等函数的使用
  8. docker 一小时快速入门之利用docker安装Redis
  9. Dockerfile设置时区alpine
  10. Lock和synchronized使用