http://www.yinwang.org/blog-cn/2017/04/23/ai
我为什么不在乎人工智能
有人听说我想创业,给我提出了一些“忽悠”的想法。他们说,既然你是程序语言专家,而现在人工智能(AI)又非常热,那你其实可以搞一个“自动编程系统”,号称可以自动生成程序,取代程序员的工作,节省许许多多的人力支出,这样就可以趁着“AI 热”拉到投资。
有人甚至把名字都给我想好了,叫“深度程序员”(DeepCoder = Deep Learning + Coder),还有人给我指出了这方向最新的,吹得神乎其神的研究,比如微软的 RubustFill……
我谢谢这些人的关心,然而其实我并不在乎,也不看好人工智能。现在我简单的讲一下我的看法。
机器一样的心
很多人喜欢鼓吹人工智能,自动车,机器人等技术,然而如果你仔细观察,就会发现这些人不但不理解人类智能是什么,不理解人工智能有什么局限性,而且这些“AI 狂人”们的心,已经严重的机械化了。他们或多或少的失去了人性,仿佛忘记了自己是一个人,忘记了人最需要的是什么,忘记了人的价值。这些人就像卓别林在『大独裁者』最后的演讲里指出的:“机器一样的人,机器一样的心。”
每当提到 AI,这些人必然野心勃勃地号称要“取代人类的工作”,“节省劳动力开销”。暂且不讨论这些目标能否实现,它们与我的价值观,从一开头就是完全矛盾的。一个伟大的公司,应该为社会创造实在的,新的价值,而不是想方设法“节省”什么劳动力开销,让人失业!想一下都觉得可怕,我创造一个公司,它最大的贡献就是让成千上万的人失业,为贪得无厌的人节省“劳动力开销”,让贫富分化加剧,让权力集中到极少数人手里,最后导致民不聊生,导致社会的荒芜甚至崩溃……
我不可想象生活在那样一个世界,就算那将使我成为世界上最有钱的人,也没有了意义。世界上有太多钱买不来的东西。如果走在大街上,我看不到人们幸福的笑容,悠闲的步伐,没有亲切的问候,关爱和幽默感,没有甜蜜浪漫的爱情,反而看见遍地痛不欲生的无家可归者,鼻孔里充满他们留下的尿骚味,走到哪里都怕有人抢劫,因为人们实在活不下去了……
如果人工智能能够成功的话,这也许就是最后的结果。幸运的是,有充足的证据显示,人工智能是永远不会成功的。
人工智能的梦想与现实
很多人可能不知道,我也曾经为人工智能热心,也曾经把它作为自己的“伟大理想”。我也曾经以为,有了“逻辑”和“学习”这两个法(kou)宝(hao),机器总有一天会超越人类的智能。我没有想清楚这具体要怎么实现,也没有想清楚这到底有什么意义。
十多年前,人工智能正处于它的冬天。我在清华大学的图书馆,找到了尘封已久的 Peter Norvig 的大作『Paradigms of Artificial Intelligence Programming』(PAIP),开始像考古学家一样,逐一实现其中的各种经典 AI 算法。PAIP 的算法侧重于逻辑和推理,因为在它的年代,很多 AI 研究者都以为人类的智能,归根结底就是逻辑推理。他们天真地以为,有了一阶逻辑,谓词逻辑这些东西,可以表达“因为所以不但而且”,机器就可以拥有智能。于是他们设计了各种基于逻辑的算法,专家系统(expert system),甚至设计了基于逻辑的程序语言 Prolog,把它叫做“第五代程序语言”。最后,他们遇到了无法逾越的障碍,众多的 AI 公司无法实现他们夸口的目标,各种基于“神经元”的机器无法解决实际的问题,巨额的政府和民间投资化为泡影,人工智能进入了冬天。
我就是在那样一个冬天遇到了 PAIP,它虽然没能让我投身于人工智能领域,却让我迷上了 Lisp 和程序语言。也是因为这本书,我第一次轻松而有章法的实现了 A* 等算法,并且理解到里面的真谛。也是因为 PAIP,我第一次理解到了程序的“模块化”是什么,我开始在自己的程序里使用小的“工具函数”,而不再担心很多人忧心忡忡的“函数调用开销”。PAIP 和 SICP 这两本书,最后导致了我投身于程序语言领域,并且有幸获得这个领域鼻祖们的真传。
在 PAIP 之后,我又迷了一阵子机器学习(machine learning),因为有人告诉我,机器学习是人工智能的新篇章。然而我逐渐的意识到,所谓的人工智能和机器学习,跟真正的人类智能,其实关系不大。相对于实际的问题,PAIP 里面的经典算法其实相当幼稚,复杂度很高,根本不可能解决大规模的实际问题。最重要的事情是,我看不出 PAIP 里面的算法跟“智能”有毛点关系 :P 而“机器学习”这个名字,其实完全就是一个幌子。很多人都看出来了,机器学习说白了就是统计学里面的“拟合函数”,换了一个忽悠人的名字而已。
人工智能的研究者们总是喜欢抬出“神经元”这类名词来吓人,喜欢跟你说他们的算法是受了人脑神经元工作原理的启发。然而世界上这么多 AI 研究者,有几个真的研究过人脑,解刨过人脑,给它通上电做过实验,或者读过脑科学的研究成果?最后你发现,几乎没有 AI 研究者真正做过人脑或者认知科学的研究。著名的认知科学家 Douglas Hofstadter 早就在接受采访时指出,这帮所谓的“AI 专家”,对人脑和意识(mind)是怎么工作的,其实完全不感兴趣,也从来没有深入研究过,却号称要实现“通用人工智能”(Artificial General Intelligence, AGI),这就是为什么 AI 直到今天都只是一个虚无的梦想和骗钱的口号。
纵观历史上机器学习能够做到的事情,无非是一些字符识别(OCR),语音识别一类的。说白了,这些也就是统计学的“拟合函数”能做的事情。很多人分不清“文字识别”和“语言理解”的区别。这些 OCR 和语音识别系统,虽然能依靠统计的方法,知道你说的是哪些字,它们却不能真正理解你在说什么。这就像程序语言里面“语法”和“语义”的差别。识别出语法很容易,要理解语义却困难很多倍。
各大公司叫得最响亮的 AI 技术,无非是 Siri,Cortana,Google Assistant,Amazon Echo 一类。这些东西里面,到底有多少可以叫做“智能”的东西,我想用过的人都应该明白。我每一次试用 Siri 都被它的愚蠢所折服,可以让你着急得砸了水果手机。那另外几个同类,也没有好到哪里去。很多人被“微软小冰”忽悠过,咋一看貌似真能理解你说的话,然而聊一阵子你就发现,小冰不过是一个“网络句子搜索引擎”而已。它只是按照你句子里的关键字,随机搜出一个网上别人写的句子。一个很简单的实验,就是反复发送给小冰同一个词,比如“智能”,看它返回什么内容,然后拿这个内容到 Google 或者百度搜索,你就会找到那个句子真正的出处。
我并不是说这些产品完全没有价值。我用过 Siri 和 Google Assistant,我发现它们还是有用的,不过只是在开车的时候。因为开车时操作手机容易出事,所以我可以利用语音控制。比如我可以对手机说:“导航到最近的加油站。” 然而这些“个人助手”的用途,也就止于这里了。我根本不想在家里和公共场所使用它们,很简单的原因:我懒得说话,或者不方便说话。点击几下屏幕,我就可以精确地做到我想要的事情,这比说话省力很多,也精确很多。
很多人看到 AlphaGo 的胜利,以为所谓 Deep Learning 终究有一天能够实现人类级别的智能。在之前的一篇文章里,我已经指出了这是一个误区。很多人以为人觉得困难的事情(比如围棋),就是体现真正人类智能的地方,然而事实并不是那样。我问你,心算除法(23423451345 / 729)难不难?这对于人是很难的,然而任何一个傻电脑,都可以在 0.1 秒之内把它算出来。围棋,国际象棋之类也是一样的原理。这些机械化的问题,根本不能反应真正的人类智能,它们只需要蛮力。
纵观人工智能领域发明过的吓人术语,从 Artificial Intelligence 到 Artificial General Intelligence,从 Machine Learning 到 Deep Learning,…… 我总结出这样一个规律:人工智能的研究者们特别喜欢制造吓人的名词,当人们对一个名词失去信心,他们就会提出一个不大一样的,新的名词,免得人们把对这个名词的失望,转移到新的研究上面。然而这些名词之间,终究是换汤不换药。因为没有人真的知道人的智能是什么,所以也就没有办法实现“人工智能”。
自动编程是不可能的
现在回到有些人最开头的提议,实现自动编程系统。我现在可以很简单的告诉你,那是不可能实现的。微软的 RobustFill 之类,全都是在扯淡。我对微软最近乘着 AI 热,各种煽风点火的做法,表示少许鄙视。不过微软的研究员也许知道这些东西的局限,只是国内小编在夸大它的功效吧。
你仔细看看他们举出的例子,就知道那是一个玩具问题。人给出少量例子,想要电脑完全正确的猜出他想做什么,那显然是不可能的。很简单的原因,例子不可能包含足够的信息,精确地表达人想要什么。最最简单的变换也许可以,然而只要多出那么一点点例外情况,你就完全没法猜出来他想干什么。就连人看到这些例子,都不知道另一个人想干什么,机器又如何知道?这根本就是想实现“读心术”。甚至人自己都可以是糊涂的,他根本不知道自己想干什么,机器又怎么猜得出来?所以这比读心术还要难!
所以这根本就不可能。对于如此弱智的问题,都不能 100% 正确的解决,遇到稍微有点逻辑的事情,就更没有希望了。论文最后还“高瞻远瞩”一下,提到要把这作法扩展到有“控制流”的情况,完全就是瞎扯。所以 RobustFill 所能做的,也就是让这种极其弱智的玩具问题,达到“接近 92% 的准确率”而已了。另外,这个 92% 是用什么标准算出来的,也很值得怀疑。
任何一个负责的程序语言专家都会告诉你,自动生成程序是根本不可能的事情。因为“读心术”是不可能实现的,所以要机器做事,人必须至少告诉机器自己“想要什么”,然而表达这个“想要什么”的难度,其实跟编程几乎是一样的。实际上程序员的工作,不就是告诉电脑自己想要它干什么吗?最困难的工作(数据结构,算法,数据库系统)已经被固化到了库代码里面,然而表达“想要干什么”这个任务,是永远无法自动完成的。
所以,程序员其实是一种不可被机器取代的工作。虽然好的编程工具可以让他们工作起来更加舒心,任何试图取代程序员工作,节省编程劳力开销,克扣程序员待遇,试图把他们变成“可替换原件”的做法(比如 Agile),最终都会倒戈,使得雇主收到适得其反的后果。同样的原理也适用于其它创造性的工作:厨师,发型师,画家,……
傻机器的价值
既然我决定不蹚人工智能这摊浑水,那我要怎么创业呢?很简单,我觉得人其实不需要很“智能”的机器,而“傻机器”才是对人最有价值的。比如,有些公司想研制“机器佣人”,可以自动打扫卫生做家务。我觉得这问题几乎不可能解决,还不如直接请真正智能的——阿姨来帮忙。给她配备更好的工具和通信设施,让她工作不累又方便,让主人家也放心,那岂不是两全其美?哪里需要什么智能机器人,难度又高还不好用,还危害社会。
有许许多多对人有用的傻机器,在等待我们去发明。这些机器设计起来虽然需要灵机一动,然而实现起来难度却不高,给人带来便利,经济上见效也快。这些东西不对人的工作造成竞争,反而可能制造更多的就业机会,可以说是利国利民。利用人的智慧,加上机器的蛮力,让劳动人民又省力又能挣钱,才是最合理的发展方向。
所以设计新的,造福于人的傻机器,应该是我创业的目标。