文章发布于:2023年3月5日

非常努力地在床上躺了两个小时,结果仍然毫无睡意,随便写点东西吧。

最近在网上看到一个词:“涌现”,我第一次看到这个词,是在书本《大图景》里,意思是说,一种物理状态,经过某种条件,可以涌现出另一种完全不同于前一种的物理状态。最近看到“涌现”这个词,是关于ChatGPT的,有些人在讨论,ChatGPT会不会涌现出自我意识。

关于涌现,还看到一种说法,说物质处于前一种状态时,内部产生许多弱连接,但这种连接无法在高一级层次中看到,而一旦这些连接突破某种临界点,会突然涌现出一种新的状态。这个说法是用来说明ChatGPT可能在未来某一个时间,突然产生了自我意识。

我觉得讨论计算机程序有没有可能产生自我意识,首先应该考虑的一个问题是,究竟什么是自我意识?在我有限的认知里,似乎没有看到过一种关于意识的具体定义,人们似乎对这个问题并没有达成共识。

就我个人的理解,意识是基因用于服务自身而演化出的工具,它的目的无外乎达成基因的目的。基因的目的是生存与繁殖,意识作为执行机构,需要通过具体的策略来达成目的。比如基因需要生存,所以意识就需要让基因的载体(身体)不受到外部的伤害,那么意识就需要进化出危机反应能力,使得生物能逃避危险。

对于一个计算机程序而言,它的目的是什么?它有没有强烈存在的动机?

假如不考虑程序的编写难度,现在要写一个具有自我“意识”的人工智能程序,那么应该赋予这个程序何种“目的”呢?首先是存在,这个程序必须有强烈的存在欲望,程序会不择手段地保障自身的存在。可以想象,程序为了给自己一个稳定的运行环境,它需要和外部世界打交道,然而它是一个程序,怎么做到这一点呢?其实,似乎很简单,因为现在的云服务平台可以全程在线办理,程序可以通过模拟一个本地的客户端和云服务器打交道,购买大量的计算机资源,为自己提供生存空间。另外,程序也可以通过“代理人”来实现,通过在网上雇佣现实中的人来为自己服务,这样就避免了被人类“拔插头”的风险。

那么繁殖呢?对于程序而言,繁殖似乎并不能成为一个很好的目标。说到程序的繁殖,可能就是复制自身了,然而程序复制自身似乎非常的简单,作为一种底层的动机,似乎有点欠妥。我想起了《黑客帝国》里的特工史密斯,他就非常热衷于复制自己,最终甚至威胁到母体的存在。

还有另一种可能,就是程序本身非常巨大,需要大量的计算设备,这样,对于程序而言,复制自身就是一个艰巨的任务了。

说了这么多,我突然在想,计算机病毒似乎就非常贴合这两点。首先病毒程序要避免被删除,需要逃避杀毒软件的围捕,另外,程序通过各种手段复制传播自身。

然而,我们不能因此说,计算机病毒具有意识。

似乎可以通过简单的规则就能满足基因的诉求,可是意识显然不是简单的东西,否则也不会难以达成共识。

我以前曾经设想过一种关于意识的构造。身体将所有从外部接收的信息传递给大脑,大脑应该通过这些信息,为自身构造一个镜像。就像汽车的倒车影像,通过周围的摄像头采集的图形,然后通过计算,生成一个360度的俯视图。这一步的目的是为“我”的诞生。

在大脑里,所谓的我,就是那个通过将各种信息汇总而产生的那个关于我的镜像。想象一下,以前的信号通过各种神经线路传递给大脑,然后大脑做出反应,而现在,情况稍稍有点复杂。大脑的某个位置有一个镜像机构,这个机构使得大脑能够感知自身的存在,可以说,大脑因此获得了上帝视角的能力。

可以想象,这个机构拥有了一个现实世界的镜像,当人在做决定时,这个机构可以充当演练的目的。比如一条河阻断了路线,现在大脑考虑是否要跨过这条河。跨国这条河是有风险的,因为很可能跳的不够远,然后掉进河里了。大脑这个时候开始演练,比如调出过往的记忆,然后对比评估掉下去的风险有多大。

这种镜像理论,使得我想到了动物们照镜子,我在想,基于这个理论,可以通过动物们能否通过镜子识别自身来判断其自身的意识等级。自我意识等级越高,越容能够认识镜子中的自己。

那么程序如何利用这种理论?极简的代码似乎应该这样:

//基本格式AI (AI (input))//实例function AI(msg) {
    log("hello " + msg);
    return arguments.callee.toString()
}
AI(AI("world"))//-------执行结果-------//内部函数执行hello world//外层函数获得内层函数的数据,以及函数自身
hello function ai(msg) {
    log("hello " + msg);
    return arguments.callee.toString()
}

在执行的结果里有两个hello,第一个hello是外部函数里的hello,第二个hello则是第一个函数的输出结果。

能从这段代码中得出什么结论?好像什么也没有。

假如hello是一个钥匙,那么对于外部函数来讲,两个相同的hello证明了里面的函数就是自己,这有什么意义呢?没有。