This commit is contained in:
louzefeng
2024-07-11 05:50:32 +00:00
parent bf99793fd0
commit d3828a7aee
6071 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
<audio id="audio" title="37 应用场景 | 你是我的眼:计算机视觉" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/18/bc/18f95de3400c0727a7283e80028248bc.mp3"></audio>
2015年微软上线了一个颜龄识别的机器人网站 how-old.net。这个网站可以根据用户上传的照片从面相上分析人物的年龄一经推出便火爆全球判断的正确率也很不赖。
而在背后支撑这个娱乐性网站的,正是微软**基于机器学习和深度学习的人脸特征提取技术**。微软的颜龄识别算法首先执行人脸检测,再利用常见的分类和回归算法实现性别判定和年龄判定,在机器学习的框架下完成所有的任务。
计算机视觉称得上是个古老的学科,它的任务是用计算机实现视觉感知功能,代替人眼执行对目标的识别、跟踪、测量和处理等任务,并从数字图像中获取信息。**传统的计算机视觉方法通常包括图像预处理、特征提取、特征筛选、图像识别等几个步骤**。
对于给定的数字图像,计算机在处理时要先执行二次采样、平滑去噪、对比度提升和尺度调整等预处理操作,再对图像中的线条、边缘等全局特征和边角、斑点等局部特征,乃至更加复杂的运动和纹理特征进行检测,检测到的特征会被进一步用来对目标进行分类,或者估测特定的参数。
虽然取得了不俗的进展,但计算机视觉的传统方法依然存在很大的局限,问题就出在待提取的特征要由人工手动设计,而不能让计算机自主学习。检测图像中的足球需要人为地设计出黑白块的特征,如果检测的对象变成篮球,那就要重新设计曲线纹路的特征。这样的计算机视觉其实是人类视觉的延伸,它的识别本质上讲还是由人类来完成的。
如此一来,良好特征的设计就成为了视觉处理的关键和瓶颈。手工设计特征既需要大量的专门领域知识,也需要不断测试和调整,努力和运气缺一不可。而另一方面,现有的图像分类器都是像支持向量机这样的通用分类器,并没有针对数字图像的特征做出专门的优化。想要对特征设计和分类器训练这两个独立过程做出整体上的联合优化,其难度可想而知。
好在深度学习的横空出世改变了一切。在2012年的大规模视觉识别挑战赛Large Scale Visual Recognition Challenge辛顿带着他的深度神经网络AlexNet横扫了所有基于浅层特征的算法以16.42%的错误率摘得桂冠。相形之下东京大学26.17%的错误率和牛津大学26.79%的错误率显得黯然失色。
**在图像识别中,应用最广的深度模型非卷积神经网络莫属**。2012年大放异彩的AlexNet采用了包含7个隐藏层的卷积神经网络总共有65万个神经元待训练的参数数目更是达到了惊人的6千万。如此复杂的模型在训练上也会颇费功夫用于训练的图像达到百万级别这将花费2个GPU一周的时间。
但这样的付出是值得的。和传统的数字图像处理技术相比,卷积神经网络不仅能够实现层次化的特征提取,还具备良好的迁移特性,在包含不同对象的图像中都能取得良好的效果。关于卷积神经网络的原理,你可以回顾一下之前的介绍。
在计算机视觉领域微软可以说是厚积薄发的巨头。以微软亚洲研究院为主的研究机构深耕于深度学习在计算机视觉中的应用取得了一系列令人瞩目的成果。2015年微软亚洲研究院的何恺明研究员提出了**深度残差网络**Deep Residual Network又打开了计算机视觉一扇崭新的大门。
顾名思义残差residual是残差网络的核心元素但这个概念却并不复杂。没有引入残差的普通网络将输入$x$映射为$H(x)$,训练的意义就在于使用大量训练数据来拟合出映射关系$H(x)$。可残差网络独辟蹊径,它所拟合的对象并不是完整的映射$H(x)$,而是映射结果与输入之间的残差函数$F(x) = H(x) - x$。换句话说,**整个网络只需要学习输入和输出之间差异的部分,这就是残差网络的核心思想**。
很简单吧可这个小改动却蕴藏着大能量。和8层的AlexNet相比何恺明论文中的残差网络达到了152层真可以说是相当深了。网络深度的增加也带来了性能的提升在2015年的大规模视觉识别挑战赛深度残差网络以3.57%的错误率技压群雄比以往的最好成绩提升了1%以上。可别小瞧这1个百分点从95分进步到96分的难度可远远大于从85分进步到95分的难度。
为什么引入残差能够带来优良的效果呢?这是因为残差网络在一定程度上解决了深度结构训练难的问题,降低了优化的难度。在深层网络中,层与层之间的乘积关系导致了**梯度弥散**gradient vanishing和**梯度爆炸**gradient explosion这些常见的问题参数初始化不当很容易造成网络的不收敛。但残差网络有效地解决了这个问题即使是一百层甚至是一千层的网络也可以达到收敛。
为什么残差网络具有这样良好的性能一种解释是将残差网络看作许多不同长度训练路径的集合。虽然网络的层数很多但训练过程并不会遍历所有的层次110层残差网络中的大部分梯度最多也只会涉及34个层的深度。如果说传统的梯度下降走的是人满为患的经济舱通道那残差网络中的梯度走的就是畅通无阻的头等舱通道。这意味着较长的路径不会对训练产生任何的梯度贡献残差网络也正是通过引入能够在整个深度网络中传递梯度的短路径绕开了梯度弥散的问题。
从表示能力上看,深层模型应该是优于浅层模型的,因为将多出来的层设置为恒等映射,深层模型就会退化为浅层模型,因而深层模型的解集应该包含浅层模型的解集。但深层模型并不是将浅层模型简单地堆叠起来。当实际网络的层数增加时,受收敛性能的影响,无论是训练误差还是测试误差都会不降反升。残差的操作相当于用恒等映射对待学习的未知映射做了一重预处理,因而学习的对象就从原始的未知映射$H(x)$变成了对恒等映射的扰动$F(x)$,这就使深度结构的优势得以发挥。
除了残差网络之外另一个新结构是由美国康奈尔大学和Facebook人工智能研究院合作提出的**密集连接卷积网络**Densely Connected Convolutional Network。网络中的“密集连接”指的是网络中的任意两层都有直接的连接每个层的输入都是之前所有层输出的集合。这样一来每个层次都要处理所有提取出来的低层与高层特征。
密集网络的研究者提到,他们的想法借鉴了残差网络的思想,但密集网络的独特之处在于所有层都可以直接获取前面所有层中的特征,而残差网络中的层只能获取到和它相邻的那个层次。如果能够在空间上想象一下密集连接网络,你就会发现它和之前所有卷积网络模型的区别在于对层次化的递进结构的改进,这个模型更像是个全连接的扁平化网络。全连接的特性提升了结点,也就是不同层之间的交互性,让提取出的特征在不同的层次上得到重复的利用,起到整合信息流的作用。
全连接的另外一个优势是训练难度的下降。在每一层中,损失函数和原始输入信号都是直接连接的,因此也能够避免连续相乘导致的梯度弥散。
由于密集网络采用全连接的方式,参数数目和层数目之间就是平方的关系,因而当层数较多时,密集网络会出现参数爆炸的问题。为了克服连接重复利用导致的特征冗余,密集网络的每一层都只学习非常少的特征,而不像其他网络一样,在每个层上都要输出成百上千个特征。
此外密集网络还设计了瓶颈层bottleneck layer加变换层translation layer的结构借此降低参数的数量。和残差网络相比密集网络的参数数目不但不会增加还有大概一半的下降。直接通过改变网络结构达到正则化的效果密集网络绝对称得上匠心独运。
虽然在近两年取得了突破性的进展,但对于深度学习的质疑依然存在。超大的参数数量不由得让人怀疑深度学习得到的其实就是某种程度的过拟合,而训练中的参数选择看起来也没有跳出经验科学的阶段。这也是对深度学习的一点警示:**工程上的进展固然让人欣喜,但理论问题的解决依然任重道远**。
今天我和你分享了深度学习在计算机视觉,主要是物体识别中的应用,要点如下:
- 在传统的计算机视觉方法中,特征设计和分类器训练是割裂的;
- 以卷积神经网络为代表的深度结构可以实现通用的物体识别算法;
- 深度残差网络将输出和输入之间的残差作为拟合对象,解决了深度神经网络训练难的问题;
- 密集连接网络采用全连接方式,实现了特征的高度重用,降低了参数数量和训练难度。
无论是残差网络还是密集网络,其实都不是惊天动地的理论突破,而是用较为简单的改进换来了良好的效果。那么这会给你带来什么样的启示呢?
欢迎发表你的观点。
**拓展学习**
关于计算机视觉,可以关注国际计算机视觉大会 **ICCV**International Conference on Computer Vision每两年举办一次。ICCV从 1987 年开始,已有 30 年的历史,是计算机视觉顶级会议。
<img src="https://static001.geekbang.org/resource/image/d9/aa/d99c200046dc728cb8977c02bdec07aa.jpg" alt="">

View File

@@ -0,0 +1,72 @@
<audio id="audio" title="38 应用场景 | 嘿, Siri语音处理" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/22/71/22f6ad886978888002447295bfd01871.mp3"></audio>
Siri是由苹果公司开发的智能语音助手。2011年10月Siri以系统内置应用的方式随iPhone 4s一起发布并被逐步集成到苹果的全线产品之中。Siri支持自然语言的输入与输出可以通过与用户的语言交互实现朗读短信、介绍餐厅、询问天气、设置闹钟等简单功能它还能不断学习新的声音和语调并提供对话式的应答。今天我就结合苹果公司关于Siri的介绍简单谈谈人工智能中的语音处理。
Siri的语音处理包括**语音识别**和**语音合成**两部分。语音识别speech recognition的作用是听懂用户的话语音合成speech synthesis的作用则是生成Siri自己的回答。目前在苹果公司公开的技术博客Apple Machine Learning Journal上主要给出的是语音合成的技术方案但这些方案对语音识别也有启发。
在很多游戏和软件中语音提示都是由声优提前录制而成但以Siri为代表的实时语音助手们必须采用语音合成技术。**业界主流的语音合成方法有两种:单元选择和参数合成**。
当具备足够数量的高品质录音时,单元选择方法能够合成出自然的高质量语音。相比之下,参数合成方法得到的结果虽然更加流利且容易识别,其整体质量却有所不及,因而适用于语料库较小的情景。
将两者结合起来就得到了**混合单元选择模式**其基本思路仍然是单元选择的思路在预测需要选择的单元时则采用参数方法Siri正是采用了这种模式。
要实现高质量的语音合成,足够的录音语料是必备的基础。但这些语料不可能覆盖所有的表达,因而需要将其划分为音素和半音素等更微小的基本单元,再根据由输入语音转换成的文本将基本单元重组,合成全新的语音。
当然,这样的重组绝非易事:在自然语言中,每个音素的选择既依赖于相邻音素,也取决于整体语句的音韵。单元选择方法完成的正是基本单元重组的任务:既要与输入的文本对应,又要生成符合语句内容的音调与音韵,同时还不能出现明显的打喯儿与中断。
**Siri的语音合成系统包括文本分析、音韵生成、单元选择、波形串联四个模块前两个环节对应前端的文本处理后两个环节则对应后端的信号处理**
文本分析模块既要对输入文本进行标音,也要提取其音韵特征,包括将非规范的数字和缩略语进行转换,从而生成单词标音,解析语法、重音和分句等信息。这些信息将被提供给音韵生成模块,用于确定输出语音的音调和音长等声学特征。基于这些特征,单元选择模块执行搜索,选择出最优的单元序列。这些序列最后由波形串联模块拼接为连续无间断的语音,作为输出呈现给手机用户。
在音韵生成过程中,机器学习通常被用于确定文本与语音之间的关系,并根据文本背后的语义特征来预测输出语音的特征。比如说如果文本是个疑问句,那么输出的语音就应该以升调结尾,文本中的感情色彩也会影响语音特征的选择。
理想的音韵模型可以由机器学习训练得到:输入是数字化的语言特征,其中包括音素的一致性、音素的前后关系、音节/单词/短语级别的位置特点等内容;输出则是经过数字化的声音特征,包括频谱特性、基波频率、音素持续时间等内容。经过训练,机器学习的算法就能完成从语言特征到声音特征的映射,生成的声音特征被用于指导单元选择过程,至关重要的指导因素就是合适的音调和音长。
在后端,录制的语音流数据首先要根据语音识别声学模型进行分段,在这个过程中,输入的语音序列需要与从语音信号中提取出的声学特征进行对准。分割后的语音段则被用来生成语音单元数据库,这个数据库还可以根据每个单元的语境和声学特征进行增强。将从前端获得的声音特征代入到语音单元数据库中,就可以使用**维特比算法**Viterbi algorithm搜索用于语音合成的最佳路径。
对于每个目标半音素,维特比算法都可以搜索出一个最优单元序列来合成它,评价最优性的指标包括两条:**目标成本**和**拼接成本**。
目标成本用于评价目标声音特征和每个单元的声音特征的区别;拼接成本则用于评价相邻单元之间的声学差异。维特比搜索的目的就是找到一条使目标成本和拼接成本的加权和最小的单元路径。当最优的单元序列确定后,每个单元的波形便由波形串联模块拼接在一起,形成输出语音。
**Siri的独特之处在于将深度学习应用在了混合单元选择模式中用基于深度学习的一体化模型代替传统的隐马尔可夫模型指导最优单元序列的搜索以自动并准确地预测数据库中单元的目标损失和拼接损失。**
Siri使用的技术是**深度混合密度网络**Mixture Density Network这是传统的深度神经网络和高斯混合模型Gaussian Mixture Model的组合。
深度神经网络用于对输入特征和输出特征之间复杂而非线性的数量关系进行建模,通常使用反向传播方式来调整网络的权重参数,实现神经网络的训练;高斯混合模型用于在给定一组高斯分布的输入条件下,对输出的概率分布进行建模,通常使用期望最大化算法进行训练。
深度混合密度网络结合了两者的优点。
其输入是二进制序列虽然是离散变量它们却包含一些连续变化的特征这些特征包括很多信息。其中既有当前音素与其前后各2个音素共5个之间的多元音素信息也有从音节到单词到短语再到句子级别的信息以及额外的重读和强调特征。
其输出则是包含基波频率、梅尔倒谱系数、单元持续时间等一系列声音特征。除此之外,输出还包括每个特征的方差值,这些方差表示了上下文的相关权重。
将语音合成的过程倒转过来,就是语音识别的近似过程。**语音识别能够将语音信号转换成对应的文本信息,其系统通常包含预处理、特征提取、声学模型,语言模型和字典解码等几个模块**。
预处理模块通常用来滤除语音中的低频噪声,并对语音加以分段。特征提取模块将语音信号从时域变换到频域,在频域上提取语音的特征参数。接下来,声学模型将语音特征映射为不同的音素,语言模型将音素映射为可能的词组,字典解码则根据语言习惯,选择最可能的词组序列作为输出。
在传统的语音识别中,特征选择过程通常使用**梅尔倒谱系数**Mel Frequency Cepstral Coefficient作为特征。梅尔倒谱系数能够对信号进行降维将声音的基波信息提取到倒谱域的高频部分声道信息提取到倒谱域的低频部分。
声学模型采用的是**高斯混合模型**和**隐马尔可夫模型**Hidden Markov Model的组合隐马尔可夫模型可以通过隐藏节点的引入解决特征序列到多个语音基本单元之间的对应关系也使用**期望最大化算法**加以训练。语言模型可以根据语言的统计特性建立,统计语言模型假定当前词的概率只与之前若干个词相关,因而可以用于估计特定词语出现在给定上下文中的概率。
随着神经网络和深度学习的发展,相关的技术也被应用在声学建模之中。包括卷积神经网络、循环神经网络和长短期记忆网络在内的主流神经网络模型都已经得到使用,并取得了不错的效果。**与隐马尔可夫模型相比,神经网络的优点在于不依赖对特征统计特性的任何假设,但其缺点则是对时间上的依赖关系的建模能力较差,因而缺乏处理连续识别任务的能力**。
值得一提的是,**Siri在声学模型的训练中用到了迁移学习技术**,通过跨带宽和跨语言的初始化来提升神经网络的声学模型。
目前Siri的应用范围覆盖了所有的主流语言而苹果的研究表明**不同语言、不同带宽语音数据的神经网络训练可以在同样的框架下进行,其基础是神经网络中特征变换的泛化特性,这使得特征变换的方法不依赖于具体的语言**。
因此经过宽带语音信号预训练的神经网络可以直接用于蓝牙语音信号的训练经过英语预训练的神经网络也可以直接用于汉语的训练。这种迁移学习技术大大提升了Siri在小数据集下的表现。
今天我结合苹果公司公开的一些资料以Siri为例和你分享了语音处理的一些技术进展。其要点如下
- 语音处理可以分为语音识别和语音合成两类任务;
- 语音合成过程包括文本分析、音韵生成、单元选择、波形串联等步骤;
- 语音识别过程包括预处理、特征提取、声学模型,语言模型和字典解码等步骤;
- 深度学习和迁移学习等技术都已经被应用在语音处理之中。
语音处理的最终目的不是简单地分析或者合成声音,而是为了更好地和人交互,从而以更简捷的方式解决问题。从交互的角度来看,你认为目前的语音助手还存在着哪些不足呢?
欢迎发表你的观点。
<img src="https://static001.geekbang.org/resource/image/2c/13/2cafffd82d32c23a0c3ccbee4aee0913.jpg" alt="">

View File

@@ -0,0 +1,64 @@
<audio id="audio" title="39 应用场景 | 心有灵犀一点通:对话系统" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/56/d3/56624d16e4a087b0ef99dc6ea3ee1ed3.mp3"></audio>
去年人工智能领域的后起之秀Facebook着实火了一把。根据2017年6月17日美国《大西洋月刊》的报道Facebook人工智能实验室设计的两个聊天机器人在谈判的训练中发展出了一种全新的、只有它们自己能够理解的语言。
这一爆炸性的消息一时间引得各路媒体蜂拥而至,煞有介事地讨论着人工智能如何颠覆人类对语言的理解,进而联想到人工智能会不会进化为热映新片《异形:契约》中戴维的角色,人类的命运仿佛又被推上了风口浪尖。
可事实真的像媒体描述的那样耸人听闻吗?如果在网上搜索这些内容,你会发现那就像两个孩子之间的咿呀学语,根本没有任何语义可言——也确实是人类无法理解的语言。于是,本来是一次模型训练的失误,愣是被唯恐天下不乱的媒体解读为世界末日的启示录,让人哭笑不得。
言归正传,**人工智能的一个基本挑战就是赋予机器使用自然语言与人交流的能力**。虽然这一目标在科幻电影中早已实现,但在现实生活中依然任重而道远。
所有对话系统的祖师爷是诞生于1966年的Eliza它由麻省理工学院的人工智能专家约瑟夫·魏岑鲍姆设计。有些出人意料的是她扮演的角色是心理咨询师并在这个角色上获得了相当程度的认可。Eliza根据人工设计的脚本与人类交流她并不理解对话内容只是通过模式匹配搜索合适的回复。
设计者魏岑鲍姆将Eliza的基本技术问题总结为以下五个**重要词语的识别,最小语境范围的判定,恰当的转化选择,适当回复的生成和结束对话的能力**。这个提纲为前赴后继的对话系统研究者们指明了研究方向。
如果说Eliza代表了对话系统的1.0版对话机器人那么以Siri、Cortana和Google Now为代表的语音助手就代表了对话系统的2.0版,也就是**智能个人助理**。它们的作用是提供各种被动性和主动性的帮助,以辅助用户在多个垂直领域完成任务。
还是以Siri为例。Siri的系统运行环境被称为“活跃本体”。在这里执行系统调用所有系统数据、词典、模型和程序对用户输入进行解析从而理解用户意图并调用外部服务。解析的过程由执行系统完成它包含语言解释器、会话流控制器和任务控制器三个部分。语言解释器对文本形式的用户输入进行解析会话流控制器根据语言解释器的解析结果生成会话协同任务控制器确定Siri的输出。
随着社交网络的发展作为对话系统3.0版的**社交聊天机器人**正在走向成熟它们可以满足用户对于沟通、情感及社会归属感的感性需求。这一领域的一个大玩家是互联网的新晋巨头Facebook。自2015年起Facebook开展了大量针对对话系统的研究。而在2017年的**国际学习表征会议**International Conference on Learning RepresentationsFacebook也系统地展示了在对话系统上的研究成果。
Facebook的一个研究方向是通过端到端方式自行训练对话系统的可能性。诸如语音助手之类的传统对话系统都是目标导向的即对话的目的是在有限的轮次内解决某些问题。为达到这一目的语音助手采用的是空位填充的方式每个空位代表着对话涉及内容的一个特征量。
对于餐厅预订的对话系统来说,其空位就会包括餐厅位置、价格区间、菜式类型等内容。但这样的对话系统不仅需要大量的人为训练,而且只适用于特定问题,难以推广到其他应用场景之下。不同任务定义的特征量是不同的,餐厅预订的对话系统显然不能实现推荐电影的功能。
相比之下,**基于神经网络的端到端对话系统不需要人为介入,而是从对话本身中进行学习**。所有元素都是从过往的对话过程中训练产生的,这就无需对对话的内容做出任何先验假设。这种方式由于无需人为干预,训练出来的对话系统也具备更强的通用性。
**端到端对话系统采用的模型是记忆网络**。相对于普通神经网络,记忆网络的优势在于能够实现长期记忆,对话中的每一句话都被存储到记忆模块中,保证了信息不在压缩的过程中被丢失。正因为如此,记忆网络能够实现基于过往对话内容的学习,通过迭代读取已有对话的内容并结合短期的上下文语义来决定输出。
Facebook对对话系统的期望远非实现预定餐厅这么简单他们的愿景是实现具备通用人工智能水平的语音助手既可以自由聊天又能够根据目标实现知识库调用。其研究一方面通过记忆网络的引入避免了大量的人工干预解决了通用对话的方法论问题另一方面提出了将一个对话任务分解为若干子任务的方法简化了技术实现和定量评价的难度给通用对话研究开辟了一个崭新的方向。
在Facebook看来对话系统中人为干预的作用是纠正机器所犯的错误并让机器不会被同一块石头绊倒两次。在大多数研究依然聚焦在对固定数据集中的标签数据进行学习时**Facebook独辟蹊径提出了通过与人类对话者的线上互动实现学习的想法**。其研究的对话系统既能根据负反馈对模型进行调整,也能根据正反馈对模型进行加强,这对在通用环境中使用有监督模型训练出的聊天机器人尤其重要。
在与对话伙伴的实时互动中,对机器人对话内容的反馈被纳入深度学习的整体框架中。对话是在问答任务的背景下进行的,机器人必须以简短的故事或一组事实来回答对话伙伴的一系列问题。
在这个过程中,反馈的形式包括两种:一种是在常规的深度学习中使用的明确的数字类型回复,另一种是在人类对话中更加常见的文本式反馈。在处理反馈的过程中,如何以最小的反馈量实现对机器人的高效训练,机器人如何利用不同类型的反馈信号,在实时学习中如何避免收敛性差与不稳定性等都是需要解决的问题。
在论文中,聊天机器人使用的仍然是基于记忆网络的端到端模型,并采用深度学习进行训练。训练的结果表明,在考虑学习算法中不稳定性问题的前提下,线上的实时训练和迭代训练都能够得到较好的效果。在机器人已有初始固定数据集训练基础的前提下,与人类实时或半实时的互动学习能够有效提升机器人的表现,这样的学习过程甚至可以无限地持续下去,这是不是意味着学无止境的道理对人工智能同样适用呢?
**Facebook的研究重新审视了监督在对话系统训练中的作用**。监督的目的不是纠正某个单独语句的错误,而是从策略上动态改善对话表现。与人类对话伙伴实时互动,在某种程度上讲可以说是对机器思维方式的训练。互动的引入突破了暴力搜索的传统方法,让聊天机器人基于推理而非寻找实现对话内容的选取,这也给通用人工智能带来了一丝微弱的曙光。
当人类遇到难以回答的问题时可以选择提问,聊天机器人却只能要么选择猜测,要么调用外部的搜索引擎,这显然达不到良好的学习效果。在互动中,聊天机器人不仅要回答问题,更要提出问题,并从提问中进行学习。智能的聊天机器人应该能够在线上或线下的强化学习中通过提问得到提升。
机器人的提问可以细化为三个场景:当机器人不能理解对话伙伴的表述时,需要进行问题澄清;当机器人在对已有知识库的推理中遇到麻烦时,需要进行知识运用;当机器人的已有知识库不完整时,则需要进行知识获取。
不同场景下机器人提问的方式也不相同:在问题澄清中,机器人会要求同伴确认问题或重新表述问题;在知识运用中,机器人会请求相关的知识或询问问题是否与某个特定的知识有关;在知识获取中,机器人则会直接要求对话同伴给出答案。
相对于特定的提问任务,在提问互动中更重要的是机器人学习在什么时机提问以及提问什么内容。在现实中,机器人的提问消耗的通常是人类的耐心,一个十万个为什么一样的聊天机器人肯定会被迅速弃用。
因此,机器人对何时提问和提问什么要有一定的判断力,而这种判断力可以通过**强化学习**来建模和训练。实验的结果表明,理想的提问策略是机器人首先学习对话任务,再根据基于提问成本的问答策略和自身回答问题的能力来学习改善自己的性能。
今天我结合Facebook公司公开的资料和你分享了对话系统的发展历程与一些最新进展。其要点如下
- 早期的对话系统通过模式匹配和智能短语搜索对人类的合适回复;
- 智能个人助理可以帮助用户在多个垂直领域完成任务;
- 社交聊天机器人的作用是满足用户的情感需求;
- 神经网络能够帮助社交聊天机器人实现通用化的学习。
社交聊天机器人的发展也带来了关于道德规范的问题,一些机器人从社交网络上学到的想法需要引起注意与警惕。结合人工智能在无人武器中的规模化应用,对人工智能进行法律约束似乎已经迫在眉睫。那么应该如何看待与应对人工智能带来的伦理问题呢?
欢迎发表你的观点。
<img src="https://static001.geekbang.org/resource/image/9e/62/9e2357643a257b218f8a6c55694f3462.jpg" alt="">

View File

@@ -0,0 +1,72 @@
<audio id="audio" title="40 应用场景 | 数字巴别塔:机器翻译" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/75/fc/7521d065606b9e47f8e2ec9da92857fc.mp3"></audio>
根据圣经旧约《创世纪》中的记载,大洪水劫后,诺亚的子孙们在巴比伦附近的示拿地定居。说着同样语言的人类联合起来兴建巴别塔,这让上帝深为他们的虚荣和傲慢而震怒。于是他悄悄地离开天国来到人间,变乱了人类的语言,无法交流的人们做鸟兽散,巴别塔的伟念也就轰然倒塌。
圣经中对语言诞生的描述充满了天谴的色彩,虽然事实根本就不是这么回事,但语言的差异的的确确给人类的沟通与交流平添了诸多隔阂。难道伟大的巴别塔注定只是存在于幻想之中的空中楼阁吗?
令人沮丧的是眼下这个问题的答案还是“是”。但在世界首台计算机ENIAC于1946年诞生后科学家们就提出了利用计算机实现不同语言之间的自动翻译的想法。而在经历了超过一个甲子的岁月后机器翻译已经取得了长足的进展今天的执牛耳者则无疑是互联网巨头谷歌。
机器翻译源于对自然语言的处理。**1949年洛克菲勒基金会的科学家沃伦·韦弗提出了利用计算机实现不同语言的自动翻译的想法并且得到了学术界和产业界的广泛支持**。韦弗的观点也代表了当时学术界的主流意见,就是以逐字对应的方法实现机器翻译。
语言作为信息的载体,其本质可以被视为一套编码与解码系统,只不过这套系统的作用对象是客观世界与人类社会。将字/词看成构成语言的基本元素的话,每一种语言就都可以解构为所有字/词组成的集合。而引入中介语言可以把所有语言的编码统一成为用于机器翻译的中间层,进而实现翻译。
比方说同样是“自己”这个概念在汉字中用“我”来表示在英语中则用“I”来表示机器翻译的作用就是在“我”和“I”这两个不同语言中的基本元素之间架起一座桥梁实现准确的对应。
然而乐观和热情不能左右现实存在的客观阻力。今天看来,这样的一一对应未免过于简单。同一个词可能存在多种意义,在不同的语言环境下也具有不同的表达效果,逐字对应的翻译在意义单一的专业术语上能有较好的表现,但在日常生活的复杂语言中就会演化为一场灾难。
但天无绝人之路,进入二十世纪七十年代后,全球化浪潮的出现催生了客观需求,计算机性能的发展则突破了技术瓶颈,这两点让机器翻译重新回到人们的视野之中。
这一时期的机器翻译有了全新的理论基础语言学巨擘诺姆·乔姆斯基在其经典著作《句法结构》Syntactic Structures中对语言的内涵做了深入的阐述他的核心观点是语言的基本元素并非字词而是句子一种语言中无限的句子可以由有限的规则推导出来。
语言学的进化也对机器翻译的方法论产生了根本性的影响:韦弗推崇的基于字/词的字典匹配方法被推翻,基于规则的句法分析方法粉墨登场。这里的“规则”指的是句法结构与语序特点。
显然,基于规则的机器翻译更贴近于人类的思考方式,也就是把一个句子视为整体,即使进行拆分也并不简单地依赖字词,而是根据逻辑关系进行处理。这使得人类翻译非常灵活,即使是不服从语法规则,甚至存在语病的句子都可以翻译得准确无误。
正因如此基于规则的机器翻译甫一诞生便受到众多推崇似乎成为一劳永逸的不二法门。可理想虽然丰满现实却依然骨感。基于句法规则的机器翻译也很快遇到了新问题在面对多样句法的句子中并没有比它的字词前任优秀多少任何一款翻译软件都没法把“我勒个去”翻译成“Oh my God”。
基于规则的窘境迫使研究者们重新思考机器翻译的原则。语言的形成过程是自底向上的过程,语法规则并不是在语言诞生之前预先设计出来的,而是在语言的进化过程中不断形成的。这促使机器翻译从基于规则的方法走向基于实例的方法:既然人类可以从已有语言中提取规则,机器为什么不能呢?**眼下,基于深度学习和海量数据的统计机器翻译已是业界主流,谷歌正是这个领域的领头羊与先行者**。
在**基于神经机器翻译**Google Neural Machine Translation的算法横空出世之前谷歌翻译也经历了超过十年的蛰伏。自2001年诞生后谷歌翻译就一直在不温不火的状态中挣扎。直到痛定思痛的高层变换思路将技术团队中的主要力量从原本的语言学家替换为计算机科学家。**这意味着机器翻译的实现理念从句法结构与语序特点的规则化解构转换为对大量平行语料的统计分析构建模型,曙光才出现在地平线上**。
神经机器翻译最主要的特点是整体处理,也就是将整个句子视作翻译单元,对句子中的每一部分进行带有逻辑的关联翻译,翻译每个字词时都包含着整句话的逻辑。用一个不甚恰当的类比来描述:如果说基于短语的翻译结果是庖丁解牛得到的全牛宴,神经机器翻译的结果就是最大程度保持原貌的烤全牛。
在结构上谷歌的神经机器翻译建立了由长短期记忆层构成了分别用于编码和译码的递归神经网络并引入了注意力机制和残差连接让翻译的速度和准确度都能达到用户的要求。编码器和译码器都由8个长短期记忆层构成两个网络中不同的长短期记忆层以残差连接。编码器网络的最底层和译码器网络的最顶层则通过注意力模块进行连接其作用在于使译码器网络在译码过程中分别关注输入语句的不同部分。
在输出端,译码器网络选择一个使特定目标函数最大化的序列作为翻译的输出。谷歌采用波束搜索技术来选取最优的输出序列,并使用覆盖率惩罚和长度正则化来优化搜索过程。覆盖率惩罚的作用是保证输入语句中每个部分都有对应的输出结果,避免漏译情况的发生;长度正则化则可以控制输出语句的长度:如果没有这一处理,译码器网络将优先选择较短的序列作为输出。
出于效率的考虑,神经机器翻译同时使用了数据并行计算和模型并行计算。数据并行计算的作用在于并行训练模型的多个副本,模型并行计算的作用则在于提升每个副本中梯度计算的速度。此外,谷歌还在精确性和速度之间做出了一些折中,利用量化推断技术降低算术计算的精确性,以换取运行速度的大幅度提升。
在提出神经机器翻译仅仅两个月后,谷歌又提出了“**零知识翻译**”的概念。这一系统在前文系统的基础上更进一步只用一套模型便可以实现103种不同语言的互译这无疑意味着系统通用性的极大提升一个神经网络以任何语言作为输入并转换成任何输出语言而不需要任意输入-输出语言之间的两两配对。换言之,**谷歌实现了一把解锁不同语言的万能钥匙,这一通用的解决方案对机器翻译而言无疑具有里程碑式的意义**。
这一多语种互译系统是对原始系统改进的结果,它并未修改基础系统的模型架构,而是在输入语句之前人为地添加标志以确定翻译的目标语言。通过共享同一个词胞数据集,这一单个模型就能够在不添加额外参数的前提下实现多语种的高质量互译。
虽然在模型训练的过程中不可能将每种语言都纳入数据库,但互译系统可以通过特定的“桥接”操作实现对在训练过程中没有明确遇见过的语言对之间的互相翻译,这也就是“零知识翻译”的含义。
零知识翻译的实现要归功于神经网络的迁移学习特性。“桥接”操作即是在两种陌生的语言中引入一种其他语言作为中介,用英文“桥接”起西班牙文和葡萄牙文的互译意味着现将输入的西班牙文翻译为英文,再将英文的中间结果转译为葡萄牙文。这种方式无疑会使翻译的时间翻倍,而额外的转译过程也可能造成原意的偏离。
但它的优势同样明显,那就是无需对两种陌生语言进行训练。要知道,如果对任意两种语言构成的输入-输出对进行训练,要训练的模型数目将达到$100 ^ 2 = 10000$的级别;而对所有语言的翻译使用英语作为中介的话,要训练的模型数目将只有$100 \times 2 = 200$,后者在工程上实现的难度显然远远小于前者。
除了在实际翻译中的应用,零知识翻译还提供了关于语言本身更深层次上的洞见,系统是否自行生成了一种语义表征体系?语言和文字本身就可以视为对客观世界进行编码的系统。而在转译的过程中,神经网络并非简单地记忆不同短语之间的映射关系,而是直接对句子的语义进行重新编码。这套由神经网络自主研发的语义系统被谷歌称为“**国际通用语**”interlingua。**某种意义上讲,这才是真正的“世界语”,而这一现象对未来语言学发展的影响同样值得关注**。
虽然谷歌在机器翻译领域取得了令人侧目的成就,但实话实说,机器翻译的准确率依然处在较低的水平上,甚至经常出现一些令人啼笑皆非的结果。但它代表的是人类相互尊重、相互理解的热切渴求。有了海量的数据和先进的算法,这些曾经遥远的愿景与渴求正在变得触手可及。
今天我结合谷歌公开发表的论文,和你分享了机器翻译的发展历程与一些最新进展。其要点如下:
- 早期的机器翻译采用的是逐字对应的方法;
- 语言学的进展使机器翻译转而依赖句法规则;
- 谷歌将神经网络引入机器翻译之中,利用大量数据提升翻译精确性;
- 神经网络可以通过迁移学习“桥接”不同的语言,实现零知识翻译。
在另一个角度上,机器翻译的进展对语言本身的发展也存在着反作用。语言并不是自然出现的,而是人类社会的产物,其发展也势必会受到人类文化的影响。那么**人工智能的发展到底会对人类自身产生何种反作用呢?**
**这是人工智能的终极问题。**
<img src="https://static001.geekbang.org/resource/image/e3/5b/e337c988eefbf0cfc8d6a30df3e3755b.jpg" alt="">
下周二3月13日 20:30我会在极客时间做一场直播主题是“人工智能必备的数学基础”带你梳理专栏的第一个模块希望能够解答一些你在这一模块的疑惑。
关于数学基础你还有哪些问题,欢迎你给我留言,我们直播见!
<img src="https://static001.geekbang.org/resource/image/30/8f/30a44a639b41a0ca8ccb9a61eead288f.jpg" alt="">