目前比较好用的人工智能模型(人工智能之隐马尔可夫模型)
目前比较好用的人工智能模型(人工智能之隐马尔可夫模型)解码问题:寻找给定条件下概率最大的隐状态序列。例如知道骰子有几种(隐含状态数量),每种骰子是什么(转换概率),根据掷骰子掷出的结果(可见状态链),求出现概率最大的隐含状态链(例如{D6 D8 D8 D6 D4 D8 D6 D6 D4 D8}概率最大)评估问题:计算某一观测序列的概率。例如知道骰子有几种(隐含状态数量),每种骰子是什么(转换概率),根据掷骰子掷出的结果(可见状态链),求得出一串数字{1 6 3 5 2 7 3 5 2 4}概率。隐含状态转移概率矩阵:各个隐含状态之间的转移概率所构成的矩阵。例如D6的下一个状态是D4,D6,D8的概率为1/3;D4,D8的下一个状态是D4,D6,D8的转换概率为1/3观测状态转移概率矩阵:在某时刻,某隐含状态条件下可观测状态概率所构成的矩阵。例如D6产生(1,2,3,4,5,6)的输出概率为1/6初始状态概率矩阵:表示隐含状态在初始时刻t=1的
隐马尔可夫模型 (HMM)是一个统计模型,也是马尔科夫链的一种,它通过观测系列来求解隐藏在背后的状态系列概率问题。广泛应用在语音识别,词性自动标注,音字转换,概率文法等各个自然语言处理等应用领域。
隐马尔可夫模型的五个元素:举一个例子:假设有三个不同的骰子。第一个骰子是六个面的骰子(D6),每个面(1,2,3,4,5,6)出现的概率是1/6;第二个骰子是个四面体(D4),每个面(1,2,3,4)出现的概率是1/4;第三个骰子有八个面(D8),每个面(1,2,3,4,5,6,7,8)出现的概率是1/8。现在,我们掷骰子10次,但是我们不知道是哪个骰子掷。
可观测状态:在模型中与隐含状态相关联,可通过直接观测而得到。例如掷骰子10次得到一串数字:{1 6 3 5 2 7 3 5 2 4}
隐含状态:这些状态之间满足马尔可夫性质,是马尔可夫模型中实际所隐含的状态。例如得出上面一串数字所用的骰子系列:{D6 D8 D8 D6 D4 D8 D6 D6 D4 D8}
隐含状态转移概率矩阵:各个隐含状态之间的转移概率所构成的矩阵。例如D6的下一个状态是D4,D6,D8的概率为1/3;D4,D8的下一个状态是D4,D6,D8的转换概率为1/3
观测状态转移概率矩阵:在某时刻,某隐含状态条件下可观测状态概率所构成的矩阵。例如D6产生(1,2,3,4,5,6)的输出概率为1/6
初始状态概率矩阵:表示隐含状态在初始时刻t=1的概率矩阵。例如第一次掷骰子为D6为0.5,D4为0.3,D8为0.2
-
评估问题:计算某一观测序列的概率。例如知道骰子有几种(隐含状态数量),每种骰子是什么(转换概率),根据掷骰子掷出的结果(可见状态链),求得出一串数字{1 6 3 5 2 7 3 5 2 4}概率。
-
解码问题:寻找给定条件下概率最大的隐状态序列。例如知道骰子有几种(隐含状态数量),每种骰子是什么(转换概率),根据掷骰子掷出的结果(可见状态链),求出现概率最大的隐含状态链(例如{D6 D8 D8 D6 D4 D8 D6 D6 D4 D8}概率最大)
-
学习问题:求满足条件的HMM模型参数。例如知道骰子有几种(隐含状态数量),不知道每种骰子是什么(转换概率),观测到很多次掷骰子的结果(可见状态链),反推出每种骰子是什么(转换概率)。
HMM模型主要应用于语音识别、文字识别等领域,我在上一篇文章《人工智能之中文分词》中提到的jieba分词工具,其算法主要来源于HMM模型中的Viterbi算法以求得最优路径。