萌约 MoeYork

一个普通的博客站点

0%

谈计算

关于智慧

大多数人——至少是我,都持有一种观点:人类具有可观的智慧,它将人类与地球上的其他生物区别开来。然而对于智慧本身的界定却似乎缺乏统一或清晰的共识。当我们对待静止的植物、蘑菇或是山川河流等静止的事物时,我们往往不会假设它们具有意识,可以交流;可当我们面对猫狗鱼虫,甚至是被风吹落的树叶时,却总能感觉到它们具有某种目的性。由此看来,似乎能对外界刺激做出反应更符合我们对“同类”的一贯概念。然而,昆虫等低等动物同样可以对外界做出反应,甚至拥有视觉,可是我们的评价常常只是:有智慧,但不多。那动物要如何表现才能获得人类对其智慧的认同?笔者认为可以从人类的文学作品中找到答案:无论是能够幻化成人型的动物精怪,抑或是能听懂动物言语的科幻道具,无不践行同一个标准:要能够与人类交流。

显然,无论对方是不是人类,要与其进行交流,也是有多种方法的。在日常生活中,我们使用声音、动作和文字对同伴发出讯息,并同样期待从这些方式中接收反馈。随着现代通讯和计算机技术的发展,我们得以不依赖直接的视觉和听觉刺激进行交流,只要双方都有智能手机,通过即时通讯或者电话就可以实现便捷的交流。在享受这种便利性的同时,我们常常忽略一个事实:即时通讯,甚至是这篇文章本身的文字内容,并非由它们的作者直接传递给你,而是对方操作自己的手机和电脑发出信号,而你的手机或电脑对信号做了解码并进行展示而已。可能读者对这部分描述有疑惑,显然一般情况下,只有对方发送了文字我们才能看到对应的讯息,但这实际上是不必要的。换句话说:如果有一个完美的电脑程序接管了你的电脑,并“冒充”你的好友和你进行文字交流,如果它的用词、记忆和性格和你的某位好友一模一样,显然是难以将它和你那位真正的好友区别开的。而如果你对这位“好友”不甚了解,又有多大的信心分辨出它并不是真正的人类呢?笔者认为图灵测试的初衷亦是如此:人类的智慧仅仅是能够像人类一样与人类交流。

谈到交流,那就离不开媒介。我们说话、唱歌,声音从声带震动和共鸣中产生,通过空气传递到耳朵中;我们挥舞肢体、搬动物品,物体反射的光线映射到眼睛里。更进一步,我们通过纸张和屏幕来编辑和阅读文字。媒介多种多样,但都有一个共同点:可以将一系列符号以特定的时间或空间顺序进行传递。而既然媒介只是传递符号,这就为我们“伪造”交流提供了便利。笔者这里援引一小段程序作为例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
public class SuperAI {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str;
while (true) {
str = sc.next();
str = str.replace("吗", ""); // 将输入中的“吗”字删去
str = str.replace("你", ""); // 将输入中的“你”字删去
str = str.replace("?", "!"); // 将输入中的“?”替换为“!”
System.out.println(str);
}
}
}

附上一段输入输出样例:

1
2
3
4
5
6
输入:在吗?
输出:在!
输入:你好
输出:你好
输入:你能听懂汉语吗?
输入:能听懂汉语!

只使用了短短几个替换规则,程序便仿佛真的可以进行对话一样。可这样的程序可以称的上具有“人类的智慧”吗?显然不能。由此可见,仅仅可以读取和输出文字,还是远远不能得到我们的认可,我们还对这些符号的排列组合具有一定的期望。可能有读者会指出,上述程序只是借用了输入的文字排列,没什么新东西,而如果不管什么输入,都随机输出一句莎士比亚的名句,兴许对面的人还会考虑一下其中有什么深意。笔者认为这就是通常意义上的“信息”和”信息量”:”富有智慧“的交流的输出必须含有一定量新的”信息“,或者说具有一定的“信息量”。

关于信息

现在我们进展到了”信息“这一概念。什么是信息呢?我们往往很容易的就能制造信息、传递信息,这样看来,似乎信息是普遍而廉价的,它们的价值也因此变得难以衡量:没人会为一颗随处可见的沙砾敲定价值。而实际生活中的附加条件往往也会影响我们的判断:知道地球对面的一个超市会打折和今晚楼下小卖铺松饼买一送一的价值显然是不一样的。但退一步来看,如果是与自身毫不相干的两条信息,哪条信息会更有价值,或者说“信息量”?笔者在这里举出一组例子 (当然假设它们都是“真实”的信息):

  1. 昨天地球对面太阳会升起
  2. 昨天地球对面的彩票(你无法购买)中奖号码是 01 11 12 07 09 26

请读者思考:昨天地球对面太阳会升起明天地球对面太阳会升起 两条信息量是否相同?

虽然买不到这张彩票,但笔者认为第二条更有价值,并相信读者也大概如此。为何?第一条是我们大家都知道的常识,或者说能以 100% 的概率猜对”昨天地球对面太阳是否会升起”,而第二条却能帮助我们把“昨天地球对面的彩票号码”的猜测成功概率从万亿分之一,提升到 100%,这显然比诸如”猜中硬币正反面”的成功率提升 (50%->100%) 的帮助大的多。总的来说,如果一条信息能够帮助我们更多的降低对某件事情的不确定性,那它的“信息量”就值得更大一些,香农将这种度量量化为信息熵。从更多的例子中,比如UC 的震惊体新闻、Bilibili 和我们生活大相径庭的生活区或是微博的每日热搜,我们可以发现,新奇的、小概率的事件发生了这种信息,更易获得我们,或者说我们大脑的青睐;毕竟如果小概率的事情实在的发生了,而我们通过这种信息便能知道,这种高“信息量”的信息或许可以实在的帮助我们的祖先——或是我们自己,更好的生存下来。

当然,一部分细心的读者可能指出问题:上述信息量的界定依赖绝对可辨别的客观事实,我们一定有办法确定昨天的太阳是否真的升起,也有办法确定昨天彩票的中奖号码——只要查询开奖信息就好。那对于无法证实、也无法证伪的信息,它们价值几何?笔者愚以为它们的价值(或者说“信息量”)为 0,即奥卡姆剃刀原则:“若无必要,勿增实体”。

最后回到我们对交流中的“信息量”的讨论上。我们交流中期望的回答是什么样子的?什么样子是概率高的?什么样子是概率低的?考虑我们的日常生活,像提问问题时,显然我们很多时候是不知道对面的回答的。而如果只是和朋友约一起吃个午饭,那多半只是在好和没空之间二选一。如果再退一步,像上文中的简单程序,回答是 100% 可知的,知道“程序回答了什么”对你“猜中它会回答什么”全无帮助,说了和没说一样,自然也无信息量可言。我们可以发现,提供较低信息量的交流回答显然更加简单:每次都回答 hhhh,或者是直接把输入再搬到输出;那是否回答较高信息量的信息会显得更”富有智慧“呢?一部分读者可能会另辟蹊径:每次输出几篇唐诗宋词,或者干脆输出一长段随机字符。”信息量”是有了,甚至如果放到阅读理解题目里,还可能真能答出什么东西来。但这显然并不像我们人类之间的对话,人类之间的对话往往还有“逻辑”和“记忆”的要求。

关于思考与直觉

抛开上文不谈,人类个体的终极追求是什么?不论是无尽的财富和权力,亦或是巨量的寿命与学识,再或者是投射到偶像、神祗身上的崇拜,在到达马斯洛需求金字塔的顶端后都无外乎两点:全知、全能。

全能天生存在“逻辑”的硬伤,这超出了我们的认知讨论范围:像理发师悖论一样,全能的客体能否创造它不能做的事情?这里暂且按下不表。而相比于全能,全知似乎更亲切一点。为了便于讨论,我们姑且将“全知”定义为知晓过去、现在和未来任何时间和地点发生的任何事。笔者自认为所谓的“全知”在牛顿物理学建立以后与人类的欲望最为接近。简单优雅的物理法则,配合精密巧妙的观测设备,再辅以高效准确的计算设施,一如人们所构想的拉普拉斯妖,可以使用牛顿定律来展现宇宙事件的整个过程,包括过去以及未来。然而,这些美好的期望最终随着量子力学的发展被一一推翻:量子过程固有的随机性把机械古板的决定论变为历史,不确定性原理让全面精准的观测化为泡影。

那如果一个客体具有近似全知能力,我们是否能认为它可以像人类一样与我们交流呢?敏锐的读者会发现好像还是缺了点什么——如何从所谓“知识”中获取人类之间交流对话的回答?可见在知识和交流之间还存在着某种桥梁。如果是有计算机基础的朋友,此时可能会设想这样一种计算机程序:它从几乎无所不包的数据库中提取事实数据,并使用某种算法计算出一条回复出来,如果不考虑现实的存在性,显然这样的设计可以满足我们在交流中对回答的需求。但实际的对话过程往往不是一问一答,为了改进这一点,我们将之前的对话历史也作为算法的输入(毕竟是近似全知的),更进一步,为了与现实世界的随机性对齐——这也是全知假设缺失的一部分,我们还可以给算法赋予随机性,毕竟没人会对同一个问题始终做出一模一样的回答。最后,基于我们的现实情况,少一些无关紧要的知识似乎也无伤大雅——毕竟大多数受过良好教育的人类就可以像人类一样进行交流。

对照现实的人类交流情况,显然这个算法要满足两个核心特征:可以做出有“逻辑”的回复;回复会与”记忆”(或者可以称为“上下文”)中的部分内容相关联。笔者认为记忆的提取是自动的,关联性的,不能保证精确的,与通常的直觉并无明显区别——只是记忆可以感知到具体来源。因此我们可以更进一步,声称具有这两个特征的算法可以思考并拥有直觉。

而思维活跃的读者这时或许会思考:这种算法是否真的可以存在?如果一个算法可以完成这种对话,什么样的计算设备可以运行这种算法?它需要多久才能得到计算结果?

计算的完备性

  • 什么是逻辑?
  • 通常的计算机可以演算什么样的逻辑?
  • 一阶谓词演算
  • 图灵完备
  • 专家系统

可计算性

  • 计算是否能在可接受的时间和空间范围内完成?
  • 时间复杂度
  • 空间复杂度

后记

题目是谈计算,其实没谈计算。

想简单写点什么,写了个开头就烂尾了hh,后面正篇有缘再写。

完全是想到哪里写到哪里,如果有错误/建议/意见欢迎提出。

Email: mapl _at_ york.moe