程序员讨论《黑客帝国》(一)真实与虚拟

      大概大家小时候都有梦魇的经历,一旦发烧或者特别累,就会哭闹,脑海里会出来各种恐怖但又说不清的东西,无论如何就是要起床去“做什么”,父母怎么压都压不住。让我印象最深刻的是98年我和父母爬完庐山,在庐山疗养院里一个人累的睡觉,从下午睡到晚上八点,在没有父母的乌黑的房子里不受控制的哭了一个小时,山风狂野啊,现在想起来都后怕。
      翻起八零后孩子必备的《少年儿童百科全书》,才知道梦魇的原因是大脑发育还不够健全的正常表现,长大后就消失了。如今,笔者早就成人多年,连黑客帝国完结都过去了十年。我有时候还会因为缺氧,或者生病睡很久,突然醒来的时候,感觉一切都不真实,看着天花板不知道自己在哪里。直到站起来洗把脸,好好清醒一下,才慢慢缓过神来。事实上我在半小时前刚经历过这样的感觉,所以才有这篇文章。
     还有一种情况,你有时候会觉得某些场景似曾相识,有时候你把它归功为自身预测未来的超能力的体现,我也偶尔会沾沾自喜,不过换个角度说,是不是因为大脑并没有回忆起相似的感觉,而是错误的给出一种“似曾相识”的信号而让自己误以为“似曾相识”?不是没有这种可能。大脑如果想骗你,你一点办法都没有。
       这就是所谓的“认知”:我们的认知总认为一切都是理所当然的,比如刚进入一个新环境,人会立刻调整他的认知,去适应这个新环境。可是当你做梦,喝多了,或者生病出现幻觉的时候,事后你会发现自己那么好骗,那时会相信许多在平时绝对不接受的观点。
     “认知偏差”有时候会如此的扭曲真实,想想那些你不能理解的邪教徒,一个以前善良的人居然会成为恶魔。如同只有双目失明才知道眼睛的重要,只有亲人离世才知道亲情的珍贵,所以黑客帝国的先知的墙上挂了一块牌匾,上面写着”temet nosce“(认识自己)。
      都过去十年了,黑客帝国绝对是很多人最喜欢的电影系列之一,在这将近六个小时的故事当中,整合了无数政治,哲学,数学,物理,人文的知识。它有精美的武术和枪战场面,有令人深思的哲学问题,乃至于安静认真观察听剧中人的对话和表情都能让人痴迷不已。它就像一个完美的艺术品,从任何角度都有让人思考的余地,导演点到即止的剧情裁剪让人浮想联翩。每年我都要将这三部曲完整的看一遍以示致敬,但每次看的感受都有所不同。
     几乎所有不同的人都对这部电影有不同的解读,但程序员对这部电影是最有发言权的。机器学习和人工智能发展的如火如荼,说到底,开启潘多拉魔盒的人还是程序员。之前,我看了相当数量的有关黑客帝国的解读文章,如今,我也想从程序员的角度去讨论一下这部电影。有些作者会把电影剧情作为整个文章的主线,但我并不打算特别强调剧情,所以我们以解决问题为线索来讨论。文章会很长,只能分成好几个部分了。
     首先,我们讨论整个电影的前提是:这是一部严格意义上的科幻电影,哲学电影,与计算机有关的电影,任何的现象都是有规可循的,是符合科学依据的,我们假定大家都已经非常熟悉剧情。
      从电影里知道,这个虚拟一切的世界叫做“矩阵”,这个词Matrix的每一个中文意义都很好地解释了电影当中的隐喻:母体,子宫和矩阵数学。通过计算机大量的计算模拟出一个虚拟世界,源源不断的吸收人体的生物电,并通过无数的管道与人体交互。于是,人成了机器的电池。
       不过,从严格意义来说,这种生物电根本不符合能量守恒原理。在当时那个环境下,地球已经失去太阳能成为一个封闭的能量系统,人靠之前融化的死人溶液活下来,可是人排出的二氧化碳和废料,人本身又没办法转换为养料,有人会说,会有机器帮你转换啊,可是,机器的能量又来自哪里?这是永动机的悖论,学过热力学定律的人都知道,人类消费的能力远远大于生产能源的能力。这里面是有问题的。
      想想看,机器完全有能力找到更好的产生能源的方式,比如核聚变能源,甚至未来我们想不到的能源,为何要把人类这一点点可怜的生物电作为主能源呢?人的大脑功率有1W,多少人的并行电池,才能抵得上一台50兆瓦的核电站?这就如同人类进入工业时代之后,就很少有人关心温饱问题。而我猜测,所谓的”生物电“,需要从机器为什么需要人类来解读。
     那么,机器需要人类到底为了什么?我们能找出一百个机器需要人类的理由,但那些机器需要灭绝人类的理由却不大站得住脚。看过《黑客帝国动画版》的人知道,机器人将人类打得全无反手之力,最后在人类最后的政府日内瓦引爆了核弹,人类几乎已经不构成威胁了。机器需要人类,需要“生物电”,更准确的说,应该是需要信息和多样性。计算机生成的随机数都是伪随机,万千有个性的人类提供的广袤的思维土壤,绝对要比那些可怜的电能对于机器有用得多。另一方面再说,机器需要有人类这样的”对手“或者”朋友“,就像我们的电子游戏里的NPC一样,机器此时转换了角色,人类成了NPC。因为这样才有得玩,否则不会很无聊吗? 所以,生物电叫做“生物信息”应该更合适。电影中这样处理,更容易理解,所谓的生物电能,应当只不过是这一游戏的附属品。
       其次计算量问题,所有程序员都会有这样的计算复杂度疑问。我们的真实世界就是一台超级并行计算机,并行无处不在,可是,要通过模拟的方法实现计算,那么计算量海了去了。如果模拟精确到原子级别,那么计算量将会恐怖到无法接受的程度。因为,假设一块计算单元是由10亿亿亿个原子构成的,不论计算算法如何优化,不论架构如何牛逼,它也不可能真实模拟出同样原子数的世界。所以,Matrix必然有它实现的简化方式。作为机器,它没必要花那么大的计算代价为人类构造出如此真实到极致的系统。想象我们平时玩的游戏,都是典型的按需加载,不需要的场景不加载,不在视野里的场景不加载,距离够远的细节也不加载。计算只要让接入系统的每个人感觉足够真实就够了。这样,计算量就可以极大的降低。
       数据传输问题也不容忽视,电影中,人们通过超炫的脑机接口直接接入matrix,与母体中的各种数据发生非常复杂而频繁的交互。于是,数据传输自然不能无中生有,电影中matrix在整个地球上建立各种信号收发台方便机器间通信,同时人类还可以破解其中的密码,而通过无线接入到系统中。所以,只有飞船飞到地表的位置,才能接收到这些信号,而在Zion由于处在地心里是无法做到的。人脑和外部的所有感觉的交互,数据量可以非常夸张。也许未来的通信技术早就解决了这样的问题。但是,有传输就肯定能被发现,八爪鱼可以很快的发现处于大量数据交互的飞船。如果这些都能说得通,那么为什么第三集一开始时,尼奥与多恩躺在飞船的病床上,没有接入任何设备,尼奥却还可以在火车站里与其他人交互? 再想想阿凡达,人体控制阿凡达的信号居然可以通过层层雨林,同时不需要阿凡达携带信号接收装置,这个太不符合科学了!
     当尼奥走入万物之源,与架构者这位白发老头子对话的时候,才知道原来矩阵已经出现第六个版本了。一个系统从重启到最后错误累积到一定程度必须处理作为一个周期。这个周期同时意味着救世主选出来的16女7男会重新建造锡安,最终产生像电影里那样恢弘的人类最后城市,它大概包含了50万人口。于是,问题来了,这样的一个周期需要多久?
     50万人口里,从矩阵中解救出来的人是少数,虽然故事里没有提及,但我想最多也不会超过一半,因为电影里锡安城里绝大多数平民都没有脑后的接口。从23个人,养育出25万人的规模,这在逻辑和遗传上都是行不通的,近亲繁殖?人又不是细菌!
     与此同时,在第一部里墨菲斯交代了时间问题,他说时间无从可考,但大概是2200年,而且可以看到墨菲斯船长的飞船上的铭牌上写到“2069年建造”,肯定建造于人类统治时期。一艘船在经过100多年的风风雨雨后,破旧成这个样子确实可以理解,但在100多年里,锡安被重建了六次,这就不可理解了。所以,飞船的时间有问题。
      以上这些问题,也许只能用一个方法来解释:
      墨菲斯口口声声说的“真实的荒漠”Zion,其实也是假的,也是虚拟出来的。
      这个观点并非我自己提出,网上有大量有关Zion是真是假的讨论。除了以上罗列的无法解决的问题,还包括为什么在“真实”当中尼奥可以击败八爪鱼,依然可以具备超能力等细节。在电影中,最终尼奥可以看透“真实世界”里的矩阵数字,但其颜色是橙色的,与Matrix的绿色有所不同。
     卓沃斯基兄弟也许想要表达这个观点,但在电影里却很巧妙的隐藏这个观点,并做了相当多的处理,理由很简单,他们不想让整部电影成为悲剧,人总是要拥有希望的。这个振聋发聩的结论,特别像“庄周梦蝶”那样,造成了某种循环,再一次狠狠的叩问人们,“什么是真实”。当然,这样的观点,看过《盗梦空间》的人并不难理解。
     架构师告诉尼奥,在人还处在潜意识的状态下,机器便让人类作出选择,愿意服从的人走进了更大的母体,而不愿意服从具有叛逆思想的人,则被关进了Zion,并灌输了他们所谓时间和历史的错误观点,甚至连他们穿的粗布衣服和像鼻涕一样的粥,都是虚拟出来的。所以,可怜的人们在面向几十万的电子章鱼的时候,他们并不知道,这些章鱼想造多少就造多少。而且,不论处在Zion还是母体的人,他们的身体甚至在物理上可能都处于一片农场,只是接入了不同的网络游戏而已。
     那到底真实的世界应该是什么样子呢?它应该相当接近于Zion描述的世界,有机器城市,乌云遍布,还有一望无际的人类农场。不同的是,锡安可能并不存在。对机器来说,实现这一目标并不困难,使用桥接器模式包装一下真实的世界,再融合一个虚拟的Zion,一切都搞定了。
     于是,不论人类选择了红色还是蓝色的药丸,终究玩的还是机器的游戏,只不过换了一个副本,选择了另外一个身份。在赛佛背叛了墨菲斯他们,并吃着鲜嫩多汁的牛排向特工史密斯说道“无知是福”的时候,大概绝大多数观众都恨得咬牙切齿。但如果告知他们,两者都是虚假的呢?可能很多人就沉默了。
  真实和虚拟的界限,变得越来越模糊。就如现在“云计算”,“虚拟化”的概念大行其道,你根本不知道眼前的这个界面到底是多台机器并行构建的,还是只是一台机器中的一部分(多用户虚拟),仿佛一切都虚拟了,当远程访问变得和桌面系统完全一致的时候,还有必要在乎这套系统是不是本机的?还是否必要在乎它到底是真实的还是虚拟的?
     我倒以为,在无法选择真实与虚幻的情况下,选择道德,理性会更加重要。很多人会说,我和你一样,承认道德和理性是普遍的公理,可是在机器面前,什么是道德,什么是理性?如果说满足人类的愿望,构建完美世界是宇宙至善的话,为什么第一代版本的Matrix所构建的完美世界会那么快的崩塌掉而造成大量人类的死亡?
     想解释这个原因的话,在先知的墙上贴了另外一句话,“不过量”,我理解的,就是平衡。这会是下一节的主题。
     
 
     (我知道把文章截在这里不合适,但笔者生病了,明天还得上班,待续)
     
    
 
  
 
 
     
posted @ 2014-06-02 22:52  FerventDesert  阅读(6825)  评论(12编辑  收藏  举报