译者序
作为一名在对话机器人领域有 10 余年工作经验的人工智能从业者,我能深切地感受到 ChatGPT 的出现带来的炙热。每天涌现出各种博客、新闻、产品,以及背后的论文、代码和模型,让人眼花缭乱。大语言模型等新技术一下子颠覆了很多以前的技术定势。我和许多人一样感到焦虑,新知识太多,无所适从。
然而,翻译这本书,给了我一次可以冷静思考的机会。对于新技术,只有了解其背后原理才能让人泰然处之。对于大语言模型等新技术,虽然我们也许无法全部掌握,但其背后的大部分基础内容在本书中都有所体现,只要认真阅读本书,推导公式,运行代码,学习各种生成模型的发展及其应用,就会让我们更加从容地了解和面对新技术。
ChatGPT 背后的 Tranformer 架构及其从 GPT-1、GPT-2 到 BERT、GPT-3等相关模型,都基于本书第 4 章所述的自动编码器和第 2 章所述的自回归模型发展而来。ChatGPT 及其他相关大语言模型主要集中在数据采集、数据规模和质量及模型参数扩展上,但其生成模型基础架构仍然基于本书所述,只是对语言模型进行了优化。
在图像生成领域,扩散模型(Diffusion Model)是隐变量模型的一种,是自动编码器的一种特殊实例,在本书第 4 章隐变量模型中有所涉及。扩散模型广泛应用于 DALL-E 2、Stable Diffusion、Imagen、Muse 和 Midjourney 等相关模型和产品中。
除了上述的文本生成图像或文本生成文本的生成模型,更多多模态应用正在如火如荼地发展,例如从文本到 3D 模型(Dreamfusion、Magic3D)、视频(Phenaki、Soundify)、语音(AudioLM、Whisper、Jukebox)、代码(CodeX、Alphacode),以及从图像生成文本的模型(Flamingo、VisualGPT)等。这些应用的技术基石都可以在本书中找到。
希望本书能为对人工智能生成领域感兴趣的学生、工程师和研究人员等读者提供帮助和指导。我要感谢本书原作者 Jakub 创作的优秀内容,在翻译过程收获颇多。还要感谢我的妻子和我两个可爱的孩子对我的支持,以及电子工业出版社的孙学瑛老师在翻译、审校和出版工作中的全力支持。最后,我要感谢所有在 AI 生成模型领域的研究者、分享者和实践者,是你们推动了这个领域的不断进步和发展。
王冠
2023 年 5 月 10 日
推荐序
过去十年,随着深度学习技术的进步,整个机器学习领域向前迈进了一大步。很多人工智能的细分领域,如计算机视觉、语音识别和自然语言处理等,都彻底改头换面,同时,机器人、无线通信、自然科学研究等领域也正在被深刻地影响着。
大部分的技术进步是在监督学习领域,即训练过程中有输入数据(比如一张图片)和与之对应的标注数据(比如一只猫)。在视觉场景中识别物体,或者在不同语言中互相翻译,深度神经网络已经展现出了强大的威力。然而,最大的困难是如何获取训练这些模型需要的标注,这个获取过程往往既耗时又昂贵,甚至可能是不道德乃至不可能实现的。这就是为什么我们越来越意识到无监督学习(或者自监督学习)方法的重要性。
无监督学习和人类学习知识的模式是一样的:一个小孩在长大的过程中,接触的关于世界的信息大部分都是未标注的,不会有人一直告诉他们所看到和听到的信息都是什么。人类需要在无监督的状态下学习世界的规律,即自己去从数据中寻找模式和结构。
世界本身给出的信息有很多结构可以学习。比如,在一幅图像中,每个像素都由 RGB 三种颜色的不同值组成,如果随机选择每个像素的 RGB 值,结果很有可能只是一张杂乱无章、毫无意义的“噪声”图,不会是现实世界中有意义的内容。这就意味着世界本身的信息是有结构的,是孩子们可以学习到的。
当然,孩子们不仅会观察世界,也会不断地与世界进行交互。孩子们在玩耍的时候,实际就在检测他们自己对物理定律、社会学和心理学的假设。当他们发现假设错误时,就会极有可能更新自己的模型,从而作出更好的假设或预测。可以相信,这种交互学习正是实现人类智慧的关键。这种学习方式和强化学习很类似:在强化学习中,机器针对象棋比赛等任务作出计划,然后观察胜负,再持续更新环境认知和行为决策的模型。
但是,让机器像孩子们一样自己在世界中游走,测试预测结果并主动获取自己的标注数据是不现实的。更现实的方法是使用大量数据进行无监督学习,这个领域最近愈发受人关注并有新的突破。我们去看看那些算法合成的逼真的人脸图像就可以感受得到。
无监督学习有很多种方法。本书主要介绍概率生成模型。这个子领域的一个目标是给输入数据估计一个概率模型。一旦有了这个模型,我们就可以从中采样出新的样本(比如那些并不存在的人脸图像)。
另一个目标是通过输入来学习抽象的表征。这一领域被称为表征学习。这种更高层次的表征能将输入数据自组织成“解构”的概念群,而这些概念可能是我们所熟悉的物体,比如车、小猫,以及它们之间的关系(小猫坐在车里)。这种解构具有清晰的直觉上的意义,但也很难被合适地定义。20 世纪 90 年代,人们更多谈论的是统计独立的隐变量。我们大脑的目标就是把那些强关联的像素表征变换为更有效和更少冗余的独立隐变量的表征,这样就可以压缩输入,使得大脑能用更少的能量处理更多的信息。
学习和压缩是紧密相关的。学习的过程需要有损压缩的数据,因为我们感兴趣的是知识的泛化能力而不是数据的存储。在数据集层面,机器学习本身就是把数据中一小部分的信息抽取为模型的参数,而不去考虑数据中与预测目标不相关的其他信息。
类似地,当人类看一幅图像的时候,相比于单一数据点,大脑更感兴趣的是图像中抽象的更高层次的概念,比如不同的物体之间的关系。大脑内部形成的模型使我们可以理解这些物体,想象如何操纵这些物体,以及可能带来的后果。能够从像素级别的信息集中抽象出能够用于预测的信息,并能以合适的方式表达出对实际应用有作用的信息,即表征,这就是智慧。
当然,我们日常生活中熟悉的那些物体并不是完全独立的。一只猫在追一只小鸟,两者就不再是统计性独立的了。因此,人们一直在试图定义解构。解构可以定义为变量的子空间,在变换输入数据时(即相对应的表征)可以有一些简单的变换特性;也可以是不同的变量,每个都可以独立控制,从而可以操纵所处环境;也可以是因果变量,激活一些特定的独立机制来描述周边环境,等等。
不需要标签来训练模型,最简单的方法是学习关于输入数据的概率生成模型(或者密度)。概率生成模型的领域有不少技术可以直接最大化生成模型对应数据的对数概率(或者对数概率的边界)。除了 VAE 和 GAN,本书还讨论了标准化流模型、自回归模型、基于能量的模型,以及最新的深度扩散模型。
不用训练生成模型也可以学习到一些表征,这些表征对很多下游的预测任务都会很有用。具体做法是将表征要完成的任务设计为并不需要标注数据就可以完成的任务。以时序数据为例,我们总可以通过在历史数据中设定时间点来训练模型去预测未来,比如预测一段数据是不是在另一些数据的左侧或右侧,或者一部电影是在正着播放还是倒着播放,或者用句子周围的词来预测中间的词。这种无监督学习方法被称为自监督学习。
很多方法都可以被认为是这种无监督学习的“辅助任务”,如一些概率生成模型。比如,变分自动编码器(VAE)就是用信息瓶颈来返回预测自己本身的模型输入;生成对抗网络(GAN)就是预测输入数据是真实的图像(原数据点)还是假的图像(生成图像);噪声对比估计就是在隐空间中预测输入数据的隐变量在时间或空间中是否相近。本书讨论了深度生成模型的最新进展。本书的特别之处在于,像孩子们通过搭积木去学习物理规律一样,本书读者可以通过代码来学习深度生成模型。本书作者在这个领域发表了大量论文,对该领域有深刻的认知。本书可以作为概率生成模型课程的教材。
这个领域的未来是什么?很明显可以看到,构建通用人工智能的关键是无监督学习。科学研究的圈子似乎分为两个阵营:“大模型阵营”认为我们需要更多数据和更强大的算力,将现有技术拓展到更大的模型来实现通用人工智能;另一个阵营认为我们需要新的理论和想法才能作出突破,比如离散符号的处理(推理能力)、因果关系的研究,以及如何将常识性知识嵌入模型中。
另一个重要的问题是,人们应该如何与这些模型交互:我们是否还能理解模型的推导逻辑,还是说我们已经放弃了可解释性?如果模型理解能力比我们自己还强,跟随算法推荐的人们比拒绝跟随的人们更成功,那么我们的生活会如何改变?如果像深度伪造(Deepfake)这样的技术产生出我们自己也无法辨别真假的信息,那么还有哪些信息是值得我们信任的?人类的社会体制还能在虚假信息中正常运作吗?我们能确定的是,这个领域现在很火爆,而本书可以作为一个非常好的敲门砖。但也要知道,我们掌握了这些技术,拥有了模型带来的强大能力,也
需要承担更多新的社会责任。这个领域的一切进展和应用都要谨慎推进。
Max Welling
前言
人工智能(Artificial Intelligence,AI)在我们的世界里无处不在:很多关于AI 的电影、新闻总是在关注 AI,CEO 们也一直在谈论 AI。最重要的是,我们日常生活也已经离不开 AI,我们的手机、电视、冰箱乃至吸尘器都已经演化为智能手机、智能电视、智能冰箱和扫地机器人。尽管从 20 世纪 50 年代开始,AI 就已经是一个单独学科,但直到现在,我们仍一边使用和依赖着 AI,一边却并不能完全理解或准确构建 AI。
长期以来,研究者们一直在试图创造出可以通过数据和知识的处理来模仿、理解和帮助人类的 AI 系统。在很多特定的情况和任务下,AI 无论在速度还是在准确度方面都已经大大超过人类。现在的 AI 系统不仅仅是去从生物学或者认知学意义上模仿人类行为,而是又快又准地作出决策,比如打扫房间时的导航过程或者提升影片图像的质量。
在这些任务中,概率论起到了关键性作用,因为有限的或者低质量的数据或是系统本身的限制让我们必须对不确定性作出量化。此外,深度学习在学习具有层次结构的数据表征方面已经崭露头角。深度学习的灵感来自生物学中的神经网络,但深度学习的设定和生物学意义上的神经元组织依然相差甚远。
无论如何,深度学习已将 AI 带到了一个全新的水平,在许多决策任务中表现出前所未有的优势。我们的下一步应该结合深度学习和概率论这两个范畴,去构建可以量化周边环境不确定性的强大 AI 系统。
本书是在讲什么
本书主要讲述如何将概率建模和深度学习结合起来去构建 AI 系统。这已经不只是传统意义上的预测建模,而是将监督学习与非监督学习结合在一起。这样构建的 AI 系统被称作深度生成模型,从生成的角度来理解周边世界。深度生成模型认为每一个发生的现象都是因为背后的生成过程,该过程定义了随机变量及其随机过程的联合分布,来描述不同事件是如何和以什么顺序发生的。称其为“深度”,是因为我们使用深度神经网络来参数化这个分布。深度生成模型有两个显著的特点:
首先,应用深度神经网络可以丰富而灵活地进行不同分布的参数化;
其次,使用概率论来对随机依赖进行正式化的建模,可以确保推导过程的严格性,防止可能的逻辑漏洞。
概率论还提供了一个统一的框架,使得似然函数在量化不确定性和定义目标函数中起着核心作用。
本书适合哪些读者
本书适合具备大学本科水平的微积分、线性代数、概率论知识,以及机器学习、深度学习、Python 和 PyTorch 或者其他深度学习框架基础知识的学生、工程师和研究人员阅读。
对深度生成模型感兴趣的不同背景的读者都会从本书受益,如有计算机科学、工程学、数据科学、物理学及生物信息学等相关背景的读者。
本书通过一些实际例子和代码来让读者了解基本概念,书中内容对应的完整代码开源在 GitHub 网站上面:
https://github.com/jmtomczak/intro_dgm.
本书的终极目标是希望勾画出深度生成模型的几种最重要的技术,最终让读者可以自己构建和实现新的模型。
本书结构
本书一共有 8 章,每一章都可以独立阅读,读者也可以根据自己的需求调整不同章节之间的阅读顺序。
第 1 章介绍了深度生成模型的基本概念和重要分类。
第 2 章、第 3 章和第 4 章讨论了对于边缘分布的建模。
第 5 章和第 6 章介绍了对于联合分布的建模。
第 7 章介绍了一类不能通过基于似然的目标函数学习的隐变量模型。
第 8 章指出深度生成模型还可以被应用于高速发展的神经压缩领域。
所有章节都附有帮助读者理解如何具体实现建模方法的代码。
参考文献中包含了本书内容的原始论文,为感兴趣的读者提供更多的阅读资料。
深度生成模型是一个宽泛的研究方向,本书不可能包含到所有相关的奇思妙想。如果不慎漏掉了一些研究文献,欢迎读者指正。
最后,我想要感谢我的太太 Ewelina,她在我写作本书的过程中给了我莫大的力量和帮助。我也感谢我父母对我一如既往的支持,以及帮我审校本书第一版本和代码的我的兄弟。
Jakub M. Tomczak
j***1 2023-09-08 19:24:08
生成模型的进展,很好的参考