通哥安利# SHIFTRICK 旗下的独立游戏《Chunker》将于7月17日在Steam平台开启抢先体验,支持简体中文和手柄哦~
《Chunker》是一款基于俯视视角的弹幕射击游戏,这一次的抢先体验版本,准备了4个主题8个舞台,玩家可以组合任意80个武器和20个BUFF体验多种攻击方式,还能触发同伴NPC们赋予特殊能力。[哆啦A梦吃惊] 弹幕游戏最最解压啦~[喵喵]
《Chunker》是一款基于俯视视角的弹幕射击游戏,这一次的抢先体验版本,准备了4个主题8个舞台,玩家可以组合任意80个武器和20个BUFF体验多种攻击方式,还能触发同伴NPC们赋予特殊能力。[哆啦A梦吃惊] 弹幕游戏最最解压啦~[喵喵]
#英超# 北京时间6月24日1:00,英超联赛第31轮,海鸥客场挑战联赛排名靠前的蓝狐。第12分钟,贾斯廷禁区内踢倒康诺利,裁判判罚点球,莫派主罚点球被舒梅切尔直接没收!第22分钟,兰普泰拼抢时受伤挂彩,稍做治疗后回到场上。第24分钟,韦伯斯特受伤,达菲替补上场。第27分钟,康诺利禁区外得球过人后射门稍稍偏出。第34分钟,蓝狐的恩迪迪铲倒连过两人的兰普泰被出示黄牌。第36分钟,斯蒂芬斯飞铲门迪,被出示黄牌。第40分钟,马修-瑞安手抛球出现重大失误,险些丢球。第43分钟,穆伊接队友传球后,禁区外远射偏出立柱。第44分钟,邓克头球攻门被贾斯廷精彩解围。第47分钟,莫派在禁区弧附近得球,直接射门偏出立柱。第80分钟,达菲踢倒麦迪逊被出示黄牌。随后对方球员麦迪逊任意球打门高出横梁。全场战罢,布莱顿客场0比0战平莱斯特城。#英超回归##如此英超,怎能不爱#
读书打卡6
吴军博士《数学之美》
第5章 隐马尔科夫模型
隐马尔科夫模型是解决大多数自然语言处理问题的快速、有效方法,成功解决了复杂的语音识别、机器翻译等问题。
一、问题提出
【通信模型——雅格布森通信六要素】(见下图1)
【基于通信视角的自然语言处理】:几乎所有的自然语言处理问题都可以等价成通信的解码问题,例如:
(1)基于通信视角的语音识别:根据声学信号推测说话者的意思。
信息源:头脑
信道:声带、空气
信号:声音
接收器:耳朵
(2)基于通信视角的机器翻译:利用计算机,根据接收的源语言信息,推测目标语言意思。
(3)基于通信视角的自动纠错:利用计算机,根据带有拼写错误的语句推测正确意思。
【建模】根据输出o1,o2,…,求解输入为s1,s2,…的概率,如下:
P(s1,s2,…| o1,o2,…)
=(P(o1,o2,…│s1,s2,…)*P(s1,s2,…))/(P(o1,o2,…))
∝P(o1,o2,…│s1,s2,…)*P(s1,s2,…) (1)
目标是找到使概率P(s1,s2,…| o1,o2,…)最大的s1,s2,…
s1,s2,…=ArgMax_(all s1,s2,…) P(s1,s2,…| o1,o2,…) (2)
在语音识别中,P(s1,s2,…| o1,o2,…)被称为声学模型(Acoustic Model),在机器翻译中是翻译模型(Translation Modle),在拼写校正中是纠错模型(Correction Model)。
二、预备知识
随机过程即随机变量的时间序列s1,s2,…,st(如北京每天最高气温)。
【马尔科夫假设】:随机过程中各个状态st的概率分布,只与它的前一个状态st-1有关。如天气预报,假设今天的气温只与昨天有关,而和前天及之前无关。未必适合所有应用,但可以对很多复杂问题给出近似解。
【马尔科夫链】符合马尔科夫假设的随机过程成为马尔科夫过程,也称马尔科夫链。如下图2:
四个圈表示四个状态,每条边表示一个可能的状态转换,边上的全职是转移概率。例如,状态m1到m2之间只有一条边,且边上的权值为1,表示从状态m1只能能转换到状态m2,转移概率为1。从m2出发有两条边:到m3和m4。其中权值0.6和0.4分别表示:如果某个时刻t的状态st是m2,则下一个时刻状态st+1=m3的概率P(st+1=m3|st=m2)是0.6,st+1=m4的概率P(st+1=m4|st=m2)是0.4。
把这个马尔科夫链想象成机器,随机选择一个状态作为初始状态,随后按照上述规则随机选择后续状态。运行一段时间T后,产生一个状态序列:s1,s2,…,st。根据这个序列,不难数出某个状态mi出现的次数#(mi),以及从mi转换到mj的次数#(mi,mj),从而估计从mi到mj的转移概率#(mi,mj)/#(mi)。每一个状态只与前一个状态有关,而不论是如何到达前一个状态。例如,状态3到状态4的概率都是0.3,不论在此之前是如何进入状态3的(从状态2进入,还是在状态3兜了几个圈)。
三、隐马尔科夫模型(Hidden Markov Model)
对马尔科夫链的扩展:任意时刻t的状态st是不可见的,所以观察者没法通过观察到一个状态序列推测转移概率s1,s2,…,st等参数。
但隐马尔科夫模型每个时刻t会输出一个符号ot,而且ot和st相关且仅和st相关(独立输出假设)。结构如下图3:
其中隐含的状态s1,s2,…是一个典型的马尔科夫链。
P(s1,s2,…,o1,o2,…)=∏_t▒〖P(s_t│s_(t-1) )*P(o_t│s_t ) 〗 (3)
基于马尔科夫假设和独立输出假设,
P(o1,o2,…│s1,s2,…)=∏_t▒〖P(o_t│s_t ) 〗(4)
P(s1,s2,…)=∏_t▒〖P(s_t│s_(t-1) ) 〗(5)
因此,通信的解码问题可以用隐马尔科夫模型解决。而很多自然语言处理问题和通信的解码问题是等价的,因此可以用隐马尔科夫模型解决。
需要一个训练算法(鲍姆-韦尔奇算法)和使用时的解码算法(维特比算法),掌握了这两类算法,基本上可以使用隐马尔科夫模型了。
四、问题求解
围绕隐马尔科夫模型的三个基本问题
(1)给定一个模型,计算某个特定的输出序列的概率(Forword-Backword算法)
(2)给定一个模型和某个特定的输出序列,找到最可能产生这个输出的状态序列(利用维特比算法计算使概率最大化的输入序列s1,s2,…,st)
(3)给定足够量的观测数据,估计隐马尔科夫模型的参数(模型训练)
P(o_t│s_t )=(P(o_t,s_t))/(P(s_t))(6)
P(s_t│s_(t-1) )=(P(s_t,s_(t-1)))/(P(s_(t-1))) (7)
【有监督训练方法】如果有足够多人工标记数据,可以数出#(o_t,s_t),#(s_t),#(s_t,s_(t-1)),#(s_(t-1)),根据大数定律计算比值可以直接估算出模型参数。但难以获得大量标注数据。
【无监督训练方法】通过大量观测信号o1,o2,…推算模型参数P(o_t│s_t )和P(s_t│s_(t-1) )。如鲍姆-韦尔奇算法。
【鲍姆-韦尔奇算法】Baum-Welch Algorithm思想:两个不同的隐马尔科夫模型可以产生同样的输出信号,仅通过输出倒推可能得到多个隐马尔科夫模型。但总会是一个模型M_(θ_2 )比另一个模型M_(θ_1 )更有可能产生观测到的输出,其中θ_1和θ_2是隐马尔科夫模型的参数。
首先找到一组能够产生输出序列O的模型参数得到初始模型M_(θ_0 )(一定存在,因为转移概率P和输出概率Q均为均匀分布时,模型可以产生任何输出,包括观察到的输出O)
根据和问题(1)和(2),可以算出这个模型产生O的概率P(O|M_(θ_0 )),和这个模型产生O的所有可能路径以及这些路径的概率。这些可能的路径,实际上记录了每个状态经历了多少次,到达了哪些状态,输出了哪些符号,因此可以将他们看作标注的训练数据,并根据公式(6)、(7)计算出一组新的参数θ_1,从M_(θ_0 )到M_(θ_1 )称为一次迭代。可以证明
P(O│M_(θ_1 ) )>P(O|M_(θ_0 )) (8)
接下来,从M_(θ_1 )出发,可以找到更好的模型M_(θ_2 )。不断迭代下去,直到模型的质量没有明显提高为止。
每一次迭代不断估计新的模型参数,使得输出概率(目标函数)达到最大化,这个过程被称为期望最大化EM过程。
EM过程保证算法一定能收敛到一个局部最优点,很遗憾一般不能保证找到全局最优点。但如果目标函数是凸函数,则只有一个最优点,这种情况下EM过程可以找到最佳值。
五、隐马尔科夫模型应用
隐马尔科夫模型最初应用于通信领域,继而推广到语音和语言处理中,成为连接自然语言处理和通信的桥梁。
IBM Waston实验室贾里尼克、贝克夫妇用隐马尔科夫模型识别语音,错误率比人工智能和模式匹配方法降低了三分之二,从30%到10%。
20世纪80年代末,李开复博士采用隐马尔科夫模型成功开发了世界上第一个大词汇量连续语音识别系统Sphinx。
成功应用于机器翻译、拼写纠错、手写体识别、图像处理、基因序列分析、股票预测和投资。
文中图片来自网络,出处见图片水印,在此表示感谢。
吴军博士《数学之美》
第5章 隐马尔科夫模型
隐马尔科夫模型是解决大多数自然语言处理问题的快速、有效方法,成功解决了复杂的语音识别、机器翻译等问题。
一、问题提出
【通信模型——雅格布森通信六要素】(见下图1)
【基于通信视角的自然语言处理】:几乎所有的自然语言处理问题都可以等价成通信的解码问题,例如:
(1)基于通信视角的语音识别:根据声学信号推测说话者的意思。
信息源:头脑
信道:声带、空气
信号:声音
接收器:耳朵
(2)基于通信视角的机器翻译:利用计算机,根据接收的源语言信息,推测目标语言意思。
(3)基于通信视角的自动纠错:利用计算机,根据带有拼写错误的语句推测正确意思。
【建模】根据输出o1,o2,…,求解输入为s1,s2,…的概率,如下:
P(s1,s2,…| o1,o2,…)
=(P(o1,o2,…│s1,s2,…)*P(s1,s2,…))/(P(o1,o2,…))
∝P(o1,o2,…│s1,s2,…)*P(s1,s2,…) (1)
目标是找到使概率P(s1,s2,…| o1,o2,…)最大的s1,s2,…
s1,s2,…=ArgMax_(all s1,s2,…) P(s1,s2,…| o1,o2,…) (2)
在语音识别中,P(s1,s2,…| o1,o2,…)被称为声学模型(Acoustic Model),在机器翻译中是翻译模型(Translation Modle),在拼写校正中是纠错模型(Correction Model)。
二、预备知识
随机过程即随机变量的时间序列s1,s2,…,st(如北京每天最高气温)。
【马尔科夫假设】:随机过程中各个状态st的概率分布,只与它的前一个状态st-1有关。如天气预报,假设今天的气温只与昨天有关,而和前天及之前无关。未必适合所有应用,但可以对很多复杂问题给出近似解。
【马尔科夫链】符合马尔科夫假设的随机过程成为马尔科夫过程,也称马尔科夫链。如下图2:
四个圈表示四个状态,每条边表示一个可能的状态转换,边上的全职是转移概率。例如,状态m1到m2之间只有一条边,且边上的权值为1,表示从状态m1只能能转换到状态m2,转移概率为1。从m2出发有两条边:到m3和m4。其中权值0.6和0.4分别表示:如果某个时刻t的状态st是m2,则下一个时刻状态st+1=m3的概率P(st+1=m3|st=m2)是0.6,st+1=m4的概率P(st+1=m4|st=m2)是0.4。
把这个马尔科夫链想象成机器,随机选择一个状态作为初始状态,随后按照上述规则随机选择后续状态。运行一段时间T后,产生一个状态序列:s1,s2,…,st。根据这个序列,不难数出某个状态mi出现的次数#(mi),以及从mi转换到mj的次数#(mi,mj),从而估计从mi到mj的转移概率#(mi,mj)/#(mi)。每一个状态只与前一个状态有关,而不论是如何到达前一个状态。例如,状态3到状态4的概率都是0.3,不论在此之前是如何进入状态3的(从状态2进入,还是在状态3兜了几个圈)。
三、隐马尔科夫模型(Hidden Markov Model)
对马尔科夫链的扩展:任意时刻t的状态st是不可见的,所以观察者没法通过观察到一个状态序列推测转移概率s1,s2,…,st等参数。
但隐马尔科夫模型每个时刻t会输出一个符号ot,而且ot和st相关且仅和st相关(独立输出假设)。结构如下图3:
其中隐含的状态s1,s2,…是一个典型的马尔科夫链。
P(s1,s2,…,o1,o2,…)=∏_t▒〖P(s_t│s_(t-1) )*P(o_t│s_t ) 〗 (3)
基于马尔科夫假设和独立输出假设,
P(o1,o2,…│s1,s2,…)=∏_t▒〖P(o_t│s_t ) 〗(4)
P(s1,s2,…)=∏_t▒〖P(s_t│s_(t-1) ) 〗(5)
因此,通信的解码问题可以用隐马尔科夫模型解决。而很多自然语言处理问题和通信的解码问题是等价的,因此可以用隐马尔科夫模型解决。
需要一个训练算法(鲍姆-韦尔奇算法)和使用时的解码算法(维特比算法),掌握了这两类算法,基本上可以使用隐马尔科夫模型了。
四、问题求解
围绕隐马尔科夫模型的三个基本问题
(1)给定一个模型,计算某个特定的输出序列的概率(Forword-Backword算法)
(2)给定一个模型和某个特定的输出序列,找到最可能产生这个输出的状态序列(利用维特比算法计算使概率最大化的输入序列s1,s2,…,st)
(3)给定足够量的观测数据,估计隐马尔科夫模型的参数(模型训练)
P(o_t│s_t )=(P(o_t,s_t))/(P(s_t))(6)
P(s_t│s_(t-1) )=(P(s_t,s_(t-1)))/(P(s_(t-1))) (7)
【有监督训练方法】如果有足够多人工标记数据,可以数出#(o_t,s_t),#(s_t),#(s_t,s_(t-1)),#(s_(t-1)),根据大数定律计算比值可以直接估算出模型参数。但难以获得大量标注数据。
【无监督训练方法】通过大量观测信号o1,o2,…推算模型参数P(o_t│s_t )和P(s_t│s_(t-1) )。如鲍姆-韦尔奇算法。
【鲍姆-韦尔奇算法】Baum-Welch Algorithm思想:两个不同的隐马尔科夫模型可以产生同样的输出信号,仅通过输出倒推可能得到多个隐马尔科夫模型。但总会是一个模型M_(θ_2 )比另一个模型M_(θ_1 )更有可能产生观测到的输出,其中θ_1和θ_2是隐马尔科夫模型的参数。
首先找到一组能够产生输出序列O的模型参数得到初始模型M_(θ_0 )(一定存在,因为转移概率P和输出概率Q均为均匀分布时,模型可以产生任何输出,包括观察到的输出O)
根据和问题(1)和(2),可以算出这个模型产生O的概率P(O|M_(θ_0 )),和这个模型产生O的所有可能路径以及这些路径的概率。这些可能的路径,实际上记录了每个状态经历了多少次,到达了哪些状态,输出了哪些符号,因此可以将他们看作标注的训练数据,并根据公式(6)、(7)计算出一组新的参数θ_1,从M_(θ_0 )到M_(θ_1 )称为一次迭代。可以证明
P(O│M_(θ_1 ) )>P(O|M_(θ_0 )) (8)
接下来,从M_(θ_1 )出发,可以找到更好的模型M_(θ_2 )。不断迭代下去,直到模型的质量没有明显提高为止。
每一次迭代不断估计新的模型参数,使得输出概率(目标函数)达到最大化,这个过程被称为期望最大化EM过程。
EM过程保证算法一定能收敛到一个局部最优点,很遗憾一般不能保证找到全局最优点。但如果目标函数是凸函数,则只有一个最优点,这种情况下EM过程可以找到最佳值。
五、隐马尔科夫模型应用
隐马尔科夫模型最初应用于通信领域,继而推广到语音和语言处理中,成为连接自然语言处理和通信的桥梁。
IBM Waston实验室贾里尼克、贝克夫妇用隐马尔科夫模型识别语音,错误率比人工智能和模式匹配方法降低了三分之二,从30%到10%。
20世纪80年代末,李开复博士采用隐马尔科夫模型成功开发了世界上第一个大词汇量连续语音识别系统Sphinx。
成功应用于机器翻译、拼写纠错、手写体识别、图像处理、基因序列分析、股票预测和投资。
文中图片来自网络,出处见图片水印,在此表示感谢。
✋热门推荐