就算AlphaGo不久之后战胜了柯洁,待巨头们的自动驾驶系统的识别精度能比得过老司机的眼神,我们再来谈谈自动驾驶的日常。
谷歌的AlphaGo战胜了李世石!人工智能机器人,战胜了一个世界顶级(虽不是最强)的围棋选手,完成了在二十年前被视为不可能实现的任务。
19年前,人工智能成为了最强国际象棋选手,那时有人预言人工智能永远无法战胜人类围棋选手。这可以视为一个标志性事件,既然AI有办法在最复杂的棋类游戏中达到人类的顶尖水平,那么AI未来就能应用于更复杂的行为中。
10年前,自动驾驶还只是存在在科幻电影里面,那么AI技术取得突破性进展,能否引领自动驾驶早日到来?别忘记,谷歌除了开发AlphaGo,还有自动驾驶的项目,天晓得两个团队之间基情有多深?
开篇提问:AlphaGo是怎么赢的?
要知道AlphaGo赢了李世石能代表人工智能有多厉害,就要搞清楚AlphaGo的工作原理。
在攻克围棋对战以前,什么井字过三关、五子棋、跳棋乃至国际象棋这些棋类游戏,人工智能的“下法”,就是用最笨但是对计算机来说最高效的办法,穷举法。
就是计算机把每一步之后的所有结果在“脑海”里都演练一遍,然后选择对自己最有利的下法走下去。每走一步之前,就会依据棋势做一次穷举,选择对自己最有利的方案。然而走一步棋之前要对之后的每一个结果都预演一遍,对人类来说太难了。人类棋手可以预判10步已经很了不起了,但计算机就是这么Bug。反正对于这些简单棋类来说,可能出现的结果,其数量都是有限的,加快计算速度就可以完爆人类了。
国际象棋要再复杂一点,要给每一枚棋子加上权重,不同棋子的初始权重,代表它们在棋局中的重要程度。根据场上局势的变化,每一枚棋子的权重又会发生变化。而这个变化的算法,就要通过对战获得经验,不断优化,直到优化到最合理。——这时候,AI就成为了地球上最会下国际象棋的“人”。穷举法的变态之处在于它会尝遍每一个可能性,AI甚至可以用500步解掉一个残局,对于人类棋手来说简直不可思议。
围棋太复杂了,每一步的下法多,每一局的步数多,如果把所有可能出现的围棋结局加起来,比这个宇宙中包含的原子总数量还要多!——显然穷举法这个笨办法行不通了,除非,你……允……许……电脑……走…棋的……速…度……和…树……懒一……样…………快。所以谷歌的团队给AlphaGo做了一个“偷懒”算法,用“胜率”来决定每一步的走法。
假设轮到Alphago落子,它会先假设下在不同位置,例如A位置和B位置,然后分别按照A位置和B位置继续在“脑子”里模拟出N个(数量足够多但非所有)接下去的棋局,如果棋子在A位置之后胜率高于B位置,那就证明A位置比B位置合理。——本质上又是用计算速度吊打人类右脑抽象思维的做法,只不过比穷举法更取巧一点。这也不难理解为什么李世石觉得AlphaGo在用“上帝视角”在下棋,而且老是能抓住自己的破绽,那是因为AlphaGo的每一步都是从棋局结果倒推的啊!正如你要是已经在《模拟人生》预演了一回人生赢家,再回到现实生活做的每一次决策,当然也是上帝视角。
汽车有人工智能可言吗?
自动驾驶是人工智能的一个很重要分支。其实汽车上面也有一些人工智能的应用,如果我们不把设计阶段的计算机模拟分析、生产环节的全自动化生产线管理考虑进去,而只看汽车这个成品本身的话,最常见也最典型的,就是自动泊车功能了。
不过比起AlphaGo更依赖数据处理速度,自动泊车的工作更强调多元件协作,以及元件的性能。前后雷达用来“知道”距离,包括车位够不够大、以及自动泊车时告诉电脑自己与旁边静止物的距离、自己的相对位置。雷达的探测精度很重要,雷达生产的同一性要求也很高(同样的一套自动泊车,雷达的测量精度误差值不得高于1厘米)。方向盘是最主要的执行器,什么时候打方向、打多少,要求电动助力转向模块和自动泊车模块要合作无间。算法是否先进,CPU处理速度这些倒是其次的了。
无可否认,自动泊车的效果,的确也比很多新手司机做得好。至少在泊车这件事上,人工智能做得并不比人逊色。我们接下来聊更高阶的车用人工智能——自动驾驶。
驾驶是一种社会行为
计算机的算法,建立在明确的逻辑关系之下。每一步都是由确定的逻辑关系推导出来的,也就是要么“是”要么“否”,要么“与”要么“或”,大于、小于,权重高、权重低。容不下“也许”、“可能”、“慢着”这些模糊的表述。自动泊车的输入条件和输出结果,也是具备明确逻辑关系的。远、近,左、右,前、后。
驾驶和泊车不一样,泊车是一种公式化的重复,而驾驶是一种面临复杂环境的社会行为。自动泊车和自动驾驶本质上是不同的。
动物经过亿万年的进化,获得了视听嗅味触觉,也得到了行动能力,这都是在生存斗争中不断进化不断优化的功能。人类经过千万年的进化,又进化出了语言、社交、感情、思考、制造等社会行为。我们的整个身体,每时每刻都在不知不觉地将感觉、行动、社交行为三者有条不紊地按照某一套法则精密地协作。
在社会活动中,我们每天遇到大量的模糊化表述,甚至多过于明确的表述。而且在不同的语境和不同的社交关系里,用“可能”表示“是”的概率是在变化的。语境和社交关系,又是另一些更复杂、更难用算法来制作模型的情形。例如“wo cao”这个词,不同声调表示不同的意思,AlphaGo表示人类的世界太复杂,理解不能。
开车是一种复杂的社会性行为(注意断句哈)。我们需要用视觉、听觉、触觉甚至嗅觉来判断所处的情况,大脑对所处情况作出判断,对身体发出指令,再用行动器官来操控车辆。
这只是基础,大多数时候没那么简单,我们有时候要通过观察表情判断道路参与者的情绪、通过衣着判断他们的年龄和文化程度、根据所处地区的经济发展水平判断他们的“胆量”,从而作出相应的预判。这些都需要驾驶者有充足的社会经验,根据一些概念模糊的蛛丝马迹,来调整自己的驾驶行为。与其说这是一个逻辑很复杂的“函数”,还不如说是观察+经验+预判=神操作。
AlphaGo的厉害,与自动驾驶无关
AlphaGo能够战胜人类,前提是围棋本身是一项规则明确、逻辑清晰、步骤明确、非黑即白的游戏,并且拼的是运算能力。任凭AlphaGo如何吊打人类的棋力,面对输入条件模糊,行为社会化,依然是人工智能目前的弱项。下围棋是数学题,开车却是社会实践题。
AlphaGo,或者说计算机,擅长的就是逻辑运算能力。先不说逻辑运算能力,本来就不是智力的全部。更何况依赖于计算机的设备,目前还不具完全的感觉能力,行动能力一般(但某些领域很厉害,例如五轴加工中心的机器臂,其运动的精度极为惊人),社会行为几乎空白。
谷歌正在做无人驾驶。在汽车文化较为成熟的地方开车,某程度也可以当作一种规则相对明确、逻辑相对清晰、步骤相对明确、相对非黑即白的行为。然而,驾驶依然有太多的不确定性。
我的意思是,假如AlphaGo下围棋时,突然在棋盘蹦出一颗万妥斯假装成白子,李世石会淡定地把它捡起扔掉,而AlPhaGo则很难处理这种情况。我想AlphaGo要是会说话,它肯定会说,我靠你怎么不按常理下棋啊。如果它自带显示器,应该有一万多只羊驼在屏幕里面奔腾。如果棋盘里还有宝路薄荷糖、绿箭口香糖、乐天小熊饼、德芙巧克力,而且都会动来动去,随意变线呢?
模糊的输入条件、不成逻辑的行为,对自动驾驶的“观察力”提出了非常高的要求。光会看路还不行,还要通过脸谱识别,发现从对头车司机脸上映出来的白光知道他在玩手机要响一下喇叭;要有衣着打扮识别,城中村数码烫发型的电动车哥们一定走位风骚记得给哥预留表演空间;要有字体识别,看到“实习”贴纸就要伺机超车;要有反社会型人格云计算,知道对方喜欢开斗气车要避之则吉;要有远光狗无视功能,免得对头车的远光灯把自己的摄像头弄瞎了……这些情况,和算法、计算机性能是否优秀无关。
当然,AlphaGo的成就,至少说明计算机的运算性能突飞猛进,对自动驾驶终究还是会有帮助的。只不过,AlphaGo也许是人工智能的一大步,却充其量是自动驾驶的一小步。
我想全世界的自动驾驶技术,都要来中国做路试,找自动驾驶的Bug,还有什么地方比中国更合适?哦,别忘了印度。然而考虑到谷歌CEO皮查伊是印度人,除非想集体跳槽苹果,否则谷歌应该不会这么黑自己Boss,所以还是来中国吧。在各种交通工具混杂通行的路况测试一下,不宕机算成功。
就算AlphaGo不久之后战胜了柯洁,待巨头们的自动驾驶系统的识别精度能比得过老司机的眼神,我们再来谈谈自动驾驶的日常。AlphaGo短路了,顶多投子认输,自动驾驶短路了呢?