未来所有的智能算法,会不会都像无所不能的机器人——既能跟你插科打诨,给你在地图上指路,又能搞定厨房家务?还是说,我们的电子助手们会更像一个工具包,里面装满有各类特殊功用的小玩意——与其说是一个能聊能撩的大厨,不如说更像是一个装满工具的橱柜?同样是机器,面包机只负责烤面包一个任务。一个试图大包大揽的算法会陷入麻烦。下面是一个人工智能神经网络生成的食谱。
这种人工智能能够从例子中“学习”,它扫描了大概3万个各种类型的食谱,有汤、派和烤肉等等,然后再试着生成自己的原创食谱。结果,怎么说,有点“新颖”。摊鸡肉饭类型:奶酪/鸡蛋,沙拉,奶酪辅料:2磅心,去籽1杯碎薄荷或者树莓派1/2杯磨碎的卡特里玛1汤匙植物油1盐1胡椒2又1/2汤匙糖,糖混合去叶,搅拌至混合物粘稠,然后加蛋、糖、蜂蜜和葛缕子籽,低温烹饪。加入玉米糖浆,牛至,和迷迭香和白胡椒。
用奶油趁热盖住。烹饪,加入剩下的一茶匙烘焙粉和盐。用350华氏度烤2-1小时。趁热上菜。6人份。而如下是同一个算法生成的食谱,但是训练的数据不是所有的菜谱种类,而是只有蛋糕。
生成的食谱并不完美,但比上一个要正常许多了:胡萝卜蛋糕(维拉小姐)类型:蛋糕,酒精1包黄蛋糕原料3杯面粉1茶匙烘焙粉1又1/2茶匙烘焙苏打粉1/4茶匙盐1茶匙肉桂粉1茶匙姜粉1/2茶匙丁香粉1茶匙烘焙粉1/2茶匙盐1茶匙香草1鸡蛋,室温1杯糖1茶匙香草1杯碎胡桃将烤箱预热至350华氏度,9英寸脱底蛋糕模刷油烤蛋糕:高速打蛋直到粘稠变黄,在一旁静置。在另一个碗里打鸡蛋白直到打发。
快速把混合物倒进准备好的烤盘里,搅入黄油直到融化。在烤箱里烤40分钟,或者直到往中间插入木质牙签拔出时是干净的。在烤盘里冷却10分钟。拿出之后在铁丝盘上彻底冷却。把蛋糕彻底冷却。趁温吃。HereCto食谱(1989)来自 《加拿大厨房生活》16人份。当然,如果你仔细看步骤的话,它只给你烤了一层蛋黄(前面写那么多配料一样没加进去啊喂),但这还算是有进步了。为什么第二个菜谱就没有第一个那么离谱呢?
道理很简单,当 AI 被允许只处理一个限定范围之内的任务,那么需要它纳入考虑的因素就少了很多。它不用试图去搞清楚什么时候加巧克力、什么时候加土豆,什么时候烤,什么时候文火炖。如果说第一个算法试图成为一个魔法箱,里面既能煮饭,还能做冰淇淋和派,那么第二个算法只试图做一个烤面包机——只专注做一件事儿。用机器学习进行算法训练的开发者已经发现,造一个烤面包机比造魔法箱要可行许多。
这可能有点反直觉,因为西方科幻作品中样样都想要=什么都做不好的人工智能,通常会倾向于像《星球大战》里的C-3PO,或者《瓦力》里的同名主人公一样——这被称作“通用人工智能”(artificial general intelligence,AGI),这些自动装置能够像人类一样与周遭世界互动,处理各类任务。不过,许多公司很低调地——也很成功地——使用机器学习达到了有更多限制的目标。
这些算法里面有聊天机器人,它能够处理一些限定话题的对话,比如回应顾客关于电话账单的常见问题。还有的算法能预测顾客打进电话来是要聊什么问题,给人工接线员展示它所预测的选项。这些都是“专一人工智能”(artificial narrow intelligence)的例子——它们只有有限的一系列功能。
相比之下,Facebook最近弃用的聊天机器人“M”,想达成的目的就很多,处理旅馆预定、定戏院的票、安排鹦鹉展,等等,但却从来没有成功地完成这些目标。为什么有烤面包机水平的专一智能,没有瓦力水平的通用智能?因为,任何试图进行一般化处理的算法,都会在遭遇越来越多种截然不同的任务时,变得越来越糟糕。比如,有一个算法接受的训练是基于一段文字说明生成一幅图。
下图是它根据“这只鸟是黄色的,头部黑色,喙很短”生成的图片,当训练它的数据集里面只有鸟的图片的时候,它做得还不错(虽然头上长了个奇怪的角)。但当任务变成了生成“任何东西”——从停车标志,到船、牛和人——机器就难以应付了。下面这幅图是它生成的“一张女孩正在吃一大片披萨的图”。一个能够把一件事情干好的算法,和一个能把很多事情都干好的算法,二者竟然有这么大的差距,这不符合我们的思维习惯。
但我们现有的算法和大脑比起来思维能力还非常局限,而每一种新任务都会将有限的能力摊得更薄。想想一个烤面包机大小的机器吧:要让它能烤面包,那么可以在里面安上几个格子以及加热管,这很简单。但是这就没给别的东西留下什么空间。如果你想加上蒸米饭和做冰淇淋的功能,那么你至少需要拿走一个面包格子来腾出空间,而且它可能任何一个功能都做不好。想要让专一智能做更多事儿,程序员们也是有窍门的。
其中一个是迁移学习(transfer learning):在训练完算法去做一个特定任务之后,只需要经过简单的重新训练,它就能做一个不同但是紧密相关的工作。还是想要全能?办法是有的。迁移学习是机器学习中的一个重要概念。比如,用迁移学习去训练图像识别算法。一个算法学会了辨认动物,这意味着他们也习得了不少探测图像边缘和质地的技巧,这些技巧可以被应用在识别水果上。
但是,如果你要重新训练算法来识别水果,会有另外一个现象出现:灾难性遗忘(catastrophic forgetting)。这意味着它再也不记得怎么认动物了。另外一个现今算法领域常用的窍门是“模块化”(modularity)。与其开发一个能够解决任何问题的算法,未来的AI更有可能是一系列高度专业化工具的集成。
比如,有一个学会玩电子游戏《毁灭战士》(Doom)的人工智能,它有好几个分开的模块,专门处理视觉、操作和记忆方面的任务。此外,相互连接的模块能提供一定程度的冗余,以防其中一个出问题;另外还能提供一个投票机制,从好几个不同路线中选出处理某个问题的最佳方案。这可能也是检测并解决算法中疑难问题的方式。
搞清单个算法的决策过程通常很困难,但如果让好几个子算法合作进行决策,在出问题时,我们至少可以分别查看几个子算法的输出来确定问题所在。当我们展望遥远将来的人工智能的时候,或许瓦力和C-3PO并不是我们应该找的那种机器人。相反,我们应该想象类似于有很多个App的智能手机,或者放满小工具的橱柜。
在我们准备面对一个满是智能算法的世界的时候,我们该为此做计划的,不是那种能思考的、万用的,但却可能永远造不出来的魔箱做计划,而是极度专业的、烤面包机一样的智能。