人工智能之梦
制造出能够像人类一样思考的机器是科学家们最伟大的梦想之一,用智慧的大脑解读智慧必将成为科学发展的终极,而验证这种解读的最有效手段,莫过于再造一个智慧大脑:人工智能。人工智能存在于我们的身边,如搜索引擎、邮件过滤器、智能语音助手等都是近60年来人工智能技术实用化的产物,但这些人工智能都是一个个单一功能的“裸”程序,没有坚硬的外壳、灵活的的躯壳,更没有想象中那么善解人意,甚至不是一个完整的个体,这是因为,真正的人工智能的探索之路充满了波折与不确定。历史上,研究人工智能就像是在坐过山车,科学家们不得不一次次重新回到梦的起点,它不像其他学科那样从分散走向统一,而是从1956年创立以来就不断分裂,形成了一系列大大小小的领域。
人工智能之梦开始于一小撮20世纪初期的数学家,这些人真正做到了用方程推动整个世界。时间回到1900年,世纪之交的数学家大会在巴黎如期召开,德高望重的老数学家大卫·希尔伯特庄严的向全世界宣布了23个未解决的难题。希尔伯特的第二问题来源于一个大胆的想法,运用公理化的方法统一整个数学,这个野心被后人称为希尔伯特纲领。虽然他自己没能证明,但却把这个任务交给了后来的年轻人,这就是希尔伯特第二问题:证明数学系统中应同时具备一致性(数学真理不存在矛盾)和完备性(任意真理都可以被描述为数学定理)。希尔伯特的野心无疑激励着一个来自捷克的年轻人:库尔特·哥德尔,尽管早在1931年,人工智能学科还没有建立,计算机也没有发明,哥德尔定理似乎已经为人工智能提出了警告,这是因为如果我们把人工智能也看做一个机械化运作的数学公理系统,必然存在着某种人类可以构造、但是机器却无法求解的人工智能软肋,这就好像我们无法揪着自己的脑袋脱离地球,数学无法证明数学本身的正确性,人工智能也无法仅凭自身解决所有问题,所以,存在着人类可以求解但是机器却不能解的问题,人工智能不可能超过人类。
另外一个与哥德尔年龄相仿的年轻人就是艾伦·图灵,图灵机模型把人类计算过程模型化,简单来说就是草稿纸被模型化为一条无限长的纸带,笔被模型化为一个读写头,固定的10以内的运算法则模型化为输入给读写头的程序,对于进位的记忆则被模型化为读写头的内部状态。于是,设定好纸带上的初始信息,以及读写头的当前内部状态和程序规则,图灵机就可以运行起来了。它在每一时刻读入一格纸带的信息,并根据当前的内部状态,查找相应的程序,从而给出下一时刻的内部状态并输出到纸带上。图灵机模型一经提出就得到了科学家们的认可,图灵开始认真思考机器是否能够具备人类的智能,他马上意识到这个问题的要点其实并不在于如何打造强大的机器,而在于我们人类如何看待智能,即依据什么标准评价一台机器是否具备智能,如果一台机器通过了“图灵测试”,则我们必须接受这台机器具有智能。图灵测试简要就是,假设有两间密闭的屋子,其中一间屋子里面关了一个人,另一间屋子里面关了一台计算机:进行图灵测试的人工智能程序。然后,屋子外面有一个人作为测试者,测试者只能通过一根导线与屋子里面的人或计算机交流,即与它们进行联网聊天,假如测试者在有限的时间内无法判断出这两间屋子里面哪一个关的是人,哪一个是计算机,那么我们就称屋子里面的人工智能程序通过了图灵测试,并具备了智能。冯·诺依曼的计算机与图灵机是一脉相承的,但最大的不同就在于冯·诺依曼的读写头不再需要一格一格的读写纸带,而是根据指定的地址,随机跳到相应的位置完成读写,这也就是我们今天所说的随机访问存储器。最后一位数学家是诺伯特·维纳,维纳于1948年提出来的新兴学科控制论,在控制论中,维纳深入探讨了机器与人的统一性,人或机器都是通过反馈完成某种目的的实现,因此他揭示了用机器模拟人的可能性,这为人工智能的提出奠定了重要基础。
人工智能的到来却是从一个不起眼的会议开始的。1956年8月,在美国汉诺斯小镇宁静的达特茅斯学院中,一批科学家正聚在一起,讨论着一个完全不食人间烟火的主题:用机器来模仿人类学习以及其他方面的智能。因此,1956年成为人工智能元年。会议之后,人工智能获得了井喷式的发展,如用计算机程序代替人类进行自动推理来证明数学定理,机器学习领域的突破等,但正在科学家被人工智能的胜利冲昏了头脑时,最糟糕的事情发生在机器翻译领域,总而言之,越来越多的不利证据迫使政府和大学削减了人工智能的项目经费,这使得人工智能进入了寒冷的冬天,人们必须静下心来冷静思考。传统的人工智能之所以会陷入僵局,就是因为他们过于强调通用求解方法的作用,而忽略了具体的知识,仔细思考我们人类的求解过程就会发现,知识无时无刻不在起着重要作用,因此,人工智能必须引入知识。事实上,在人工智能界,一批人认为可以通过模拟大脑的结构(神经网络)来实现,而另一批人则认为可以从那些简单生物体与环境互动的模式中寻找答案,他们分别被称为连接学派和行为学派。于此相对,传统的人工智能则被称为符号学派。
符号学派将人工智能理解为是关于如何制造智能机器,特别是智能计算机程序的科学和工程,它与使用机器来理解人类智能密切相关,但人工智能的研究并不需要局限于生物学上可观察到的那些方法。任何能够将物理的某些模式或符号进行操作并转化为另外一些模式或符号的系统,就有可能产生智能的行为,这种物理符号可以是通过高低电位的组成或者是灯泡的亮灭所形成的霓虹灯图案。计算机博弈(下棋)方面的成功就是符号学派名扬天下的资本,国际象棋上的博弈是在一个封闭的棋盘世界中进行的,而人类智能面对的则是一个复杂得多的开放世界。符号学派的思想和观点直接继承自图灵,他们是直接从功能的角度来理解智能的。他们把智能理解为一个黑箱,只关心这个黑箱的输入和输出,而不关心黑箱的内部构造。因此,符号学派利用知识表示和搜索来替代真实人脑的神经网络结构。符号学派假设知识是先验的存储与黑箱之中,因此,它很擅长解决利用现有的知识做比较复杂的推理、规划、逻辑运算和判断等问题。
连接学派认为高级的智能行为是从大量神经网络的连接中自发出现的,因此,他们又被称为连接学派。最早的神经网络研究可以追溯到1943年计算机发明之前,在单个神经元模型中,左边为输入单元,可以从其他神经元接受输出,然后将这些信号经过加权传递给当前的神经元并完成汇总,如果汇总的输入信息强度超过了一定的阈值,则该神经元就会发放一个信号给其他神经元或者直接输出到外界。虽然各种神经网络可以解决问题,但是它们究竟为什么会成功以及为什么在有些问题上会屡遭失败,却没有人能够说得清楚,因此,连接学派需要理论的支持,即我们的模型一定要与待解决的问题相匹配,如果模型过于简单,而问题本身的复杂度很高,就无法得到预期的精度,反过来,若问题本身简单,而模型过于复杂,那么模型就会比较僵死,出现所谓的过拟合。连接学派显然要把智能系统的黑箱打开,从结构的角度来模拟智能系统的运作,而不单单重现功能,这样,连接学派看待智能会比符号学派更加底层。这样做的好处是可以很好的解决机器学习的问题,并自动获取知识,但是弱点是对于知识的表述是隐含而晦涩的,因为所有学习到的知识都变成了连接权重的数值,我们若要读出神经网络中存储的知识,就必须要让这个网络运作起来,而无法直接从模型中读出,连接学派擅长解决模式识别、聚类、联想等非结构化的问题,但却很难解决高层次的智能问题。
行为学派的科学家们决定从简单的昆虫入手来理解智能的产生。机器昆虫可以痛快的爬行,还能聪明的避开障碍物,它们看起来的智能事实上并不来源于自上而下的复杂设计,而是来源于自下而上的与环境的互动。我们从生物身上学到的东西还不仅仅是这些,从更长的时间尺度看,生物体对环境的适应还会迫使生物进化,从而实现从简单到复杂、从低等到高等的跃迁。人工生命与人工智能非常接近,但是它的关注点在于如何用计算的手段来模拟生命这种更加“低等”的现象。行为学派则研究更低级的智能行为,它更擅长模拟身体的运作机制,而不是脑,同时,行为学派非常强调进化的作用,他们认为,人类的智慧也理应是从漫长的进化过程中逐渐演变而来的,行为学派擅长解决适应性、学习、快速行为反映等问题,也可以解决一定的识别、聚类、联想等问题,但在高级智能行为上则相形见绌。
事实上,深度学习仍然是一种神经网络模型,只不过这种神经网络具备了更多层次的隐含层节点,同时具备了更先进的学习技术。然而,当我们将超大规模的训练数据喂给深度学习模型的时候,这些具备深层次结构的神经网络仿佛摇身一变,成为了拥有感知和学习能力的大脑,表现出了远远好于传统神经网络的学习和泛化能力。那么为什么配合上大数据的训练就能使得网络性能有如此大的改善呢,答案是,因为人脑恰恰就是这样一种多层次的深度神经网络。
图灵的计算王国
图灵机只要根据每一时刻读写头读到的信息和当前的内部状态进行查表,就可以确定它下一时刻的内部状态和输出动作了。首先,我想说的是,其实我们每一个会决策、会思考的人就可以被抽象的看成一台图灵机。那么我们人能不能也被这样抽象呢,显然,输入状态集合就是你所处的环境中能够看到、听到、闻到、感觉到的一切,可能的输出集合就是你的每一言每一行,以及你能够表达出来是所有表情动作,内部状态集合则要复杂得多,因为我们可以把任意一个神经细胞的状态组合看做以这个内部状态,那么所有可能的神经细胞的状态组合将是一个天文数字。任何可计算过程都可以用图灵机来模拟,这是一个论题而非定理,因为它实际上是对可计算过程的定义,人们尚未发现一个可以视为计算的过程是图灵机不能模拟的。
要想弄清楚某个复杂系统运行的结果,唯一的办法就是让系统实际运作,没有任何一种计算机算法能够事先给出这个系统的运行结果,计算机超越不了的问题,人自己也超越不了,所以说人工智能是可能的。一个写出就不再变化的固定的程序不可能超越图灵计算的限制,然而,如果一个程序每时每刻都变化得不是它自己了,那么这个程序就能够超越图灵计算,联系到人这个个体,我们就能得到,因为每时每刻的人都已经由于细胞的变化而变得不再是它自己了,所以人是超越图灵计算的,一个能不断改变自己的程序,而且这种改变也不是一个固定的程序。
一条永恒的金带:缠结的层次结构
所谓的人工智能,就是让人类用自己的智慧去破解智慧本身的奥秘。人工智能从一诞生,就逃不掉与自指、缠结的层次等概念之间的纠缠。首先,我们从层次和层次纠缠等概念出发,一层层地脱去缠结的层次结构的神秘外衣。层次,楼梯就是一个典型的层次结构,每一节楼梯代表一个层次,沿着楼梯向上就能逐层升高。尺度,尺度是另外一种层次,当我们用鼠标扩大、缩小谷歌地图的时候,就能轻松的体会到不同的尺度层次。虚拟层次,当我们阅读小说、观看电影或置身游戏的时候,其实都是在与比现实更深一层次的虚拟世界打交道。一个完美的层次结构应该是一棵树,其中上层和下层之间的分别清晰可见,然后,在有些情况下,本该属于不同层次的东西却由于某种原因混淆在了一起,这便发生了层次的混淆,或者叫层次的缠结。自指即无穷延伸的层次结构,而且里层与外层相似,层次被混到了一起,由这种自指可以构造悖论语句。这种无穷延伸的层次结构,而且里层与外层相似,层次被混到了一起,但由于空间有限,我们不得不使用省略号,这类语句又被称为自指语句,如“这句话是错的”,所谓的悖论就是指自相矛盾,上面这句话就是自相矛盾的,因为,如果它是错的,那么我们会发现这句话的判断实际上是对的,出现矛盾,而如果承认它是对的,那么按照它自己的说法,它又错了,再次出现矛盾,这样,自指悖论在两个方面展现了矛盾,也就是说,这句话实际上不真也不假,或者说既真又假。
数学最大的好处就在于,它可以从一些基本而简洁的前提假设出发,通过严密的推理导出所有可靠的结论,这就是数学公理化方法。我们很容易形成这样一种直觉:数学公理化就是自动化、机械化。它严格而精确,但同时也失去了生命力和创造性。其中数学家希尔伯特还有一个更大的野心:运用数学公理化方法本身证明数学公理化方法是完美的,具体来说,一个完美的数学系统应该具备两个优良的品质:一致性和完备性,一致性就是说这个数学公理化系统中不存在矛盾,而完备性是说,如果某个数学命题是真的,那么这条命题就一定能从公理中推导出来。如果能够证明一个足够强大的数学公理体系是完备且一致的,那么一切宇宙真理已然蕴藏在数学系统内部,我们所要做的就是不断的摆弄这个系统,将这些真理找到,这就是希尔伯特的猜想。希尔伯特纲领的最大弱点恰恰就是它的自指性:要用数学公理系统本身而不能借助其他外力来证明数学公理的完备一致性,若要实现这一点,这个数学公理系统就要具备谈论自己的能力,于是,我们便可以在数学公理系统中构造一个悖论句,从而彻底摧毁希尔伯特的猜想。这个数学公理系统中的悖论就是哥德尔句子:本数学命题不可以被证明。我们不妨先假设它是正确的,于是,本数学命题不可以被证明,就暂时是正确的,也就是说这个数学命题是一条数学真理,并且根据它自己的论述,它不能被证明,于是,我们得到了一条真理,但却不能被我们的数学公理化系统所证明,因此,希尔伯特要求的完备性不能得到保证;其次我们假设该命题是不正确的,也就是说这个命题是可以被证明的,而按照假定,“本数学命题可以被证明”是真理,所以根据完备性,它也必然是系统中的定理,于是,证明题和反命题同时都是系统中的定理,一致性遭到了破坏。我们可以断言:对于一个足够强大(强大到具备了自指能力)的数学公理化系统,一致性和完备性不能兼得,这便是大名鼎鼎的哥德尔不完备性定理,简称哥德尔定理。
大家可以按照上述说法简要分析一下理发师悖论:某个小村庄里有一名理发师,他给自己制定了一条奇特的规矩:他不给那些给自己理发的人理发。这条规矩看起来没什么问题,但是一旦我们问这位理发师他该不该给自己理发的时候,他就会立即陷入自相矛盾的境地,因为,如果他给自己理发,那么按照他的规矩,他属于给自己理发的人,那么他就不该给自己理发。而如果他不给自己理发,那么根据他的规矩,他又应该给自己理发。
从算法复杂性到通用人工智能
2005年,通用人工智能领域的代表任务马库斯·胡特第一次给出了真正能适应各种不同环境的通用智能主体的自上而下的、严格形式化的、可靠的、通用的、无参数的数学模型,称为AIXI。事实上,将索洛莫诺夫的通用归纳与序贯决策理论相结合就得到了通用智能模型AIXI,它从初始状态开始,每个时刻根据所观察到的状态和以前状态的记录,依照已知的概率分布,从一组可行方案中选用一个能够获得最大化期望效用的最优方案,接着观察下一步实际出现的状态,然后再做出新的最优决策,如此反复进行。
通用智能的核心是通用归纳,通用归纳将归纳转化为预测,而预测的关键是压缩,压缩可以理解为对数据的建模或编码表示,它依赖于对模式的掌握,模式可以用算法来衡量。从数据到程序是编码,从程序到数据则是解码,编码越好则预测越准,预测越准行为就越有效。
考虑一个面对未知环境的主体,它与环境不断交互,在每一个回合中,主体都对环境做出某种动作,然后这个动作激发环境作出某种反应,反过来给主体一些反馈,主体感知到这种反馈,同时从中体会到某种正面或负面的效用,然后计划下一回合的交互该采取哪种动作,主体的所有信息都来自过去与环境交互的历史,它对位置环境的评估也主要依赖于这些信息。AIXI究竟能处理什么具体问题呢,事实上,几乎所有的AI问题都可以被处理。序列预测,像股票走势、天气预报、彩票投注之类的问题都可以转化为类似的序列预测问题,只要现实世界中这些问题真的是可计算的,那么AIXI都可以成功预测。最优化,比如寻找某个函数的最小值问题。策略博弈,只要把博弈的另一方看做“环境”就好了,比如象棋之类的二人零和预习。监督学习,比如识别物体的属性和根据属性分类的问题都可以划分为这种样式。
在AIXI的框架中,主体和环境可以看作两个完全独立的主体在交互,这是为了易于处理问题而进行的简化,现实世界往往更加复杂,主体并不具有游离环境之外的超越地位,主体也是环境的一部分,主体的计算资源受到环境的时空限制,为了刻画这些复杂的情形,AIXI的各种变种应运而生。加强学习的主体,对于加强学习的主体来说,效用是它外部感知的一部分,胡特最开始提出的AIXI就是一种加强学习的主体。追逐目标的主体,对于追逐目标的主体来说,效用很单纯,只要在规定的时刻完成目标效用就是1,否则就是0。专职预测的主体,如果成功预测环境下一步的反馈,效用就是1,否则是0。寻求知识的主体,它的效用不是外部环境赋予的,而是自发驱动的,纯粹是为了追求好奇。自修改源代码的主体,自修改源代码的主体由两部分组成,它自身的源代码以及源代码的执行器,代码执行器将源代码作用于当前历史并产生一个输出,这个输出由一个动作和下一版自己将要变身的源代码构成。可修改和被修改源代码和内存的主体,一个能够进行自我欺骗的自修改源代码的主体有一个欺骗箱,可以对环境反馈回来的输入进行修改,而且环境也有办法对主体想升级的源代码进行修改。只为求存的主体,如果能保持初始的源代码不变,其效用就是1,否则为0。内嵌时空的主体,它完全是环境的一部分,环境可以修改主体的任何部分,环境执行主体的代码,它的第一步可以是人为限定的某个不超过固定长度的程序,后面主体怎么改变就完全由环境控制了。虽然AIXI看上去是一个简单的模型,但它如此优雅的以显式或隐式的方式整合了目前人工智能领域的方方面面,如主体、效用、概率、假设、不确定性、归纳、压缩、预测、规划与决策、简单性与复杂性、泛化与过拟合、知识表示与存储、环境建模、逻辑定理证明、搜索与优化、内在驱动、增量学习、探索与开发、自我升级等,对AIXI的深入研究必将推动人工智能的发展。
深度学习:大数据时代的人工智能新途径
机器学习是人工智能的一个分支,很多时候几乎成为人工智能的代名词,简单来说,机器学习就是通过算法,使得机器能从大量历史数据中学习规律,从而对新的样本做智能识别或对未来做预测。
第一个神经元模型是麦卡洛克和匹兹在1943年提出的,称为阈值逻辑,它可以实现一些逻辑运算的功能,自此以后,神经网络的研究分为两个方向,一个专注于生物信息处理的过程,称为生物神经网络;一个专注于工程应用,称为人工神经网络。人们发现,利用反向传播算法(BP算法)可以让一个人工圣经网络模型从大量训练样本中学习出统计规律,从而对未知事件进行预测,这种基于统计的机器学习方法比起过去基于人工规则的系统,在很多方面显示出了优越性。
深度网络,从字面上理解就是深层次的神经网络,很多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化和分类,深度神经网络在训练上的难度,可以通过逐层初始化来有效克服。机器学习的两次浪潮都和时代的发展紧密相关,如果说25年前反向传播神经网络掀起的第一波机器学习浪潮使人们第一次认识到基于统计的方法比起过去基于人工规则的系统的优越性,那今天谷歌、微软、百度等拥有大数据的高科技公司争相投入资源,占领深度学习的技术制高点,则是因为它们都看到了在大数据时代,更加复杂且更加强大的深度模型能深刻揭示海量数据里所承载的复杂而丰富的信息,并对未来或未知事件做更精准的预测。
要理解深度学习,首先要理解机器学习中的特征和表示,用机器学习特定问题时,一般采集到数据之后会进行一些特征提取的处理,再把提取出来的特征丢到各种机器学习模型里做分类或预测,这些特征提取的算法往往都是人们根据该问题数据的特征人工设计出来的,并且设计更好的特征一直以来是各个领域里非常重要的研究问题,在模型的运用不出差错的前提下,特征的好坏往往成为整个系统性能的决定因素。传统的浅层模型有一个重要特点,就是靠人工经验来抽取样本的特征,而强调模型主要是负责分类或预测,因此,通常一个开发团队会将更多的人力投入到发掘更好的特征上去,要发现一个好的特征,就要求开发人员对于理解待解决的问题要有很深入的学习理解。深度学习的实质,是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性,深度学习与传统的浅层学习的不同在于:1强调了模型结构的深度,通常有5层或6层,甚至10多层的隐层节点。2明确突出了表示学习的重要性,也就是说,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,使分类或预测更加容易。
自编码器,是含有一个隐层的神经网络,从概念上讲,它的训练目标是“重新建立”输入数据,换句话说,让神经网络的输出与输入是同一样东西,只是经过了压缩,这样,神经网络学习到的实际上并不是一个训练数据到标记的“映射”,而是学习数据本身的内在结构和特征,因此,隐含层也被称作特征探测器,通常隐含层中的神经元数目要比输入/输出层少,这是为了使神经网络只去学习最重要的特征并实现特征降维。我们想在中间层用很少的节点在概念层上学习数据,产生一个紧致的表示方法。
受限波尔茨曼机。是一种可以在输入数据集上学习概率分布的生成随机神经网络。由隐含层、可见层、偏置层组成。每一个当前层的神经元与下一层的每个神经元都有连接,标准的受限波尔茨曼机中,隐含和可见层的神经元都是二态的,即神经元的激活值只能是服从伯努利分布的0或1。算法的思想就是在正向过程中影响了网络内部对于真实数据的表示,同时,反向过程中尝试通过这个被影响过的表示方法重建数据,主要目的是可以使生成的数据与原数据尽可能相似,换句话说,这样的网络具有了感知对输入数据表示的长度的能力,而且尝试通过这个感知能力重建数据,如果重建出来的数据与原数据差异很大,就要进行调整并再次重建。自编码器以无监督的方式学到数据中的特征,最重要的是,上述特征学习过程是可以迭代的,我们可以在已学到的表示上用同样的算法再学一层新的表示,通过逐层训练,学到越来越抽象的特征。深度学习与传统的神经网络之间既有相同的地方也有很多不同,二者的相同之处在于深度学习采用了相似的分层结构,系统由包括输入层、隐层、输出层组成的多层网络,只有相邻层节点之间有连接,同一层以及跨层节点之间相互无连接。在传统神经网络中,人们采用的是BP算法训练整个网络,随机设定初值,计算当前网络的输出,然后根据当前输出和训练的标签之间的差改变前面各层的参数,直到收敛。BP算法存在一下几个主要问题:1梯度越来越稀疏,从顶层越往下,误差校正信号越来越小;收敛到局部最小值,尤其是从远离最优区域开始的时候;一般只能用有标签的数据来训练,但大部分数据是没有标签的,而大脑可以从没有标签的数据中学习。具体训练过程如下:(1)使用自底向上非监督学习,就是从底层开始,一层一层的往顶层训练,采用无标定数据分层训练各层参数,这一步可以看作一个无监督训练过程;(2)自顶向上的监督学习,就是通过带标签的数据去更新所有层的权重,误差自顶向下传输,对网络进行微调。
语音识别是深度学习最早取得突破性成果的一个领域,长期以来语音识别系统,在声学建模部分大多采用的是混合高斯模型GMM,这种模型由于估计简单,适合海量数据训练,同时有成熟的区分度训练技术支持,一直在语音识别应用中占有垄断地位。但这种混合高斯模型本质上是一种浅层网络建模,不能充分描述特征的状态空间分布。而且,GMM建模的特征维数一般是几十维,不能充分描述特征之间的相关性。另外,GMM建模本质上是一种似然概率建模,虽然区分度训练能够模拟一些模式类之间的区分性,但能力有限。采用深度神经网络可以充分描述特征之间的相关性,可以把连续多帧的语音特征并在一起,构成一个高维特征。最终的深度神经网络可以采用高维特征训练来模拟,另外,它拥有更为稳定的表述特性,层级越多,抽象能力越强。谷歌的研究人员发现了一个有趣的现象,先针对有足够训练数据的大语种训练一个识别网络,然后将网络最顶层的英语因素分类层去掉,代之以某个新语言的因素分类层,而重用下层产生的特征,这样只要花非常少的训练代价,就可以得到一个效果非常好的新语言识别网络。
深度学习用于图像识别最先广为人知的是“谷歌大脑”项目。这套系统可以通过在YouTube上浏览图像,从而自学如何识别猫等对象。开发这个系统的实验室原隶属于GoogleX,他们最广为人知的作品有自动驾驶汽车。谷歌研究人员搭建了一个巨大的深度网络,该网络由三层改进的稀疏自编码器组成,共有10亿个参数要学习,堪称史上最大的神经网络。以往传统的面部识别技术,一般都是由研究者先在计算机中通过定义识别对象的形状边缘等信息教会计算机该对象的外观,然后计算机对包含同类信息的图片做出标识,从而达到识别的效果。然而,在谷歌这个神经网络里,人们从未向计算机描述图片,计算机基本上靠自己产生了特征。
自然语言处理中最直观也是到目前为止最常用的词表示方法是One-hot稀疏表示,这种方法把每个词表示为一个很长的向量,这个向量的维度是词表大小,其中绝大多数元素是0,只有一个维度的值是1。但这种表示方法也存在一个重要的问题,这就是词汇鸿沟,仁医两个词都是孤立的,光从两个向量中看不出两个词是否有关系。词向量怎么得到呢,一般是在训练语言模型的同时,语言模型其实就是看一句话是不是正常人说出来的。它的基本思想是:假设我们已经知道每个词的向量表示,现在用前n-1个词的向量表示作为一个单隐层神经网络的输入,去预测第n个词,当以最大似然为优化目标用随机梯度法训练好这个网络后,同时我们也得到一份训练好的词向量。用深度学习的表示学习思想产生词向量的另一个代表性工作是word2vec,是谷歌在2013年年中开源的一款将词表征为实数值向量的高效工具,例如给定一个词,找和它意思最相近的词。基本思想是用一个词在文本中出现时的上下文来表征这个词的语义,进而计算它的向量表示。如果两个词经常在相同的语境中出现,那么它们很可能有相同或相似的语义。
无处不在的自然语言处理
人类语言,也叫自然语言,是人类区别于其他生物的重要特征,如何理解人类语言的形成,了解其原理和表现特征,是科学家和认知学家的梦想。自然语言处理的研究不再仅仅涵盖词法分析和句法分析,还包括了语音识别、机器翻译、自动问答、文本摘要等应用和社交网络中的数据挖掘、知识理解等。无论是过去的句法结构树、谷歌翻译,还是如今的自动问答系统,自然语言处理几乎渗透到了互联网生活的方方面面。
原始的网页其实是非结构化的信息,充斥着计算机本身无法理解的自然语言,搜索引擎首先需要将这些自然语言“转换”成规则的可被解析的“机器文本”。这些文本有许多存储形式,最简单的就是分词后的短语形式:搜索引擎将大篇幅的网页自然语言切割成一个个短小的词语,并将词语按照重要程度进行排序,再与用户输入的关键词进行皮匹配,才能返回匹配程度最高的网页。但随着自然语言处理技术的提高,搜索引擎并不满足与简单的匹配,这时,搜索引擎就要进行用户意图分析,再根据相关规则,找出相关网页中最符合这个问题的答案,进行抽取,并最终呈现。
除了搜索引擎,在社交网络中,自然语言也应用很广泛,如新浪微博,我们在微博上关注的人“代表”了我们的兴趣爱好,我们转发的内容也就表达了我们的观点立场。于是,挖掘了某些文本中蕴含的潜在主题,就挖掘出了一些用户的兴趣爱好,就可以在此基础上做广告推荐。同样,分析出了某些问题中蕴含的情感倾向,再结合一些特定的表情和有情感倾向的词语,就分析出了一些用户对某件事的态度。除了上述形式,自然语言还以语音的形式广泛存在于我们的日常生活和科技应用中,苹果公司推出的Siri应用希望像私人管家一样,帮助用户添加行程提醒,返回想知道的内容。
无论使用何种方法探究处理自然语言的过程,都需要面临最根本的问题:理解语法和语义,语法表现为句法结构,语义表现为语义结构,可以说,句法结构分析和语义结构分析是公认的自然语言处理的基础。分词、词性标注等是理解语言结构的基本任务。语言结构的基本单位是词语,第二个层级是构词法,第三个层级是词性,进而是语法和语义,最后由多个句子组成篇章。相应的,语言计算的任务对应的由分词得到词,由取词根和词形还原分析构词法,再由词性标注得到词性,然后由语法分析得到语法结构树。在句法分析的基础上,语义分析可以得到语义理解,最后再运用篇章分析理解句子与句子之间的关系。语义分析即分析自然语言的意义,这里的自然语言可以是词语、句子、篇章等不同级别的语言单位。语言学的语义分析目的在于找出语义表达的规律性、内在解释、不同语言在语义表达方面的个性及共性。
现代的统计语言模型方法,可以将大概率出现在一起的词语“机械”的进行分词,这一过程不需要机器理解这个词为什么是一个词,也就是不需要理解其背后的含义。所以,当一个名人的名字广泛出现在语料中或一个形容词很常见时,机器都可以对它们进行正确的分词。但一个人名和一个事物的名字都承载着一个概念,而形容词并不具备这样的性质。