曾加,生活是一个大型试验场,不要拘泥于局部最优解。 阅读原文 先抛结论:在我看来,之所以我们心目中的「机器人革命」迟迟没有到来,是因为人类对自身属性过于自信,以至于在发展的过程中,不知不觉地找错了方向,从而走了一些弯路。 最近有传言,《黑客帝国》要拍第四部了。作为非常经典的科幻电影,黑客帝国中机器人的形象也代表了很大一部分人对机器人的想象:有头、有五官、有四肢。除了脸上的器官有点奇怪,让人一眼就看出是机器人以外,其他特征和人相差无几。 《黑客帝国动画版》中的机器人形象 事实上,现在也有不少优秀的科技公司,把科研攻关的重点放在了「人形机器人」上。比如大名鼎鼎的 Boston Dynamics[1],在对「人形机器人」的探索中就取得了非常大的突破,之前就发布过它「跳跃障碍」和「后空翻」的视频,最近又发布了它「识别复杂地形」和「跑酷」的视频,让人非常惊叹。 Boston Dynamics 机器人演示视频https://www.zhihu.com/video/1157001311571660800 但不知道你有没有意识到,虽然说这些机器人在某些动作上达到甚至超越了人类平均水准(比如大部分人并不会后空翻),但在行为的流畅度和环境适应范围上,距离真正的人类还差距甚远。在惊叹于它飞速发展的同时,我们也应该清楚地意识到,它距离能和真正的人类「打架」还有相当大的距离。 为什么呢?因为这个机器人的构造,是在「模仿」人。因此,在制造机器人的过程中,花费精力最多的,其实不在其「智能」部分,而在其「模仿」部分。比如,为了能让它行动更像人类,人们在其机械构造和驱动方式上花费了大量的心思。 发现问题了吗?我们明明知道:在运输效率上,汽车不知道比人类高多少;在耐操性上,坦克不知道比人类高多少;在平衡性上,四肢动物不知道比人类高多少……但我们依然愿意,不考虑其性能,在「制造人形机器人」上花费了大量的精力,只是为了满足自身对「机器人」的梦想。 当然,现在的人类早就意识到了问题,所以很多「机器人」已经不再拘泥于人形:比如已经商业化很久的「扫地机器人」一般只是一个扁扁的圆柱体,再比如一两年前因为战胜人类顶尖围棋高手的「人工智能」 AlphaGo 根本就是一堆计算机,连力臂也要人来代劳……但纵观「人工智能」的发展史,人类确实因为一些执念犯了错误。 吴军博士[2]曾经在清华大学做过一次讲座,他提到,人工智能的发展主要分为三个阶段: 第一个阶段是 1966 年以前; 第二个阶段是 1970 年~ 2000 年; 第三个阶段是 2000 年至今。 按照计算机老祖宗Alan Turing[3] 的说法,「机器智能」是否存在一个测试方法,叫做「图灵测试」:假设在一面墙的后面有一个计算机和人,然后问他们一个问题,给出答案后判断不出是人的还是机器的时候,就说计算机有了和人一样的智能。 那怎么让机器拥有人的智能呢?在人工智能发展的第一个阶段,人类当时的想法,是让机器人学习人类。一开始人们认为,通过确切的文字和逻辑,就可以让机器拥有智能。 但人们很快发现了一个问题。1966 年的时候,知名计算机科学家 Marvin Minsky[4]举了一个生动形象的例子,说明了这个问题的存在。 Minsky 的难题 他说了两句话: The pen was in the box. The box was in the pen. 第一句话我们容易理解。第二句话改怎么理解呢?原来,pen 还有一个含义,是「围栏」。但是,你无法通过纯逻辑来判断这里的 pen 到底是钢笔还是围栏,我们依赖的,是「生活经验」。 因为他的名气,在美国自然基金会写了这样一篇报道后,基金会停止了对他的人工智能的支持。 人工智能的第二个阶段大约是 1970~2000 年,这是自然语言处理大师 Frederick Jelinek[5] 在 2000 年 IEEE ICASSP 的演讲中所提到的。Jelinek 是学通信出身,1972 年来到 IBM,当时要做一件事:让机器有智能,他们在想,什么能够证明机器有智能呢?一个方案是:首先,它要识别人类的声音;然后,把语言翻译成另一种可以被机器理解的语言;最后,再回答问题。 Jelinek 对人工智能一窍不通,于是就完全从一个新的方面思考这个问题:他把语言识别看做一个通信问题,通信有一个信源和一个信道,如果将信源和信道分别编码,只需解码即可知传递的内容;他认为语音识别也一样,假设脑子是一个信源,编出语言通过声道传播出来,用通信的方法,利用大量的样本数据,就可以对应到有确切含义的语言上去——因为它的准确度和样本的数量有很大的关系,因此这叫做「数据驱动」的方法。 至此,人类才逐渐发现,实现「机器智能」的关键,不在于模仿人类的语言逻辑,也不在于模仿人类说话内容——这些原本以为的突破口,都被证明是徒劳无功的,真正的突破口,在于「数字化」和「样本量」——收集足够多的数据样本,并迅速进行计算,然后响应。 然而,「收集大量数据」,在互联网时代到来以前,是一件非常困难的事情,「迅速计算大量数据」,在计算机性能不足够高的过去,也是一件很费时间的事情。 事实上,直到 2005 年左右,我们才能较为轻松地利用互联网收集大量样本;直到 2010 年左右,利用计算机进行复杂的大规模神经网络运算才逐渐突破运算速度上的瓶颈。同样地,直到最近几年,随着计算机系统生态的完善,机器人才逐渐开始「开源」,可以接收更多的「数据」作为「学习资料」了。 举个例子,国内的机器人独角兽优必选(UBTECH)就率先做出了一套 ROSA 机器人操作系统。作为「开放系统」,ROSA 通过「模块化设计」和「层次性架构」,在语音、视觉、运动及情绪控制、设备互动和调度等方面都实现了相对完善的功能,使得「服务机器人」拥有了表现力和生命感。ROSA (官网) 提供了丰富的接口,使得普通的程序员也可以用 Java 语言进行开发,用自己的方式来 DIY 机器的运动、表情和语言功能,让自己机器人成为某种意义上「独一无二」的机器人。 ROSA 基础架构(更多可参见官网) 当然,从目前的情况看,使用在机器人身上的类似于 ROSA 可编程接口还不够灵活,限制比较多,但毕竟算是「吃了第一只螃蟹」。 我之前已经提到,「机器智能」变得真正有机会形成大规模的突破,也不过是最近十几年的事情,而新事物的发展永远是快步小跑的,PC 时代有 Windows,移动互联网时代有 Android 和 iOS ,机器人时代会是什么,这是一个值得向往的未来。 阅读原文