从今天开始,连载几篇有关人工智能的文章,是我自己2017年写的科普文章。当时是AlphaGo横空出世,带起一波人工智能热潮,今天人们讨论的很多问题,例如“人工智能会不会取代人类”“人工智能时代该如何学习”等等,在当初已经被讨论了一轮。因此我当时写了一些科普文章和科幻小说,都是讲人工智能,收录在《人之彼岸》一书中出版。
七年过去了,ChatGPT和Sora再一次震惊世人,当初的讨论又一次被拿出来掀起热议。我回头看了一下,七年前的文章基本上全文都依然适用。如今的ChatGPT和Sora的原理和当初的AlphaGo方向一致,只是在数据量和算力上大大增加,以及如何寻求最优解的算法上用了更好的框架。对于普通人的科普,大致了解深度学习原理即可,Diffusion等求解算法有一点太深了,可以作为专业学习。
因此,我还是把七年前的文章贴出来,作为AI一般原理的科普和讨论。有很多观点是我的一家之言,供大家参考。
很远之后的人工智能,会变得像人一样吗?会像《西部世界》或是《机械姬》里面那样觉醒吗?会像《终结者》或者《黑客帝国》里面那样对抗人类吗?未来的人工智能会有什么行为?超级人工智能会实现吗?我们距离超级人工智能还有多远?
阿尔法狗是这一轮人工智能热的开端,也是这一波人工智能潮流中最具典型性的技术之集成。它的胜利是整体人工智能的希望,它的困难也是所有人工智能的瓶颈。
我想先谈一下阿尔法狗厉害在哪里,然后讲一下它目前面临的困难。以此出发,对整体人工智能的发展前景做一下展望。
我想从阿尔法狗向未来展望,我们距离超级人工智能的到来还有多远。即使我们谈论的是未来即将毁灭我们的坏智能,也需要认真对待生成它的步骤。把大象放进冰箱还需要三个步骤,我们连冰箱门在哪里还没找到,就谈论大象冻成冰棍的味道,未免太早了些。
故事从阿尔法狗开始。可能很多人还不了解阿尔法狗的重要性,觉得不就是会下围棋吗,怎么引起这么多轰动的议论?
它赢得围棋冠军是很厉害,但这不是最关键的。围棋毫无疑问是很需要智力的游戏——可能是人类最需要脑力的高级游戏——但如果只是一个围棋冠军,在世界范围内并不会引起这么大的热潮。它厉害的地方在于,它不仅能做围棋冠军。
历史上也有过机器战胜人类的轰动,深蓝战胜卡斯帕罗夫,沃森战胜人类智力竞赛冠军。当时也有过“机器就要统治人类”的惊呼,但过不了几年,声音又消失殆尽。于是吃瓜群众难免会问:这次难道有什么不一样?是不是又是“狼来了”的闹剧?
机器分成两大类,一类是:人类研究出一些方法和学问,教给机器,机器也能学会做;另一类是,把原始素材丢给机器,机器自己琢磨琢磨,自己找出了对的方法。前者是师傅说先放油、再放肉、最后放菜,徒弟跟着学,一盘菜就炒好了;后者是师傅丢给徒弟一堆材料,徒弟自己试来试去,最后自己发明了更好吃的菜。
如果只是跟着师傅做学徒,只学到师傅的招数,即便手脚麻利办事勤快,也不足为惧;但如果自己琢磨功夫,琢磨出来的功夫比师傅还厉害,发明了师傅都看不懂其招数,那岂非让大惊惧?
阿尔法狗就是这样的。人们并没有教它下棋的套路,只是丢给它以前的棋谱,让它自己观察,观察好了就自己跟自己对弈,最后再出来和高手过招。最终的结果就是它会下棋了,下的棋路与人类高手都不同,但人类下不过它。就好比把一个人丢在荒山野岭中,无人问津,出山的时候却成了绝世高手。
答案是,完全可以。这恰恰是关键所在。这一轮人工智能热潮之所以引起那么多人追逐,就是因为人们发现阿尔法狗所仰赖的学习算法,还能做很多很多别的事情。
下围棋只是首当其冲的例子,用同样的算法,稍加改造,就能学会金融投资、看合同、销售策略、写新闻。还有很多别的事情。在短短几年里,就已经有各个行业领域的人工智能诞生出来。
实际上机器学习并不是非常新的概念,从几十年前,人类就试图让机器自己学习事情,但受限于算法和当时的计算速度,机器学习的步子一直都不快。
阿尔法狗的算法叫“深度学习”,它的前身是“神经网络学习”,也是几十年前就诞生的算法,当时流行过一段时间,后来被一篇著名的论文打消了热度,再加之学习效果不算好,于是遭遇冷遇几十年。在与阿尔法狗的创始人相遇之前,“神经网络”并不是众望所归。
“神经网络”是一种“投票”算法,效仿大脑的神经网络建成。大脑的神经网络是这样工作的:一个神经细胞接收很多个神经细胞的信号输入,一个刺激信号相当于赞成票,一个抑制信号相当于反对票,如果某个细胞收到的赞成票和反对票合起来大于某一个门槛,就算是通过了,会有一个信号发出去到下一个神经细胞。一路赞成的刺激信号就这样一程程传递下去。神经网络算法是数字版脑神经网,用数字连接形成网,而其中的投票机制和大脑相似。它可以让信号在整个学习网络里传播,比单路信号分析复杂很多,也智能很多。
“深度学习”是什么呢?“深度学习”是“深度多层神经网络学习”的简称。深度是指层次多,一层套一层的神经网络,构成整个算法的深度。层与层之间的关系,大致是这样:每层神经网络分析的精细程度不同,底层分析细节,上层做出判断。将一个整体任务分解成无数细节,给一个输入,底层神经网络会分析基础细节,然后将分析结果传给上一层网络,上一层网络综合之后再将结果传给更上一层的网络,而顶层网络综合层层传来的结果,做出判断。例如,想读出一个字,底层网络会判断字里有没有横竖撇捺,上一层网络会判断字里有没有直角,再上一层网络判断是不是由左右两部分拼成一个字,诸如此类,最上层的网络根据层层结果认出这个字。这种多层判别本身是效仿真实人类的大脑,人类大脑就是由一层层神经网络组成,每一层网络识别信号,再将处理结果传递到上一层。人类皮层大脑的神经网络层次大约有六层。“深度学习”网络可以有上百层。
就是这样吗?仅仅把“神经网络”叠了多层,就从受人冷遇的小人物变成了江湖明星?故事有这么鸡汤吗?
当然不是这么简单。“深度学习”这次能焕发生机,也是生逢其时,有两阵不可忽略的东风送其上青云。
一阵东风是算力增强。计算机芯片的速度呈指数增长,价格一路下跌,由游戏应用发展壮大的GPU大大不充了从前CPU引擎的计算能力,让人工智能计算更强大。阿尔法狗战胜李世石的时候启用了1920个CPU和280个GPU阵列运算,一秒能自我对弈数百盘。
另一阵东风是大数据。事实上,这可能是这一轮人工智能热潮最重要的推动因素。人们赫然发现,原来不是算法的问题,而是以前用来训练的数据还远远不够多。这就好比让徒弟自学武功,却不给他足够多的对战机会。有了大数据,算法呈现的结果出现了惊人的进步,让人目瞪口呆。
于是,在算力和大数据的辅佐之下,升了级的“深度学习”算法如虎添翼,能够从海量数据中找到高超的战术规律,以人类无法看懂的方式战胜人类。
人们把很多很多大数据扔给机器,用多层神经网络进行“深度学习”,结果发现,机器在很多领域能力有了突飞猛进提高。图像识别的正确率赶上了正常人,语音识别也过关了,把科学文献作为数据,短时间就能学习几十万最新文献。金融、电力、能源、零售、法律,深度学习都能从大数据中学到优化的行为做法。人工智能的应用,能让这些领域变得高效、便捷自动化。除了“深度学习”,也还有其他算法,包括后面要提到的决策树、贝叶斯等等算法,各种算法的综合使用效果是最佳的。各种算法共同构成机器学习大家庭。
除了深度学习,阿尔法狗另一重武器叫做“强化学习”。“强化学习”是什么呢?简单点说,就是“无序尝试,定向鼓励”,就好比小朋友在屋里随机行动,走到数学教具旁边父母就说“好棒好棒”,后来小朋友就特别喜欢走到数学教具旁边(当然,这纯属假想的场景)。这种思维一点都不奇怪,在心理学中很早就已经应用到教学中,对大多数教学场景都有效果,尤其对一些发展迟缓的孩子做教学干预(但也有心理问题)。
最近我们都听说了新版本的阿尔法狗零,依靠自我对弈的强化学习,用3天时间战胜了老版本的所有阿尔法狗。这是很强大的方法。实际上,在阿尔法狗的最初版本中,自我对弈的时候也已经用到强化学习。随机尝试和正反馈能使得行为很快集中到特定的行为上。
那是运算速度的问题吗?如果芯片算力按照摩尔定律、指数增长一直持续,我们会不会很快达到智能的奇点?
我个人的观点是,不完全是运算速度的问题,即便运算速度持续翻倍,也还有一些阶梯的困难需要一个一个跨越。这些困难也许并不是永远不可能跨越,但至少不是目前的算法能简单跨越,而必须有新的算法或者理论突破(其实现在也有很多别的算法,我后面讨论)。
说到这里,闲聊两句。很多事物的发展,是阶梯状的。我们往往容易从一件事的成功,推测未来所有事成功,然而遇到了下一个挑战,仍然需要新的等待和突破。
人工智能这件事,人们的议论往往太过于now or never,要么认为目前已经条件成熟,只要算力增加,就能奇点来临;要么认为这都是痴人说梦,机器永远学不会人类的心智。但实际上更有可能的是,很远的未来有可能做到,但需要一个又一个翻越理论台阶。
从牛顿力学和工业时期,因为牛顿定律的强大,人们就认为自己解决了世界上所有问题,未来只需要算,就能把一切预测出来。那个时候就有哲学观认为人就是机械机器。但事情的实际发展是:牛顿定律解决不了所有事。二十世纪初的时候,人们把牛顿定律和电磁理论结合起来,相信人类物理学大厦已经完备,只剩下头顶上的“三朵小乌云”,然而正是这“三朵小乌云”,牵扯出了后面的量子力学和相对论,直到现在人们也没有算出全世界。未来呢?人类有可能完全揭晓宇宙的奥秘吗?有可能。但仍然有一个一个新的鸿沟。
与之类比,超级人工智能有可能成真吗?有可能。但不是立刻。技术上还有一个个困难台阶需要跨越。“深度学习”不是万能的,算力也不是唯一重要的因素。
阿尔法狗对一些人类觉得困难的问题觉得很简单,而对人类觉得简单的问题觉得困难。举一个很小的例子。这样一个问题,它就会觉得困难,难以回答:
如果是一个人,会如何回答?人会觉得这个问题太简单了啊,店员有可能会直接去追,因为要把店里的商品追回来;也有可能会打电话报警,因为自己不想冒险;或者告诉老板;或者喊路人帮忙。诸如此类。
这段话对于我们每个人类而言都是非常简单的,头脑中甚至一下子就能想到那种画面感。但对人工智能来说就是很难理解的。为什么?
当我们理解这段话,我们头脑中实际上是反应出很多背景信息,包括:1)他想喝酒;2)他没有付钱;3)酒摆在超市是一种商品;4)从超市拿东西需要付钱;5)他没有付钱就出门是违规的;6)他是想逃跑;7)超市店员有义务保护超市商品,不能允许这种事情发生。在所有这些背景信息支持下,我们可以一眼辩认出这个动作画面的情境。除了我们自然脑补的这些背景信息,也还是有一些小概率背景信息,有可能影响对情境的解读。也许这个人是店主,有急事出门,如果是店主,自然不用付钱,店员也不会见怪。等等。但可能性不大。任何一个情境的解读都需要大量常识作为背景信息。
常识包含我们习以为常的知识总和,包含我们对整个环境和经济系统的理解。这些理解都太平常,我们就称之为常识。人工智能目前还没有没有这些常识,它并不知道一瓶酒摆在超市里和公园里有什么差别,也不知道超市买东西的惯例流程。从语法上说,从超市拿酒和从公园拿酒都是合语法的表达,但我们知道,其中一个合理一个不合理。
你也许会说,这是因为机器缺少生活经验,输入经验就可以了。我们这一次当然可以给机器输入酒的涵义、超市的涵义、超市的购买规则、小偷的涵义、店员的职责,但好不容易输入了所有这些信。