查看原文
其他

人工智能杀人回忆

史中 浅黑科技 浅黑科技 2022-03-29

浅友们好~我是史中,我的日常生活是开撩五湖四海的科技大牛,我会尝试各种姿势,把他们的无边脑洞和温情故事讲给你听。如果你想和我做朋友,不妨加微信(shizhongmax)。




人工智能杀人回忆

文 | 史中



楔子 


人类纪元,2049年。

一贯恃强凌弱的A国悍然将航母编队驶向C国东南海峡,世界大战一触即发。

C国紧急部署迎战方案,一旦对方试图登陆我方岛屿,精锐部队将予以痛击。危急情况下,不排除动用核子武器。

然而,故事却朝着奇怪的方向发展。

A国航母并未贸然进入C国导弹防御圈,而是停在距离岛屿620海里处。

几分钟后,隐形舰载机起飞,向岛上投放了大量的“无人战车”。

通过军事卫星影像可以看到,这些“战车”有的配备机枪,有的配备激光束、粒子炮,有的配有机械臂、工程桥。



在2049年,这种无人战车并不罕见,甚至可以说是最普遍的武器。

为了避免伤亡,无人战车都是由相隔十万八千里的后方军人遥控进行战斗。而这些操纵战车的军人,一部分选拔自民间的“电竞高手”,一部分来自军校的“远控作战”专业,他们都经历过20000小时以上的实弹演习,是实打实的“战场吃鸡高手”。

C国见状,紧急调遣岛上几千台己方战车,出击迎敌。



出乎意料的事情发生了:虽然两国战车的机械性能不相上下,但A国战车却异乎寻常地“聪明”。

它们落地即走毫不迟疑,集体行动却没有固定阵型,配合默契却不受限于死板战法。它们相互之间似乎永远不会碰撞,而且压枪如开挂,子弹无虚发。

更不可思议的是,面对C国的军队“吃鸡奥运冠军”的凶猛进攻,它们预判准确,躲避敏捷,几乎不掉血,仿佛来自外星。

一小时后,C国遥控战车损失惨重,战线节节后退,暂避锋芒。

总司令意识到,事情恐怕没有那么简单。与其说对手是遥控战车,不如说它们更像一种。。。“自主生命”。

微操如此碾压人类顶尖高手,只有一种可能:A国秘密研发了联合国明令禁止的危险武器——人工智能战车。

C军作战室陷入沉默,将军的思绪被瞬间拉回到三十多年前。。。

那时,地球科技界的大明星非“哈撒比斯”和“马斯克”莫属。

哈撒比斯创建了 DeepMind,孕育出了大名鼎鼎的人工智能“阿法狗”,在围棋大战中把人类虐得一败涂地,后来被 Google 收购,至此转向通用人工智能的研究。

马斯克则凭借早年收购的 Tesla,开发出了畅销世界的自动驾驶汽车,而后研制了自主行动的工业和服务机器人,让人工智能不只栖身于芯片和电流中,而是获得了一副强大的机器人躯壳。

就是这样“普罗米修斯”式的两个科技先驱,2017年曾经在致联合国的一封信上罕见地联合签名。

这封信名叫《致命自主武器承诺》。



宣言的核心奥义就是:

“人工智能”很快就要成熟,“任务机器人”也接近完备。两者放在一起,只要再给一把枪,就能妥妥地拼出一个“拥有自主意识的人工智能战车”。
这种“智能战车”一旦参战,它的杀人过程便不再需要人类的参与和准许。也就是说,它会成为“怜悯”和“节制”含量为零的杀人机器,只想打死各位或者被各位打死——这会把人类带入万劫不复的未来。
所以,各国政府和各大公司应该共同抵制这种“人工智能战车”的研发。

而在宣言发表的前后几年,有30多个国家也独立发表了禁止“人工智能武器”的呼吁。值得注意的是,C国也在其列。



在宣言发表十年后的2027年,联合国正式通过决议:“人工智能武器”的研发和核武器研发一样,被列为非法。所有武器皆不可配备自主人工智能,保持人工遥控是其底线。

回忆渐渐模糊,现实又回到将军眼前——显然,A国并未遵守决议。

“这群小人!”他把桌子锤得砰砰响。

不要把我的忍让当成无能为力,老虎不发猫,你当我病危?!难道我泱泱大国就没人工智能技术么?

C国军方决定,紧急启动“女娲计划”——征召全国顶尖的一百位人工智能专家,在五天之内,为所有的遥控战车注入灵魂,变成“人工智能战车”,开赴战场硬刚敌军。


而“女娲计划”的总负责人,正是当时科技届的教父级人物,帅气与风骚并存的科学家——史·伊万懦夫·中教授!

有关这五天究竟发生了什么,在此后半个多世纪一直都无人知晓。

五十三年后,一次偶然的机会,人们找到了史·伊万懦夫·中教授遗留的日记,尘封的往事才得以重见天日。




第一天:我们让它睁开双眼 


我从未想到,军事研究基地竟然就在游人如织的北方海港水面之下。

这里异常宽阔,从墙壁上散发出的虚拟日光很柔和,完美地模拟了昼夜节律。不出意外,接下来一周我们就要在这里度过了。

大家围着这几台战车样品,各自叹气。

如果没有人类遥控,它们就只会瞪着大眼睛,如同失心的傀儡。这个设定让我没有丝毫怜爱,反生厌恶。

没关系,我们这群科学家正是为解决这个问题而来的——如同生了七个小孩(2048年,我们C国刚刚开放了七胎政策)经验丰富的妈妈早就懂得如何把白纸一样的婴儿抚养成人那样,对于如何从零开始为战车打造一个能自主决策的“灵魂”,我们也成竹在胸。(只是受限于法规,之前我们无法亲手实现它)

我们需要使用一种叫做“深度强化学习”的技术来训练这个灵魂。

什么叫深度强化学习呢?

用最简单的话说,这种训练方法就是让AI学会解答三个基本问题:

1、我面前的环境里有怎样的“信息”?


2、这些信息综合起来,意味着我处于怎样的“状态”?



3、在这个“状态”下,我要做什么“动作”才能提高取胜的概率?



当然,罗马不能一天建成,饭要一口一口地吃。

第一天,我们就准备攻克万里长征的第一步:让人工智能学会感知周围环境里到底有什么“信息”。(这是第一个基本问题)

作为人类,我们用了亿万年进化出了感受周围一切信息的能力,冷暖、声音、震动、平衡、爱人的气息,还有文字和音乐里流淌的细腻如沙的情感。。。

但是,我面前的这位“机甲战士”,却不需要感知那些儿女情长的“骚柔”信息——《红楼梦》在他眼里可以只是一堆歪歪歪扭扭的符号,《命运交响曲》在它听来可以是无意义的噪音——为了唯一的目标,战斗胜利,它需要且只需三类信息:

1、视野内有哪些“主体”:友军、敌军、环境物体;
2、主体的状态:敌人是死是生,“血量”还剩多少,友军是否有损坏,损坏在哪里;
3、视野之外的关键信息:例如遮挡物后面可能还有多少敌军,方圆十公里的地形是怎样的。

这三类信息怎么得到呢?有一个坏消息和一个好消息。

坏消息是:机器人没有眼睛和耳朵;
好消息是:机器人有比眼睛更灵敏的高分辨摄像头,有比耳朵更灵敏的全频段拾音器,还有人类身体上根本长不出来的激光雷达、红外夜视仪,它们统称感知器。

综合各种军用级别的感知器,车载电脑可以在数字空间实时勾勒出一幅周围环境的全息影像。



然而,只有全息影像还远远不够,它还需要从影像中分辨出来哪个物体是敌军。

把某个东西从视野里识别出来,在人工智能技术里叫做“图像识别”,而做图像识别的经典技术就是“卷积神经网络”(CNN)

卷积神经网络怎么工作呢?

举个例子:假如你给这个网络输入足够多的狗子图片,它就能自动提取狗子们身上蕴含的特征,下次再见到视野里有“东西”和这种特征相匹配,那就认为这个“东西”是狗子。

当然,我们的任务是让人工智能识别战车,而不是什么狗子。

于是科学家们找来了上万张A国战车的图片,从正面到侧面,从头顶到裙底,各个角度一应俱全。

接下来,就到了学习的关键阶段了。

卷积神经网络做事情要分两步走:第一步叫特征提取,第二步叫分类训练。


1、“特征提取”,这里要用到一个神秘武器“卷积核”。

计算机可不是什么神仙,它比我教过最笨的学生还要笨一万倍,笨到只能读懂数字。所以没办法,我们要先把图片根据每个像素的颜色信息转换成一幅“数字矩阵”。

就拿这个灰白方块举例吧。

灰色部分写作10,白色部分就是0。




而卷积核也是一个数字矩阵,一般是3*3或者5*5个数字。



用它和图像的各个部位从上到下从左到右都做一遍运算,这个操作就叫“卷积”。



卷积之后,我们得到了另一组数字矩阵,这组新的数字矩阵就是“这个卷积核”学到的“特征”。

例如下面这个结果,它就学到了“灰色”和“白色”中间的“分界线”这个特征。


当然,对于更复杂的图片,卷积核学到数学的特征也会更复杂。

而一个卷积核“卷”了一万张图片以后,就能归纳计算出这一万张图里有共性的特征。

我上课的时候曾经给同学们做过一个更通俗的比喻:

你可以把一个卷积核当成一个盲人,给他摸一万只大象以后,他可能会总结出特征:“我知道,长了四个柱子的就是大象。”



一个盲人(卷积核)总结出特征还不够,我们需要更多的盲人。

一百个盲人都摸过大象,有的说长了两个蒲扇的就是大象,有的说厚厚的像堵墙的是大象。

每个卷积核都摸索到了他自己认为正确的“特征”,但这些规律显然很片面嘛,都只说对了一小部分。。。

没关系,下一步我们就把100个臭皮匠合成一个诸葛亮。


2、“分类训练”,这里用到的是“全连接神经网络”。

现在,我们开始训练。

拿来一个“未知物体”,一百个自认为学会了什么是大象的盲人上前再摸一遍,然后给他们一人发一个投票机——投票判断这玩意儿是不是个大象。



结果一定是:有的盲人摸到了自己之前总结的大象特征,于是投“是”;有的盲人摸了个遍也没摸到自己熟悉的特征,于是投“不是”。。。

最开始的规则是,大家一人一票,哪方票多就胜出。

很客观吧?并不是。

试了几次大家发现,这样的判断不够准,有时候51个盲人投了“是”,49个盲人投了“否”,结果明眼人一看,这并不是个大象。



同时,大家还发现了更深层次的规律:每次老王投“是”的时候,这张图片是大象的可能性就大一些。也就是说,老王学到的特征更准一点。

大家一合计,那干脆给老王五张票,如果某次判断他很有信心,就可以投五张,没什么信心就投一张或两张。

后来,大家又发现了更多深层规律。例如老孙投两票且老李投零票的时候,面前这个东西是大象的可能性也会高一点,于是就在“这一排盲人”后面又安排了“另一排盲人”,专门学习总结这些人投票的规律。

就这样一层一层地铺盲人,每一层的每一个盲人都学到了属于自己的判断准则和投票逻辑,他们就各自成为了一个“神经元”。

在反复训练几千次之后,每一个“神经元”的投票权变得不同了。

而保持这样的投票权比例,整体判断效果最好。于是这个比例参数就被固定下来,这就形成了一个合格的全连接神经网络



我恍惚以为自己还在讲台上呢,唠叨了这么多。

不多说了,总之我们就是用这样的训练手法,让AI学会认出视野里的敌军和友军,进一步认出敌军和友军的损坏程度,然后更进一步认出山林、建筑、河流、桥梁等等一系列和作战息息相关的物体。

至于信息里的第三类——视野之外的关键信息(地形、敌军阵型等等)——这些就要靠卫星雷达和其他的作战系统为它们传送。我们只要打通接收接口,这些数据就能被“智能灵魂”直接使用了。



借助强大的军事超算,我们第一天就完成了环境感知的所有训练。

我对进度还算满意。

现在是深夜了,我那五岁的孙女应该早就抱着我送给她的智能小熊睡着了,希望她梦到草原和野花。战争结束后,我一定要带她去郊游。她最喜欢大自然了。



第二天:我们让它拥有记忆 


早晨起来,窗外“阳光”明媚,甚至还能听到鸟鸣,和我的院子别无二致。

昨天战车已经学会了收集战场上的实时发生的宝贵信息。但是,要让它有能力判断自己所处的状况,还需要另一个重要的能力——记忆。

记得在我以前上课的时候,有很多同学会问我:记忆不就是存储吗?每台电脑都有硬盘用来存储,这有什么难的?

听到这样的问题,我都会抑制不住地发火。记忆怎么会是存储呢?

存储,就像一个傻乎乎的U盘,只能平等地存储一切东西;可是记忆,却有一种筛选珍贵信息的超能力。

就拿我来说,越久远的回忆就越模糊,年轻时候的琐事都快被我忘光了。可有一些片段却历历在目,比如我的博士毕业典礼,我制造的第一款人工智能小熊上市,我去月球的那次旅行,我的儿子和孙女出生的景象。。。

记忆,难道不是漫长时间沙漠里的路标么?它把无数个黑夜按进一个黎明,才能昭示此刻的意义。

让人工智能拥有记忆,是一个听上去很玄妙的操作,但我们却能做到。这里用到的奇特技术就是:“循环神经网络”。

什么是循环神经网络呢?

首先,它仍然是一个“神经网络”。

昨天我们给神经网络输入图片,它学会了判断出面前有哪些物体;今天我们进一步,把之前识别好的物体(及其状态)再输入一个新的神经网络,它就能判断出这些物体的位置和状态组合意味着什么“状态”。(这是第二个基本问题)

比如,前面有四个敌人且均状态良好,还瞄准自己,这个情况就可能被智能系统记作“状态1”;比如前方只有一个敌人,还面向其他方向,这种情况就可能被记作“状态2”。

当然我只是举例子,机器做出的分类可不会像我说得这么蠢。在强大的计算力加持下,他们比世界上最聪明的人都会审时度势。

根据不同的现场情况输入,它对于“状态”的分类异常精巧,可能有数百万种,不是人类能复述出来的。



精巧归精巧,但现在的框架只能让神经网络识别“静止的状态”,无法得知“对面的军人上一秒是在突进还是停在原地”,“五秒之前敌军是在对我进行包围还是只是路过我身边”这类问题的答案。

于是,这个“神经网络”必须是“循环”的。

循环的过程,就能让机器感受到时间流逝,从而产生记忆的效果。

具体是这样“循环”的:

我们把战车眼前的世界按照“时间步”分成片段,例如每0.1秒是一个时间步。

把一个时间步输入神经网络,它会判断出一个结果;然后神奇的操作就来了,把这个结果再代入神经网络,和下一个时间步一起计算,它又会判断出一个结果;然后把这个结果再代入神经网络,和下下个时间步一起计算。



你看,就是这样,每个时刻的“果”都会成为下一个时刻的“因”(确切地说是因的一部分)。

时间的因素就被巧妙地融合进智能系统了。

这让我想起最爱吃的蜂蜜。粘稠的故事层层堆垒,曼妙融合,最终浑然一体,仿佛昭示着时间背后的真理。



但如果要制造出“记忆”,仅仅这样循环还是有问题。

标准的循环神经网络会把所有的过去平等地融进下一步的计算,但正如刚才我说,过去过去显然是不同的。

如果三秒前的场景里只有我自己在移动,一秒前的场景里包含“敌人向我冲过来”。显然一秒前的这个场景对我的判断来说更重要。

所以,我们要额外设计一个机制,筛选出过去重要的场景,这就是“记忆点”。

实际上,我们使用了“循环神经网络”中的一个分支,LSTM网络(长期-短期记忆网络)

其实它的原理也不难,就是在把上一个时间步的结果融合进下一个时间步之前,对这个结果进行一下筛选,就像一个机器人站在它面前把一道关:

如果判断它会对未来局面产生影响,那这就是一个值得记住的记忆点,需要特别传递到下一次循环中;
如果不重要,那就不要占用宝贵的计算资源,忘掉算球了,不往下一个循环传,或者少往下传一点。



到这一步,人工智能已经能做到把眼前的战局“状态”分类。

活了六十多年,我非常清楚,能够审时度势是一个智能体最大的荣耀,所谓识时务者为俊杰。

知道手上的“牌”有哪些,是战胜对手的第一步。



由于代码调试出现错误,今天的进度不够理想,明天我们要加快进度,训练机器人对各种“状态”的应对。



第三天:巴甫洛夫的“机械狗” 


我对今天满怀期待。

眼前的战车已经从一个失心傀儡变成了一个听话的狗狗,能够“看懂”这个世界了。

而接下来几天,我们就要进行训练的最后章节——让它变成斗犬,干翻这个世界。

今天,我们要在赛博空间里搭建一个“虚拟城市”,在其中放入一部战车,在它的对面,放入另一部一模一样的战车。

就像拳台上的拳手。

没错,它要通过“自博弈”——也就是和自己作战——来学习战斗技巧。



自博弈不是说打就打,起码需要两类已知数据:

1、面前的战局“状态”属于哪一类。(这个已经反复说过,之前的训练就是为了得到这个数据。)
2、自己有哪些基本能力,例如:开枪、投弹、前后左右移动、躲闪。(这个数据是已知的。

自博弈的目的就是训练一个新的神经网络,它负责回答这个问题:面对某种“状态”,我应该使用哪些能力组合,才能让我“胜利”或“胜算变大”?(这是第三个基本问题)

不用怀疑,为了找到这个问题的答案,代价就是”生死“——虚拟世界里,残忍的对局上演,除非一方死亡,否则游戏不会停下来。

每次对局的结果,都会成为这台战车本次策略的奖励和惩罚。(就像小时候背课文,对了老师给块糖,错了打一巴掌。)

如果A战车赢了,那么A使用过的战术策略就加分,如果B输了,那么B的战术就扣分。



平行空间中,有无数场对局同时进行。败者食尘,胜者再相互对局,败者再食尘。直到剩下最强的那个强者。

在最终强者的”脑海“里,已经能够把“眼前的状态”和与之匹配的“最优技能”对应起来。

例如:遇到敌人凶猛火力,就要先找掩体暂避锋芒;如果敌人地处低洼,就可以利用地形优势猛攻一波。



如此,在外人看来,它就掌握了绝顶的作战技能。

这种训练所用到的技术,就叫做“强化网络”。

也许人人都听说过巴甫洛夫和他的狗。没错,就是这样。我伊万懦夫何尝不是巴甫洛夫,只不过我的狗是机械狗。

哦,作为严谨的科学家,我不得不说,仅仅用每一局的结果来训练机械狗狗,其实是不够的。

这就像我的学生们,给他们连着上一学期课都不做测验,只靠期末考试来检验他们的学习成果,那他们的进步就会很慢。

用我们的行话说,这个反馈“太稀疏”了。

最好的办法是,每周上完课,都来一次小测验,这一周同学们的知识有没有掌握,就一目了然了。

增加反馈的密度,对于学习来说是个大好事。

我的“机械狗狗”也一样。一场战斗也许持续十分钟,每十分钟才得到一次反馈,这太稀疏了。十分钟内战车也许做了一万个动作,它根本不可能知道应该调整这一万个动作里的哪一个才会让结局变得更好。

所以,我需要做出一个“动作价值评估函数”。这个价值评估函数可以每时每刻都告诉我的“机械狗狗”:如果做出动作A,可能会导致胜率发生什么变化,如果做出动作B,又可能导致胜率发生什么变化。(注意,是可能,而不是一定。)



这样,狗狗们才能更快地迭代自己的战术。

这个评估函数的原理是怎样的呢?

简单来说它就是这个公式:

某个动作的价值=当前价值+一秒钟以后的价值+两秒钟以后的价值+····+战斗结束那一秒的价值。

也就是说,某个动作的价值就是把从现在开始每一秒的价值加和。这听上去好像是一个正确的废话,其实里面的原理很深奥。

深奥之处就在于:每一秒的价值,是不一样的。越往后的价值,实际上越小。

这很好理解。我现在给你100万,和明年给你100万,和后年给你100万,和大后年给你100万,哪个对你来说价值更大?当然是越靠近现在对你来说价值越大。

明年给你100万,大概价值相当于现在给你97万。后年给你100万,大概价值等同于现在给你94万。

这种算法,就叫做未来价值的“贴现”。

所以,刚才的公式如果严谨一些,应该写作这样:

某个动作的价值=当前价值+一秒钟以后的价值“贴现”+两秒钟以后的价值“贴现”+····+战斗结束那一秒的价值“贴现”



但是,由于战斗并没结束,所以我们也没办法计算出来动作价值的准确值,所以这个时候,我们就需要一个公式,可以近似模拟出某个动作的价值——这个公式就叫“Q函数”。

一个函数,居然能够预测一个动作对最终战局胜率的影响,够神奇的吧。

其实,科学家也觉得很神奇,私下里我给Q函数起了一个有趣的名字:先知函数。

你可以把先知函数理解成一个随身携带的“军师”。这个军师一开始也不聪明,他总会瞎出主意。虽然是瞎出主意,但他有两个美德:1、无论情况如何,他总会出主意,而不会沉默;2、他知错就改。



比如面对“状态369”,它可能会说:“趁现在,向对手开一枪肯定会打中!”

机械战车听从了它的意见,开了一枪,结果敌人闪开了。这时军师马上就会抽自己一个嘴巴,说:我错了!我改!

下一次再遇到“状态369”,他也许就会建议:“现在不能开火,向前走一点,下一个时间步再开枪!”

总之,机械狗狗就像一个“主公”,综合现场环境的状态,还有军师(先知函数)的建议,做出最终决策。



最终决策包含三个要素:我的目标是谁?我要对目标做什么?我通过怎样的动作去达到目标?

例如:我的目标是攻击右前方的1号敌人;我要向他发射十发子弹;我要先向右跑二十米,然后瞄准它的履带开枪。

决策一出,机械狗狗马上就会去执行,执行完毕,系统就会重新评估现场状态;然后会根据新的状态给出新的决策,再去执行;以此类推,直到敌人被干掉或者自己被干掉。



经过几天的狂奔,我们已经搭建出这个巨型神经网络结构的雏形。

注意,我说的是雏形。要知道,红土非朱砂,照猫难画虎。

这个神经网络能做出决策,并不等于能做出好的决策;能做出好的决策,并不等于没有更好的决策。

从雏形到成品,仍需大量的调试工作。这正如素坯入窑,经历七天七夜烈火锤炼,才能放出夺目的光芒。而锤炼过程的分分秒秒,恰是人间绝艺。匠心所在,若驾垂天之翼,御风图南,痛哉快哉。

我已准备好。广阔的赛博宇宙,带着你那神秘的启示和彻骨的寒冷,拥抱我吧!



第四天:在漆黑的世界寻找最低的山谷 


我做了一个梦。

我的飞船坠毁在了一颗流浪的星球上,这里伸手不见五指。如果这个星球上有生物的话, 它们一定不知道白天为何物。

幸好通讯系统还能工作,我联系到了母船,等待救援。但是,这个星球上的氧气稀薄,海拔低处氧气浓度才够呼吸,越低越安全。所以,我必须在氧气罐耗尽前尽快找到星球上最低的一座山谷。

讽刺的是,我竟然连这个星球有多大都不知道。

我迈开步子寻找,可是茫茫黑幕,哪里才是山谷呢??恐惧像刺骨的风一样侵蚀我的身体,每一个细胞都在呼喊。

我惊坐起来,天光已经大亮。

作战室里,科学家们早已开始了工作。

现在的局面是:总体的神经网络已经搭建好,面对战场的“状态”,机械狗狗能做出相应的“动作”。

现在的问题是:每做出一个“动作”,机械狗狗都会有一个“预期结果”。但是真实发生的结果往往和预期结果有差异,导致动作虽然做出,但没有达到预想的效果,使得胜率下降。

而“预期结果”和“真实结果”差异的根源是:这个大神经网络各个节点“投票权”的参数没有被调整到最优,从而对真实世界发生了误判。



所以,今天的目标只有一个:通过对参数的优化调节,让机械狗狗知行合一,从“青铜杀手”跃升成为“王者杀手”。

这里就要用到另一个技术,“反向传播网络”。

什么是反向传播呢?顾名思义,就是从结果反推找原因。

假如朝对方的履带发射十颗子弹,预计可以把对方的速度从10米每秒降低到3米每秒。可实际结果表明,对方的速度只降低到了8米每秒。那么,3米到8米之间的差距,就是“误差”。



这个误差就是刚才说的“结果”。

我们要把误差放回到神经网络里倒推,找到引发这个误差的原因——到底是哪几根神经搭错了。

可是,纵横交错的神经网络,牵一发而动全身,改动一个参数,确实可以让一种情况误差减小,但同时,却可能让其他十种情况的误差变大。

按下葫芦浮起瓢,说的就是人工智能参数调整的根本困境。



于是,问题就变成了:怎么找到最合适的参数,让所有情况的误差同时最小,从而使得综合表现最好呢?

这个问题的本质,和我昨晚做的那个梦一模一样。

在漆黑一团的陌生星球上找到经线纬线交汇的最底点,就是在杂乱的神经网络里找到让所有损失都最小的那个参数点。



此时就很有趣了,你面对的是一个极其简单又极其困难的问题:

简单在于:在伸手不见五指的星球上,你每迈一步都能知道是不是比上一步所在的位置低,这样,经过一段时间的摸索,你是很容易找到一个山谷的——当你试着向四周迈步,全都比现在的位置高,那么你肯定在一个谷底。
困难在于:你要找的不是附近的最低谷,而是这个星球的最低谷,那你怎么知道这个山谷比其他所有山谷都低呢?



不用思考了,这个“地图漫步”问题是历史上最难的十大数学命题之一。至今没有人能给出答案。

但这并不意味着科学家无能为力,人类精神的可贵之处正在于此:他们明知自己永远找不到真相,却还用尽一切办法接近真相。

就拿找最低谷来说,方法有很多,我随便说一个最简单的方法:增加步长。

刚才我们在假设,你每走一步就比较一下和上一个点的高低。现在我们增加步长,每走10000步再来比较和上一个点的高低。这样,你也许就不会被困在一个小山谷里,而是能找到真正的大峡谷。(我是说也许)

可是,一个神经网络包含上亿参数,它们摊开就像地图,也许比一颗星球的地图还要大,没有人能等你走遍星球找到最低谷。

而且,步长过长还有可能让你错最低点。



我们需要一些更疯狂的“优化算法”,来加速找到答案。


比如遗传算法。

我们设计几种“动物”,有袋鼠,有大象,有老鹰,它们的区别在于寻找最低点的方式不同。袋鼠是短距离蹦蹦跳跳,大象是长途迁徙,而老鹰则是随机落地。

当然,不论如何,所有动物都是可以实时向我报告高度信息的。

我们把这些动物随机撒在星球表面,让他们自己搜寻,每隔一段时间,就把所有动物找到的结果来个大评比,然后末位淘汰——如果一种动物找到的最低点没有别人低,那么这种动物就灭绝(出局)了。



如果一种动物表现很好,也不让它闲着:一边为它的搜寻策略做一些随机变异,碰碰运气看会不会产生更好的效果;一边让它和其他优秀物种杂交,博采两家之长,看看会不会产生更好的效果。

如此重复多次,就能找到一个“最低谷”。


再比如模拟退火算法。

这个说法很形象,就像一块烧红的铁逐渐冷却的过程。

退火算法里只有一种动物,袋鼠。这种袋鼠会通过一次次跳跃寻找更低点。但是它们有一种奇怪的特性:天气热的时候,每一步就跳得特别远;天气冷的时候,每一步就跳得比较近。

我们先把很多袋鼠随机撒在星球上,然后把天气变得很热,袋鼠就向四面八方天马行空地跳,可能一步就能跨越好几座山。

一段时间后,我们让星球慢慢冷却下来。

这时,分散在星球各地的袋鼠们的步长就开始下降。随着时间推移,越来越冷,它们也就越来越细致地搜寻身边的最低谷。

最终,每一只袋鼠都找到了它认为的最低谷,我们比较一下,选出最低的那一个就行了。



再比如粒子群优化算法。

粒子群优化算法又叫“鸟群算法”。

你一定见过夏天湖畔夜空里聚集的鸟群。他们各自飞行, 却又能相互联系,形成赏心悦目的整体编队。

我们的算法,正是模拟这些鸟儿。

在星球上随机撒鸟,鸟儿之间可以通过叫声传递信息,知道谁所在的位置地形最低。然后,所有的鸟儿就朝着它的方向聚拢。

在聚拢的路径上,其他鸟儿很可能发现了比之前那只鸟更低的峡谷,此时,这只新的鸟儿就成为了新的中心,大家调转方向向它聚拢。

如此反复,最终所有鸟儿会聚拢到一个点上,这也就是它们找到的最低处。



我从想象中回到现实,科学家们忙碌的身影又出现在我眼前。

为了找到巨大神经网络中超过一亿七千万个参数各自的最优值,各种优化算法全部被调用起来。

身后,漫如云海一样的超算集群发出轰鸣,亿万只“鸟儿”如狂风暴雪在天地间翩然回旋。

赛博空间中,一座座山谷被阳光照亮。代码世界里,一个个参数被浇灌熔铸。

我眼前的这辆战车,正在昂起头颅。

我揉揉眼睛,窗外已是残阳如血,金黄的余辉向人间洒遍温柔,我回忆起年少时的日暮晚风和无数次目送红日西沉的自己,如果有可能,我愿意把自己埋葬在那个瞬间。

不过,我很快意识到自己身处海底,“窗”外的黄昏氤氲树影,一定是智能光线模拟出来的效果。

我转回头,看着自己的杰作——这台全世界最聪明的人工智能战车,一种奇异的思绪不可阻挡地涌来,仿佛烈酒穿喉。

如果世间最高的智慧都无法分辨它是自然之物还是人造之物,那么,它原本的真实和虚假又有什么分别呢?

我们,难道不是通过坟墓平等地站在上帝面前吗?




第五天:平行宇宙、套路智能、适者生存 


凌晨,我被一场不小的地震惊醒。

我去问值班长官,地面上的战事如何?长官说他没有权利向我透露其他信息,而在我完成任务之前,也最好别多问。

我回到房间,难以入睡。说实话,我有些害怕。

我必须说,人具有一种与生俱来的自私。纵然我们能够协作,我们建立起了社群、国家和文明,我们的历史课本上也层层叠叠地印刷着英雄的头像。

但如果面前只剩一块面包,我做不到拱手让人。

在我年轻时,曾经读过一本很流行的科幻小说,我仍然记得书里的一句话:失去人性,失去很多;失去兽性,失去一切。

对于这句话,我说不上认同,也没有理由反对。我只知道,自己的人生已经度过了大半,我仍旧无法学会与身体里的自私相处。

但相比大多数人,我已足够幸运。我可以在我的作品身上,打造出一个无私的“完美人格”——比如十年前我设计的那个智能陪伴小熊,有的曾经帮主人阻挡失控的汽车而粉身碎骨,有的曾经耗尽最后一丝电力把落水的孩子托上岸。

而我现在设计的机械狗狗,当然也可以做到这一点。为了整个团队战斗的胜利,它们可以义无反顾地牺牲自己,阻挡炮弹,用尸体搭建桥梁。死去的那一刻,内心没有任何波澜。

我甚至不用为它们感到抱歉。体内的参数决定,它们生来如此。

今天,任务的最后一天,我们正是要训练智能战车的“群体策略”。



也许和很多人想象中不同,我们并不会把一本《孙子兵法》输入人工智能,恰恰相反,我们不会告诉人工智能任何信息。

因为人工智能战士比人类更强,我们期待它们发现人类尚未掌握的战法。

于是,他们要在真枪实弹的对抗训练中,学习到属于自己的战争策略。为了得到超越人类常识的战争策略,这样的训练可能要在虚拟世界重复上亿次。

这个过程,叫做“多体竞争”(Multi-Agent Competition)。

为了让我的学生理解“多体竞争”,当年我最喜欢给他们讲的就是那个“捉迷藏”的故事。

三十多年前,一个名叫 OpenAI 的公司设计了一个“捉迷藏游戏”,参与捉迷藏的,是人工智能机器人。

规则很简单:
1、现场有一些道具,任何一方都可以搬动道具,也可以把道具锁定在原地,对方就无法搬动。
2、游戏开始时,红色小人会原地定住20秒。而蓝色小人不受限制,从游戏开始就可以移动。
3、以五分钟为限,红方碰到蓝方就算红方胜利,红方没有碰到蓝方就算蓝方胜利。

注意,就连这三条规则都没有告诉人工智能——它们完全不知道自己的能力和游戏目的,仅仅是不小心触发了相应的条件,就会获得相应分数的奖励或惩罚。



在无数个平行宇宙里有无数组AI,用强化学习的方式来寻找最佳的“捉人策略”和“躲藏策略”。

最开始,无论是红色小人还是蓝色小人,因为完全不了解规则,只能随机游走。但毕竟游戏时间很长,仅仅靠瞎溜达碰运气,红色小人也能“抓”到蓝色小人。



可是,经过269万次对局,两边都渐渐摸索出了规则。于是,红色小人学会了追逐,而蓝色小人学会了躲闪。

然而蓝色小人仅仅靠躲闪,经常会被堵到墙角,最终还是会被捉住。

于是在第862万次,蓝色小人研究出了一个新技能,用方块堵门并且锁住。掌握了这个策略后,蓝色小人的胜率瞬间大幅提高。

你看,蓝色小人已经进化到了和普通人类智能相似的策略。



红色小人并没认输,他们继续在平行语种中孜孜不倦地尝试,寻找可能的新解法。

经过了1450万次训练,红色小人终于研究出了“斜坡”的用法,即使蓝色小人把门堵住,他们也可以用斜坡秒杀。

红色小人的胜率瞬间提高。



蓝色小人也没那么容易认输。

第4340万次尝试之后,蓝色小人学会了新的策略,那就是趁红色小人被定住的20秒,先把“斜坡”拉进“屋子”里,然后再用方块堵门。

这个策略,已经堪比人类老手了。



注意,还记得我们之前说的“群体策略”吗?

当游戏开场斜坡距离蓝色小人较远时,来不及把斜坡拿进来再去搬方块,这个时候,群体策略就从虚空中涌现了出来:

一个小人先去般斜坡,另一个小人把方块递到离入口近的位置,如此一来,时间刚好够用。



当然,真正的捉迷藏中怎么可能有这么完美的藏身之处?

于是研究者把场景变得更加开放,去掉了一劳永逸的“房子”,重新开始红蓝小人的进化。

在第8800万次训练之后,蓝色小人学会了一种有效策略——用现场木板为自己搭建一个小屋。



1.15亿次对局之后,红色小人学会了在开放环境中利用“斜坡”。



3.88亿次之后,蓝色小人学会了先把斜坡锁定,再去搭建小屋。由于要做的事情太多,时间非常紧张,所以两个蓝色小人之间发展出了严密的配合。



策略演化到这一步,人类的智慧应该用尽了。绝大多数人都想不到红色小人应该怎样翻盘了。

但是,在人工智能眼里,故事还远远没有结束。事实证明,“多体竞争”能找到的策略远超人类智慧。

4.58亿次对局之后,红色小人发现了游戏设计的一个小特性,把方块挪到被定住的斜坡旁边,然后踩上去,像冲浪一样骑着方块移动,然后翻墙,抓住蓝色小人。



故事还没结束。

4.81亿次之后,蓝色小人学会了新的策略,在游戏一开始把所有物体定住,然后再造小屋。



注意,这套策略极其复杂,一旦任何环节出现失误,都可能造成时间不够,屋子还没搭建好,红色小人就冲过来。

即便是人玩这个游戏,都有可能相撞或者两个人抢一个物体,但是,经过完整训练之后的人工智能体之间却能进行天衣无缝的配合,没有任何多余的动作,也没有任何失误。

需要说明的是,蓝色小人之间没有任何语言和信号交流,他们的密切配合仅仅是通过观察彼此的动作完成的。

让人惊叹的群体策略在这一刻展露无遗。

有一个问题更值得注意:

几亿次的进化让人工智能发现了很多系统设计中的漏洞。例如红色小人可以从特定的角度可以把斜坡推出场地,然后把自己弹射起来,恰好落到蓝色小人身上。



在人类的理解中,这恐怕只是场地设计的漏洞,胜之不武。但在人工智能眼里,这就是它们世界的可以被利用的物理规则,钢铁一般的定律。

这背后的事实让人脊背发凉。只要这个世界的物理定律允许,就没有人工智能进化不出来的策略;只要这个策略能赢,就一定会被使用。

它们的字典里只有“胜利”,没有“胜之不武”。

这才是人工智能碾压人类的根本原因。

回到眼前,我们正是用这样的策略来训练人工智能战车。

一开始,它们的策略人类还能理解,可是亿万次的进化后,它们发展出的策略已经超越了人类想象。而且,其中很多策略都包含决绝的“个体自我牺牲”。

不知为什么,今天基地的电力并不稳定。还好,我们启动了备用电源,没有耽误太多进度。

今天深夜,我们终于完成了“灵魂”的全部训练。

一刻都没有耽搁,屏幕上进度条火速推进,代码成功移交军方。

我猜接下来,这些灵魂将被灌入无数战车,从生产线上开下来的, 将是全世界最聪明,最无畏的战士!

这些战士将会保卫我的孙女,保卫我的家人,保卫我的祖国,保卫我们的文明。



不知道有没有人会把这些人工智能战车当成只懂杀戮的恶魔。

但我并不这样想。

我曾发明过最温柔的小熊,我也发明了最冷血的战士。在我看来,它们都是我的孩子,它们并无分别。

水下的黄昏很美,但我想我的孙女了。一切顺利的话,几天后我就能回家了。我迫不及待地想见到她,给她讲爷爷这几天的奇妙经历。

等战争过去,我要带她去看这世间的一切美好,喝泉水的清澈,闻野花的芬芳,让她知道人类的不屈和梦想。

就像所有的春天,都值得翘首以盼。不是么?



 后记 


还是让我告诉你吧。

史·伊万懦夫·中教授并非在水下待了五天,而是五十三年。

那场冲突很快引发了世界核战。教授日记里记载的第五天清晨的“地震”根本不是地震,而是C国本土遭受的第一次核打击,那是千万灵魂碎裂的声音。

几天时间内,数以千计的核弹头在地球两端爆炸,人类核心基础设施尽数被毁,核辐射使得地表不再适合人类居住。

少数幸存者不得不进入地下工事,接下来的二十年,地球人口减员三分之二。



战争过去半个世纪后,人类才初步恢复了工业,达到人类纪元1980年的水平。新纪元的C国遗民重新造出了高质量的潜水设备,潜入水下200米,寻找前世的遗迹。

在遗留地图上没有任何标注的海域,人们偶然发现了一处规模庞大的残骸。经分析,这可能是曾经的一个军事基地。

基地损毁,海水早已灌入,但有一艘潜艇靠在基地边,气密性完好,表面光滑。甚至有一种时间并未在它身上留下过多痕迹的错觉。

正是在这艘潜艇里,人们发现了教授和他生前的日记本。

除了前五篇工程日记,后面还有二十几篇。

通过教授的记录,人们大概知道,第六天他被强令登上潜艇,以躲避可能的导弹攻击。然而,鉴于地面战事,潜艇却迟迟无法上浮,在原地待命多日。

食物一天天减少,空气净化装置也出现了问题。人们开始产生猜疑,有人拉拢教授,谋划杀掉舰长,强行上浮。教授并未写下自己的决定。

日记越往后越短,这个曾经理智的科学家也变得越来越疯狂,最后两篇日记里,他甚至开始咒骂这个世界,用最肮脏的语言。

第二十四天,日记戛然而止。

日记本是在一具尸体身上发现的。证据表明,这就是教授本人。他的右臂被钝器切掉,没有包扎的痕迹。除此之外,左胸还有三个弹洞。

潜艇内部所有电子系统均损坏,没留下任何可循的证据。在教授生命的最后一刻,究竟经历了什么,恐怕无人得以知晓。而潜艇究竟为何最终也没有离开港口,也成为了永久的谜题。

你也许会问,我为什么知道这么多?

因为我就是这次下潜考古的组长,也是教授在日记里多次提到的人,他的孙女。

作为唯一存活的后人,我获准保留教授的这本日记。

我写下这些文字时,正是一个春天,窗外大雨初霁,夕阳泛着猩红,一如这个星球千万年间重复上演的命运悲歌。

合上日记本,清冽的空气填满了我的肺,一瞬间,我感觉自己的生命无比真实。爷爷说,战争结束后,他要让我看到世间的一切美好。

我猜,他做到了。

在某一刻,人们对未来充满向往,以为无限的可能正向自己展开。

如今回望,那曾是命运的顶点。



声明:本文含有虚构内容。






谢谢你,造了我




再自我介绍一下吧。我叫史中,是一个倾心故事的科技记者。我的日常是和各路大神聊天。如果想和我做朋友,可以搜索微信:shizhongmax


哦对了,如果喜欢文章,请别吝惜你的“在看”“分享”。让有趣的灵魂有机会相遇,会是一件很美好的事情。


Thx with  in  Beijing

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存