AlphaGo与人工智能

所属 【薄论调 】 2016 年 03 月 13 日 浏览:1764次
看清AI和“神经网络”的实质,用它们来做点有用的,工具性质的东西就可以了,不要对实现“人类智能”期望太高。

  AlphaGo与人工智能
 

文/正义的花生

在之前的一篇文章中我指出,自动驾驶所需要的“视觉识别能力”和“常识判断能力”,对于计算机来说是非常困难的问题。至今没有任何计算机,可以在视觉方面达到驴子之类动物的水平,更不要说和人比。可是最近Google的AlphaGo战胜了围棋世界冠军,闹得沸沸扬扬。

本来是玩个游戏而已,偏要吹成是“历史性的人机大战”,说得好像是机器挑战了人类的智能,伤了人类的自尊似的。这整个项目起了一个相当高大上,唬人的名字,叫“Deep Mind”。当然,其中的技术也被起了一些吓人的名字,什么“神经网络”啊,“深度学习”啊…… 于是乎,就有人根据科幻电影的情节开始展望,这样厉害的技术,应该可以用来做其它更加“智能”的事情,然后就开始对“人类的未来”作出一些杞人忧天的猜想,说人类的工作很快都要被机器取代了,甚至Skynet就要实现了,云云。

不同AI问题的难度比较

当然也有人扯到自动车的事情,说现在AI有了长足的进步,离实现自动驾驶应该不远了吧?有这种理解的人,其实不明白人工智能的难点在哪里。他们可能根本没上过基本的AI课程,没实现过A之类的“树搜索”,神经网络一类的基本AI算法,不知道所谓“神经网络”,跟神经其实没有屁点关系。视觉识别和自动驾驶,其实比起下围棋,难度要大许多倍,根本不在一个量级。机器视觉,并不是AlphaGo所用的树搜索和神经网络那么简单的方法就可以解决的。由于需要用极高的速度处理“模拟信号”,它可能根本就不是“数字计算机”可以解决的问题。

其实很早以前,人工智能专家们就发现一个很有趣的现象,是这样:

  • 对于人来说很难,很烦的事情(复杂的计算,下棋,推理……),对于计算机来说,其实算是相对容易的事情。
  • 对于人来说很容易的事情(认人,辨别物品,走路,开车,打球……),对于计算机来说,却非常困难。
  • 计算机需要精确的,离散的,死板的输入。它们不能适应环境的改变。
  • 人擅长于处理模糊的,连续的,不完美的数据,对环境的适应能力非常高。

棋类是相对容易的AI问题

从以上几点你可以看出,象棋,围棋等活动,正好符合了计算机的优势。棋类活动都具有离散的,精确的,有限的输入。棋盘上就那么几十,几百个点,不是随便放在哪里都可以的。一人走一步,轮流着走,不能乱来。整个棋盘的信息是完全可见的,没有隐藏的,缺损的信息。棋局的“解空间”虽然很大,却非常规整,有规律可循。围棋的第一步可以有361种情况,第二步有360种情况,……

计算机利用自己的“计算暴力”,可以有计划有步骤,兢兢业业的把各种可能出现的情况算出来,一直到许多步以后,然后从中选择最有优势的走法。所以下棋归根结底,就是一个“树搜索”问题,只不过因为规模太大,需要加入一些优化而已。围棋的解空间虽然大,却是一个已知数,它最多有250150种情况。AlphaGo使用所谓“神经网络”,就是为了在搜索的时候进行优化,尽早的排除不大可能取胜的情况,免得浪费计算的时间。

这种精确,死板,机械化,主要靠“暴力”的活动,就跟计算一个比较大的乘法算式(比如2463757 x 65389)的性质类似,只不过规模大很多。显然,人做这类事情很繁,很累,很容易出错,计算机对此却具有先天的优势,因为它是一个机器。当年“深蓝”战胜国际象棋世界冠军的时候,我就已经预测到,计算机成为围棋世界冠军是迟早的事,所以我早就不屑于下任何棋了。可惜的是,挺多人仍然把精通棋艺作为一种荣耀(因为“琴棋书画剑”嘛)。我不关心围棋已经十多年了,只记得十年前很多中国人认为,中国人下围棋总是输给韩国人,是一种耻辱。现在看来,这是多么可笑的事情。这就像因为心算乘法不如韩国人快,就觉得是耻辱一样。

所以,现在AlphaGo在围棋方面战胜了人,正好说明棋类游戏根本就不是值得人去做的事情 :)

“琐事”才是真正困难的AI问题

现在来对比一下人们生活中的琐事,就说倒水端茶吧。

让一个机器来给你倒水,有多难呢?意想不到的难!看看这个场景,如果你的电脑配备有摄像头,那么它怎么知道茶壶在哪里呢?要知道,茶壶的材料,颜色,形状,和角度,可以有几乎无穷多的变化。甚至有些茶壶跟哈哈镜一样,会把旁边的物体的形状都扭曲反射出来。桌上的物品附近都有各种反光和阴影,不同材料的反光特性还不一样,这些都会大幅度的影响机器对物品的识别。

为了识别物体,机器需要常识,它的头脑里必须有概念,必须知道什么样的东西才能叫做“茶壶”和“茶杯”。不要小看这一步的难度,这意味着机器必须理解基本的“拓扑结构”,什么叫做“连续的平面”,什么叫做“洞”,什么是“凹”和“凸”,什么是“里”和“外”…… 另外,这机器必须能够分辨物体和阴影。它必须知道水是什么,水有什么样的运动特性,什么叫做“流动”。它必须知道“水往低处流”,然后它又必须知道什么叫“低”和“高”…… 它必须知道茶杯为什么可以盛水,茶壶的嘴在哪里,把手在哪里,怎样才能拿起茶壶。如果一眼没有看见茶壶的把手,那它在哪里?茶壶的哪一面是“上面”,要怎样才可以把水从茶壶的嘴里倒出来,而不是从盖子上面泼出来?什么是裂掉的茶杯,它为什么会漏水,什么是缺口的茶杯,它为什么仍然可以盛水而不漏?干净的茶杯是什么样子的,什么是脏的茶杯,什么是茶垢,为什么茶垢不算是脏东西?如何控制水的流速和落点,什么叫做“水溅出来了”,要怎么倒水才不会溅出来?……

你也许没有想到,倒茶这么简单的事情,需要用到如此多的常识。所有这些变数加在一起,其实远远的大于围棋棋局的数量,人却可以不费力的完成。这能力,真是应该让人自己都吓一跳,然而人却对此不以为然,称之为“琐事”!因为其他人都可以做这样的事情,甚至猴子都可以,怎么能显得出我很了不起呢?人的自尊和虚荣,再一次的蒙蔽了他自己。他没有意识到,这其实是非常宝贵,让机器难以匹敌的能力。他闭上眼睛说道:“机器经过大量的学习,总有一天会做到的。看我们有神经网络呢,还有深度学习!” 人没想到的是,这些基本功能看似“学习”的结果,而其实都是每个人生下来就已经固化在脑子的“硬件”里的,不是短短几个月或者几年的“学习”就能得到的。所有的高等动物都有这种功能,所以这其实已经耗费了自然界几百万年,甚至上亿年的功夫来“研究”,“开发”,“学习”。小孩子似乎很快就学会了这些能力,而其实这种所谓的“学习”,只不过是“激活”了这些早就写进了人类DNA里的功能。

计算机的局限性

实际上,著名的认知科学家Douglas Hofstadter(《GEB》的作者),早就指出AI领域的那些热门话题,比如电脑下棋,跟真正意义上的“人类智能”,几乎完全不搭边。绝大部分人其实不明白,人类的“思考”到底是什么东西,人类智能到底是什么,人类的长处究竟在那里。大部分所谓“AI专家”,对人脑的工作原理所知甚少,甚至完全不关心,却总喜欢闭着眼睛说:“人脑只不过是一台计算机!”

AI领域似乎喜欢提出各种又大又空,唬人的名词,比如“神经网络”,“机器学习”。后来发现大家都看破了机器学习,不过就是一些统计学方法贴了个新标签,搞得乌七八糟,所以又提出所谓“深度学习”…… 可是不管他们怎么扯,人脑和计算机仍然有着根本性的不同。人类最宝贵的能力,并不是能很快的,机械的做出算术题,或者能够在棋类游戏中胜出。人怎么也没想到,自己最宝贵的特殊能力,其实是每个人都能做的那些生活琐事:端茶,倒水,开门,走路,……

机器虽然在围棋一类的“高智商”活动能够战胜人,可是你要它做这些“简单”的琐事,却发现意想不到的难!也许不是不可能,但确实有很难逾越的鸿沟。问题在于:

  • 机器缺少动物所具有的感官。虽然机器可以有各种传感器,激光,雷达,…… 然而就算配备了如此大型,精密,远距离的设备,接收大量的数据,机器对于日常事物(比如茶杯,乒乓球等)的判断和控制能力,却远远不如人那两只小小的(有可能是近视的)眼睛和视觉神经。它更不能跟视觉更加敏锐的动物,比如猫,狼,鹰,相比拟。

    我们应该意识到,眼睛是一种异常先进的设备,它的工作原理跟人造的传感器,摄像头,激光,雷达,有着根本性的不同。看看这些“光学幻觉”之后,你也许会明白,眼睛和视觉神经,其实不止是摄像机那么简单。人的视觉系统,根本不需要主动发射出射线或者超声波,根本不需要接受很精确,很大量的数据。它只是被动的接受少量的光线,却能准确的把握事物的形态和运动规律。它不但能处理看得见的信号,而且能根据已有的常识,很快的“猜”出看不见的部分。视觉神经对于运动的物体,具有自动的追踪和适应能力,这叫做“运动后效应”(motion aftereffect)。它能根据非常少的数据,组合出背后的抽象物体。这些都是现有的机器很难做到的事情。

  • 来自世界的信息是不完美的,模糊的。计算机需要非常精确的输入,不能容纳和处理不完美的,模糊的,有误差的数据,不能适应输入的变化。比如,也许一个机器人认得一个特定的杯子,然后你把这杯子倒着放,或者把它打缺一个口子,它就不认得这是一个杯子了。

  • 计算机缺乏人所具有的常识。所谓常识,就是一些人所皆知,想都不用想的事情。就像“什么是杯子”,“什么是猫”,“水往低处流”,“如何用手把东西拿起来”之类。计算机不具有人类的感官,不能过人类的生活,不具有人类的学习能力,适应环境的能力,所以它们几乎不可能获得人类的常识。

Hofstadter说:“计算机要得到人类一样的智慧,得先长上脚,能够走路,能够跟人一起生活,能够跟人交流。它必须有很好的感官,能够感觉到这个世界,能够体验生活,这样它才能学到常识……” 然而,机器跟人却有着根本性的不同。你不能简单的给机器人装上腿脚,让它跟人“学习”。因为机器的“头脑”跟人脑不一样,它没有“意识”,它不能形成所谓“概念”。你给它信息,让它学习,然而这种所谓“机器学习”,跟人类的学习完全是两码事。

机器学习说白了,只不过是通过大量的数据,统计拟合出某些函数的参数。比如,人猜测,这些数据符合一个简单的函数 y = ax3 + bx2 + cx + d,但人不知道a, b, c和d该是多少。于是人就让机器去“学习”,也就是通过数学统计,猜出参数a, b, c 和d,使得这个函数符合数据的特征。可是这函数是怎么来的呢?那终究还是人想出来的!机器是无论如何也跳不出 y = ax3 + bx2 + cx + d这个框子的。如果数据不符合这个范式,还是只有靠人,才能想出更加符合数据特性的函数。

所谓神经网络,其实就是这样一种函数,只不过复杂一些。“神经网络”跟神经,其实完全没有关系。它完全是个广告词,AI专家们不知道用这个词骗倒了多少人,让人以为“神经网络”会让机器具有智能。然而不管他们怎么瞎掰,人脑跟电脑确实有着根本性的不同。一个很显然的事实,就是人脑并不是一台数字计算机。它可以直接处理模拟信号,而不需要把它们进行数字化。另外,人脑里的“线路”其实是活动的,是可以重新连接的,并不像电脑那样是焊死在那里,固定的。这使得人可以通过训练,产生专门的线路,非常迅速的处理某些高速的活动(比如打球,开车)。要实现人类级别的智能,你似乎只有把这机器做得越来越像人。现在我们连人脑到底是怎么工作的都不知道,甚至不能可靠地hack进人脑,改变它的记忆和思维,又何谈实现所谓“人类智慧”呢?

AlphaGo不是人工智能历史性的突破

所以这次AlphaGo战胜了围棋冠军,跟之前IBM的“深蓝”电脑战胜国际象棋世界冠军,意义其实差不多。能够写出程序,在这些事情上打败世界冠军,的确是了不起的成就。然而这并不说明AI取得了革命性的进步,更不能表明电脑具有了人类智能。恰恰相反,电脑能够在棋类游戏中战胜人类,正好说明了从事棋类活动的能力,并不足以衡量“人类智能”。我很早以前就发现,象棋围棋之类的游戏非常的无聊,比计算矩阵乘法还要烦。我为什么要干这样的事情,为了显示自己很聪明?那样其实很傻。所以作为一个智慧的生命体,我才懒得去自虐自己的脑筋。那些事情是如此的烦躁,所以我应该写个程序去帮我做 :)

如果你想看到AI真正的希望,也许该看看这个视频:乒乓球世界冠军险胜机械手…… 我跟你开玩笑的 :) 最后有人揭露,这是由KUKA机器人公司设计安排,经过大量剪辑,拍出来的广告而已。世界冠军Timo Boll,在其中只是一个演员。没有现场全程录像,没有观众,没有裁判,没有证人。Timo Boll配合他们,拍了一整天,只把那机械手最好的表现剪辑出来,犯笨的地方全都剪掉了。KUKA的机械手也许确实能打中球,然而完全不可能是普通人的对手,更不要说跟世界冠军交手。

虽然不能和人比,我发现KUKA的机械手作为一种工具,还挺有意思。有个型号甚至可以慢吞吞地做端茶倒水的动作。不过貌似比90岁老太太的敏捷程度还要差一些,而且只认得它自己那几个特定的物体,必须放在特定的位置。如果你给它换个形状的茶杯,或者给它斜着放,它应该就不知道该怎么办,因为它头脑里没有常识。

最后你发现,倒水端茶这么简单的事情,原来隐含了如此多的常识。人是如何获得这些常识,如何表示它们,如何利用它们,仍然是未解之谜。所以为AlphaGo热血沸腾的人们,不要再沉迷于你们的科学幻想了。看清AI和“神经网络”的实质,用它们来做点有用的,工具性质的东西就可以了,不要对实现“人类智能”期望太高。

(原文)




2016-03-13 19:23:31 泥娃娃 ( 我喜欢所以我做)

今天人类李赢了一把,不容易啊

2016-03-13 13:09:09 生锈轨迹

在计算方面,人类远远不如电脑

2016-03-13 10:50:22 茶博士

此文观点仅作参考

3 条回复 1/1 页

如要发表评论请登陆,如无账号请先注册

栏目导航  · · · · · ·  ( 全部 )

文字控 /  新摄影 /  薄论调 /  品音乐 /  观影录 /  爱旅行 /  

随机文章  · · · · · ·  ( 全部 )