

http://www.equn.com/forum/viewthread.php?tid=15188 笔者于近日研读随机过程一书,惊觉人生的不可预知性与‘逝者已逝、来者可期’的性质,正有如马可夫链随机过程所描述的特性。是以数学即自然之道,自然之道可启发吾人处世之道,是故有感而发,著此文以励己励人。 人生就好比一场随机过程,你永远不知道下一刻会发生什么事。但是可以确定的是,人生有某种程度的关连性,只是这个关连到底有多么深远?国小的成绩会不会影响大学的成绩?高中呢?有句话说的好,学习永远不嫌晚。笔者大学时代的同学,就不乏大学前三年成绩都垫底,大四突然发愤图强而考上前三志愿的研究所的例子。换句话说,事实上,明天会发生什么,只跟最近的近况有关。这也就是中学课本上说‘过去种种,譬如昨日死;未来种种,譬如今日生’的道理。这个道理,甚至可以从会计学上的‘沉没成本’来映证:过去投入的成本(沉没成本),对于未来的决策没有任何关连;对未来的决策有关连的,只有新增投入的成本(从现在起投入的成本)。 由以上的论述,我们不难体会到,其实人生就是一场Markov chain:虽然未来会发生什么事情我们没有十足的把握,但是我们相信,今天(n)的状态会影响明天(n+1)发生何种状态的机率;今天多念一点书,明天考试就会考的更好,反之亦然。也许读者会反驳:前天(n-1)的准备也会影响明天的考试。您可以这样想:假设把跟事件A绝对正相关(相关系数接近1)的一段时间视为n,例如说与期末考周绝对正相关的期间,应该是只有期中考过后到期末考的这段期间(假设期末考不考期终中考过的范围)。则在此假设之下,人生确实是符合马可夫链的。 那么,马可夫链告诉我们什么?把握当下!因为过去不佳的表现,并不会影响到未来的表现!举例来说,四年前选举失败,并不表示现在再选一次也会失败。这次是否能成功选上,端视目前是否已经做好各种准备而定。所以,吾人应当好好把握当下,忘记过去的一切不如意与仇恨、好好把自己的现况提升到最佳状态,你就有更大的可能性成为明天的赢家! 数学之美 系列十九 - 马尔可夫链的扩展 贝叶斯网络 (Bayesian Networks) 2007年1月28日 下午 09:53:00 发表者:Google 研究员,吴军 我们在前面的系列中多次提到马尔可夫链 (Markov Chain),它描述了一种状态序列,其每个状态值取决于前面有限个状态。这种模型,对很多实际问题来讲是一种很粗略的简化。在现实生活中,很多事物相互的关系并不能用一条链来串起来。它们之间的关系可能是交叉的、错综复杂的。比如在下图中可以看到,心血管疾病和它的成因之间的关系是错综复杂的。显然无法用一个链来表示。 我们可以把上述的有向图看成一个网络,它就是贝叶斯网络。其中每个圆圈表示一个状态。状态之间的连线表示它们的因果关系。比如从心血管疾病出发到吸烟的弧线表示心血管疾病可能和吸烟有关。当然,这些关系可以有一个量化的可信度 (belief),用一个概率描述。我们可以通过这样一张网络估计出一个人的心血管疾病的可能性。在网络中每个节点概率的计算,可以用贝叶斯公式来进行,贝叶斯网络因此而得名。由于网络的每个弧有一个可信度,贝叶斯网络也被称作信念网络 (belief networks)。 和马尔可夫链类似,贝叶斯网络中的每个状态值取决于前面有限个状态。不同的是,贝叶斯网络比马尔可夫链灵活,它不受马尔可夫链的链状结构的约束,因此可以更准确地描述事件之间的相关性。可以讲,马尔可夫链是贝叶斯网络的特例,而贝叶斯网络是马尔可夫链的推广。 使用贝叶斯网络必须知道各个状态之间相关的概率。得到这些参数的过程叫做训练。和训练马尔可夫模型一样,训练贝叶斯网络要用一些已知的数据。比如在训练上面的网络,需要知道一些心血管疾病和吸烟、家族病史等有关的情况。相比马尔可夫链,贝叶斯网络的训练比较复杂,从理论上讲,它是一个 NP-complete 问题,也就是说,对于现在的计算机是不可计算的。但是,对于某些应用,这个训练过程可以简化,并在计算上实现。 值得一提的是 IBM Watson 研究所的茨威格博士 (Geoffrey Zweig) 和西雅图华盛顿大学的比尔默 (Jeff Bilmes) 教授完成了一个通用的贝叶斯网络的工具包,提供给对贝叶斯网络有兴趣的研究者。 贝叶斯网络在图像处理、文字处理、支持决策等方面有很多应用。在文字处理方面,语义相近的词之间的关系可以用一个贝叶斯网络来描述。我们利用贝叶斯网络,可以找出近义词和相关的词,在 Google 搜索和 Google 广告中都有直接的应用。 数学之美 系列三 -- 隐含马尔可夫模型在语言处理中的应用 2006年4月17日 上午 08:01:00 发表者:吴军,Google 研究员 前言:隐含马尔可夫模型是一个数学模型,到目前为之,它一直被认为是实现快速精确的语音识别系统的最成功的方法。复杂的语音识别问题通过隐含马尔可夫模型能非常简单地被表述、解决,让我不由由衷地感叹数学模型之妙。 自然语言是人类交流信息的工具。很多自然语言处理问题都可以等同于通信系统中的解码问题 -- 一个人根据接收到的信息,去猜测发话人要表达的意思。这其实就象通信中,我们根据接收端收到的信号去分析、理解、还原发送端传送过来的信息。以下该图就表示了一个典型的通信系统: 其中 s1,s2,s3...表示信息源发出的信号。o1, o2, o3 ... 是接受器接收到的信号。通信中的解码就是根据接收到的信号 o1, o2, o3 ...还原出发送的信号 s1,s2,s3...。 其实我们平时在说话时,脑子就是一个信息源。我们的喉咙(声带),空气,就是如电线和光缆般的信道。听众耳朵的就是接收端,而听到的声音就是传送过来的信号。根据声学信号来推测说话者的意思,就是语音识别。这样说来,如果接收端是一台计算机而不是人的话,那么计算机要做的就是语音的自动识别。同样,在计算机中,如果我们要根据接收到的英语信息,推测说话者的汉语意思,就是机器翻译; 如果我们要根据带有拼写错误的语句推测说话者想表达的正确意思,那就是自动纠错。 那么怎么根据接收到的信息来推测说话者想表达的意思呢?我们可以利用叫做“隐含马尔可夫模型”(Hidden Markov Model)来解决这些问题。以语音识别为例,当我们观测到语音信号 o1,o2,o3 时,我们要根据这组信号推测出发送的句子 s1,s2,s3。显然,我们应该在所有可能的句子中找最有可能性的一个。用数学语言来描述,就是在已知 o1,o2,o3,...的情况下,求使得条件概率 P (s1,s2,s3,...|o1,o2,o3....) 达到最大值的那个句子 s1,s2,s3,... 当然,上面的概率不容易直接求出,于是我们可以间接地计算它。利用贝叶斯公式并且省掉一个常数项,可以把上述公式等价变换成 P(o1,o2,o3,...|s1,s2,s3....) * P(s1,s2,s3,...) 其中 P(o1,o2,o3,...|s1,s2,s3....) 表示某句话 s1,s2,s3...被读成 o1,o2,o3,...的可能性, 而 P(s1,s2,s3,...) 表示字串 s1,s2,s3,...本身能够成为一个合乎情理的句子的可能性,所以这个公式的意义是用发送信号为 s1,s2,s3...这个数列的可能性乘以 s1,s2,s3...本身可以一个句子的可能性,得出概率。 (读者读到这里也许会问,你现在是不是把问题变得更复杂了,因为公式越写越长了。别着急,我们现在就来简化这个问题。)我们在这里做两个假设: 第一,s1,s2,s3,... 是一个马尔可夫链,也就是说,si 只由 si-1 决定 (详见系列一); 第二, 第 i 时刻的接收信号 oi 只由发送信号 si 决定(又称为独立输出假设, 即 P(o1,o2,o3,...|s1,s2,s3....) = P(o1|s1) * P(o2|s2)*P(o3|s3)...。 那么我们就可以很容易利用算法 Viterbi 找出上面式子的最大值,进而找出要识别的句子 s1,s2,s3,...。 满足上述两个假设的模型就叫隐含马尔可夫模型。我们之所以用“隐含”这个词,是因为状态 s1,s2,s3,...是无法直接观测到的。 隐含马尔可夫模型的应用远不只在语音识别中。在上面的公式中,如果我们把 s1,s2,s3,...当成中文,把 o1,o2,o3,...当成对应的英文,那么我们就能利用这个模型解决机器翻译问题; 如果我们把 o1,o2,o3,...当成扫描文字得到的图像特征,就能利用这个模型解决印刷体和手写体的识别。 P (o1,o2,o3,...|s1,s2,s3....) 根据应用的不同而又不同的名称,在语音识别中它被称为“声学模型” (Acoustic Model), 在机器翻译中是“翻译模型” (Translation Model) 而在拼写校正中是“纠错模型” (Correction Model)。 而P (s1,s2,s3,...) 就是我们在系列一中提到的语言模型。 在利用隐含马尔可夫模型解决语言处理问题前,先要进行模型的训练。 常用的训练方法由伯姆(Baum)在60年代提出的,并以他的名字命名。隐含马尔可夫模型在处理语言问题早期的成功应用是语音识别。七十年代,当时 IBM 的 Fred Jelinek (贾里尼克) 和卡内基·梅隆大学的 Jim and Janet Baker (贝克夫妇,李开复的师兄师姐) 分别独立地提出用隐含马尔可夫模型来识别语音,语音识别的错误率相比人工智能和模式匹配等方法降低了三倍 (从 30% 到 10%)。 八十年代李开复博士坚持采用隐含马尔可夫模型的框架, 成功地开发了世界上第一个大词汇量连续语音识别系统 Sphinx。 我最早接触到隐含马尔可夫模型是几乎二十年前的事。那时在《随机过程》(清华“著名”的一门课)里学到这个模型,但当时实在想不出它有什么实际用途。几年后,我在清华跟随王作英教授学习、研究语音识别时,他给了我几十篇文献。 我印象最深的就是贾里尼克和李开复的文章,它们的核心思想就是隐含马尔可夫模型。复杂的语音识别问题居然能如此简单地被表述、解决,我由衷地感叹数学模型之妙。