深度学习 ( Deep Learning ) 是当下很热的话题,笔者在大学课堂上介绍沃森是不止一次地被问到深度问答 ( DeepQA,沃森的架构技术) 是否也采用了深度学习的方法。笔者的回答可能令一部分听众失望,简单的回答是没有直接用到。借今天这个机会,笔者希望谈一谈深度学习与沃森,或者更大一点的题目认知计算之间的关系。
1.沃森有没有用到深度学习
如果说得细一点的话,沃森的确利用了一些技术来解决如迁移学习
心智社会是人工智能的先驱之一Marvin Minsky首先提出的,其理论是:人类心智活动和任何自然进化出的感知系统是由无数“碌碌众生”式的智能体所完成的单独简单进程组合成的大社会,通过高度关联的互动机制中,涌现出各种心智现象。他说到“有什么神奇的绝招使我们看起来具备智能?绝招就是: 无招胜有招。智慧的力量源于从我们广阔的多样性,而不是从任何单一、完美的原理导出。”[1]。拆开来看,每种反应都只有很简单,像个低能儿,但通过错综复杂的层累控制,以许多不同的搭配组合有机结合起来,就能创造高难度的思维活动。
沃森正是这样一个系统,它集成了上百种算法从不同的维度分析备选假设的证据,如类型、时间、空间、流行度、段落支持度、来源可靠度、语义相关度等。每种分析都产生一些特征或评分,反映了在相应的维度上证据对备选答案的支持程度。如果在最终系统中去掉任何单个评分器,在上千个问题的测试集上都不会造成显著的影响,实际上没有一个评分器产生的影响超过1%。但组合起来,沃森在回答40%-70%的问题时,达到了92%的平均精度。[2]
沃森中运用了迁移学习的方法来处理特别、罕见的问题类型,以及从问题和证据中学习关系主题模型进行统计关系检测[11, 12]。这些问题类型或关系主题往往缺乏足够的标注数据用于训练得到适当的模型,但是存在其它问题类型或部分关系主题的标注数据和被证明有效的特征,迁移学习提供了方法对后者加以利用。统计关系检测的方法应用于备选答案生成和证据评分时,取得了一定的效果。
在完成《危险边缘》节目的挑战之后,沃森被用于其它的任务,比如辅助医疗诊断。众所周知,建造一个能够快速适应不同领域的智能系统实际上是一个更大的挑战。沃森在建造之初即考虑过将来在其它领域的适应性问题,也通过AdaptWatson工具重新训练完成TREC QA的任务并取得优异的成绩。但是对于跨度更大的其它领域内的任务,很有可能不仅评分器需要重新训练,证据的维度也可能非常不同。这时候,就需要进一步发展包括沃森在内的智能系统的架构以得到适用范围更加广泛的成果。
2.重新定义认知计算
认知计算(Cognitive Computing) 是对新一代的智能系统的特点的概括。这其中既包括沃森这样在功能层面具备人类的某些认知能力,能够出色完成特定的认知任务的系统;也包括在结构层面借鉴人类的大脑的构造,重新设计出非冯-诺依曼体系架构的计算机,更有效地进行认知所需的运算。后者的一个代表,便是SyNAPSE项目。
SyNAPSE项目的目标是最终建立1010个神经元和1014个突触的认知计算架构,而且功耗降至1kW左右,体积缩小到两升左右。这一目标主要是受到耶鲁大学的神经生物学教授Gordon Shepherd和加州理工学院的认知和行为生物学教授Christof Koch的研究结果的启发,他们分别估计人类的大脑大约有0.6x1014和2.4x1014个突触。为此需要开发新型、超低功耗、紧凑型、模块化的架构,目前一个被称为TrueNorth的架构就是模仿人脑的组织和功能而设计的,用CMOS电路器件组成生物学中的神经元的轴突,树突和突触。另外,IBM和LBNL已经在一台具有1,572,864个处理器核心, 1.5 PB 的内存, 98,304 个MPI进程, 以及6,291,456 个线程的蓝色基因超级计算机上完成了53x1010个神经元和1.37x1014个突触的仿真计算。[3]
从不同的方向上,我们大致可以勾画未来的认知计算的特点:自然的人机接口;学习能力;探索或问题求解能力。
认知系统需要和人类一样具有接收、处理和理解声音、图像和语言的能力。沃森和Siri所代表的自然语言处理的能力还需要进一步深化,将来的系统能够更加聪明的和人类进行对话。语音识别和合成将更加准确,使用起来也更加方便。图像和视频的理解将来能够识别出物体、人物甚至异常情况。
认知系统的学习能力非常关键,因为建造专门的认知系统成本非常的高。建立通用的具有学习能力的系统具有特别现实的意义,特别是当我们处在当前大数据的时代,可供学习的数据和知识越来越丰富。无论是监督学习、无监督学习、半监督学习还是强化学习,目前看来对认知系统的构造都非常有用。
认知系统能够进行探索和问题求解,这是在复杂环境下完成任务的要求。假设生成-假设检验的框架能够适用于很多复杂任务。知识的表示和推理依然是核心问题,但我们可以期望知识获取能够取得突破,特别是计算机直接从人类积累的各种文献中获取知识。
这三个方面的进展是密不可分,而且能够相互促进。例如学习能力的提高可以加强语言处理的能力,而如果能够通过语言的理解来获得问题求解所需要的知识将会带来解决问题能力上的飞跃。提出认知计算的意义更在于我们希望将来的计算机不仅通过编程的方式来具备完成特定任务的能力,而且能够通过其自身具有的认知能力能够像人类一样通过训练、启发、联想、思考来更方便地具备新的能力,成为人类的助手或某些领域的专家。
3.深度学习与认知计算
深度学习在wikipedia中被定义为“一组针对具有多层输入结构模型而设计的机器学习算法”(set of algorithms in machine learning that attempt to learn layered models of inputs)。其中所指的具有多层输入结构的模型,主要指深层神经网络,即包含多个隐藏层的人工神经网络。
理论研究表明,在神经元总数一定的前提下,与传统的浅层神经网络(只有一个隐藏层)相比,深层神经网络具有更强大的学习能力[4],能够自动提取出具有高层抽象含义的特征来解决复杂的机器学习问题。但深层神经网络的学习也有一些非常难以克服的难点。首先,神经网络训练的目标函数是非凸的,这意味着网络参数的训练并不能保证一定会收敛于全局最小点,而有可能在某个局部最小点停止。对于深层神经网络,传统的后向传播算法(back propagation)会遇到“导数消亡”(vanishing gradient)问题[5],使得靠近输入端的隐藏层参数不能得到有效的训练,更容易陷入局部最小点,这导致深层神经网络的实际学习效果常常不如浅层神经网络,虽然它在理论上应该具有更强的学习能力。第二个难点是深层神经网络的学习会带来很大的计算量,学习的过程经常会持续数星期甚至数月。
深层神经网络的学习算法在2006年有了重大突破。是年,Geoffrey Hinton发明了Deep Belief Networks(DBN)[6],能够有效地对深层神经网络进行预训练,先将网络参数预置在一个比较接近全局最小点的位置,再应用后向传播算法,极大地提高了深层神经网络的训练效果。同时,计算机硬件的飞速发展,尤其是GPUs (Graphics Processing Units)在科学计算方面的广泛应用,极大地提高了深层神经网络的训练速度。以往需要几个星期才能完成的训练任务,现在几天就可以完成。
由于上述算法和计算能力方面的突破,深度学习掀起了机器学习领域的一次革命,在语音识别、图像识别、自然语言处理等方面取得了一系列突破性的进展。2012年11月,IBM和多伦多大学、微软、谷歌联合发表了一篇研究报告[8],充分肯定了深度学习在语音识别领域取得的成就。虽然这几家研究机构在应用深度学习的具体方法和场景上不尽相同,但对比最好的GMM(高斯混合模型,语音建模的传统方法)系统,都将词的误识率相对下降了至少10%。我们可以期待深度学习在人机交互技术方面带来的突破,将会对认知计算产生深远的影响。
深度学习的一大显著优势是能够无监督地学习“通用”知识。例如在谷歌进行的一项关于图像识别的研究中[7],研究人员首先用大量没有标记的图片进行无监督的深度学习,目的是学习出能够有效表示各种物体图像的抽象特征。在此基础之上,利用少量的带有标记的训练图像,就可以快速学习出能够检测相应物体(例如人脸或者猫脸)的模型。在自然语言处理方面也有类似的例子。研究人员利用深层神经网络学习特征的能力,自动抽取高级语言特征,同时应用于四个独立的自然语言处理任务:part-of-speech tagging, chunking, named entity recognition, 以及semantic role labeling,并在所有任务上性能都超过了目前最好的传统方法[9]。在语音识别方面,有些新开发的语言由于数据不足,就借用其他语言的数据联合训练模型。由于深层神经网络提取的高层特征能够反映人类语音的共性,因此其他语言的数据也会对目标语言模型的训练产生积极的效果[10]。这种学习抽象特征的能力与大脑的学习过程相似,是认知计算系统的重要部分。
4.结语
如果我们把1900年前后打孔卡的出现之后的几十年视为制表计算的时代,50年代至今可以说是可编程计算的时代,而今天我们可能处在认知计算时代的开端。认知计算的特征包括自然的人机接口;学习能力;探索或问题求解能力。深度学习等技术也是关键的助推器之一。
参考
[1] Marvin Minsky, The Society of Mind, Simon and Schuster, New York. March 15, 1988.
[2] David Ferrucci, Introduction to “This is Watson”, IBM J. RES & DEV,
[3] Dharmendra Modha, Dharmendra S Modha's Cognitive Computing Blog, http://www.modha.org/, retrieved 2013/5/16.
[4] Y. Bengio. Learning Deep Architectures for AI. In: Foundations and Trends in Machine Learning, Vol. 2 Issue 1, Jan. 2009.
[5] S. Hochreiter, Y. Bengio, P. Frasconi, and J. Schmidhuber. Gradient Flow in Recurrent Nets: the Difficulty of Learning Long-term Dependencies. In: A Field Guide to Dynamical Recurrent Neural Networks. IEEE Press, 2001.
[6] G. Hinton, S. Osindero, Y. The. A Fast Learning Algorithms for Deep Belief Nets. In: Neural Computation, 18(7), 2006.
[7] Q.V. Le, M. Ranzato, R. Monga, et al. Building High-level Features Using Large Scale Unsupervised Learning. In: Proc. of ICML 2012.
[8] G. Hinton, L. Deng, D. Yu, et al. Deep Neural Networks for Acoustic Modeling in Speech Recognition. In: IEEE Signal Processing Magazine, 82, 2012.
[9] R. Collobert, J. Weston, L. Bottou, et al. Natural Language Processing (almost) from Scratch. In: Journal of Machine Learning Research 1, 2000.
[10] Z. Tuske, J. Pinto, D. Willett, et al. Investigation on Cross- and Multilingual MLP Features under Matched and Mismatched Acoustical Conditions. In: Proc. of ICASSP 2013.
[11] David Gondek, Adam Lally, Aditya Kalyanpur, J. William Murdock, Pablo Duboue, Lei Zhang, Yue Pan, Zhao Ming Qiu, Chris Welty. A Framework for Merging and Ranking of Answers in DeepQA. IBM J. RES & DEV,
[12] C. Wang, A. Kalyanpur, J. Fan, B. K. Boguraev, D. C. Gondek. Relation extraction and scoring in DeepQA. IBM J. RES & DEV, May/July 2012.