> 文章列表 > 【博学谷学习记录】超强总结,用心分享丨人工智能 AI项目 统计语言模型之HMM初步学习总结

【博学谷学习记录】超强总结,用心分享丨人工智能 AI项目 统计语言模型之HMM初步学习总结

【博学谷学习记录】超强总结,用心分享丨人工智能 AI项目 统计语言模型之HMM初步学习总结

目录

    • 语法模型
        • 二元语法模型
    • HMM(隐马尔可夫模型)
      • 概率计算引入概念
        • 初始概率向量
        • 状态转移概率矩阵
        • 观测概率矩阵(也称发射概率矩阵)

语法模型

语料库文本:

研究 生命 起源
研究生 命题 大纲
研究生 招生 信息网

计算3个句子的概率:

p(研究 生命 起源)=13p(研究\\ 生命\\ 起源)=\\frac{1}{3}p(研究 生命 起源)=31
p(研究生 命题 大纲)=13p(研究生\\ 命题\\ 大纲)=\\frac{1}{3}p(研究生 命题 大纲)=31
p(研究生 招生 信息网)=13p(研究生\\ 招生\\ 信息网)=\\frac{1}{3}p(研究生 招生 信息网)=31

问题:以一本书多几本书作为训练集,书中大部分句子不同,所以概率相等,而实际使用模型时,传入的句子在训练集中没有,则会概率为0。

由于句子都是由单词构成的,句子没有重复的,但是单词却是不断重复使用的。所以我们用单词每个单词的概率以数学角度计算句子的概率。
把句子表示成单词列表w=w1w2…wkw=w_1 w_2 \\dots w_kw=w1w2wk

p(w)=p(w1w2…wk)=p(w1∣w0)×p(w2∣w0w1)×⋯×p(wk+1∣w0w1w2…wk)=∏t=1k+1p(wt∣w0w1w2…wt−1)p(w) = p(w_1w_2\\dots w_k) \\\\ =p(w_1|w_0)\\times p(w_2|w_0w_1)\\times \\dots \\times p(w_{k+1}|w_0w_1w_2\\dots w_k)\\\\ =\\prod_{t=1}^{k+1} p(w_{t}|w_0w_1w_2\\dots w_{t-1}) p(w)=p(w1w2wk)=p(w1w0)×p(w2w0w1)××p(wk+1w0w1w2wk)=t=1k+1p(wtw0w1w2wt1)

其中w0=BOSw_0=BOSw0=BOS(Begin Of Sentence,有时也用<s>),wk+1=EOSw_{k+1}=EOSwk+1=EOS(End Of Sentence,有时也用</s>表示)是用来标示句子首尾的两个特殊单词。

二元语法模型

p(w)=p(w1w2…wk)=p(w1∣w0)×p(w2∣w1)×⋯×p(wk+1∣wk)=∏t=1k+1p(wt∣wt−1)p(w)=p(w_1w_2\\dots w_k)\\\\ = p(w_1|w_0)\\times p(w_2|w_1)\\times \\dots \\times p(w_{k+1}|w_k)\\\\ =\\prod_{t=1}^{k+1}p(w_t|w_{t-1}) p(w)=p(w1w2wk)=p(w1w0)×p(w2w1)××p(wk+1wk)=t=1k+1p(wtwt1)

简单来说,当前词概率只与前一个词有关。
一元则是只与当前词有关,n元则是当前词概率则与前n-1个词有关

HMM(隐马尔可夫模型)

隐马尔可夫模型(Hidden Markov Model,HMM)是描述两个时序序列联合分布p(x,y)p(x, y)p(x,y)的概率模型:
xxx序列外界可见,称为观测序列
yyy序列外界不可见,称为状态序列
比如观测xxx为单词,状态yyy为词性。我们需要根据单词序列去猜测单词的词性。之所以称为“隐”是因为在外界看来,状态序列(例如词性)是隐藏不可见的。

马尔可夫假设,每个事件发生的概率只取决于前一个事件,将满足该假设的连续多个事件串联在一起,就构成马尔可夫链。在NLP中马尔可夫链模型就是二元语法模型

概率计算引入概念

4个盒子,每个盒子里面有不同数量的红、白两种颜色的球:

盒子 1 2 3 4
红球数 5 3 6 8
白球数 5 7 4 2

有放回地抽出5个球:O={红,红,白,白,红}O=\\{红, 红, 白, 白, 红\\}O={,,,,}

初始概率向量

π=(0.25,0.25,0.25,0.25)T\\pi = (0.25,0.25,0.25,0.25)^Tπ=(0.25,0.25,0.25,0.25)T

表示第一个球从每个盒子抽取的概率,4个盒子概率相同,则分别是0.5

状态转移概率矩阵

A=[01000.400.6000.400.6000.50.5]A=\\begin{bmatrix} 0 & 1 & 0 & 0 \\\\ 0.4 & 0 & 0.6 & 0 \\\\ 0 & 0.4 & 0 & 0.6\\\\ 0 & 0 & 0.5 & 0.5 \\\\ \\end{bmatrix} A=00.400100.4000.600.5000.60.5

第一行表示由第一个盒子 转移 到第一个盒子抽的概率为0,第二个盒子的概率为1,第三个盒子的概率为0,第四个盒子的概率为0
第二行则是第二个盒子转移到每个盒子的概率…

观测概率矩阵(也称发射概率矩阵)

B=[0.50.50.30.70.60.40.80.2]B = \\begin{bmatrix} 0.5 & 0.5 \\\\ 0.3 & 0.7 \\\\ 0.6 & 0.4 \\\\ 0.8 & 0.2 \\end{bmatrix} B=0.50.30.60.80.50.70.40.2

4行分别代表4个盒子,第一列则是从盒子中抽红球的概率,第二行表示抽白球的概率

心得:了解了一些基本概念,对模型的使用场景有了简单的了解。