最近人工智能在公众世界中变得很热。在各种技术应用铺天盖地的时候,肯定也有不少人在思考人工智能与人的思维的关系。在这里,我们首先关注的可能是这个很自然的问题:人工智能,或者干脆说智能机器,机器人,会不会取代人类。这里的取代,并不是说能够取代人的平常的工作,而是机器具有自主学习、自主决策的能力。完全不再需要人的干预。
本文的标题的前一半,就来尝试这个问题。至于后一半“理解学术研究”,比较具体。因为一直以来,科学研究活动都被视为是具有极高智力挑战的活动。同时,实际中的学术研究还是比较累的。单单做理论的工作,似乎很难合“学术共同体”的口味;而实践的工作,又上不了科学理论的台面。然而,科学活动的量级似乎越来越重。除了少数学科,如纯粹数学,研究方式变化没有那么大之外,几乎所有的科学都面临着数据处理的新的问题。“数据科学”,是否会成为所有的科学研究的基础?花费的代价越来越高的数值计算与模拟,是否越来越占据更大的份量?计算机在科学研究中的地位究竟是怎样的?
虽然科学工作流系统、高级体系结构、科学数据可视化等对于提高相关活动的效率有极大的帮助,但是在自动化的层面似乎做的还不够好。我们肯定希望,如果有可能的话,编写数据处理的小脚本、可视化数据、甚至是选择计算环境等工作都能够分离出来,让我们有时间专心去思考某些问题,而不是花在没有什么含量的技术操作上。进一步地,许多活动该由计算机来做,比如计算机发现新的物质结构,由计算机来总结科学数据集中的结构,甚至是能够发现复杂的方程与约束的条件。最明显地,我们研究生是否能够花更多的时间在学术研究上,而不是花大量时间在做项目,做产品,或者是为理论找到一个合适的验证的平台上?
本文这里尝试概要地理解问题的实质。受到计算机知识中的“自举”的启发,个人觉得,其实这两个问题在逻辑上的困境才是当前阻挡理解这个问题的关键。“自举”一个是指一个人在不借助于任何外力的情况下把自己提离地面。在机器是否超越人类,以及更具体的,让机器代替人进行科研活动创新的时候,类似的逻辑阴影似乎总是存在。“世界是满的”,个人相信肯定早就有人思考过这个问题。不过,其实花了一个下午来克服自己认识的局限效率还是要高一些。如果有类似的读物,可以发送邮件到这里。
问题抽象
直接面对两个问题中的任何一个,都会使人产生思维上的困惑。很多时候,我们不知道在这样的语境下该如何走。这种情况可能是由于问题与我们自身的生活体验、生活环境、生存利益等太过相关,以至于不可能单独出来看问题。没有足够的证据,但是我们也可以合乎逻辑地说,从神经质一直到经历了许多社会变迁的老人,都不可能对任何事情都有完全客观的看法,在这种看法中,不掺杂任何主观的成份。很明显,因为我们都相信,人无完人。
所以人类就有意或者无意地避开冲突领域。以一种抽象的、甚至与直接问题完全不相干的方式间接地解决问题的策略就被广泛使用了。大概哲学在解决问题的时候有一种抽象,甚至在任何创造性的活动中,都必须避开问题中某些特殊的语义,把问题中具有实际意义的概念变成只是一个符号。
所以,“机器能否取代人”之类的问题,我们可以改写成几种抽象的场景:
1.对象\(A\)创造了对象\(B\)(很有可能是让对象\(B\)从虚空之中产生出来),然后对象\(B\)能够取代对象\(A\),在某些属性上超越了\(A\),并且\(B\)同样具有“创造比对象\(B\)更强的对象”的能力。
2.整体\(A\)把\(B\)作为它的一个部分,然后\(B\)可以“整体作用”于\(A\),从而引起\(A\)和\(B\)的共同的变化。结果,就相当于\(B\)间接地作用于自已。
把\(A\)看成是人类,把\(B\)看成是机器,那么其实很自然地,我们如果不怀疑\(A\),那么自然“机器取代人类”是可能的一个命题;对于学术来说,学术研究是一个整体,数据处理是其中的一个部分,而数据处理的方式的变化,自然引起整个科学研究方式的变革。如果数据处理实现了自动化,那么科学研究自然也会引起一些变化。
自然地,自举的模式也是类似的,因为有如下的场景:
1.计算机系统刚开始只有一段BIOS程序来引导应用程序,这段BIOS把引导程序,如grub或者syslinux加载到内存当中。grub是可以执行lua脚本的,相当于一个微型的操作系统。不过,这个系统仅仅对文件系统访问提供有限的支持,唯一做的,经常是把操作系统内核如Linux加载到指定的位置,然后使它运行。而后Linux成为了一个“更强大的”操作系统。再加载一些桌面后,成为更完善的操作系统。在整个过程期间,BIOS、grub都相当于把自己从内存中“杀死”了。
2.编译器的构建。Ada编译器是用Ada写成的,C编译器是使用C写成的。那么这种循环的情况该如何理解呢?自然而然地,刚开始没有Ada或者C这种东西,只能是其它的某种语言产生的。便使用低级语言构造一个基础的编译器。之后的过程是,高版本的编译器只使用低版本的编译器所支持的语法特性来编写,用低版本编译器编译,生成高版本的编译器,然后高版本的编译器在保持特性相容的条件下,重新编译自己的源代码。更复杂一点的GCC,源代码编译需要三次构建。
在社会中也许我们可以看到更自然的形式,比如达尔文的《物种起源》被广泛接受之后,逐代进化的观念就保留了下来。与此同时,现代社会也认为社会是在不断向高级的形式进化的。从来没有人对这些提出疑问,那么为什么我们会对于机器取代人没法淡定了呢?
问题精化
粗糙地看,提出的场景都是相似的。我们也就可以找到各自的特殊情况,以便相互借鉴解决问题的方法。比如说想象如下的问题:
1.在场景中,居于中心地位的,明显是一对对象而已,比如人与机器、数据处理与科学研究、整体与部分、对象\(A\)与对象\(B\)、编译器与新版本的编译器。但是真的就只有这两个对象的参与么?其实也许还有环境的作用。比如,执行代码的主机。那么,在人与智能的关系中,其实人的进化也是有原因的,机器的进化也是有原因的。这种原因是什么呢?
2.在编译器的构造中,我们知道,每个语言虽然是不完全的,但是在计算能力上面,往往图灵等价。这似乎在告诉我们,不管每个时间\(t\)事物存在的情况如何,事物的轨迹构成成一个称为“全体”或者“空间”之类的东西。虽然我们在某一时刻或者短时间内只能看到其中的一部分,但是我们知道其中存在更多的可能。在智能上,是否人只是“智能的一种表现形式”,从而“人的智能”是“智能”的一个子空间呢?
3.第三个问题,有些场景中,明显地涉及到“产生”这个概念。那么“从虚空中产生”究竟意味着什么呢?我们高中的物理知识告诉我们质量守恒与能量的守恒,后来是质能关系守恒,最近或许因为Higgs粒子的验证,或许又要修改另一种说法了。但是在能量之上,熵的增加却又成为了不争的事实。那么,世界是否任何对象都是“守恒”的,还是说,这些量仅仅是我们观测的量而已,它们并不无条件等同于世界?
问题类比
一些共同的想法使我想到可能动力系统来比喻当前的问题。动力系统可以抽象人造的系统,也可以抽象现实世界中存在的一些运动机制;可以是小范围、少变量的,也可以是大范围的、复杂的系统;可以是离散的,连续的或者是混合的。既然“动力系统”只是一种数学的抽象,那么把人工智能与人的思维的关系建模成动力系统也是一种可能。
大概我们可以把这类双因素相互作用的系统看成是普遍的模式。那么,如果一个变量的变化,受到两个变量的影响,那么长期情况下会出现什么行为呢?是否总会是趋于无穷呢?数学方程告诉我们未必。那么,其实人工智能的问题就更不用担心了:在简单的二元变量的情况下,系统的行为尚且可以如此复杂,那么,对于人与机器的相互作用,这样复杂的东西,是否仅仅考虑到长时间以后,人类就被机器取代了呢?第一,这得附加上一些边界条件。第二,即使取代人类,那么也是方程指定的结果。
我想,在现实世界中,社会问题可能存在多种可能。每一种都有其存在的方式,存在的原因。要想了解具体的行为,还是得分析一些具体的量是怎样的。
初步结论
讨论机器是否取代人,或者科学研究过程中数据与理论哪个更为复杂,可能没有太多的实际的意义。不管怎样说,在目前如果我们不去推动人工智能的发展,那么人工智能成了什么样子还是不好预测的。至少我们得参与其中,才有一些发言权。
还有,目前机器能够的工作还是非常少。要相信人工智能可以取代人类,除非有人做出来机器代替目前研究生能够做的烦杂的劳动。否则我们怎样才能相信机器可以取代人?
更根本的问题,或许是哪些事情应该由人来做,哪些事情应该由机器来做。人与机器的关系该是怎样的。目前,在机器取代人的工作的方面已经有一些进展了。在已有的经验的基础上,或许该发现“机器取代人工作的一些模式”,或者“人与机器共生的几个场景”一些例子。适当地总结下来,或许关键在于所谓的“能够把人与机器融合在一起的工作流”应该是怎样的。假如能够有这样一套系统的工作方法论,或许类似人与机器的可替代性的问题就太过基础和肤浅了。