0


【NLP冲吖~】二、隐马尔可夫模型(Hidden Markov model, HMM)

0、马尔可夫模型

某一状态只由前一个状态决定,即为一阶马尔可夫模型;
状态间的转移依赖于前n个状态的过程,即为n阶马尔可夫模型

马尔科夫链:

如果

  1. S
  2. t
  3. +
  4. 1
  5. S_{t+1}
  6. St+1​只依赖于前一时刻
  7. S
  8. t
  9. S_t
  10. St​,不依赖于
  11. S
  12. 1
  13. ,
  14. .
  15. .
  16. .
  17. ,
  18. S
  19. t
  20. 1
  21. S_1,...,S_{t-1}
  22. S1​,...,St1​,则称
  23. S
  24. 1
  25. ,
  26. S
  27. 2
  28. ,
  29. .
  30. .
  31. .
  32. ,
  33. S
  34. T
  35. ,
  36. .
  37. .
  38. .
  39. {S_1,S_2,...,S_T,...}
  40. S1​,S2​,...,ST​,...为马尔科夫链,这种性质叫做马尔可夫性。
  41. S
  42. 1
  43. ,
  44. .
  45. .
  46. .
  47. ,
  48. S
  49. t
  50. 1
  51. ,
  52. S
  53. t
  54. ,
  55. S
  56. t
  57. +
  58. 1
  59. **S_1, ...,S_{t-1},S_{t},S_{t+1}**
  60. ∗∗S1​,...,St1​,St​,St+1​∗∗
  61. S
  62. 1
  63. ,
  64. .
  65. .
  66. .
  67. ,
  68. S
  69. t
  70. 1
  71. S_1, ...,S_{t-1}
  72. S1​,...,St1​表示过去;
  73. S
  74. t
  75. S_t
  76. St​表示现在;
  77. S
  78. t
  79. +
  80. 1
  81. S_{t+1}
  82. St+1​表示未来。

马尔可夫性想告诉我们的是,未来只与现在有关,与过去无关。

马尔可夫模型定义:

存在一类重要的随机过程:如果一个系统有N个状态

  1. S
  2. 1
  3. S_1
  4. S1​,
  5. S
  6. 2
  7. S_2
  8. S2​,
  9. S
  10. 3
  11. S_3
  12. S3​,…,
  13. S
  14. N
  15. S_N
  16. SN​,随着时间的推移,该系统从一个状态转移到另一个状态。如果用
  17. q
  18. t
  19. q_t
  20. qt​表示系统在时间
  21. t
  22. t
  23. t的状态变量,那么
  24. t
  25. t
  26. t时刻的状态取值为
  27. S
  28. j
  29. (
  30. 1
  31. <
  32. =
  33. j
  34. <
  35. =
  36. N
  37. )
  38. S_j(1<=j<=N)
  39. Sj​(1<=j<=N)的概率取决于前
  40. t
  41. 1
  42. t-1
  43. t1个时刻(1,2,3,…,t-1)的状态,该概率为:
  44. P
  45. (
  46. q
  47. t
  48. =
  49. S
  50. j
  51. q
  52. t
  53. 1
  54. =
  55. S
  56. i
  57. ,
  58. q
  59. t
  60. 2
  61. =
  62. S
  63. k
  64. ,
  65. .
  66. .
  67. .
  68. )
  69. P(q_t = S_j | q_{t-1} = S_i, q_{t-2} = S_k, ...)
  70. P(qt​=Sj​∣qt1​=Si​,qt2​=Sk​,...)

1、假设一:如果在特定情况下,系统在时间t的状态下只与其在时间

  1. t
  2. 1
  3. t-1
  4. t1的状态相关,则该系统构成一个离散的一阶马尔可夫链:
  5. P
  6. (
  7. q
  8. t
  9. =
  10. S
  11. j
  12. q
  13. t
  14. 1
  15. =
  16. S
  17. i
  18. ,
  19. q
  20. t
  21. 2
  22. =
  23. S
  24. k
  25. ,
  26. .
  27. .
  28. .
  29. )
  30. =
  31. P
  32. (
  33. q
  34. t
  35. =
  36. S
  37. j
  38. q
  39. t
  40. 1
  41. =
  42. S
  43. i
  44. )
  45. P(q_t = S_j | q_{t-1} = S_i, q_{t-2} = S_k, ...) = P(q_t = S_j | q_{t-1} = S_i)
  46. P(qt​=Sj​∣qt1​=Si​,qt2​=Sk​,...)=P(qt​=Sj​∣qt1​=Si​)

2、假设二:如果只考虑独立于时间

  1. t
  2. t
  3. t的随机过程,状态与时间无关,那么
  4. P
  5. (
  6. q
  7. t
  8. =
  9. S
  10. j
  11. q
  12. t
  13. 1
  14. =
  15. S
  16. i
  17. )
  18. =
  19. a
  20. i
  21. j
  22. P(q_t = S_j | q_{t-1} = S_i) = a_ij
  23. P(qt​=Sj​∣qt1​=Si​)=aij

其中 1<=i,j<N
即:

  1. t
  2. t
  3. t时刻状态的概率取决于前
  4. (
  5. t
  6. 1
  7. )
  8. (t-1)
  9. (t1)个时刻(1,2,3,…,t-1)的状态,且状态的转移与时间无关,则该随机过程为马尔可夫模型。

马尔可夫模型的两个要素是 初始状态分布 和 状态转移概率矩阵。

1、隐马尔可夫模型

在马尔可夫模型中,每个状态表示了一个可观察的事件,所以,马尔可夫模型又称为可视化马尔可夫模型(visibleMarkovmodel,VMM),这使得模型的适应性有所限制。

隐马尔可夫模型(HMM)就是为了解决这样的限制而产生的。在这样的情景下,系统中会有两组状态,一组是不可观察、隐藏的状态,另一种是可观察的状态。模型具体的状态序列是未知的,状态转移的概率是已知的。因此,该模型是一个双重随机过程,包括模型的状态转换和特定状态下可观察的事件的随机。

与马尔可夫模型相比,隐马尔可夫有三要素,分别是
初始状态为

  1. I
  2. =
  3. (
  4. i
  5. 1
  6. ,
  7. i
  8. 2
  9. ,
  10. .
  11. .
  12. .
  13. ,
  14. i
  15. T
  16. )
  17. I = (i_1, i_2, ..., i_T)
  18. I=(i1​,i2​,...,iT​),
  19. i
  20. 1
  21. i_1
  22. i1​为第1个时刻的初始状态;

状态空间为

  1. Q
  2. =
  3. (
  4. q
  5. 1
  6. ,
  7. q
  8. 2
  9. ,
  10. .
  11. .
  12. .
  13. ,
  14. q
  15. N
  16. )
  17. Q = (q_1, q_2, ..., q_N)
  18. Q=(q1​,q2​,...,qN​),表示有N个状态可以相互转移;

由初始状态和状态空间可得初始状态分布

  1. Π
  2. =
  3. (
  4. π
  5. 1
  6. ,
  7. π
  8. 2
  9. ,
  10. .
  11. .
  12. .
  13. ,
  14. π
  15. N
  16. )
  17. Π = _1_2,...,π_N)
  18. Π=(π1​,π2​,...,πN​),其中
  19. π
  20. i
  21. =
  22. P
  23. (
  24. i
  25. 1
  26. =
  27. q
  28. i
  29. )
  30. π_i = P(i_1 = q_i)
  31. πi​=P(i1​=qi​)
  32. i
  33. 1
  34. i_1
  35. i1​中的i
  36. q
  37. i
  38. q_i
  39. qi​中的i含义不同】

状态转移矩阵

  1. A
  2. =
  3. [
  4. a
  5. 11
  6. ,
  7. .
  8. .
  9. .
  10. ]
  11. A = [a_{11},...]
  12. A=[a11​,...],
  13. a
  14. 11
  15. a_{11}
  16. a11​表示状态1到状态1的转换概率,ANN列的矩阵,每行之和为1

观测空间为

  1. V
  2. =
  3. (
  4. v
  5. 1
  6. ,
  7. v
  8. 2
  9. ,
  10. .
  11. .
  12. .
  13. ,
  14. v
  15. M
  16. )
  17. V = (v_1,v_2, ..., v_M)
  18. V=(v1​,v2​,...,vM​),表示有M个观测状态;

观测状态为

  1. O
  2. =
  3. (
  4. O
  5. 1
  6. ,
  7. O
  8. 2
  9. ,
  10. .
  11. .
  12. .
  13. ,
  14. O
  15. T
  16. )
  17. O = (O_1,O_2,...,O_T)
  18. O=(O1​,O2​,...,OT​),
  19. O
  20. 1
  21. O_1
  22. O1​为初始观测状态。

观测概率矩阵

  1. B
  2. =
  3. [
  4. b
  5. 1
  6. (
  7. 1
  8. )
  9. ,
  10. .
  11. .
  12. .
  13. ]
  14. B = [b_1(1),...]
  15. B=[b1​(1),...],
  16. b
  17. 1
  18. (
  19. 1
  20. )
  21. b_1(1)
  22. b1​(1)表示在第1个状态上得到第一个观测状态的概率。
  23. b
  24. j
  25. (
  26. k
  27. )
  28. =
  29. P
  30. (
  31. O
  32. t
  33. =
  34. v
  35. k
  36. i
  37. t
  38. =
  39. q
  40. j
  41. )
  42. b_j(k) = P(O_t = v_k | i_t = q_j)
  43. bj​(k)=P(Ot​=vk​∣it​=qj​)

B为N行M列的矩阵,每行之和为1。

2、算法

根据隐马尔可夫模型定义,可以将一个长度为T的观测序列

  1. O
  2. =
  3. (
  4. o
  5. 1
  6. ,
  7. o
  8. 2
  9. ,
  10. .
  11. .
  12. .
  13. ,
  14. o
  15. T
  16. )
  17. O = (o_1,o_2,...,o_T)
  18. O=(o1​,o2​,...,oT​)的生成过程描述为以下算法:

输入:隐马尔可夫模型 λ = (A,B,π),观测序列长度T;
输出:观测序列O = (o_1,o_2,…,o_T);
(1)按照初始状态分布π产生状态

  1. i
  2. 1
  3. i_1
  4. i1​;

(2)令t=1;
(3)按照状态

  1. i
  2. t
  3. i_t
  4. it​的观测概率分布
  5. b
  6. i
  7. t
  8. (
  9. k
  10. )
  11. b_{i_t}(k)
  12. bit​​(k)生成
  13. o
  14. t
  15. o_t
  16. ot​;

(4)按照状态

  1. i
  2. t
  3. i_t
  4. it​的状态转移概率分布{a_{i_t},i_{t+1}} 产生状态
  5. i
  6. t
  7. +
  8. 1
  9. ,
  10. i
  11. t
  12. +
  13. 1
  14. i_{t+1},i_{t+1}
  15. it+1​,it+1 = 1,2,…,N

(5)令

  1. t
  2. =
  3. t
  4. +
  5. 1
  6. t = t+1
  7. t=t+1,如果
  8. t
  9. <
  10. T
  11. t<T
  12. t<T,重复(3)-(5),否则,结束。

3、三个基本问题

给定一个隐马尔可夫模型(HMM),可以解决三个基本问题。

(1)评估【Evaluation】

给定HMM,即

  1. μ
  2. =
  3. [
  4. π
  5. A
  6. B
  7. ]
  8. μ = [π,AB]
  9. μ=[π,AB],求某个观测序列的概率。

例如:给定一段文本的隐马尔可夫模型,包括第一个单词的概率分布,单词转移概率矩阵,特定单词下该词词性的概率分布。求序列中每一个单词为某个词性的概率。

(2)解码【Decoding】

给定HMM,即

  1. μ
  2. =
  3. [
  4. π
  5. A
  6. B
  7. ]
  8. μ = [π,AB]
  9. μ=[π,AB],以及某个观测序列,求得其可观测序列。

例如:给定一段文本的隐马尔可夫模型,包括第一个单词的概率分布,词性转移概率矩阵,特定单词下该词词性的概率分布。并且已知每个单词的词性序列。求得词性序列对应的文本序列。

(3)学习【Learning】

给定一个观测序列,求得一个隐马尔可夫模型。
例如:已知一个文本序列。求得一个文本的隐马尔可夫模型,包含:第一个词的词性,词性转移概率矩阵,特定单词该词的词性概率分布。

4、关于三个问题的算法计算

参考大佬博客https://zhuanlan.zhihu.com/p/88362664

5、隐马尔可夫模型在NLP中的应用

NLP中序列标注(文本词性标注、命名体识别)问题https://blog.csdn.net/echoKangYL/article/details/86983973

冷知识

马尔可夫是苏联人,他是切比雪夫的学生。


本文转载自: https://blog.csdn.net/qq_44799103/article/details/135917529
版权归原作者 漂泊老猫 所有, 如有侵权,请联系我们删除。

“【NLP冲吖~】二、隐马尔可夫模型(Hidden Markov model, HMM)”的评论:

还没有评论