专栏名称: Datawhale
一个专注于AI领域的开源组织,汇聚了众多顶尖院校和知名企业的优秀学习者,聚集了一群有开源精神和探索精神的团队成员。愿景-for the learner,和学习者一起成长。
目录
相关文章推荐
51好读  ›  专栏  ›  Datawhale

教授何恺明在MIT的最新讲座!

Datawhale  · 公众号  ·  · 2025-03-09 18:17

正文

Datawhale分享
MIT:何恺明,编译 Linguista

麻省理工学院施瓦茨曼计算学院(MIT Schwarzman College of Computing)举办的“拓展计算视野”系列讲座中,“深度学习日”邀请了麻省理工学院电气工程与计算机科学系副教授、计算机科学与人工智能实验室成员何恺明(Kaiming He)博士,就生成式模型(Generative Modeling)这一主题发表了精彩演讲。

何恺明博士首先介绍了生成式模型的概念及其广泛应用,包括文本生成、图像生成、视频生成(如Sora),以及在科学领域如蛋白质设计和天气预报中的应用。他强调了生成式模型与判别式模型的区别,并指出生成式模型的核心在于概率建模,即学习数据背后的潜在分布。

随后,何恺明博士深入探讨了深度学习在生成式模型中的作用,并介绍了当前主流的生成式模型方法,包括变分自编码器(VAE)、生成对抗网络(GAN)、自回归模型和扩散模型。他还特别强调了生成式模型作为“下一级抽象”的概念。最后,他通过多个实例,展示了如何将现实世界的问题(如自然语言对话、图像描述、机器人控制等)形式化为生成式模型,并强调了其广泛的适用性。 讲座深入浅出,为理解生成式模型提供了宝贵的视角。

视频地址: https://www.youtube.com/watch?v=2yJSoaGU2i4

纲要

生成式模型
├── 一、 介绍 (Introduction)
│   ├── 生成式模型 (Generative Modeling) 概述及其影响
│   ├── 生成式AI时代的应用举例 (ChatGPT, 文本生成图像/视频)
│   ├── 日常生活中的应用 (AI 辅助编程)
│   ├── 科学问题中的应用 (蛋白质设计, 天气预报)
│   └── 生成式模型的历史发展 (Photoshop 内容感知填充, 纹理合成)
├── 二、 什么是生成式模型?(What are Generative Models?)
│   ├── 生成式模型的特性
│   │   ├── 多种可能的预测
│   │   ├── 预测的合理性
│   │   ├── 分布外生成
│   │   └── 预测的复杂性
│   ├── 与判别式模型 (Discriminative Models) 的比较
│   └── 概率建模 (Probabilistic Modeling) 的重要性
├── 三、 深度学习与生成式模型 (Deep Learning and Generative Models)
│   ├── 深度学习是表示学习 (representation learning)
│   ├── 生成式模型中的深度学习
│   │   ├── 表示数据实例和概率分布
│   │   └── 分布之间的映射
│   └── 深度生成模型的要素
│       ├── 问题形式化
│       ├── 表示 (Representations)
│       ├── 目标函数 (Objective Functions)
│       ├── 优化器 (Optimizer)
│       └── 推理算法 (Inference Algorithm)
├── 四、 现代生成式模型方法 (Modern Approaches to Generative Models)
│   ├── 生成式模型为什么难?
│   │   ├── 无监督学习 (Unsupervised Learning)
│   │   └── 分布映射
│   └── 主要方法介绍
│       ├── 变分自编码器 (Variational Autoencoders, VAE)
│       ├── 生成对抗网络 (Generative Adversarial Networks, GAN)
│       ├── 自回归模型 (Autoregressive Models)
│       ├── 扩散模型 (Diffusion Models)
│       └── 流匹配 (Flow Matching)
├── 五、 将生成式模型应用于现实世界问题 (Formulating Real World Problems into Generative Modeling)
│    ├── 条件分布 p(x|y) 的解释 (y: 条件, x: 数据)
│    └── 不同应用场景下的 x 和 y
│       ├── 自然语言对话 (chatbot)
│       ├── 文本到图像/视频生成
│       ├── 3D 生成
│       ├── 蛋白质生成
│       ├── 无条件图像生成
│       ├── 图像分类与开放词汇识别
│       ├── 图像描述 (Image Captioning)
│       └──机器人策略学习
├── 六、 总结 (Conclusion)
│    ├── 生成式模型以深度神经网络为构建块
│    ├── 生成式模型是下一级的抽象
│    └──未来的发展:更高级别模型的构建块
└── 七、 问答环节 (Q&A)
     ├── 关于分类任务中生成模型与判别模型的比较
     └── 关于 p(x|y) 的方向性和目标函数的问题

讲座实录

一、 介绍 (Introduction)

大家好!今天我将和大家聊聊生成式模型 (Generative Modeling)。在座的各位,有多少人用过 ChatGPT 或者类似的工具?(停顿,观察听众反应)可能每个人都用过,对吧?那么,在接触 ChatGPT 之前,有多少人听说过“生成式模型”这个术语?(停顿,观察听众反应)嗯,还是有不少人了解的。

在这次演讲中,我将对生成式模型做一个高度概括的介绍,并探讨它如何影响我们的生活以及未来的研究方向。

毫无疑问,我们正处在一个所谓的“生成式AI”时代。对公众而言,这个时代可能始于 ChatGPT 或其他聊天机器人的出现。我们可以用自然语言与计算机交流,提出各种问题,它就像一个助手,帮助我们解决各种问题。但这并不是唯一的生成式AI模型。

另一个非常流行且强大的工具是“文本到图像生成”。用户可以给计算机一段文本,通常称为“提示词”(prompt),然后计算机会生成一张图片。例如……(切换幻灯片,展示“一只泰迪熊在黑板前讲授生成式模型”的图片)我希望这能正常工作……(调试设备)……抱歉,出了点小问题。

好,回到正题。例如,在这个例子中,提示词是“一只泰迪熊在黑板前讲授生成式模型”。计算机算法很可能以前从未见过这张确切的图像,但这就是它如何根据给定的文本提示生成图像的。

我们甚至可以更进一步,要求计算机算法生成一段视频。(播放 Sora 生成的纸飞机视频)这是由 Sora 在一年前生成的,非常令人印象深刻。我相信,可能没有哪个制片人会以这种方式拍摄视频,让这么多纸飞机在树林或森林上空飞翔。这完全是计算机算法想象出来的。

实际上,生成式模型可以成为我们日常生活中非常强大的生产力工具。例如,它仍然是一种聊天机器人,但它可以帮助我们编写代码。这是一个AI助手,它可以阅读你的代码,尝试修复代码中的问题,你可以直接用自然语言与助手交流,助手会将你的指令转换成代码。从某种意义上说,以前的编程语言可能是 C++、Python 或 Java,而下一代的编程语言可能就是英语,或者说人类的语言。

生成式模型的应用远不止计算机科学领域。实际上,它已经被用于许多科学问题中。例如,蛋白质设计与生成 (Protein Design and Generation)。我们的终极目标是设计或生成某种类型的蛋白质,来解决我们关心的问题,比如治愈某些非常危险或致命的疾病。这项工作被称为 RF diffusion,它实际上是今年诺贝尔奖得主工作的一部分。

还有许多其他的科学问题可以从生成式模型中受益。这是 DeepMind 几年前的一项工作,他们可以使用这个模型来预测未来几小时或几天的天气变化。对于经典算法来说,这是一个非常困难的问题,因为我们知道,天气或气候的变化是混沌的,很难精确预测。我们可能不想要那一时刻的确切物理状态,我们想要的是一些定性的行为,比如那一时刻是否下雨或刮风。从这个意义上说,生成式模型或深度学习可以为这个问题提供一个很好的解决方案。

实际上,在生成式模型最近进入我们的日常生活之前,它已经被开发和应用了几十年。有一个工具叫做 Patchmatch,或者在 Photoshop 软件中被称为“内容感知填充”(Content Aware Fill)。当我还是博士生的时候,这是一个非常令人印象深刻的工具,当时我研究的正是同一个问题。这里的场景是,你会得到一张照片,用户可以指定照片中的某个区域或结构,计算机算法会尝试根据用户的指令修复或编辑照片。

事实上,在那个时候,还没有深度学习。老实说,对于这个应用或这个算法,甚至没有机器学习。这是一个非常经典的计算算法,但在概念上,这也是一种生成式模型。这项生成式模型背后的技术,实际上可以追溯到更早的10年前。这是一种叫做纹理合成 (Texture Synthesis) 的算法,它的目标是,给你一个纹理示例,你希望将纹理扩展到更大的图像,或者将纹理粘贴到你关心的某个 3D 对象上。这里的想法非常简单,你只需根据已经合成的内容,逐像素地合成纹理。在今天的语境下,这实际上就是一个自回归模型 (autoregressive model)。

二、 什么是生成式模型?(What are Generative Models?)

这就是我接下来要讲的内容。我将快速介绍生成式模型的概念,然后介绍一些现代方法,如何使用当今的深度神经网络构建生成式模型,以及如何将现实世界的问题形式化为生成式模型。

首先,什么是生成式模型?事实证明,这是一个非常困难的问题,因为当生成式模型变得越来越强大时,生成式模型的范围也在不断变化。即使我将介绍一些生成式模型的经典定义,我只想说,也许今天,每一个问题都可以被形式化为一种生成式模型。

现在,让我们看看刚才介绍的应用场景。这些场景有什么共同点?例如,图像生成、视频生成和文本生成,实际上,对于一个输入,存在多个预测,或者从概念上讲,存在无限个预测。假设你希望计算机生成一张猫的图像,你会告诉计算机“这是一只猫,我想要一只猫”。从概念上讲,存在无限多种可能的猫。

生成式模型的另一个特性是,某些预测比其他预测更合理 (plausible)。例如,如果你想要一只猫,计算机可能会生成一只狮子,也可能生成一只狗。根据常识,在这种情况下,狮子比狗更合理,当然,猫比狮子更合理。

生成式模型还有一个非常有趣的特性,你的训练数据可能不包含精确的解决方案。正如我们所看到的,我相信计算机从未见过一只泰迪熊站在黑板前讲授生成式模型,同样,计算机也肯定没有见过这些在森林上空飞翔的纸飞机。这是一种“分布外”生成 (out-of-distribution generation)。计算机算法是在某些数据上训练的,但它们生成的内容可能超出了训练数据的分布。

此外,大多数情况下,生成式模型的预测可能比它们的输入更复杂、信息量更大,从概念上讲,维度也更高。例如,在文本到图像生成中,如果你希望计算机生成一只猫,这只是一个很短的词,而输出图像将有数百万像素,甚至更多。

所有这些特性使得生成式模型比一些经典的深度学习或识别问题困难得多。

在教科书中,这是生成式模型的正式定义。通常,当介绍生成式模型时,人们会将其与所谓的判别式模型 (Discriminative Models) 进行比较。什么是判别式模型?正如你在这次演讲中看到的,如果我们关心图像分类问题,你会得到一张图像,然后你要训练一个模型,例如一个神经网络,你希望神经网络输出一个标签,比如说“狗”。从概念上讲,在这个非常简单的场景中,我们可以将生成式模型想象成逆转这个过程。

在这种情况下,你会得到一个“狗”的标签,然后你希望训练一个模型,同样,这可以是一个神经网络,然后你希望输出图像,也就是 x。在这种情况下,会有许多可能的输出,许多可能的狗。输出的维度会更高,输出会是你以前从未见过的另一只狗。

从概念上讲,这是判别式模型和生成式模型的一种概率可视化。左边是判别式模型,有一些绿点,代表一个类别,还有一些橙点,代表另一个类别。判别式模型的目标是找到一个可以分离这两个类别的边界,这似乎更容易。从概念上讲,任务是找出这个条件概率分布,这意味着你会得到 x,比如一张图像,然后你想要估计 y 的概率,比如它是标签 0 还是标签 1。

相比之下,在生成式模型的上下文中,你仍然会得到相同的数据,相同的点。但这里的目标是估计这些点的概率分布。假设在这个类别中,对应于 y=1,你想要估计这个类别的条件概率分布。从概念上讲,在生成式模型中,我们关心的是概率建模 (Probabilistic Modeling)。这是生成式模型想要解决的关键问题,也是关键挑战。

你可能会想,为什么,为什么会有概率?为什么我们关心概率建模?实际上,在许多现实世界的问题中,我们可以假设存在一些潜在的分布。你也可以假设你的数据实际上是由一些非常复杂的世界模型 (world model) 生成的。

例如,如果我们关心人脸图像,我们可以将问题形式化为存在一些潜在因素 (latent factors),比如姿态、光照、尺度,实际上还有人脸的身份。这些是潜在因素,然后你假设这些潜在因素存在一些分布。这些潜在因素会被一个世界模型渲染,例如,你如何将一个 3D 对象投影到一个 2D 像素网格上。然后,这些潜在向量将被这个世界模型渲染,而你实际能观察到的只是一个 2D 网格。

这就是观察值 x。然后,你的 2D 网格会遵循一些非常复杂的分布,这些分布不能简单地用一些潜在分布来描述。这就是为什么我们关心概率建模,而生成式模型正试图揭示这些潜在向量,以逆转这个过程。

例如,假设我们有一些数据,假设我有一个狗的数据集,这意味着我有很多数据点,每个数据点对应一张狗的图像。从概念上讲,我们想象存在一个潜在的分布,可以对所有狗的分布进行建模。值得注意的是,这已经是你建模的一部分,因为你可以用许多不同的方式对潜在的世界生成器进行建模。即使我们经常假设存在这个潜在分布,这个分布也是建模的一部分。

然后,生成式模型的目标是学习一个神经网络,或者其他模型,来近似这个分布。假设这个红色分布是我们从神经网络中学到的,这里的目标是最小化数据分布和你估计的分布之间的距离。这仍然是一个非常困难的问题,有很多解决方案,但从概念上讲,几乎所有现有的生成式模型都可以用这种方式形式化,它们只是试图解决这个问题所暴露出的挑战。

从概念上讲,假设你的模型在这方面做得很好,那么你就可以开始从你估计的分布中进行采样 (sampling)。如果你的模型做得很好,这意味着当你从这个分布中采样时,你所做的在概念上类似于从原始数据分布中采样。在这种情况下,希望它会产生另一只你的算法从未见过的狗。

也有可能进行概率估计 (probability estimation)。也就是说,你的模型会得到另一张图像,比如说一只猫,然后你可以问模型,这张图像在原始数据分布下的可能性有多大。在这种情况下,如果原始数据分布是关于狗的,而输入图像是一只猫,那么希望它会产生一个较低的概率密度估计。

这就是我们如何使用概率建模来形式化生成式模型问题。


三、 深度学习与生成式模型 (Deep Learning and Generative Models)

正如你可以想象的那样,今天我们解决生成式模型最强大的工具是深度学习。Philip 已经对深度学习做了一个非常出色和快速的介绍。从概念上讲,简而言之,深度学习是表示学习 (representation learning)。

Philip 介绍的是学习表示数据,或者从概念上讲,表示数据实例的过程。这意味着你会得到数据,比如说图像,然后你想要将图像映射到标签。这是使用深度神经网络进行表示学习的一种方式。

在生成式模型中,实际上有另一种使用深度学习的方式,但仍然是为了表示学习的目标。也就是说,我们不仅要学习单个数据实例的表示,还要学习概率分布的表示。这是一个更复杂的问题,从概念上讲,它可以被视为学习另一种方式的映射。假设这里,输出是标签,比如说猫的标签或狗的标签,然后你想要将其映射回像素空间。

因此,正如你可以想象的那样,深度学习或深度神经网络是生成式模型的一个非常强大的工具。从概念上讲,当你将这个工具用于这个问题时,模型实际上同时扮演着这两个角色:首先,学习表示数据实例;其次,学习表示概率分布。

从概念上讲,这就是模型的样子。你的模型会得到一个非常简单的分布,例如,它可以是一个高斯分布,也可以是一个均匀分布,这无关紧要。在图像的情况下,这看起来就像一张完全嘈杂的图像。然后,目标是学习一个神经网络,使得它可以将嘈杂的图像映射到输出空间中的另一张图像。从概念上讲,如果你的模型可以做得很好,希望输出会是一张视觉上合理的图像,比如说,在这种情况下是一只狗。然后,你可以不断地从输入分布中采样噪声,希望神经网络会将所有内容转换成输出中有意义的图像。

从概念上讲,当你这样做时,实际上,你的神经网络正试图将一个简单的分布(例如这里的高斯分布)映射到另一个分布,从概念上讲,这是为了近似潜在的数据分布。从这个意义上说,生成式模型是分布之间的映射 (mapping between distributions),它不仅仅是一对数据点和一个标签之间的映射,它是从一个分布到另一个分布。

接下来的幻灯片会有一点技术性,也许我可以快速过一下。这些是深度生成模型的一些基本要素 (Fundamental Elements of a Deep Generative Model)。首先,你可能需要将现实世界的问题形式化为概率模型或生成式模型。这是我们设计算法最关键的部分之一。

在你完成之后,你需要一些表示 (Representations),今天,通常这是一个神经网络。你想要表示数据及其分布。然后,你需要引入一些目标函数 (Objective Functions) 来衡量两个分布之间的差异。然后,你需要一个优化器 (Optimizer),可以解决非常困难的优化问题。然后,你还需要一个推理算法 (Inference Algorithm),从概念上讲,这是一个采样器 (sampler),可以从潜在分布中采样。

今天,许多数学和理论研究都与这个列表中的一个或多个要素有关。我不打算深入细节,但接下来我将对生成式模型的一些现代方法和流行方法做一个非常高层次和快速的概述。我还将解释为什么生成式模型是一个难题。


四、 现代生成式模型方法 (Modern Approaches to Generative Models)

这是你刚刚看到的图。如你所见,这里的问题是,如果你的模型得到一张嘈杂的图像或嘈杂的输入,你希望它将噪声映射到输出图像。为什么这很难?回想一下,在 Philip 的演讲中,他谈到了监督学习的问题。在这种情况下,你会得到一张图像,以及该图像的标签,你有一对输入和输出。这是一个形式化非常好的监督学习问题,这个问题对于现代神经网络来说很容易解决。

但在生成式模型中,从概念上讲,这是一个无监督学习 (Unsupervised Learning) 问题。也就是说,你会得到一张图像,但从概念上讲,你不知道什么输入噪声会对应于那张图像。这种对应关系或配对问题也是你的底层算法应该尝试解决的问题。从这个意义上说,从概念上讲,这不仅仅是映射图像对或数据对,而是映射两个分布。你想要将一个简单的高斯分布映射到一个非常复杂的数据分布,这就是为什么生成式模型很难。







请到「今天看啥」查看全文