CS5494 Week 1: Introduction to Generative AI & Perception Models
第一周:生成式人工智能与感知模型导论
1. 核心概念:生成模型与判别模型
Core Concept: Generative vs. Discriminative Models
这是本节课最重要的理论基础,理解它们的区别是入门的关键。
1. 判别模型 (Discriminative Models)
- 功能 (Function): 学习如何区分或预测。就像给作业打分的老师,看到一个输入(试卷),给出一个输出(分数)。
- Analogy: Like a teacher grading an exam. Given an input (exam paper), it produces an output (score).
- 数学表达 (Mathematical Form): 建模条件概率 $P(y|x)$。即给定输入 $x$(如一张照片),预测标签 $y$(如“猫”或“狗”)的概率。
- Math: Models the conditional probability $P(y|x)$. Given input $x$, predict the probability of label $y$.
- 局限 (Limitation): 它们无法创造新数据,只能对现有数据进行分类或回归。
2. 生成模型 (Generative Models)
- 功能 (Function): 学习数据的底层分布 (Underlying Distribution),从而能够创造出与训练数据相似但全新的数据。就像一个画家,看过很多猫之后,在一张白纸上画出一只从未存在过的猫。
- Analogy: Like an artist who, after seeing many cats, draws a new cat that never existed before on a blank piece of paper.
- 数学表达 (Mathematical Form): 建模联合概率分布 $P(x,y)$ 或数据本身的分布 $P(x)$。
- Math: Models the joint probability distribution $P(x,y)$ or the data distribution $P(x)$ itself.
- 核心目标 (Core Goal): 能够从学习到的分布中采样 (Sample),生成逼真的新样本(图像、文本、音频)。
2. 感知模型与表示学习
Perception Models & Representation Learning
课件中强调,为了做好生成(Generation),首先要解决感知(Perception)的问题。感知模型的核心就是表示学习。
什么是表示学习? (What is Representation Learning?)
- 定义: 将原始数据(Raw Data)转化为机器更容易理解和处理的形式(Feature/Embedding)。
- Definition: Converting raw data into a form (features/embeddings) that is easier for machines to understand and process.
- 过程: 从原始像素(Pixels)$\rightarrow$ 抽象特征(Abstraction)$\rightarrow$ 概念(Concepts)。
- Process: From raw pixels $\rightarrow$ Abstract features $\rightarrow$ High-level concepts.
- 重要性: 好的表示(Representation)能让模型“理解”数据的本质,而不仅仅是死记硬背。AlphaGo 的成功就归功于它能比人类更好地表示棋盘局势。
3. 深度神经网络的演进 (Deep Neural Networks Evolution)
From LeNet to Transformers
这部分回顾了深度学习过去十年的关键突破,正是这些技术让现在的 GenAI 成为可能。
A. 卷积神经网络 (CNNs) 的崛起
- LeNet (1989/1998): 引入了卷积 (Convolution) 和 池化 (Pooling) 的概念。利用权值共享(Weight Sharing)大大减少了参数量,适合处理图像。
- AlexNet (2012): 深度学习的爆发点。引入了 ReLU 激活函数(解决了梯度消失问题)和 Dropout,并使用了 GPU 加速训练。
- VGG (2014): 证明了**“越深越好” (Deeper is better)**。它用连续的 3x3 小卷积核代替了大卷积核,加深了网络结构。
B. 突破瓶颈:初始化与归一化 (Initialization & Normalization)
随着网络变深,训练变得极其困难(梯度爆炸或消失)。
- 初始化 (Initialization): Xavier 和 Kaiming Initialization 提供了科学的参数初始值设定方法,让信号能更稳定地在网络中传播。
- 批归一化 (Batch Normalization, BN): 强制将每一层的输入拉回到标准的分布。这被认为是训练深层网络的“神技”,大大加速了收敛。
C. 残差网络 (ResNet, 2015)
- 问题: 当网络非常深时(如 100 层),简单堆叠层数反而会导致性能下降(Degradation problem)。
- 解决方案: 引入 Shortcut Connection (跳跃连接),让数据可以直接跨层传递。
- Mechanism: The network learns the residual (difference) $F(x)$ instead of the original mapping. Mathematically: $y = F(x) + x$.
- 意义: 使得训练成百上千层的网络成为可能,是现代大模型(包括 GPT 系列)的基石结构。
D. Transformer (2017) & ViT (2020)
- Transformer: 抛弃了循环(RNN)和卷积(CNN),完全依赖 Attention Mechanism (注意力机制)。每一个 token 都能看到所有其他 token,拥有全局上下文 (Global Context)。
- Vision Transformer (ViT): 将图像切成小块(Patches),像处理文字一样处理图像。这统一了视觉和语言的模型架构。
4. 生成模型的框架
Framework of Generative Models
课件最后总结了构建一个生成模型的五个关键要素:
- 形式化 (Formulation): 将问题定义为概率建模问题(如何描述 $P(x)$?)。
- 表示 (Representation): 使用深度神经网络(如 ResNet, Transformer)来拟合复杂的数据分布。
- 目标函数 (Objective Function): 定义“生成得好不好”的标准(Loss Function),衡量预测分布与真实分布的差异。
- 优化 (Optimization): 调整网络参数以最小化目标函数(通常使用反向传播)。
- 推断 (Inference): 训练好后,如何采样(Sampler)生成新数据?
5. 专有名词表 (Glossary)
| 中文术语 | English Term | 详细解释 / Detailed Explanation |
|---|---|---|
| 生成模型 | Generative Model | 学习数据分布 $P(x)$ 以生成新样本的模型。如 GPT, Stable Diffusion。 |
| 判别模型 | Discriminative Model | 学习条件概率 $P(y|x)$ 以分类或预测标签的模型。如垃圾邮件分类器。 |
| 表示学习 | Representation Learning | 自动从原始数据中提取有效特征的过程,将高维数据映射到低维、抽象的特征空间。 |
| 卷积神经网络 | CNN (Convolutional Neural Network) | 专门处理网格数据(如图像)的神经网络,利用卷积层提取局部特征。 |
| 残差学习 | Residual Learning | ResNet 的核心。通过引入“跳跃连接”,让网络学习残差(差异)而不是完整的映射,解决了深层网络的退化问题。 |
| 批归一化 | Batch Normalization (BN) | 在每一层网络的激活前对数据进行归一化处理,防止分布偏移,加速训练。 |
| 注意力机制 | Attention Mechanism | Transformer 的核心。允许模型在处理一个元素时,动态关注序列中的其他相关元素(无论距离多远)。 |
| 反向传播 | Backpropagation | 训练神经网络的核心算法。根据输出误差,反向计算梯度并更新网络参数。 |
| 概率分布 | Probability Distribution | 描述随机变量取值可能性的数学函数。生成模型本质上就是在拟合这个复杂的函数。 |
| 推断 | Inference | 模型训练完成后,利用模型进行预测或生成新数据的过程。 |
总结 (Summary)
这份课件的核心逻辑是:Generative AI 的本质是概率分布的建模,而为了通过机器学习好这个分布,我们需要强大的 Deep Learning 模型(如 ResNet, Transformer)作为支撑。 所以第一周花了很多时间复习深度学习的基础架构。
CS5494 Week 2: Basics of Probability Distributions
第二周:概率分布基础
1. 生成模型 vs. 判别模型 (进阶版)
Generative vs. Discriminative Models (Revisited)
上周讲了概念,这周从数学角度深入对比。
-
判别模型 (Discriminative Models):
- 目标 (Goal): 直接区分 $y$(标签)。建立 $x$ 到 $y$ 的映射。
- 数学 (Math): 建模条件概率 $P(y|x)$。
- 决策边界 (Decision Boundary): 它只关心怎么把两类数据分开,不关心数据长什么样。
- Analogy: Like learning a rule to distinguish cats from dogs without knowing how to draw them.
-
生成模型 (Generative Models):
- 目标 (Goal): 描述数据 $x$ 是如何生成的。
- 数学 (Math): 建模联合概率 $P(x, y)$ 或边缘概率 $P(x)$。
- 贝叶斯公式 (Bayes’ Rule): 生成模型可以通过贝叶斯公式转化为判别模型: $$P(y|x) = \frac{P(x|y)P(y)}{P(x)}$$
- 优势 (Advantage): 课件特别提到,生成模型在缺失数据 (Missing Data) 的情况下依然有效。因为它可以对未观察到的变量进行边缘化 (Marginalize),而判别模型必须依赖完整的 $x$。
2. 核心挑战:维数灾难
The Core Challenge: Curse of Dimensionality
这是本节课提出的最根本问题:为什么生成模型这么难做?
- 问题描述 (Problem): 假设我们要为一个简单的 $28 \times 28$ 黑白像素图像(如 MNIST 数字)建模联合分布。
- 每个像素有 2 种状态(0 或 1)。
- 总共有 $784$ 个像素。
- 那么这幅图可能的状态总数是 $2^{784}$。
- Concept: The number of possible configurations grows exponentially with the number of variables (pixels).
- 结论 (Conclusion): 我们不可能列出一张表来记录每一个可能图像的概率。所需的参数量远远超过了宇宙中原子的数量。
- 解决方案 (Solution): 我们必须引入假设 (Assumptions) 和 结构 (Structure) 来减少参数量。
3. 结构化模型:贝叶斯网络
Structured Models: Bayesian Networks
为了解决维数灾难,我们引入了“条件独立性”假设。
A. 链式法则 (The Chain Rule)
任何复杂的联合分布都可以分解为条件概率的乘积: $$P(x_1, x_2, x_3, x_4) = P(x_1) P(x_2|x_1) P(x_3|x_1, x_2) P(x_4|x_1, x_2, x_3)$$
- 解释: 就像讲故事,后面的情节取决于前面的铺垫。
- 问题: 即使分解了,参数量并没有减少。最后几项依然非常复杂。
B. 条件独立性假设 (Conditional Independence Assumption)
这是贝叶斯网络的核心。我们假设:每个变量只依赖于它的少数几个“父节点”,而不是之前的所有变量。
- Key Idea: Variable $x_i$ is independent of its non-descendants given its parents.
C. 贝叶斯网络 (Bayesian Networks)
- 定义: 一个有向无环图 (DAG),其中节点代表变量,边代表依赖关系。
- 公式: $P(x_1, …, x_n) = \prod_{i=1}^{n} P(x_i | \text{Parents}(x_i))$
- 效果: 极大地减少了参数量。
- 全连接 (Fully Connected): 每个变量都依赖所有前序变量 $\rightarrow$ 参数爆炸。
- 稀疏连接 (Sparse): 每个变量只依赖 1-2 个父节点 $\rightarrow$ 参数可控。
D. 经典案例:朴素贝叶斯 (Naive Bayes)
- 这是贝叶斯网络的一个极端特例。
- 假设: 给定类别 $y$ 后,所有的特征 $x_i$ 都是相互独立的。
- Assumption: All features are independent given the class label.
- 局限: 这个假设太强了(现实中像素之间肯定有关联),所以它生成的图片通常全是噪点,效果不好。但它作为分类器效果还不错。
4. 神经模型:引入深度学习
Neural Models: Merging Probability with Deep Learning
传统的图模型(如贝叶斯网络)需要专家手工设计依赖关系图,这很难。现在的趋势是结合神经网络。
- 参数化 (Parameterization):
在贝叶斯网络中,我们需要用表格或简单函数来表示 $P(x_i | \text{Parents}(x_i))$。
在神经模型中,我们用一个神经网络来拟合这个条件概率函数。
- Mechanism: Use a neural network to output the probability distribution parameters.
- 非线性依赖 (Non-linear Dependence): 线性模型(如逻辑回归)假设变量间是线性关系。而神经网络通过激活函数(如 Sigmoid, ReLU)引入了非线性,能够捕捉更复杂的数据关系。 $$y = \sigma(Wx + b)$$
- 从图到网 (From Graphs to Nets): 我们可以重复堆叠神经层,构建深层网络。这实际上是在学习更复杂的、隐含的依赖结构,而不需要人工显式地画出每一条边。
5. 专有名词表 (Glossary)
| 中文术语 | English Term | 详细解释 / Detailed Explanation |
|---|---|---|
| 联合分布 | Joint Distribution | $P(x, y)$ 或 $P(x_1, …, x_n)$。描述所有变量同时取特定值的概率。这是生成模型的核心。 |
| 条件概率 | Conditional Probability | $P(A|B)$。在事件 B 发生的条件下,事件 A 发生的概率。 |
| 边缘化 | Marginalization | 通过对某些变量求和(或积分),从联合分布中得到子集变量分布的过程。常用于处理缺失数据。 |
| 维数灾难 | Curse of Dimensionality | 随着数据维度(特征数量)增加,数据空间呈指数级爆炸,导致数据变得极其稀疏,难以建模。 |
| 链式法则 | Chain Rule (Probability) | 概率论基本定理,允许将联合概率分解为一系列条件概率的乘积。 |
| 贝叶斯网络 | Bayesian Network | 一种概率图模型,使用有向无环图 (DAG) 来表示变量间的条件依赖关系。 |
| 条件独立 | Conditional Independence | 如果已知变量 Z,变量 X 和 Y 互不影响,则称 X 和 Y 关于 Z 条件独立。这是简化模型的关键。 |
| 朴素贝叶斯 | Naive Bayes | 一种简单的生成模型,假设特征之间相互独立。常作为基准模型 (Baseline)。 |
| 有向无环图 | DAG (Directed Acyclic Graph) | 贝叶斯网络的结构基础,图中的边是有方向的,且不存在闭环。 |
| 逻辑函数 | Logistic Function (Sigmoid) | $\sigma(z) = \frac{1}{1+e^{-z}}$。常用于神经网络中将输出压缩到 (0,1) 之间,表示概率。 |
总结 (Summary)
Week 2 告诉你:因为世界太复杂(维数灾难),我们不能蛮力记录所有可能性。 我们必须偷懒——要么假设变量之间没那么多关系(贝叶斯网络),要么用一个强大的黑盒(神经网络)去拟合这些关系。现代 GenAI 正是选择了后者。
CS5494 Week 3: Autoregressive Models
第三周:自回归模型
1. 核心定义:什么是自回归模型?
Core Definition: What are Autoregressive Models?
自回归模型是生成式 AI 中最主流的一派(GPT 中的 “G” 就是 Generative,实际上是 Autoregressive 的)。
-
基本思想 (Basic Idea): 将生成高维数据(如一张图或一段话)的任务,拆解为序列生成 (Sequential Generation) 任务。即:根据前面所有的内容,预测下一个内容。
- Concept: Decompose the task of generating high-dimensional data into a sequential generation task. Predict the next token based on all previous tokens.
-
数学基础:链式法则 (Mathematical Foundation: Chain Rule) 我们利用概率链式法则,将联合分布分解为条件概率的乘积,不引入任何独立性假设: $$P(x_1, …, x_n) = \prod_{i=1}^{n} P(x_i | x_1, …, x_{i-1})$$
- Explanation: $x_i$ depends on all previous variables $x_{<i}$. This is different from Naive Bayes (which assumes independence).
2. 全可见信念网络 (FVBN)
Fully Visible Belief Networks (FVBN)
这是一个理论模型,用来解释自回归过程的图结构。
- 结构 (Structure):
这是一个有向无环图 (DAG)。每一个节点 $x_i$ 都连接到它之前的所有节点 ($x_1$ 到 $x_{i-1}$)。
- Structure: Every node $x_i$ is connected to all its predecessors.
- 参数化 (Parameterization):
既然 $x_i$ 依赖于前面所有 $x$,我们需要一个函数来拟合这个关系:
$$P(x_i | x_{<i}) = f(x_{<i}; \theta)$$
- 线性方法: 使用逻辑回归 (Logistic Regression)。能力有限,处理不了复杂图片。
- 非线性方法: 使用神经网络 (Neural Networks),如 NADE (Neural Autoregressive Distribution Estimation)。NADE 通过共享权重的方法,用神经网络来预测像素的条件概率。
3. 循环神经网络 (RNN)
Recurrent Neural Networks (RNN)
当我们要处理序列数据 (Sequential Data)(如文本、音频),而不是固定大小的图片时,FVBN 这种固定结构的图就不够用了。我们需要 RNN。
-
核心机制:隐状态 (Core Mechanism: Hidden State) RNN 引入了一个“记忆单元”——隐状态 $h_t$。 $$h_t = \sigma(W x_t + U h_{t-1})$$
- $x_t$: 当前的输入(这个字)。
- $h_{t-1}$: 上一步的记忆(上文的意思)。
- $h_t$: 更新后的记忆(包含当前字和上文的意思)。
- Function: The hidden state acts as a summary of the entire history up to time $t$.
-
RNN 的致命弱点 (Issues with RNNs):
- 信息瓶颈 (Information Bottleneck): 所有的历史信息(哪怕是一本书)都必须被压缩进一个固定大小的向量 $h_t$ 中,导致信息丢失。
- 梯度消失 (Vanishing Gradients): 也就是“长时记忆遗忘”。模型很难记住很久以前出现的词。
- 无法并行 (Sequential Computation): 必须算完 $t-1$ 才能算 $t$,训练速度非常慢。
4. 革命性突破:Attention 与 Transformer
The Revolution: Attention & Transformer
这是本周课件的重中之重,也是现代 LLM 的基石。
A. 注意力机制 (Attention Mechanism)
为了解决 RNN “记不住”的问题,我们引入了 Attention。
- 原理 (Principle): 在预测下一个词时,模型不再只依赖那个被压缩的 $h_t$,而是可以直接“回头看” 原始输入序列中的每一个词,并根据相关性给予不同的权重。
- Analogy: Instead of reading the whole book and trying to summarize it in one sentence (RNN), you can flip back to any previous page to find the relevant information when needed.
B. Transformer 架构
Transformer 彻底抛弃了 RNN 的循环结构,完全基于 Attention。
- 自注意力 (Self-Attention):
序列中的每个词都会去“关注”序列中的其他所有词,计算它们之间的关联。
- Query (Q), Key (K), Value (V): 这是 Attention 的核心计算公式。 $$Attention(Q, K, V) = \text{softmax}(\frac{QK^T}{\sqrt{d_k}})V$$
- 掩码自注意力 (Masked Self-Attention):
- 关键点: 在训练生成模型时,我们不能让模型“偷看”到后面的答案。
- Explanation: We apply a mask (setting future positions to $-\infty$) so that when predicting position $t$, the model can only attend to positions $1$ to $t-1$. This preserves the autoregressive property.
- 优势 (Advantages):
- 并行计算 (Parallelization): 不用像 RNN 那样排队算,可以一次性输入整个句子,利用 GPU 疯狂加速。
- 全局视野 (Global Context):无论两个词距离多远,它们之间的交互距离都是 1(直接相连)。
5. 专有名词表 (Glossary)
| 中文术语 | English Term | 详细解释 / Detailed Explanation |
|---|---|---|
| 自回归模型 | Autoregressive Model | 根据之前的序列值来预测当前值的模型。比如根据前文预测下一个字。 |
| 链式法则 | Chain Rule | 概率论定理,允许将 $P(A, B, C)$ 分解为 $P(A)P(B|A)P(C|A,B)$。是自回归模型的数学基础。 |
| 全可见信念网络 | FVBN (Fully Visible Belief Network) | 一种概率图模型,每个变量都依赖于它之前的所有变量。 |
| 循环神经网络 | RNN (Recurrent Neural Network) | 专门处理序列数据的神经网络,具有“记忆”功能(隐状态),能捕捉时间依赖性。 |
| 梯度消失 | Vanishing Gradient | 深度网络(尤其是 RNN)训练中的常见问题,指反向传播时梯度变得极小,导致模型无法学习长距离依赖。 |
| 注意力机制 | Attention Mechanism | 允许模型在处理当前任务时,动态地关注输入序列中不同部分的技术。 |
| 自注意力 | Self-Attention | Attention 的一种变体,指一个序列内部的元素之间互相进行 Attention 计算,以捕捉序列内部的关联。 |
| 掩码 | Masking | 在 Transformer 训练中,通过遮挡未来的 Token,防止模型“作弊”(看到未来),从而强制模型学习预测下一个词。 |
| Transformer | Transformer | 由 Google 提出的基于 Attention 机制的深度学习模型架构,是 BERT、GPT 等现代大模型的基础。 |
总结 (Summary)
Week 3 的逻辑链条是: 我们要生成序列 $\rightarrow$ 最初用简单的统计方法 (N-gram) $\rightarrow$ 后来用 RNN (但有记忆瓶颈且慢) $\rightarrow$ 现在用 Transformer (通过 Attention 机制解决了记忆和速度问题)。
理解了 Masked Self-Attention,你就理解了 GPT (Generative Pre-trained Transformer) 为什么能像接龙一样一个个字地生成文本。
CS5494 Week 4: Large Language Models (Decoder-only Architecture)
第四周:大语言模型(仅解码器架构)
1. 宏观架构:Decoder-only 模型
Macro Architecture: Decoder-only Models
这是本周最重要的概念。原始的 Transformer (2017) 是 Encoder-Decoder 架构(用于翻译)。但后来的 GPT 系列(包括 Llama, DeepSeek)发现,做生成任务只需要Decoder。
- Decoder-only 的逻辑:
我们不需要把输入压缩成一个向量再解压(Encoder-Decoder),而是直接进行“接龙”。每一个 token 既是输入也是输出的一部分。
- Concept: Instead of encoding text into a vector and then decoding it, we treat the task as a continuous sequence generation.
- 结构 (Structure): 它是多个 Decoder Block 的堆叠(Stack)。每个 Block 包含两个核心组件:
- Masked Self-Attention (带掩码的自注意力)
- Feed Forward Neural Network (FFN/MLP) (前馈神经网络)
2. 预处理第一步:分词器 (Tokenizer)
Preprocessing Step 1: Tokenizer
模型看不懂单词,只能看懂数字。Tokenizer 的作用就是把文本切块并转化为数字 ID。
- 为什么不是按字符(Character)切?
- “apple”按字符切是 5 个 ID。序列太长,且单个字母没有语义。
- 为什么不是按单词(Word)切?
- 英语单词太多了(几十万个),词表(Vocabulary)会爆炸,且无法处理生僻词(OOV - Out of Vocabulary)。
- 最佳方案:子词分词 (Sub-word Tokenization)
- BPE (Byte Pair Encoding): 这是目前最主流的方法。它会统计语料中出现频率最高的“字符对”,把它们合并成一个新的 token。
- Mechanism: Frequently occurring character pairs are merged into a single token. e.g., “learning” might be split into “learn” + “ing”.
- 优势: 既控制了词表大小(通常 3万-10万),又能通过组合来表示任何词。
3. 预处理第二步:嵌入层 (Embedding)
Preprocessing Step 2: Embedding
把 Tokenizer 给出的数字 ID(例如 “cat” -> 4521)变成一个高维向量。
- 语义空间 (Semantic Space):
Embedding 将离散的 ID 映射到一个连续的向量空间。在这个空间里,语义相近的词距离更近。
- Example: Vector(“King”) - Vector(“Man”) + Vector(“Woman”) $\approx$ Vector(“Queen”).
- 查表 (Lookup Table): 本质上是一个巨大的矩阵,模型通过 ID 去在这个矩阵里查找对应的行。
4. 关键技术:位置编码 (Positional Embedding/Encoding)
Key Technique: Positional Embedding
这是 Transformer 架构中最天才但也最难理解的设计之一。
-
问题 (The Problem): Attention 机制本质上是“词袋模型”(Bag of Words)。它计算的是两两之间的关联,如果不加干预,“我爱你”和“你爱我”在 Attention 看来是一样的。模型不知道词的顺序。
- Concept: Attention is permutation invariant. It has no inherent notion of sequence order.
-
解决方案 (The Solution): 我们需要给每个 token 的向量里“加”一点信息,告诉模型它在第几个位置。 $$Input = TokenEmbedding + PositionalEmbedding$$
-
正弦/余弦位置编码 (Sinusoidal/Cosinusoidal PE): 课件中特别提到了这个经典方法(原始 Transformer 使用)。
- 原理: 使用不同频率的正弦和余弦波来表示位置。
- Reasoning: 就像时钟的指针,秒针转得快,分针转得慢。通过不同频率的波组合,可以唯一地标识每一个绝对位置。
- 公式: $PE_{(pos, 2i)} = \sin(pos / 10000^{2i/d_{model}})$
5. 核心机制:因果注意力 (Causal Attention)
Core Mechanism: Causal Attention (Masked Attention)
这是 GPT (Decoder-only) 和 BERT (Encoder-only) 的根本区别。
-
不能偷看未来 (No Peeking at the Future): 在做文本生成(自回归)时,当我们预测第 $t$ 个词,我们只能看到 $1$ 到 $t-1$ 个词。如果让模型看到了第 $t+1$ 个词,那就是作弊,训练出来的模型毫无用处。
-
掩码矩阵 (Mask Matrix): 我们在计算 Attention Score 时,人为地把“未来”位置的分数设为负无穷($-\infty$)。这样经过 Softmax 后,未来的权重就变成了 0。
- Visual: 这通常表现为一个下三角矩阵 (Lower Triangular Matrix)。
- Result:
Token 3can attend toToken 1, 2, 3, but NOTToken 4, 5.
6. 训练与推理 (Training vs. Inference)
Training Phase vs. Generation Phase
这两个阶段在操作上有显著区别,课件最后专门做了对比。
-
训练阶段 (Training): 并行 (Parallel)
- 我们已经拥有完整的句子(Ground Truth)。虽然我们要模拟“不能看未来”,但我们可以一次性把整句话输入进去,通过 Mask 矩阵并行计算所有位置的 Loss。这叫 Teacher Forcing。
- Advantage: Very fast, utilizes GPU parallelism.
-
生成/推理阶段 (Generation/Inference): 串行 (Sequential)
- 我们真的不知道下一个词是什么。只能生成一个词,把它加到输入里,再生成下一个。
- KV Cache: 为了加速,我们会把之前算过的 Key 和 Value 存起来,不用每次都重算以前的词。
7. 专有名词表 (Glossary)
| 中文术语 | English Term | 详细解释 / Detailed Explanation |
|---|---|---|
| 仅解码器架构 | Decoder-only Architecture | 像 GPT 这样的架构,去掉了 Transformer 的编码器,专注于自回归生成的结构。 |
| 分词器 | Tokenizer | 将文本分割成 Token(数字 ID)的组件。常见算法有 BPE (Byte Pair Encoding)。 |
| 嵌入 | Embedding | 将离散的 Token ID 转化为连续的高维向量,捕捉词义。 |
| 位置编码 | Positional Embedding (PE) | 注入到 Embedding 中的位置信息,使 Attention 机制能够识别词序。常见有 Sinusoidal PE。 |
| 因果注意力 | Causal Attention | 也叫 Masked Attention。通过掩码确保模型在预测当前词时,只能关注到之前的词,不能关注未来的词。 |
| 掩码 | Mask | 在 Attention 矩阵中将特定区域(如上三角区域)设为负无穷,以屏蔽信息。 |
| Teacher Forcing | Teacher Force | 训练时的一种策略,不管模型上一步预测得对不对,下一步输入都强制使用真实的正确答案。这允许并行训练。 |
| 自回归 | Autoregressive | 每一个输出都依赖于之前的输出。即 $P(x_t |
| 前馈神经网络 | FFN / MLP | Transformer Block 中的全连接层部分,负责处理和整合 Attention 提取的信息。 |
总结 (Summary)
Week 4 告诉你如何把之前的理论拼装成一个 ChatGPT:
- 用 Tokenizer 切碎文字。
- 用 Embedding 变成向量。
- 用 Positional Encoding 标记顺序。
- 进入 Decoder Block,利用 Causal Attention 确保只看历史不看未来。
- 层层堆叠,最后算出下一个词的概率。
CS5494 Week 5: Generative Adversarial Networks (GAN)
第五周:生成对抗网络
1. 核心直觉:对抗博弈
Core Intuition: The Adversarial Game
GAN (Goodfellow et al., 2014) 的核心思想不同于显式地去计算概率密度 $P(x)$(像 PixelRNN 或 GPT 那样),而是通过两个神经网络的对抗来隐式地学习分布。
-
比喻 (Analogy):
- 生成器 (Generator, G): 就像一个伪钞制造者 (Counterfeiter)。它的目标是制造出连警察都分不清真假的假钞。
- 判别器 (Discriminator, D): 就像警察 (Police)。它的目标是准确地鉴别出哪张是真钞,哪张是假钞。
- 过程: 随着博弈的进行,警察的眼力越来越好,造假者的技术也必须越来越高超。最终,造出来的假钞逼真到警察无法分辨(概率为 0.5)。
-
隐式密度估计 (Implicit Density Estimation): GAN 不会直接告诉你这张图出现的概率是多少,它只会给你生成这张图。
- Concept: GANs learn a mechanism to sample from the distribution without explicitly defining the probability density function.
2. 数学架构:极小极大博弈
Mathematical Architecture: Minimax Game
理解 GAN 的关键在于它的目标函数(Loss Function)。这是一个极小极大 (Minimax) 问题。
$$\min_G \max_D V(D, G) = \mathbb{E}{x \sim p{data}}[\log D(x)] + \mathbb{E}{z \sim p{z}}[\log(1 - D(G(z)))]$$
-
判别器 D 的视角 (Max D):
- 它想让 $\log D(x)$ 变大(把真图 $x$ 判为 1)。
- 它想让 $\log(1 - D(G(z)))$ 变大(把假图 $G(z)$ 判为 0)。
- Goal: Maximize the probability of correctly assigning labels to both real and fake examples.
-
生成器 G 的视角 (Min G):
- 它想让 $D(G(z))$ 接近 1,从而使 $\log(1 - D(G(z)))$ 变得极小(负无穷)。
- 即:骗过判别器。
- Goal: Minimize the probability that the discriminator is correct.
3. 理论痛点:为什么原始 GAN 很难训练?
Theoretical Pain Point: Why is Vanilla GAN Hard to Train?
课件花了很大篇幅讨论距离度量(Metric)的问题。这是理解 WGAN 的前置知识。
A. 传统的距离度量:KL 散度与 JS 散度
- KL 散度 (KL Divergence): 衡量两个分布 $P$ 和 $Q$ 的差异。它是不对称的。
- JS 散度 (Jensen-Shannon Divergence): KL 散度的对称版本。原始 GAN 的优化目标本质上是在最小化生成分布与真实分布之间的 JS 散度。
B. 梯度消失问题 (Vanishing Gradient Problem)
- 现象: 当生成器生成的图像很差,或者真实分布与生成分布没有重叠 (No Overlap) 时(在高维空间中这很常见),JS 散度是一个常数($\log 2$)。
- 后果: 常数的梯度是 0。这意味着生成器得不到任何反馈,不知道往哪个方向改才能变好。
- Explanation: If the real and fake distributions are disjoint, the JS divergence is constant. This causes vanishing gradients, meaning the generator learns nothing.
4. 解决方案:Wasserstein GAN (WGAN)
The Solution: Wasserstein GAN
为了解决梯度消失,我们引入了一种新的距离度量——推土机距离 (Earth-Mover Distance),即 Wasserstein Distance。
-
直观理解 (Intuition): 想象把“生成分布”看作一堆土,把“真实分布”看作一个坑。Wasserstein 距离就是把这堆土搬到那个坑里所需的最小工作量(距离 $\times$ 土量)。
- Analogy: The minimum cost to transport mass from one distribution to transform it into the other.
-
优势 (Advantages): 即使两个分布完全不重叠,Wasserstein 距离依然是一个平滑的数值(代表距离多远),而不是常数。这能提供持续的、有意义的梯度,指导生成器慢慢靠近真实分布。
- Benefit: Provides meaningful gradients even when distributions are disjoint, stabilizing training.
-
实现细节 (Implementation Detail): 为了计算 Wasserstein 距离,我们需要限制判别器(此时改叫 Critic)的能力,要求它满足 1-Lipschitz 连续性。在代码中通常通过权重剪裁 (Weight Clipping) 或 梯度惩罚 (Gradient Penalty, WGAN-GP) 来实现。
5. 进阶应用:CycleGAN
Advanced Application: CycleGAN
课件最后提到了 CycleGAN,这是解决无配对图像翻译 (Unpaired Image-to-Image Translation) 的神器。
- 场景: 你想把“马”变成“斑马”,但你没有同一匹马变成斑马前后的对比照。你只有一堆马的照片和一堆斑马的照片。
- 循环一致性损失 (Cycle Consistency Loss):
- 思路:如果我把马变成斑马,再把斑马变回马,它应该长得和原来一模一样。
- 公式:$F(G(x)) \approx x$
- Mechanism: Translating an image to the other domain and back should yield the original image. This constraint prevents mode collapse and ensures the content is preserved.
6. 专有名词表 (Glossary)
| 中文术语 | English Term | 详细解释 / Detailed Explanation |
|---|---|---|
| 生成对抗网络 | GAN (Generative Adversarial Network) | 由生成器和判别器组成的对抗式生成模型框架。 |
| 极小极大博弈 | Minimax Game | 博弈论术语。在 GAN 中指生成器试图最小化判别器的准确率,而判别器试图最大化自己的准确率。 |
| KL 散度 | KL Divergence | 衡量两个概率分布差异的非对称指标。 |
| JS 散度 | JS Divergence (Jensen-Shannon) | KL 散度的对称平滑版本。原始 GAN 实际上是在优化这个指标。 |
| 模式崩溃 | Mode Collapse | GAN 训练中的常见失败模式。生成器发现只能生成某一种特定的样本(如只生成同一张脸)就能骗过判别器,从而失去了多样性。 |
| Wasserstein 距离 | Wasserstein Distance (Earth-Mover) | 一种衡量分布距离的方法。相比 JS 散度,它在分布不重叠时也能提供有效的梯度,极大稳定了 GAN 的训练。 |
| 1-Lipschitz 连续 | 1-Lipschitz Continuity | 数学约束,要求函数的变化率不能超过某个常数(斜率不超过 1)。这是 WGAN 成立的必要条件。 |
| 循环一致性 | Cycle Consistency | CycleGAN 的核心概念。要求 $X \rightarrow Y \rightarrow X$ 的变换结果应还原为 $X$,保证了翻译过程中内容的保留。 |
| 隐式密度 | Implicit Density | 与显式定义 $P(x)$ 不同,模型不直接计算概率值,而是通过采样机制间接反映数据分布。 |
总结 (Summary)
Week 5 的核心教训是:虽然 GAN 生成的图片很逼真,但训练它非常困难(不稳定)。 为了让 GAN 听话,我们需要更高级的数学工具(Wasserstein 距离)来替代传统的概率度量(JS 散度),从而保证生成器在任何时候都能收到“改进方向”的信号。
CS5494 Week 6: Variational Autoencoder (VAE)
第六周:变分自编码器
1. 前置概念:自编码器 (Autoencoder, AE)
Precursor: Autoencoder
在讲 VAE 之前,课件先回顾了普通的自编码器。
- 结构 (Structure):
- Encoder (编码器): 把高维输入 $x$(如一张图)压缩成低维向量 $z$(Latent Code)。
- Decoder (解码器): 把 $z$ 还原回 $x$。
- Analogy: 就像把文件压缩成 zip (Encoder),再解压出来 (Decoder)。
- 瓶颈层 (Bottleneck):
- 中间的 $z$ 维度远小于 $x$(例如 784维 $\rightarrow$ 20维)。这迫使模型学会提取“精华”特征,而不是死记硬背。
- 局限性 (Limitation):
- 它不是生成模型。AE 学习到的潜在空间(Latent Space)是不连续的。如果你在两个训练过的 $z$ 之间随机取一个点,解码出来的可能是一堆乱码。它只能“复读”,不能“创造”。
2. 核心理论:潜变量模型与难解性
Latent Variable Models & Intractability
为了让模型能“创造”,我们需要引入概率。我们假设图片 $x$ 是由某个看不见的隐变量 $z$ 生成的。
- 生成过程 (Generation Process):
- 先从标准正态分布中采样一个 $z \sim \mathcal{N}(0, I)$。
- 通过神经网络生成 $x = g(z)$。
- 数学难题 (The Math Problem):
- 为了训练这个模型,我们需要最大化数据的对数似然 $\log P(x)$。
- 根据概率公式:$P(x) = \int P(x|z)P(z) dz$。
- 难点 (Hard Point): 这个积分极其难算 (Intractable)。因为 $z$ 的可能性无穷无尽,我们不可能遍历所有的 $z$ 来算出 $P(x)$。
- Concept: We cannot calculate the marginal likelihood because integrating over all possible latent variables is computationally impossible.
3. 解决方案:变分推断与 ELBO (重点/难点)
Solution: Variational Inference & ELBO
既然算不出真实的 $P(x)$,我们退而求其次,去寻找一个下界 (Lower Bound),只要把这个下界推得越高,真实的概率也就越高。
A. 变分推断 (Variational Inference)
我们无法知道真实的后验概率 $P(z|x)$(即:给定这张图,它对应的 $z$ 到底是多少?)。 所以,我们引入一个新的分布 $Q(z|x)$(由神经网络 Encoder 拟合)来近似真实的 $P(z|x)$。
B. ELBO (证据下界)
这是本周最核心的公式。通过数学推导(Jensen不等式),我们可以得出:
$$\log P(x) \ge \text{ELBO}$$
ELBO 的组成 (The Decomposition of ELBO): $$\text{ELBO} = \mathbb{E}{z \sim Q}[\log P(x|z)] - D{KL}(Q(z|x) || P(z))$$
这行公式对应了 VAE 的两个 Loss 部分,非常关键,请仔细看下面的深度解释。
4. VAE 的模型架构与损失函数
VAE Architecture & Loss Function
VAE 把上面的数学公式变成了具体的神经网络架构。
-
第一部分:重建损失 (Reconstruction Loss)
- 对应公式:$\mathbb{E}_{z \sim Q}[\log P(x|z)]$
- 含义: 就像普通的 Autoencoder 一样,要求解码出来的图 $\hat{x}$ 和原图 $x$ 越像越好。
- Intuition: Make sure the output looks like the input.
-
第二部分:正则化项 (KL Divergence Regularization) [⚠️难点]
- 对应公式:$D_{KL}(Q(z|x) || P(z))$
- 含义: 强迫 Encoder 输出的分布 $Q(z|x)$ 尽可能接近标准正态分布 $P(z) = \mathcal{N}(0, 1)$。
- 为什么要这么做? (Why?): 如果不加这一项,模型会“作弊”,它会把每个数据的 $z$ 记得离得远远的(互不重叠),退化成普通的 Autoencoder。 加上这一项,所有图片的 $z$ 都被迫挤在一个标准圆里。这样,$z$ 空间就变得连续了。你在这个圆里随便插值采样,都能生成一张像模像样的新图。
5. 实现细节:重参数化技巧 (Reparameterization Trick)
Implementation: The Reparameterization Trick
这是课件中提到“Variational parameters”时隐含的一个关键工程技巧,也是考试常考点。
- 问题: VAE 中需要进行采样 ($z \sim \mathcal{N}(\mu, \sigma^2)$)。由于“采样”这个操作是随机的,不可导,导致无法进行反向传播(Backpropagation)。
- 技巧: 我们把随机性转移到一个独立的变量 $\epsilon$ 上。 $$z = \mu + \sigma \odot \epsilon, \quad \text{where } \epsilon \sim \mathcal{N}(0, 1)$$
- 效果: 现在 $\mu$ 和 $\sigma$ 变成了确定性的参数,梯度可以直接传导给 Encoder,而随机性只在常数 $\epsilon$ 里。
6. 专有名词表 (Glossary)
| 中文术语 | English Term | 详细解释 / Detailed Explanation |
|---|---|---|
| 自编码器 | Autoencoder (AE) | 一种神经网络,旨在学习将输入压缩为低维编码,再将其重建回原始输入。 |
| 变分自编码器 | VAE (Variational Autoencoder) | 在 AE 基础上引入概率生成模型的概念,通过学习数据的潜在分布来生成新数据。 |
| 潜变量模型 | Latent Variable Model | 假设观测数据 $x$ 是由不可见的潜变量 $z$ 生成的概率模型。 |
| 变分推断 | Variational Inference | 用一个简单的分布 $Q$ 去近似难以计算的复杂后验分布 $P$ 的方法。 |
| 证据下界 | ELBO (Evidence Lower Bound) | 对数似然函数的一个下界。训练 VAE 的本质就是最大化 ELBO。 |
| KL 散度 | KL Divergence | 衡量两个概率分布之间差异的指标。在 VAE 中用于拉近 $Q(z|x)$ 和 $P(z)$ 的距离。 |
| 难解性 | Intractability | 指计算量过大(通常是指数级或无穷积分),无法在有限时间内精确算出结果。 |
| 重参数化技巧 | Reparameterization Trick | 将随机变量分解为确定性部分和随机噪声部分($z=\mu+\sigma\epsilon$),使采样过程变得可导。 |
| 后验分布 | Posterior Distribution | $P(z|x)$。即“看到这张图后,推断它的潜在特征是什么”。 |
| 先验分布 | Prior Distribution | $P(z)$。我们预先假设的潜变量分布,VAE 中通常假设为标准正态分布 $\mathcal{N}(0, 1)$。 |
总结 (Summary)
Week 6 告诉你:为了让神经网络具备创造力,我们不能让它死记硬背坐标(固定数值),而要让它学习范围(概率分布)。 VAE 通过 ELBO 将“生成难题”转化为了“优化难题”,并通过 KL 散度 保证了学习到的空间是平滑、连续的,从而能生成新的图片。
CS5494 Week 7: Diffusion Models (DDPM)
第七周:扩散模型 (DDPM)
1. 核心直觉:毁掉它,再复原它
Core Intuition: Destroy and Restore
扩散模型的灵感来源于非平衡热力学。想象一滴墨水滴入清水中,随着时间推移,墨水分子会扩散,直到整杯水变成均匀的浑浊颜色。
-
前向过程 (Forward Process / Diffusion):
- 就像墨水扩散。我们往一张清晰的图片上一步步加噪点。
- 最后(比如加了 1000 步后),图片变成了一张纯粹的、没有任何信息的高斯噪声 (Gaussian Noise)。
- Analogy: Slowly adding static to a TV screen until the image is gone.
-
反向过程 (Reverse Process / Denoising):
- 这是模型的任务。如果我们能学会**“时间倒流”**,从这一张纯噪声中,一步步把噪点拿掉,就能变回一张清晰的图。
- 因为是从纯噪声(随机数)开始“去噪”,每次生成的图都不一样,这就是生成的过程。
2. 前向过程:加噪 (The Forward Process)
Adding Noise systematically
这是一个固定的过程,不需要任何神经网络训练。我们规定好每一步加多少噪声(这叫 Noise Schedule,$\beta_t$)。
-
单步加噪: $$q(x_t | x_{t-1}) = \mathcal{N}(x_t; \sqrt{1-\beta_t}x_{t-1}, \beta_t I)$$
- 意思就是:现在的图 $x_t$ = 稍微暗一点的上一张图 $x_{t-1}$ + 一点点新的噪声。
-
任意步加噪 (The “Jump” Property): [重要考点] 我们不需要一步步算。数学上可以证明,我们可以直接算出第 $t$ 步的图 $x_t$ 长什么样(基于原图 $x_0$): $$x_t = \sqrt{\bar{\alpha}_t} x_0 + \sqrt{1 - \bar{\alpha}_t} \epsilon$$
- $\epsilon \sim \mathcal{N}(0, I)$ 是这一步的总噪声。
- $\bar{\alpha}_t$ 是一个随时间 $t$ 变小的系数(信号保留比例)。
- 直觉: $x_t$ 就是“原图”和“噪声”的加权混合。$t$ 越大,原图成分越少,噪声成分越多。
3. 反向过程:去噪 (The Reverse Process)
Denoising with Neural Networks
这是我们需要训练的部分。我们想求 $q(x_{t-1} | x_t)$,即:给定现在的脏图,它上一时刻长什么样? 但这个分布太复杂了,算不出来。
- 解决方案: 用神经网络 $p_\theta(x_{t-1} | x_t)$ 去拟合它。
- 假设: 当每一步加的噪声极小时,反向过程也可以近似为一个高斯分布: $$p_\theta(x_{t-1} | x_t) = \mathcal{N}(x_{t-1}; \mu_\theta(x_t, t), \Sigma_\theta(x_t, t))$$
- 任务: 神经网络只需要输入一张脏图 $x_t$ 和时间 $t$,然后预测出这个高斯分布的均值 $\mu_\theta$ 即可(方差通常设为固定值)。
4. 核心难点:训练目标是什么?
The Hard Part: What is the Loss Function?
这部分是课件中公式最多的地方,也是理解 DDPM (Denoising Diffusion Probabilistic Models) 的关键。
A. 为什么不能直接由 $x_t$ 推 $x_{t-1}$?
因为从 $x_t$ 回到 $x_{t-1}$ 有无数种可能,直接训很难收敛。 但是,如果我们知道原图 $x_0$,那么从 $x_t$ 推导 $x_{t-1}$ 就变得确定且简单了。 这就引出了扩散模型最天才的数学推导——后验分布 $q(x_{t-1} | x_t, x_0)$。
B. 简化的训练目标 (Simplified Loss) [⭐最重要结论]
虽然数学推导(ELBO)很复杂,但 Ho et al. (2020) 发现,训练扩散模型其实只需要做一件事: 预测噪声 (Predict the Noise)。
- 随机抽一张原图 $x_0$。
- 随机生成一个噪声 $\epsilon$。
- 把噪声加到图上得到 $x_t$(利用第2节的公式)。
- 把 $x_t$ 丢给神经网络,让它猜:“刚才加在这个图里的噪声 $\epsilon$ 长什么样?”
- Loss Function:
$$L_{simple} = || \epsilon - \epsilon_\theta(\underbrace{\sqrt{\bar{\alpha}_t} x_0 + \sqrt{1 - \bar{\alpha}t} \epsilon}{输入 x_t}, t) ||^2$$
- 即:真实噪声 $\epsilon$ 与预测噪声 $\epsilon_\theta$ 的均方误差 (MSE)。
总结: 扩散模型本质上就是一个**“猜噪声”的去噪自编码器 (Denoising Autoencoder)**。
5. 推理算法:怎么生成图片?
Inference: Sampling Algorithm
训练好模型(会猜噪声)后,我们怎么生成新图?
- 从纯噪声开始: $x_T \sim \mathcal{N}(0, I)$。
- 循环 $T$ 步 (例如 1000 步): 从 $T$ 倒数到 $1$。
- 计算当前步预测的噪声 $\epsilon_\theta(x_t, t)$。
- 去噪公式 (核心): $$x_{t-1} = \frac{1}{\sqrt{\alpha_t}} (x_t - \frac{1 - \alpha_t}{\sqrt{1 - \bar{\alpha}t}} \epsilon\theta(x_t, t)) + \sigma_t z$$
- 解释: 把预测出来的噪声从图里减掉一部分,然后再加回一点点随机噪声 $z$ (Langevin Dynamics)。
- Why add noise back? 为了保持生成的随机性和多样性,防止模型坍缩到单一结果。
- 结束: 得到 $x_0$,就是生成的精美图片。
6. 专有名词表 (Glossary)
| 中文术语 | English Term | 详细解释 / Detailed Explanation |
|---|---|---|
| 扩散模型 | Diffusion Model | 一类通过反转噪声扩散过程来生成数据的生成模型。 |
| DDPM | Denoising Diffusion Probabilistic Models | 2020年提出的经典扩散模型算法,证明了预测噪声等价于优化 ELBO。 |
| 前向过程 | Forward Process | 逐步向数据添加高斯噪声直到其变为纯噪声的过程。$q(x_t|x_{t-1})$。 |
| 反向过程 | Reverse Process | 逐步去除噪声以恢复数据的过程。$p_\theta(x_{t-1}|x_t)$。 |
| 噪声调度 | Noise Schedule ($\beta_t$) | 控制每一步添加多少噪声的超参数。 |
| ELBO | Evidence Lower Bound | 变分推断中的证据下界。扩散模型的 Loss 本质上是在最大化 ELBO。 |
| 重参数化技巧 | Reparameterization Trick | 在扩散模型中指 $x_t = \sqrt{\bar{\alpha}_t}x_0 + \sqrt{1-\bar{\alpha}_t}\epsilon$,它允许我们将随机性剥离,直接对噪声进行求导。 |
| 马尔可夫链 | Markov Chain | 一个随机过程,其中未来的状态仅取决于当前状态(与过去无关)。扩散过程是一个马尔可夫链。 |
| U-Net | U-Net | 扩散模型中最常用的神经网络架构,形状像个 U,擅长处理图像的细节和整体特征。 |
| Langevin 动力学 | Langevin Dynamics | 一种物理过程,扩散模型的采样过程(去噪+加随机扰动)在数学上类似于 Langevin 动力学采样。 |
总结 (Summary)
Week 7 的核心逻辑是: 生成 = 去噪。 我们不需要像 GAN 那样用判别器去“逼”模型生成,也不需要像 VAE 那样把分布压缩到潜空间。 我们只需要教会神经网络一件事:看到一张全是噪点的图,请告诉我,刚才加进去的噪点长什么样? 只要它能把噪点预测出来,我们把它减掉,图就变清晰了。
CS5494 Week 8: AI Agent
第八周:人工智能智能体
1. 核心定义:什么是 AI Agent?
Core Definition: What is an AI Agent?
传统的 LLM (如 ChatGPT) 就像一个“大脑在缸中”,它什么都知道,但什么都做不了(除了说话)。AI Agent 就是给这个大脑装上了手脚(工具)和长期记忆。
-
公式 (The Formula): $$Agent = LLM + Planning + Memory + Tools$$ [cite_start][cite: 3]
-
区别 (Difference):
- Generative AI (Chatbot):
- 模式: 输入 Prompt $\rightarrow$ 输出文字/图片。
- 特点: Reactive (被动反应)。你不问,它不说。
- Analogy: Like a library. [cite_start]It contains knowledge but sits still until you open a book. [cite: 53]
- AI Agent:
- 模式: 设定目标 Goal $\rightarrow$ 自主规划 $\rightarrow$ 使用工具 $\rightarrow$ 完成任务。
- 特点: Proactive (主动)。它可以为了一个目标进行多步操作。
- Analogy: Like a personal assistant. [cite_start]You say “plan a trip,” and it books flights, hotels, and restaurants on its own. [cite: 54]
- Generative AI (Chatbot):
2. 核心能力一:规划与思考 (Planning & Reasoning)
Core Capability 1: How AI Thinks?
这是本课的难点。模型通过什么方式来“思考”下一步该做什么?
A. 观察-思考-行动循环 (Obs-Think-Act Loop)
Agent 不会直接跳到结论,而是经历一个循环:
- 观察 (Observation): 现在的状态是什么?(比如:棋盘现在长什么样?)
- 思考 (Thought): 基于观察,我该怎么做?
- [cite_start]行动 (Action): 执行操作(比如:下棋,或者搜索谷歌)。[cite: 3]
B. ReAct 框架 (Reasoning + Acting) [重点]
课件中隐含的 ReAct 概念是 Agent 的核心工作流。
- 原理: 要求 LLM 在执行动作之前,先显式地把思考过程 (Chain of Thought) 写出来。
- 例子:
- 用户: “马斯克现在的身价是多少?”
- Agent 思考: “我需要查最新的数据,因为我的训练数据可能过时了。” (Reasoning)
- Agent 行动:
Search("Elon Musk net worth today")(Acting) - Agent 观察: “搜索结果显示 2500亿美元。” (Observation)
- Agent 回答: “马斯克目前身价约2500亿美元。”
3. 核心能力二:工具使用 (Tool Use)
Core Capability 2: How AI Uses Tools?
LLM 本身无法联网,也不擅长精确数学运算。我们需要教它使用外部工具。
-
函数调用 (Function Calling):
- 原理: 我们不直接把工具给 LLM,而是给它一本说明书 (System Prompt)。
- [cite_start]Prompt 示例: “如果你遇到不懂的问题,你可以输出
<tool>Search(query)</tool>来使用搜索引擎。” [cite: 27] - 流程:
- LLM 输出一段特定的文本(如 XML 标签)。
- 系统拦截这段文本,去运行真正的 Python 代码或 API。
- 系统把运行结果(比如天气是 30度)塞回给 LLM。
- [cite_start]LLM 根据结果生成最终回答。 [cite: 29, 33, 34]
-
自我判断 (Judgment):
- 难点: 工具不总是对的。Agent 需要具备批判性思维。
- Case: 如果天气 API 返回 “500°C”,LLM 不应直接复述,而应该判断 “这数据不合理,可能是工具出错了”。
- [cite_start]Concept: Internal Knowledge (自身常识) vs. External Knowledge (工具结果)。Agent 需要权衡这两者。 [cite: 49, 50, 52]
4. 核心能力三:记忆与经验 (Memory & Experience)
Core Capability 3: Adjusting Behavior via Experience
如果 Agent 每次任务结束就重置,它永远不会进步。它需要记忆。
- 短期记忆 (Short-term Memory): 上下文窗口 (Context Window),记录当前的对话历史。
- 长期记忆 (Long-term Memory):
- [cite_start]RAG (检索增强生成): 将过往的经验存入向量数据库 (Vector DB)。当遇到类似任务时,检索出相关的经验供 LLM 参考。 [cite: 15, 19]
- [cite_start]反思 (Reflection): Agent 在行动后,会生成一段“反思总结”,存入记忆。比如 “上次我直接搜索失败了,下次应该先拆解问题”。 [cite: 21]
5. 进阶概念:Agentic AI 与多智能体
Advanced Concept: Agentic AI Systems
这是从“单个员工”到“公司团队”的跨越。
- Agentic AI System: 不是单打独斗,而是多个 Agent 协作。
- [cite_start]工作流示例 (Youtube -> Rednote): [cite: 55]
- Agent 1 (听录员): 把视频转成文字。
- Agent 2 (标题党): 根据文字起一个吸引人的标题。
- Agent 3 (写手): 撰写正文。
- Agent 4 (编辑): 润色和排版。
- 优势: 术业有专攻,每个 Agent 只需要专注于一个小任务,整体效果更好。
6. 专有名词表 (Glossary)
| 中文术语 | English Term | 详细解释 / Detailed Explanation |
|---|---|---|
| 人工智能智能体 | AI Agent | 一个拥有感知、规划能力的系统,能使用工具自主完成目标。公式:LLM + 规划 + 记忆 + 工具。 |
| 被动反应 | Reactive | 传统的 GenAI 模式,只有收到指令才会有输出,不会主动发起行动。 |
| 函数调用 | Function Calling | 允许 LLM 输出特定格式的指令来触发外部代码(如查天气、搜网页)的技术。 |
| 检索增强生成 | RAG (Retrieval-Augmented Generation) | 结合了搜索(检索)和生成的技术。让 LLM 在回答前先去“翻书”(数据库),从而减少胡说八道。 |
| 思维链 | Chain of Thought (CoT) | 提示工程技术,引导模型一步步把逻辑写出来,能显著提升复杂推理任务的准确率。 |
| ReAct 框架 | ReAct (Reason+Act) | 一种通过交替进行“推理”和“行动”来解决任务的模式。是 Agent 的核心思考方式。 |
| 多智能体系统 | Multi-Agent System | 由多个扮演不同角色的 Agent 组成的系统,它们像人类团队一样协作完成复杂任务。 |
| 幻觉 | Hallucination | LLM 一本正经地胡说八道。通过使用工具(如搜索、计算器)可以有效减少幻觉。 |
总结 (Summary)
Week 8 的核心在于**“Action”**。 如果说前几周是教你造一个“全知全能的哲学家”(GenAI),这周就是教你把这个哲学家变成一个“能干活的打工人”(Agent)。 关键在于:
- 给它工具(Function Call)。
- 教它流程(ReAct Loop: 观察->思考->行动)。
- 给它记忆(RAG/Database),让它能从经验中学习。
CS5494 Week 9: 3D Vision & Generation
第九周:三维视觉与生成
1. 核心痛点:3D 表示的多样性
Core Pain Point: Diversity of 3D Representations
在 2D 中,我们只有一种标准格式:像素网格 (Pixel Grid)。但在 3D 中,没有统一的标准,我们需要根据任务选择不同的数据结构。
A. 显式表示 (Explicit Representations)
直接定义物体的几何形状。
-
体素 (Voxels):
- 定义: 3D 版的像素 (Volume Pixel)。就像《我的世界》(Minecraft) 里的方块。
- 优点: 规则结构,可以直接用 3D 卷积神经网络 (3D CNN) 处理。
- 缺点: 内存爆炸。分辨率每增加 1 倍,内存消耗增加 8 倍 ($O(N^3)$)。这就叫“维数灾难”。
-
点云 (Point Clouds):
- 定义: 一堆 $(x, y, z)$ 坐标点的集合。通常由激光雷达 (LiDAR) 采集。
- 特点: 无序性 (Unordered)。点的顺序不影响形状,这对神经网络是个挑战(后面会讲 PointNet)。
- 缺点: 没有表面信息,放大看全是洞。
-
网格 (Meshes):
- 定义: 由顶点 (Vertices)、边 (Edges) 和面 (Faces) 组成的集合。是游戏和电影工业的标准。
- 缺点: 拓扑结构复杂,神经网络很难直接生成(很难处理“这就多了一个洞”这种拓扑变化)。
B. 隐式表示 (Implicit Representations) [重点]
不直接存储点,而是存储一个数学函数。
- 思想: 定义一个函数 $f(x, y, z)$。
- SDF (Signed Distance Function): 函数返回该点距离物体表面的距离。负数在内部,正数在外部,0 就是表面。
- 优点: 分辨率无限,可以表示极其复杂的拓扑结构。
2. 核心架构:PointNet (处理点云)
Core Architecture: PointNet (Processing Point Clouds)
这是深度学习处理 3D 点云的开山之作。
- 难点: 点云是无序的。输入 $(Point A, Point B)$ 和 $(Point B, Point A)$ 应该代表同一个物体。普通的 CNN 或 RNN 对顺序敏感,无法处理。
- PointNet 的解决方案:
- 共享 MLP (Shared MLP): 对每一个点单独进行特征提取(映射到高维空间),每个点用的权重是一样的。
- 对称函数 (Symmetric Function): 使用 Max Pooling。不管输入的点顺序怎么变,取“最大值”这个操作得到的结果永远是一样的。
- Mechanism: Map each point individually to a higher dimension, then aggregate them using a symmetric operation (max pooling) to get a global feature vector.
3. 革命性技术:NeRF (神经辐射场)
Revolutionary Tech: NeRF (Neural Radiance Fields)
这是本周课件最硬核、也是现代 3D 生成的基石。它不仅是一种表示,更是一种渲染技术。
-
核心定义: NeRF 不是存网格,而是训练一个全连接神经网络 (MLP) 来隐式地存储场景。 $$F_\theta(x, y, z, \theta, \phi) \rightarrow (r, g, b, \sigma)$$
- 输入: 空间坐标 $(x, y, z)$ + 观看角度 $(\theta, \phi)$。
- 输出: 该点的颜色 $(r, g, b)$ + 密度 (Density $\sigma$)。
-
体渲染 (Volumetric Rendering): 怎么把这个神经网络变成一张图片?
- 光线投射 (Ray Marching): 从相机位置向屏幕的每个像素发射一条射线。
- 采样 (Sampling): 在这条射线上取很多采样点。
- 查询 (Query): 把每个采样点的坐标丢给 MLP,问它:“这里有什么颜色?密度多少?”
- 积分 (Integration): 根据密度把颜色累加起来。密度大的地方会遮挡后面的点。
- Analogy: 就像在雾中看东西。视线穿过雾气(累加颜色),直到被厚实的东西挡住。
-
优势: 生成的视图具有照片级真实感 (Photorealistic),且视点连续变化。
-
劣势: 渲染极慢(生成一张图要查询几百万次网络)。
4. 3D 生成:DreamFusion 与 SDS
3D Generation: DreamFusion & SDS
我们有很强的 2D 生成模型(如 Stable Diffusion),但没有很多 3D 数据来训练 3D 模型。怎么办? DreamFusion (2023) 提出了一种“借鸡生蛋”的方法。
- 核心逻辑: 用 2D 模型当“老师”,指导 3D 模型“画画”。
- 流程 (Process):
- 初始化一个随机的 NeRF(看起来像一团雾)。
- 渲染 (Render): 从某个角度拍一张这团雾的照片。
- 打分 (Critic): 把照片丢给 2D Diffusion Model (比如 Stable Diffusion),再加上文字提示(如 “一只红色的青蛙”)。
- SDS Loss (Score Distillation Sampling): 2D 模型会告诉 3D 模型:“这看起来不像青蛙,你应该把这里的像素变红一点”。(计算梯度)
- 更新 (Update): 根据建议修改 NeRF 的参数。
- 重复几千次,直到 3D 模型从各个角度看都像一只青蛙。
5. 专有名词表 (Glossary)
| 中文术语 | English Term | 详细解释 / Detailed Explanation |
|---|---|---|
| 体素 | Voxel (Volumetric Pixel) | 3D 空间中的规则网格单位,相当于 2D 图片中的像素。常用于医疗影像或简单的 3D 模型。 |
| 点云 | Point Cloud | 3D 空间中一组数据点 $(x,y,z)$ 的集合。由激光雷达扫描生成,数据稀疏且无序。 |
| 网格 | Mesh | 由多边形(通常是三角形)组成的 3D 物体表面表示法。由顶点、边和面构成。 |
| SDF | Signed Distance Function | 符号距离函数。一种隐式表示,记录空间中任意一点到最近物体表面的距离(内部为负,外部为正)。 |
| NeRF | NeRF (Neural Radiance Fields) | 神经辐射场。用神经网络来表示 3D 场景,通过输入坐标和视角输出颜色和密度,能渲染出极高保真的新视角图像。 |
| 体渲染 | Volumetric Rendering | 一种基于光线穿过介质(如烟雾、云层)的物理特性的图像生成技术。NeRF 使用它将 3D 密度场转化为 2D 图像。 |
| 光线投射 | Ray Casting / Marching | 图形学技术。从相机向屏幕像素发射光线,检测光线与物体的交互。 |
| PointNet | PointNet | 专门处理点云数据的神经网络架构,解决了点云无序性的问题。 |
| DreamFusion | DreamFusion | Google 提出的文本生成 3D 模型。它不需要 3D 训练数据,而是利用预训练的 2D 扩散模型来优化 3D 结构。 |
| SDS | Score Distillation Sampling | 分数蒸馏采样。DreamFusion 的核心算法,用于从 2D 扩散模型中提取梯度信息来更新 3D 参数。 |
总结 (Summary)
Week 9 的核心在于**“升维”**。
- 存数据: 既然存不下所有像素(体素太贵),我们就存点(点云),或者存皮(网格),或者最现代的方法——存函数 (NeRF)。
- 生成数据: 既然没有 3D 数据集,我们就用 2D 的 AI 去“监考” 3D 的 AI,让它凭空捏出一个 3D 模型 (DreamFusion)。
CS5494 Week 10: Large Foundation Models (VLM & VLA)
第十周:多模态基础模型与具身智能
1. 范式转变:从专用模型到基础模型
Paradigm Shift: From Specialized to Foundation Models
课件开篇首先强调了 AI 开发模式的根本性变化。
- 过去 (The Past): 为每个任务训练一个专用模型。
- 做分类训练一个 ResNet,做分割训练一个 U-Net,做翻译训练一个 LSTM。
- Analogy: 就像家里买了打蛋器、榨汁机、绞肉机,每个机器只能干一件事。
- 现在 (The Present): 基础模型 (Foundation Models)。
- 在大规模数据上预训练一个通用的模型(如 GPT-4, Gemini),然后通过微调 (Fine-tuning) 或提示 (Prompting) 适应各种下游任务。
- Analogy: 就像一个全能的大厨,你给他什么指令,他就能做什么菜。
2. 视觉-语言模型 (VLM): CLIP
Vision-Language Models (VLM): CLIP
CLIP (Contrastive Language-Image Pre-training) 是连接文字和图片最重要的桥梁。
- 核心思想 (Core Idea): CLIP 不再像传统分类模型那样预测固定的 1000 个类别(ImageNet),而是学习图片和文字描述之间的匹配关系。
- 训练方法:对比学习 (Contrastive Learning): [重点]
- 输入:一对对图片和对应的文字说明 (Image-Text Pairs)。
- 模型包含一个 Image Encoder 和一个 Text Encoder。
- 拉近 (Pull): 只有正确的图文对,它们生成的向量在空间中应该靠得很近。
- 推远 (Push): 错误的图文组合(比如“狗的图”配“猫的字”),向量应该互相排斥。
- Concept: Maximizing the cosine similarity for $N$ real pairs, while minimizing it for $N^2 - N$ incorrect pairings.
- 能力: Zero-shot Classification (零样本分类)。CLIP 不需要重新训练就能识别从未见过的物体,只要你告诉它那个物体的名字(文字)。
3. 让 LLM 看懂图: LLaVA
Making LLM See: LLaVA (Large Language-and-Vision Assistant)
CLIP 只能做匹配,不能像 ChatGPT 那样聊天。LLaVA 是通过视觉指令微调 (Visual Instruction Tuning) 把视觉能力嫁接到 LLM 上。
- 架构 (Architecture):
$$LLaVA = VisionEncoder + Projection + LLM$$
- Vision Encoder: 用 CLIP 把图片变成向量特征。
- Projection Layer (投影层): [难点]
- LLM 只能看懂文本向量空间,看不懂图片向量空间。
- 投影层就是一个“翻译官”(通常是个简单的 MLP),把图片特征映射到 LLM 的文本特征空间中。
- LLM: 也就是 Llama 或 Vicuna。对它来说,投影后的图片特征就像是一堆“外语单词”。
- 训练: 通过问答对(例如:“这张图里有什么?”-“有一只猫”)来训练,让 LLM 学会理解这些“视觉单词”的含义。
4. 视觉分割基座: SAM
Vision Foundation Model: SAM (Segment Anything Model)
SAM 是 Meta 发布的图像分割领域的“GPT”。
- 痛点: 以前做分割(把物体抠出来)需要针对特定物体训练,且标注数据极难。
- Promptable Segmentation (可提示分割):
SAM 不需要你告诉它具体的类别,你只需要给它一个提示 (Prompt):
- 点一下 (Point)
- 画个框 (Box)
- 写行字 (Text) 它就能把对应的物体抠出来。
- 意义: 解决了视觉任务中最繁琐的分割问题,成为各种高级视觉任务的预处理工具。
5. 具身智能: VLA 模型 (Robotic Foundation Models)
Embodied AI: Vision-Language-Action Models (VLA)
这是本节课最高阶的内容。我们不仅要 AI 看图说话 (VLM),还要它看图干活。
A. RT-1 (Robotic Transformer 1)
- 核心创新: 动作 Token 化 (Tokenizing Actions)。
- Transformer 本质上是预测下一个单词 (Token)。
- RT-1 把机器人的动作(手臂移动 x, y, z,夹爪开合)离散化成一个个数字 Token。
- 这样,控制机器人就变成了“文本生成”问题:输入是图片,输出是“动作单词”。
- Concept: Treating physical motor control as a sequence modeling problem, just like language.
B. RT-2: 互联网知识迁移 (Internet Knowledge Transfer)
- 问题: 机器人数据很少(很难让机器人实际抓 100 万次杯子),但互联网图片/文字数据很多。
- Co-training (联合训练): RT-2 把互联网上的 VQA 数据(看图问答)和机器人操作数据混在一起训练。
- 涌现能力 (Emergent Capabilities): [难点]
- 如果你教机器人“抓苹果”,它会抓苹果。
- 但如果你让它“抓那个灭绝的动物”(桌上有恐龙玩具和苹果),RT-1 会傻掉。
- RT-2 知道“恐龙是灭绝动物”(来自互联网知识),也知道“怎么抓东西”(来自机器人数据),所以它能推断出要去抓恐龙玩具。
- Takeaway: Semantic knowledge from the web is transferred to physical control.
C. RT-X / OpenVLA
- 跨形态 (Cross-Embodiment): 不同的机器人(有的单臂,有的双臂,有的长有的短)如何共用一个模型?
- 通过标准化动作空间,汇集全世界不同机器人的数据训练出一个通用的 VLA 模型。
6. 专有名词表 (Glossary)
| 中文术语 | English Term | 详细解释 / Detailed Explanation |
|---|---|---|
| 基础模型 | Foundation Model | 在海量数据上预训练的大规模模型,具有强大的泛化能力,可适应多种下游任务(如 GPT-4, Llama)。 |
| 多模态 | Multimodal | 指模型能同时处理多种媒体数据,如文本、图像、音频、视频等。 |
| 对比学习 | Contrastive Learning | CLIP 的核心训练方法。通过拉近正样本对(匹配的图文)、推远负样本对来学习特征表示。 |
| 零样本分类 | Zero-shot Classification | 模型无需针对特定类别进行微调,仅凭类别的语义描述就能识别样本的能力。 |
| 视觉指令微调 | Visual Instruction Tuning | LLaVA 的训练方法。将图像特征映射到语言空间,并通过指令-回复对来微调 LLM,使其具备多模态对话能力。 |
| 具身智能 | Embodied AI | 拥有物理实体(如机器人)的 AI,不仅能进行数字计算,还能与物理世界进行交互(感知+行动)。 |
| VLA 模型 | VLA (Vision-Language-Action) | 视觉-语言-动作模型。VLM 的进阶版,输出不仅是文本,还可以是机器人的控制指令。 |
| 动作 Token 化 | Action Tokenization | 将连续的机器人动作(如电压、角度、坐标)转化为离散的数字 Token,以便 Transformer 处理。 |
| 联合训练 | Co-training | 在 RT-2 中使用的方法,同时使用互联网图文数据和机器人操作数据进行训练,以实现知识迁移。 |
| 跨形态 | Cross-Embodiment | 指一个模型能够控制身体结构完全不同的多种机器人(如不同品牌、不同自由度的机械臂)。 |
总结 (Summary)
Week 10 告诉你 AI 的终极形态:
- CLIP 让电脑学会了把“图”和“字”对上号。
- LLaVA 让 LLM 长了眼睛,能看图说话。
- SAM 提供了像素级的精确视觉能力。
- RT-2 / VLA 把这一切装进了机器人的身体里,利用大模型学到的世界知识(语义),去指导物理世界的行动(操作)。 从“读万卷书”(LLM)到“行万里路”(VLA),这就是 AI 的未来。
...