25 | 马尔科夫模型:从PageRank到语音识别,背后是什么模型在支撑?
25 | 马尔科夫模型:从PageRank到语音识别,背后是什么模型在支撑?
讲述:黄申
时长14:31大小13.30M
马尔科夫模型
隐马尔科夫模型
第一种情况
第二种情况
总结
思考题
赞 9
提建议
精选留言(29)
- qinggeouye2019-03-06机器翻译,比如一个中文句子翻译为英文,中文句子可拆分为多个词,每个中文词可能会匹配多个英文单词,一句中文翻译为英文,可能会有多种翻译结果。那么: 隐藏状态层 -> 多种翻译结果可能性中的一种 输出层 -> 每个中文词可能匹配多个英文单词 这样理解不知是否正确?展开
作者回复: 是的,理解正确
共 4 条评论22 - Thinking2019-02-12不理解一个地方,由读音推测汉字的过程为什么要算P(xiang(4)mu(4)|项目)概率而不是P(项目|xiang(4)mu(4))概率?隐马尔科夫解决由输出层找到产生输出的隐藏状态层,为什么不换个角度说成由看得到的输入层找到隐藏状态层呢?
作者回复: 这个问题很好!这主要是从统计的可行性出发,以语音识别为例,我们的语料(或者说标注数据、历史数据)都是给定文本,比如说中文,然后收集用户的发音(如果是中文,发音也就对应是拼音),所以可以很自然的拿到P(拼音|中文)这种概率。
18 - Joe2019-02-21隐马尔科夫模型在语音中的应用,流程是: 1,根据拼音去找到单个对应的词语,不考虑声调的概率。 2,再根据词语之间转移的概率,词语对应目标音高的概率,进而求出整个句子输出的概率。概率越大,可能性越高。 因此第一个词可以是xiangmu 对应语料库的所有词,不一定是四声,可以是香木之类的词语。 不知道这样理解对不对?展开
作者回复: 是的👍
11 - Temme2019-07-11学习了之后,又看了几篇隐马尔可夫的一些收获: 隐马尔科夫适用于,只知道表象(观测层或者输出层),而内部的状态是隐藏的,未知的,可能有无数种的。语音识别分为3步 1.表象推测出隐藏,比如xiangmu的拼音读音可以推出隐藏的的实际字是项目,也可以是香木,各自有一定的概率,也可以是木香,只不过概率为0。推出概率在一定值以上的,做为隐藏状态。 2.各自推出隐藏的状态后,这些状态可以组合成各种状态链,比如橡木凯发世间这种,可以想象会有各种诡异的词组,这时候就用到马尔科夫状态转移的方法,筛选出靠谱的词组,得出结论,比如项目转开发转时间,这个状态转移的概率很高。概率在一定值以上的,挑出来作为状态序列。 3.语音识别只需要一个解。也是隐马尔科夫的关键,隐藏层推出表象层的概率(有点反人类认知,但是贝叶斯告诉我们这个无非是个数学的转换),大概就是,p(隐藏)*p(表象|隐藏)。好像p(表象|隐藏),就是隐藏推表象的概率,其实不然,这里的推出还要考虑到隐藏层本身是个状态转移。展开
作者回复: 很好的总结,第3点可以使用贝叶斯定理推导出来,你可以尝试一下
6 - 罗耀龙@坐忘2020-04-17茶艺师学编程 思考题:如果机器翻译中使用以马尔科夫进行建模,那么隐藏状态层表示是什么?输出层表示的又是什么? 就拿中文和日语互相翻译来说。 如果说是中文翻译成日文,隐藏状态层则表示“翻译成日语的可能结果之一”,输出层则表示“需要翻译的中文”。 为什么选中日语来举例子呢?因为日语有这么一个特点:日语中的一类说法等于中文的很多种说法,换句话说日语x能对应到中文的y1、y2、y3、y4……这样隐马尔科夫看起来也像一个“梯形”。 关于马尔科夫模型: 马尔可夫过程要求满足四个条件 —— 第一,系统中有有限多个状态。 第二,状态之间切换的概率是固定的。 第三,系统要具有遍历性,也就是从任何一个状态出发,都能找到一条路线,切换到任何一个其他的状态。 第四,其中没有循环的情况,不能说几个状态形成闭环,把其他状态排斥在外。 而数学定理说,只要是马尔可夫过程,不管你的初始值如何,也不管你在这个过程中有什么一次性的干预,它终究会演化到一个统计的*平衡态*:其中每个状态所占的比例是不变的。展开2
- 唯她命2019-03-05老师你好 , “隐藏状态层”产生“输出层”的概率 这句话是什么意思。 还有 “隐藏状态层”产生“输出层”的概率 那个公式是怎么推导出来的。
作者回复: 我看你另外一个问题,应该是已经理解了“隐藏状态层”和“输出层”的概念,简单的来理解,就是“隐藏层”到“输出层”是有一定概率分布的,不是必然的。如果必然了,就不需要区分这两层了,直接把“输出层”当做“隐藏层”就好了。 也正是因为如此,公式推导使用了条件概率公式。在“隐藏层”的某个状态给定的情况下,出现“输出层”某个输出的概率是多少,以此类推。
2 - J.Smile2020-02-27要点: 隐马尔科夫模型需要回答的最主要问题是:给定一个模型和某个特定的输出序列,如何找到最可能产生这个输出的状态序列。1
- 学习学个屁2020-01-08输出层 是输出的文字(被正确翻译的句子) 隐藏层句子中每个字 单词 背后的意思 , 连在一起组成的顺通句子。 可以这么理解吧。
作者回复: 这里容易混淆,举个例子,如果我们想将英文翻译成中文,那么输出层是英文,而隐藏层是中文,我们要看哪种中文的隐藏层,可以输出目标英文的概率最大,那么这个中文是最可能的翻译
1 - teddytyy2019-12-18输出层是目标语言的分词,状态层是源语言的分词,这么建模对吗?
作者回复: 分词是其中一步,还有就是对应的翻译。另外,假设咱们要把中文翻译成英文,我理解你说的源语言和目标语言分别对应于中文和英文。如果是这样,需要对调,也就是源语言(中文)是我们所能观测到的输出层,而目标语言(英文)是要分析出的状态层。
1 - 唯她命2019-03-05老师 语音识别的例子 隐藏层 :项目开发时间 或者 橡木开发事件 输出层 : xiang(四声)mu(四声) kai(一声)fa(一声) shi(四声)jian(四声) xiang(一声)mu(-声) kai(一声)fa(一声) shi(四声)jian(四声) xiang(四声)mu(-声) kai(一声)fa(一声) shi(二声)jian(四声) 等等所有可能的音调 不知道这么理解对不对? 另外还望老师解答下课后思考题展开
作者回复: 对文中的例子,这个理解是对的。至于思考题,我暂时不回答,给其他读者更多的思考机会 😆
1 - 李皮皮皮皮皮2019-03-02讲马尔可夫链的第一张图中,就是ABC的那种图,链上的概率是如何得出的? 我的理解是:根据语境中出现的AB,BC这些组合的概率,比如说总共有10个二元组,AB出现了一次,所以A到B的链上概率是0.1。如果按这么理解的话,那么所以的概率之和应该等于1吧。但是我算了一下,图中概率和等于1.1。不知道我理解的对不对,望老师解答😢
作者回复: 不是这个意思。实际上每条出链接上的概率,表示给定出发点,到目标点的概率,是一种条件概率。比如,从A到B的概率是0.1,就是P(B|A)=0.1。所以,不能把这些条件概率相加。 我这里只是示意图,A可能还会链接到其他我没有画在图中的点,从A到所有目标点的概率加起来应该是1。比如从A出发一共到三个点,B,X和Y,P(B|A)=0.1,P(X|A)=0.5,P(Z|A)=0.4,加起来是1
1 - 拉欧2019-02-12输出层:被翻译语言,隐藏状态层:翻译语言 比如要翻译 get busy living ,or get busy dying 输出层为 get busy living ,or get busy dying 隐藏层可能为: 1、要么忙于生存,要么赶着去死 2、忙于活,或忙于死 。。。 然后按照隐马尔科夫概率乘积选择概率最大的 不知道这么理解对不对?展开
作者回复: 思路是对的👍
1 - 2019-02-12硬着头皮看完。比如英文翻译目标语言,我认为要翻译的文本的直接看出来的特征(单词包括的意思),单词之间的语法规则和词性,时态是隐藏层。 数学差看起来就是费劲o(╥﹏╥)o,英文差看不懂最新论文。不清楚大家啥水平,我建议老师多给几个例子好理解些。深刻体会到没多一个公式,少一分看下去的兴趣。
作者回复: 后面我会多一些关于公式的解释,帮助理解
1 - Leon Wong2022-12-08 来自美国老师,我还想请教下,HMM模型是否只有二元文法模型?我看你举例都是以二元作为讲解的基础
作者回复: 不一定的,也可以拓展到多元文法
- Leon Wong2022-12-07 来自美国请教下老师,语音识别的真实环境下,是怎么通过人说话的语音转化成可以被统计观测的拼音?
作者回复: 从语音数据,转化成拼音或者字符,还有个信号处理的过程,咱们的课里没有涉及。
- 0139232022-07-28 来自陕西学习了,谢谢!
- 张祈璟2021-06-29关于马尔可夫猜想,是不是因为大多数人的大脑一般也就是一二阶的样子,所以跟人相关的一系列活动基本上都是一二阶,跟人无关的或者因为阶数太多人无法理解的就无解了
作者回复: 这个类比很形象👍
- A君2020-07-04根据马尔科夫假设和二元文法得出一阶马尔科夫模型,即当前状态是由前一个状态根据一定概率转换而成,这种状态的随机转换过程称为马尔科夫过程。如果这些状态并不确定,而是呈现某种概率分布,就需要用到隐马尔科夫模型。隐马尔科夫模型是二阶马尔科夫模型,隐藏状态层的状态只表示确定状态的部分信息,例如某个单词的隐藏状态表示的只是这个单词的词性。隐马尔科夫模型的第二层是输出层,表示隐藏状态经某概率转换后得到的确定状态。状态与状态之间,状态与输出之间,会根据某种概率进行转换,要计算这个句子出现的概率,可以计算第一个单词出现的概率乘以所有状态与状态,状态与输出之间转换🉐概率。展开
- A君2020-07-04在机器翻译里用隐马尔科夫建模,得到的不就是RNN么?隐藏状态层表示的是模型从一个词那提取到的信息,这些信息又会传到下一个step来帮助提取下一个词的信息。输出层是二元文法的预测结果,根据前一个词来预测后一个词。状态与状态之间,状态和结果之间,它们的概率用权重表示,在代码里就是用线性层、全连接层表示。
作者回复: 很高兴对你有价值
共 2 条评论 - 建强2020-06-06思考题:机器翻译中,使用隐马尔科夫模型,隐藏层表示的是目标语言组成的句子,在输出层表示的是用源语言表达的待翻译句子的各种组合形式
作者回复: 是的👍