从自然语言处理到人工智能两条路径(附64页PPT)
人工智能已经变得更聪明。尤其是深度学习,但是,计算机仍不能智能地读取或交谈。
要想了解语言,计算机需要了解世界。他们需要回答类似于下面这样的问题——
为什么你可以用绳拉马车却不推它?
为什么体操运动员用一条腿竞争是不寻常的?
为什么只有外面下雨?
如果有一本书在桌上,你推桌子,会发生什么?
如果鲍勃去垃圾场,那么他会在机场吗?
让我们以一种基于感觉和行动的方式理解语言——
当某人说“鸡”的时候,我们直接把它和我们对于鸡的经验相匹配,我们理解彼此因为我们有相同的经历,这就是电脑需要的一种理解能力。
两种理解含义的路径:
无意义的标记
词袋(Bags-of-words)表述:
将词语视为任意符号,并查看其频率。“狗咬人”和“人咬狗”完全一致。考虑一个有50,000个单词的词汇表:
“aardvark”的位置是0
“ate”的位置是2
“zoo”的位置是49,999
一个词袋可以是一个有50,000维度的向量。
“Theaardvarkatethezoo.”=[1,0,1,...,0,1]
我们可以做的更好一点,通过数出这些词数出现的频率。
tf:词频(termfrequency),单词出现的频率。
“Theaardvarkatetheaardvarkbythezoo.”=[2,0,1,...,0,1]
提升非常见词汇:
认为非常见词汇比常见词汇更能表征文本,我们可以得到更好的结果。将每个条目乘以一个表示它在语料库中有多常见的度量。
idf:逆文本频率指数
idf(术语,文本)=log(文本数量/包含术语的文本的数量)
10文本,只有一个有“aardvark”,5个有“zoo”,5个有“ate”
tf-idf:tf*idf
“Theaardvarkatetheaardvarkbythezoo.”=[4.6,0,0.7,...,0,0.7]
称为向量空间模型。你可以将这些向量放入任何分类器,或者基于类似的向量找到相似的文档。
主题模型(LDA):
潜在狄利克雷分布(LatentDirichletAllocation)
你选择主题的数量,每个主题是一个关于单词的分布,每个文档是一个关于主题的分布,在Python主题模型gensim中很容易操作(https://radimrehurek.com/gensim/models/ldamodel.html)
通过pyLDAvis在推特上应用LDA:
情感分析:——作者对文本是什么样的感受:
人工设置表达法
我们通过手动指定符号之间的关系来告诉计算机事物的意思。
1.使用预定的关系来储存意思
2.图示多种书写某种同意东西的方法
通过相对较少表述数量,我们可以对机器应该做什么进行编码。
单词网络(WordNet):
框架网络:
概念网络:
另一个知识本体:
建议上的合并本体:
意象图式(ImageSchemas):
意象图式是人类关于跨共同文化经验的表示
——费尔德曼,2006
人类使用意象图式来理解空间布置和空间运动
——曼德勒,2004
意象图式的例子包括路径,先知,阻塞和吸引力
——约翰逊,1987
抽象概念例如浪漫关系和论证被表示为这种经验的隐喻
——莱考夫和约翰逊,1980
语义网-链接数据:
世界模型
计算机需要关于世界如何运作以及如何与之交互的因果模型。人们不会说一切事情来表达一个信息,只会说没有被我们共同的概念所涵盖的东西。编码我们的共享概念最有效的方法来是借用模型。模型表达了世界如何根据事件变化。回顾商务购买框架,后来,一个人有更多的钱,另一个人有更少的钱,从模型中读出这样的结论。
模型的纬度:
概率:确定性与随机比较。例如,逻辑与概率编程比较
因素状态:整体状态和使用变量比较。例如,有限自动机与动态贝叶斯网络比较
相关性:命题逻辑和一阶逻辑比较。例如,贝叶斯网络与马尔可夫逻辑网络
同时发生Concurrent:对一个事物模型与多个事物比较。例如,有限自动机与Petri网比较
时间的:静态与动态比较。例如,贝叶斯网络与动态贝叶斯网络比较
通过模型合并表达法:
Word2vec
Word2vec模型为词汇表中的每一个单词学习一个向量。每个词向量的维度是相同的,一般在300左右。和tf-idf向量不同,词向量是紧密的,大部分值不是0。
1.将每个单词初始化为一个随机向量
2.对于文档集里的每一个单词w1:
3.对于单词w1周围的每一个词w2:
4.移动向量,使w1和w2距离更近,同时其他单词和w1的距离更远。
5.若没有达到终止条件,跳转到步骤2
——Skip-gram模型(Mikolovetal.,2013)
注意:实际上每个单词对应两个向量,因为你不希望一个单词是在它本身附近的。(参见GoldbergandLevyhttps://arxiv.org/pdf/1402.3722v1.pdf),这个双层for循环的解释出自ChristopherMoody
word2vec的含义:
我们常常可以看到这样名言:
“你可以通过一个词附近的其它词来理解这个词”
——J.R.Firth1957
从某种意义上讲,这个似乎是个事实。
“向量具有内部结构。”
——Mikolovetal.,2013
意大利–罗马=法国–巴黎
国王–女王=男人–女人
但是……单词不是基于经验的,它们只是依赖于周围的其它单词的。
(也可以在ConceptNe上进行word2vec,参见https://arxiv.org/pdf/1612.03975v1.pdf)
seq2seq模型
seq2seq(序列-序列)模型可以对一个符号的序列进行编码,例如一个句子,将其编码为一个向量。进而,模型可以将向量解码为另一个符号的序列。编码和解码都可以通过循环神经网络(RNNs)进行。一个明显的应用就是机器翻译。例如,源语言是英语,目标语言是西班牙语。
将句意编码为向量:
将句意解码:
生成图片题注:
回答提问
兴趣点:
深度学习与回答提问:
神经网络学习到了各个符号序列之间的联系,但是这种描述并不足以覆盖真实世界的丰富的联系。
外部世界训练
如果我们希望和机器交流,我们需要在和我们自己尽可能相似的环境中训练他们。且不能仅仅是对话!(Harnad[1990]http://users.ecs.soton.ac.uk/harnad/Papers/Harnad/harnad90.sgproblem.html)为了理解“鸡”,我们需要机器尽可能多的得到关于“鸡”的经验。当我们说出“鸡”的时候,我们不仅仅指的是那种鸟类,我们指的是所有我们可以对它做的事情,以及它在我们文化中的所有含义。
这个方向已有很多工作:
首先,是在工业界——
1.OpenAI
世界:在VNC(远程桌面)的屏幕上训练
现在是通过GrandTheftAuto(侠盗车手)!
(https://openai.com/blog/GTA-V-plus-Universe/)
2.Google
Mikolovetal.,ARoadmaptowardsMachineIntelligence(机器智能路线图).
他们定义了一个人工环境.(https://arxiv.org/pdf/1511.08130v2.pdf)
3.Facebook
Weston,应用于对话的记忆网络https://arxiv.org/pdf/1604.06045v7.pdf
Kielaetal.,VirtualEmbodiment:AScalableLong-TermStrategyforArtificialIntelligenceRes(虚拟实体化:人工智能的可拓展长期战略).提倡“有目的地”使用视频游戏https://arxiv.org/pdf/1610.07432v1.pdf
当然还有学术界——
1.RayMooney
文本到局面的映射
http://videolectures.net/aaai2013_mooney_language_learning/
2.LucSteels
具有词汇量和简单语法的机器人
3.Narasimhanetal.
训练神经网络来玩基于文字的冒险游戏
https://arxiv.org/pdf/1506.08941v2.pdf
但是,我们需要针对现实世界的更多训练:
也许在AmazonAlexa有了一个摄像头以及一颗可以转动的脑袋之后?没有了老师的教益,我们还能走多远?
我们可以将目光作为信息的来源吗?
——YuandBallard,[2010]
从NLP到AI的两条路径
最后的思考
开放问题:
从商业视角来看,需要使用常识和逻辑推理的,最简单的任务是什么?返回搜狐,查看更多
人工智能导论第 5 版 思考题 第五章
5.1什么是搜索?有哪两大类不同的搜索方法?两者的区别是什么?
搜索:根据问题的实际情况,不断寻找可利用知识,从而构造一条代价最小的推理路线,使得问题得以解决的过程称为搜索。
两大类不同的搜索方法:盲目搜索、启发式搜索。
两者的区别:在搜索过程中是否使用启发式信息。
5.2什么是启发式搜索?什么是启发信息?
启发式搜索又称有信息搜索,它是指在搜索求解过程中,根据问题本身的特性或搜索过程中产生的一些信息来不断地改变或调整搜索的方向,使搜索朝着最有希望的方向前进,加速问题的求解,并找到最优解。
可用于指导搜索过程且与具体问题求解有关的控制性信息称为启发信息。
5.3用状态空间法表示问题时,什么是问题的解?求解过程的本质是什么?什么是最优解?最优解唯一吗?
用状态空间法表示问题时问题的解就是有向图中从某一节点(初始状态节点)到另一节点(目标状态节点)的路径。
求解过程的本质就是对状态空间图的搜索即在状态空间图上寻找一条从初始状态到目标状态的路径。在不考虑搜索的代价时即假设状态空间图中各节点之间的有向边的代价相同时最优解就是解路径中长度最短的那条路径在考虑搜索代价时最优解则是解路径中代价最小的那条路径。
因为在状态空间图中可能存在几条长度或代价相等的最短解路径所以最优解可能会不唯一。
5.4请写出状态空间图的一般搜索过程。在搜索过程中open表和closed表的作用分别是什么?有何区别?
先把问题的初始状态作为当前扩展节点对其进行扩展,生成一组子节点,然后检查问题的目标状态是否出现在这些子节点中。若出现,则搜索成功,找到了问题的解;若没出现,则再按照某种搜索策略从已生成的子节点中选择一个节点作为当前扩展节点。重复上述过程,直到目标状态出现在子节点中或者没有可供操作的节点为止。所谓对一个节点进行“扩展”是指对该节点用某个可用操作进行作用,生成该节点的一组子节点。
OPEN表用于存放刚生成的节点,对于不同的搜索策略,节点在OPEN表中的排序是不同的。
CLOSED表用于存放将要扩展或者已扩展的节点。
5.5什么是盲目搜索?主要有几种盲目搜索策略?
盲目搜索又称无信息搜索,即在搜索过程中,只按预先规定的搜索控制策略进行搜索,而没有任何中间信息来改变这些控制策略。
主要的盲目搜索策略有:宽度优先搜索、深度优先搜索、有界深度优先搜索、代价树的宽度优先搜索和代价树的深度优先搜索。
5.6在深度优先搜索中,每个结点的子结点是按某种次序生成和扩展的,在决定生成子状态的最优次序时,应该用什么标准来衡量?
用路径长短来衡量。
5.7宽度优先搜索与深度优先搜索有何不同?分析深度和宽度优先的优缺点。在何种情况下,宽度优先搜索优于深度优先搜索?在何种情况下,深度优先搜索优于宽度优先搜索?
深度优先搜索与宽度优先搜索的区别就在于:在对节点n进行扩展时其后继节点在OPEN表中的存放位置。宽度优先搜索是将后继节点放入OPEN表的末端;而深度优先搜索则是将后继节点放入OPEN表的前端。
即宽度优先搜索按照“先扩展出的节点先被考察”的原则进行搜索;而深度优先搜索则按照“后扩展出的节点先被考察”的原则进行搜索。
宽度优先搜索是一种完备搜索即只要问题有解就一定能够求出;而深度优先搜索是不完备搜索。
在不要求求解速度且目标节点的层次较深的情况下宽度优先搜索优于深度优先搜索因为宽度优先搜索效率低但却一定能够求得问题的解;在要求求解速度且目标节点的层次较浅的情况下深度优先搜索优于宽度优先搜索。因为当搜索算法在一个扩展的很深但又没有解的分支上进行搜索是一种无效搜索降低了求解的效率有时甚至不一定能求得问题的解。
5.8 什么是A*算法?它的估价函数是如何确定的?A*算法与A算法的区别是什么?
A*算法是一种启发式搜索方法利用这种算法进行搜索时对扩展节点的选择方法做了一些限制。
依据估价函数f(x)=g(x)+h(x)对OPEN表中的节点进行排序,并且要求启发函数h(x)是h*(x)的一个下界即h(x)≤h*(z)。h*(x)则是从x节点到目标节点的最小代价路径上的代价。
A*算法与A算法的区别就是A算法不要求启发函数h(x)是h*(x)的一个下界即不限制条件h(x)≤h*(x)。