利用矢量量化法简化数据的同时,我们还突出了信息的关键特征,但这还不够,我们还需要其他方法来找出不变特征的层级结构,因为后者才是决定新信息是否有意义的关键。从20世纪80年代早期开始,我就从事模式识别研究,到现在已经累积了二三十年的经验,因此我非常了解一维数据在处理信息不变特征时的强大力量,及其高效性和便捷性。虽然在80年代初期,人们对大脑新皮质的认识并不多,但是从处理模式识别问题的经验出发,我推想人脑在处理数据时也是将多维数据(不管是来自眼睛、耳朵,还是皮肤)减少为一维数据,尤其是在处理新皮质层级结构传出的信息时。
至于语音识别这个难题,语音信号信息结构似乎呈现出一种层级结构,该结构的每一层又由一连串正向元素组成。一种模式的元素可能是另一种低层级模式,也可能是输入信息(在语音识别中,输入信息是我们的量化矢量)的基本组成部分。
你会发现我前面提到的模式与我之前提到的大脑新皮质模式很一致。因此,我们可以说:人类语言就是大脑类线性模式层级结构的产物。如果我们能够捕捉到说话者大脑中的这些模式,那么当他发表新言论时,我们只需将捕捉到的这些模式与我们储存的模式相比较,就能明白他在讲什么。但不幸的是,我们尚不能直接观察说话者的大脑,我们只知道他说话的内容。当然,他的话语成功地传达了他的目的,因为说话者就是通过语言表达思想的。
所以我就在思考:有没有一种数学方法可以使我们依据说话者的话语推断出其大脑中的模式呢?当然了,只有一句话肯定是不够的,但是如果我们有庞大的语料库,我们能否利用这个语料库来推断出说话者新皮质内的模式呢?或者是否能找到一种数学意义上的等值结构,而我们可以利用这种等值结构识别新的话语?
人们往往会低估数学的强大力量,要知道,我们在瞬时检索所需的知识,利用的就是数学方法。至于我在20世纪80年代初研究语音识别时遇到的问题,隐马尔可夫模型给出了很好的解决方法。俄国数学家安德烈·安德烈耶维奇·马尔可夫(Andrei Andreyvich Markov)创建了“层级序列状态”的数学理论。该模型建立的基础是同一链条中状态跨越的概率,如果上述条件成立,我们就能在下一个更高层级上激活一种状态。这句话听起来是不是很耳熟?
马尔可夫模型(HMM)包含了所有可能发生的状态。马尔可夫进一步假设了一种情况:系统呈现出一种层级式的线性序列状态,但是我们无法直接观察它,因此将之命名为“隐马尔可夫模型”(见图7-12)。在这个层级结构中,位于最底层的线性序列状态发出信号,这种信号可以被人类识别。马尔可夫提出一种数学方法,主要依据可见的输出信号计算状态改变发生的概率。1923年,诺伯特·维纳完善了这种方法。改善后的方法同时也为确定马尔可夫模型中的联结提供了解决方案,而且系统会直接忽略那些出现概率极低的联结。这很像人类新皮质处理联结的方法——如果某些联结很少或者从未被使用过,这些联结就会被视为不可能联结并被遗弃。在我们的情况中,可见输出就是说话者的语言信号,状态概率和马尔可夫模型中的联结就构成了产生可见输出的新皮质层级结构。
图7-12隐马尔可夫模型某一层的简单示意图
注:该图向我们展示了在隐马尔可夫模型中,S1到S1代表“隐形”的内部状态。
Pi, j代表了由Si跨越到Sj的概率。传播的概率则由经过测试数据(其中也包括在实际使用过程中产生的数据)调整后的系统决定。通过将新序列(譬如一条新的语句)与原有序列相比对,我们就可以得到该模型产生新序列的可能性。
我预设了一个系统,在这个系统中,我们不仅可以提取人类语言的样本,还可以借助联结和概率以及利用隐马尔可夫模型技术推断出某个层级状态(本质上说是产生语言的模拟新皮质),然后再利用推断出的层级网络状态结构识别新语句(见图7-13)。为了设计一个能辨识所有说话者的语音识别系统,我们会使用很多不同个体的话语样本来培养隐马尔可夫模型。我们在层级结构中加入了构成语言信息的基本元素,所以该模型也可称为隐马尔可夫层级模型(HHMMs)。
图7-13隐马尔可夫模型中,为了产生自然语言内容的单词序列,而出现的状态和可能联结图(www.xing528.com)
我在库兹韦尔应用智能公司(Kurzweil Applied Intelligence)的同事们却对这项技术表示怀疑,他们认为隐马尔可夫模型只不过是一种自组织(self-organizing)方法,会让人想起神经网络,但这种方法已经不再适用,使用这种方法收获甚微。需要指出的是,神经网络系统中的网络是固定的,不会因输入而改变:生物量会有所改变,而联结却不会。在马尔可夫模型系统中,如果系统设置正确,为了适应拓扑结构,系统会删去那些从未用过的联结。
我启动了名叫“臭鼬工厂”(名字源自一种管理原则,意为抛开惯例,不走寻常路)的项目,项目组成员包括:我自己、一名兼职程序员和一名电气工程师(负责制作频率滤波器)。令人惊奇的是,我们的项目进展得很顺利,我们的产品可以准确地识别出长句子。
试验成功后,我们后续的语音识别试验均以隐马尔可夫模型为基础。其他语音识别公司好像也发现了这个模型的重要性,因此从20世纪80年代中期开始,自动语音识别研究绝大部分都是以此模型为基础的。隐马尔可夫模型同样也被应用到语言整合领域,因为我们的生物层级皮质结构不只识别输入,也会产生输出,例如语言和身体运动。
隐马尔可夫层级模型也被应用到能理解自然语言句子的系统中,这代表在概念上的层级提升。
为了弄清楚隐马尔可夫结构的工作机制,我们先来了解一种网络,它包含了所有可能的状态改变。上述矢量量化方法在这里非常有用,如果没有它,我们还要考虑更多的可能性。图7-14是一张简化的初始拓扑图。
图7-14隐马尔可夫模型识别两个单词的简单拓扑图
计算机逐一处理样本中的话语信息。为了更好地利用我们的语料库,我们反复修改每个话语状态改变的可能性。我们运用语音识别中的马尔可夫模型对每个音素中能发现声音特定模型的可能性、不同音素之间的影响以及音素的可能组合进行编码。这个系统也包括语言结构更高层级的可能性网络,例如:单词的序列、词组,甚至是语言层级结构。
尽管我们以前的语音识别系统都包含音素结构的特定规律,以及人类语言学家明确编码的序列,但以隐马尔可夫层级模型为基础的新系统中却没有明确地表明英语中有44个音素、音素矢量的序列,或者是哪些音素组合更为常见。相反,我们让系统在长时间处理人类语言信息的过程中自己发现这样的规律。相对于原来的人工编码而言,新系统会发现那些被人类专家忽视的概率性定则。我们发现系统自动从数据中习得的很多规则虽与人类专家定下的规则差别不大,但却更重要。
一旦网络构建完毕,假如知道输入矢量的实际序列,利用网络考虑可选择的路径,继而选择可能的路径,我们便开始尝试识别语音。换句话说,如果我们发现了有可能产生那个话语的状态序列,我们就可以断定那就是产生此话语的皮质序列。因为基于隐马尔可夫层级模型的新皮质模拟包含单词规则,所以系统可以提供它听到的语音标音。
系统在使用过程中不断被完善,语音识别的准确率也越来越高。就像我之前介绍的那样,此系统可以跟人类新皮质结构一样,同时完成识别和学习这两项工作。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。