ml_basics
" /ilm:2.1.0": tip(body) = { block( fill: rgb(" "), stroke: (left: 3pt + rgb(" ")), inset: 8pt, radius: (right: 4pt), width: 100%, body ) } warn(body) = { block( fill: rgb(" "), stroke: (left: 3pt + red), inset: 8pt, radius: (right: 4pt), width: 100%, body ) } formula(body) = { block( fill: luma(245), inset: (x: 12pt, y: 6pt), radius: 4pt, width: 100%, body ) } : ilm.with( title: [计算机视觉 & 深度学习 开卷考试速查手册 — ML 基础篇], authors: "Biscuit · Alkaid", date: datetime(year: 2026, month: 07, day: 05), abstract: [ 本文档包含《计算机视觉》课程中涉及的机器学习与深度学习基础内容,涵盖:ML 基础概念、回归与分类、正则化、贝叶斯决策、神经网络基础与激活函数、优化算法与反向传播、训练范式(监督/无监督/迁移/元学习等)、生成对抗网络(GAN)、生成模型(VAE/扩散模型)、视觉先验与损失函数、数据增强、深度学习框架与 PyTorch API 速查。适合开卷考试快速查阅。 ], chapter-pagebreak: false, ) = 人工智能、机器学习与深度学习 [1. 人工智能(AI):]通过计算机程序或机器来模拟、实现人类智能的技术和方法。 [2. 机器学习(ML):]在无需明确编程的情况下,赋予计算机学习能力的研究领域。它通过数据驱动来总结规律。 [3. 深度学习(DL):]基于 [深度神经网络]的学习方法。由较多的网络层组成,因高度非线性的结构而具备极强的函数拟合能力。 [4. 传统编程 vs 机器学习:] - 传统编程:Data + Program → 计算机 → Output - 机器学习:Data + Output → 计算机 → Program(自动从数据中总结规则) = 机器学习要素 [1. 模型:]从输入到输出的映射函数集合 F = {f(x; theta) | theta in RR^D} , theta 为可学习参数。 [2. 训练数据集:]监督学习中,给定带标签的数据集 cal(D) = {(x^((n)), y^((n)))} (n=1)^N 。 [3. 损失函数:] - 回归问题:均方误差(MSE) L(y, f(x; theta)) = 1/2 (y - f(x; theta))^2 - 分类问题:交叉熵损失 L(y, f(x; theta)) = -y^T log f(x; theta) = -sum (c=1)^C y c log f (c)(x; theta) [4. 优化算法:]通过梯度下降及变体更新参数,常用算法包括 SGD、AdaGrad、RMSProp、Adam 等。 = 机器学习基本任务 线性回归 模型形式: y = w 0 x + w 1 。优化目标是最小化平方误差: min w norm(X w - y)^2 。 多项式回归 理论基础:泰勒公式。任意函数都可以用多项式近似逼近。 模型形式: f(X) = b + sum w i^((1)) X i + sum w (i,j)^((2)) X i X j + dots (包含特征的高阶交互项)。 逻辑回归(二分类) 本质是将线性回归的输出通过 [Sigmoid 函数] 映射到 (0, 1) 区间,表示为样本属于某一类的概率。 [ Sigmoid 函数: sigma(z) = 1 / (1 + e^(-z)) ,其中 z = w^T x + b 决策规则: hat(y) = cases(1 "if" sigma(z) >= 0.5, 0 "otherwise") ] = 过拟合与正则化 欠拟合 vs 过拟合 - [欠拟合(Underfitting):]模型过于简单,训练集和测试集上的表现都较差。 - [过拟合(Overfitting):]模型过于复杂,将训练数据中的噪声也学进去了,训练集表现极好,但测试集表现很差(泛化能力弱)。 正则化(防止过拟合) 在原始损失函数上加入对模型权重 w 的惩罚项,限制权重大小。 - [L2 正则化(岭回归 Ridge Regression):] min w norm(X w - y)^2 + lambda norm(w)^2 。倾向于让权值接近于0但非0,使模型平滑。 - [L1 正则化(套索回归 Lasso Regression):] min w norm(X w - y)^2 + lambda norm(w) 1 。倾向于产生 [稀疏]的权重(许多权值变为0),常用于特征选择。 - [弹性回归(ElasticNet):]同时引入 L1 和 L2: min w norm(X w - y)^2 + lambda 1 norm(w) 1 + lambda 2 norm(w)^2 。 = 贝叶斯决策理论与参数估计 贝叶斯公式 [ P(w i | x) = (P(x | w i) P(w i)) / (P(x)) ] - [先验(Prior) P(w i) :]观察数据前,对标签分布的认知。 - [似然(Likelihood) P(x | w i) :]给定特定类别 w i ,观察到数据 x 的倾向性。 - [后验(Posterior) P(w i | x) :]观察到数据 x 后,对标签分布的修正认知。 - [证据(Evidence) P(x) :]数据本身的分布,在特定问题中通常固定。 最小错误率判别 判别准则:后验概率最大的类别即为预测类别。 [ w^ = "arg max" (w) P(w | x) = "arg max" (w) P(x | w) P(w) ] 忽略分母则等价于比较"似然 times 先验"。 最小平均风险判别 引入代价函数 lambda (i j) (将 w i 类误判为 w j 类的代价)。选择 [平均风险]最小的类别: [ gamma (j)(bold(x)) = sum (i=1)^c lambda (i j) P(w i | bold(x)) ] 极大似然估计(MLE) 目标:寻找参数 theta ,使得观测到给定数据集的 [概率最大]: "arg max" (w) P(x | w) 。 最大后验估计(MAP) 目标:寻找参数 theta ,使得在观测到数据的条件下, [后验概率最大]: "arg max" (w) P(w | x) = "arg max" (w) P(x | w) P(w) ( [MAP 比 MLE 多乘了一个先验项 P(w) ])。 () = 人工神经网络基础 神经网络与感知器 - 神经网络基本构成单元是 [神经元]:将输入 x i 与权重 w i 相乘并求和,再通过非线性激活函数 f 得到输出: [ y = f(sum i w i x i + b) = f(w^T x + b) ] - [感知器算法:]1957 年由 Rosenblatt 提出。是一个单层线性分类器。更新规则: [ w (t+1) = w t + eta (y - hat(y)) x ] 其中 eta 为学习率, y 为真实标签, hat(y) 为预测输出。 [感知器的局限性:] - 需要 [手工提取特征],极其依赖人工经验。 - 只能解决 [线性可分]问题。著名例子是 [XOR(异或)问题],单层感知器无法区分异或数据,直接导致第一次神经网络寒冬。 多层感知器(MLP)解决 XOR 问题 - [解决思路:]引入 [隐藏层]。通过增加网络层数,将原始输入空间通过非线性变换映射到新的、容易线性区分的高维特征空间。 - [结构:]输入层 → 隐藏层(含非线性激活函数) → 输出层。 [MLP 前向传播公式:] [ 隐藏层: h = f(W 1 x + b 1) 输出层: y = f(W 2 h + b 2) ] - 每层引入非线性激活函数 f ,使得网络能逼近任意复杂函数(万能逼近定理)。 = 激活函数 激活函数引入非线性,使神经网络能够逼近任意复杂函数。 [1. Sigmoid:] [ sigma(x) = 1 / (1 + e^(-x)) ] - 映射到 (0, 1) 。存在 [梯度消失]问题(饱和区导数趋近于 0)。 [2. tanh(双曲正切):] [ tanh(x) = (e^x - e^(-x)) / (e^x + e^(-x)) ] - 映射到 (-1, 1) ,输出以 0 为中心(优于 Sigmoid),但仍存在梯度消失。 [3. ReLU(Rectified Linear Unit):] [ "ReLU"(x) = max(0, x) ] - 计算极其高效,能有效缓解梯度消失问题。是目前最常用的激活函数。 - 缺点:存在 [神经元死亡]问题(输入小于 0 时,梯度为 0,神经元永远不会被激活)。 [4. ReLU 变体:] - [Leaky ReLU:] y = max(alpha x, x) ,其中 alpha = 0.01 。输入小于 0 时给予微小斜率。 - [PReLU:]斜率 alpha 作为可学习参数在训练中自动更新。 - [ELU:] f(x) = cases(x "if" x > 0, alpha(e^x - 1) "if" x <= 0) ,输出均值接近 0,收敛更快。 - [GELU:] "GELU"(x) = x Phi(x) ,其中 Phi(x) 为标准正态分布的 CDF,近似于 ReLU 的平滑版本,常用于 Transformer。 () = 优化算法:梯度下降与学习率 梯度下降法 [ w(k+1) = w(k) - eta(k) nabla J(w(k)) ] - 沿着损失函数 J(w) 的负梯度方向迭代更新参数。 - eta(k) 称为 [学习率(步长)],是影响收敛速度和稳定性的最关键超参数。 学习率问题 - [过小:]收敛极慢,需要大量迭代次数。 - [合适:]目标函数平稳、快速下降至最小值。 - [过大:]在最小值附近剧烈震荡,甚至 [发散](无法收敛)。 震荡效应 在损失函数的"峡谷"地形中,梯度下降容易在峡谷两壁间来回震荡,难以快速到达谷底。 常用优化器 - [SGD:]随机梯度下降。 g t = nabla (theta (t-1)) f(theta (t-1)) - [Momentum(动量法):]引入历史梯度累积项,抑制震荡。 m t = mu m (t-1) + g t - [AdaGrad / RMSprop:]根据参数梯度大小, [自适应调整各自的学习率]。适合稀疏梯度场景。 - [Adam:]结合 [动量法(一阶矩估计)]和 [RMSprop(二阶矩估计)]的优点。计算 m t, n t ,经偏差校正后更新: [ Delta theta t = -eta dot hat(m) t / (sqrt(hat(n) t) + epsilon) ] Adam 是目前深度学习中最常用的优化器之一。 停止策略 理论上梯度范数 norm(nabla f) <= epsilon 时可停止,但实践中通常通过 [验证集(Validation Set)]的性能表现来选择最佳模型参数。 反向传播(Backpropagation) 利用链式法则逐层计算梯度,更新网络参数: [ 链式法则: (partial L)/(partial w (i j)^(l)) = (partial L)/(partial a j^(l)) (partial a j^(l))/(partial z j^(l)) (partial z j^(l))/(partial w (i j)^(l)) 其中 a j^(l) 为第 l 层激活输出, z j^(l) = sum i w (i j)^(l) a i^(l-1) + b j^(l) ] Softmax + 交叉熵损失(多分类) [ Softmax: p c = e^(z c) / sum (j=1)^C e^(z j) 交叉熵损失: L = -sum (c=1)^C y c log p c Softmax + 交叉熵的梯度: (partial L)/(partial z c) = p c - y c (简洁形式,非常常用) ] = Lecture 06 核心速查(开卷考试直接抄用) [1. 贝叶斯公式:] P(w i | x) = P(x | w i) P(w i) / P(x) [2. MLE vs MAP:]MLE 最大化 P(x | w) ,MAP 最大化 P(x | w) P(w) 。 [3. 正则化对比:] - L2(岭回归): + lambda norm(w)^2 ,平滑 - L1(套索): + lambda norm(w) 1 ,稀疏(特征选择) [4. 激活函数:] - Sigmoid: sigma(x) = 1/(1+e^(-x)) ,有梯度消失 - tanh: tanh(x) = (e^x - e^(-x))/(e^x + e^(-x)) ,输出零中心 - ReLU: max(0, x) ,最常用,但有神经元死亡 - Leaky ReLU / PReLU / ELU / GELU:ReLU 改进变体 [5. 损失函数:] - MSE(回归): L = 1/2 (y - hat(y))^2 - 交叉熵(分类): L = -sum y c log p c - Softmax: p c = e^(z c) / sum e^(z j) ,梯度 partial L / partial z c = p c - y c [6. CNN 核心特性:]稀疏交互、参数共享、平移等变性 [7. 特征图尺寸:] W' = (W - K + 2P) / S + 1 [8. 池化:]最大池化 max / 平均池化 "mean",无参数,增大感受野 [9. 网络结构演化关键点:] - LeNet:奠基 - AlexNet:ReLU + Dropout + GPU - VGGNet: 3 times 3 小卷积堆叠 - GoogLeNet:Inception 模块 + 1 times 1 降维 - ResNet:残差学习( F(x) + x )解决退化 - DenseNet:密集连接,特征重用 - U-Net:编码器-解码器 + 跳跃连接,适合分割 [7. 常用优化器:]SGD → Momentum → AdaGrad / RMSprop → Adam(最常用) () = 神经网络典型训练范式 监督学习(Supervised Learning) 给定带标签数据集 cal(D) = {(x i, y i)} (i=1)^N ,最小化经验风险: [ L = 1/N sum (i=1)^N {ell}(f(x i), y i) ] 其中 ell 为损失函数(如交叉熵或均方误差)。 无监督学习(Unsupervised Learning) 仅在无标签数据 {x i} (i=1)^N 上训练。对比学习的 InfoNCE 损失: [ L "SSL" = -log (exp("sim"(bold(z) i, bold(z) j) / tau)) / (sum (k != i) exp("sim"(bold(z) i, bold(z) k) / tau)) ] 其中 "sim" 为相似度度量, tau 为温度系数。 半监督学习(Semi-Supervised Learning) 结合少量有标签数据 D l 和大量无标签数据 D u : [ L = L ("sup")(D l) + lambda L ("unsup")(D u) ] 弱监督学习(Weakly Supervised Learning) 标签不完全、不精确(仅粗粒度标签 hat(y) i ),损失加入约束项: [ L = 1/N sum (i=1)^N {ell}(f(x i), hat(y) i) + L "constraint" ] 主动学习(Active Learning) 从无标注池 cal(U) 中挑选对模型提升最大的样本: [ x^ = "arg max" (x in cal(U)) Q(x) ] (如选择模型置信度最低的样本进行人工标注) 多任务学习(Multi-Task Learning) 底层共享特征表示 phi(x) ,上层分支为各任务设计特定层: [ L "MTL" = sum (t=1)^T alpha t L (t)(W t^T phi(x), y^((t))) ] 其中 alpha t 为任务权重。 迁移学习(Transfer Learning) 从源域 D s 学习知识并迁移到目标域 D t ,使用源域预训练参数 theta s 初始化后微调: [ theta^ = "arg min" (theta) L (t)(theta; D t) quad "s.t." quad theta "初始化自" theta s ] 元学习(Meta-Learning / MAML) 训练元参数 theta ,使其能快速适应新任务。核心一步梯度更新目标: [ theta^ = "arg min" (theta) sum k L k^("test")(theta - alpha nabla L k^("train")(theta)) ] 其中 alpha 为快速适应阶段的学习率,元参数 theta 被优化为对大多数任务都容易微调的状态。 在线学习(Online Learning) 在时间步 t 收到新样本 (x t, y t) 后立即更新模型: [ theta (t+1) = theta t - eta t nabla {ell}(theta t, x t, y t) ] 增量学习 / 持续学习(Continual Learning) 在已有模型基础上学习新数据,防止灾难性遗忘: [ theta t = "arg min" (theta) [L ("new")(theta; D t) + lambda L ("old")(theta; M (1:t-1))] ] 其中 L "old" 为保留旧知识的损失(如知识蒸馏或记忆重放正则项)。 集成学习(Ensemble Learning) 组合 M 个基模型 h m 联合预测,常用简单平均(Bagging): [ f ("ens")(bold(x)) = 1/M sum (m=1)^M h (m)(bold(x)) ] 联邦学习(Federated Learning / FedAvg) 数据保留在客户端本地,服务器聚合各客户端模型更新: [ theta (t+1) = sum (k=1)^K n k/n theta (t+1)^((k)) ] 其中 K 为客户端数, n k 为客户端 k 的样本数, n 为全局总样本数。 对比学习(Contrastive Learning) 对正样本对拉近距离,负样本对推远距离。InfoNCE 损失: [ L "InfoNCE" = -sum i log (exp(bold(z) i dot bold(z) (i^+) / tau)) / (sum (j != i) exp(bold(z) i dot bold(z) j / tau)) ] 其中 bold(z) 为归一化特征向量, tau 为温度超参数。 课程学习(Curriculum Learning) 按从易到难的策略逐步引入样本: [ cal(D)^((t)) subset {bold(x) | d(bold(x)) <= epsilon t}, quad epsilon t "逐步增大" ] 其中 d(bold(x)) 为样本难度测度。 = 【补7】数据增强(Data Augmentation) [ [说明:]本章节为补充内容,PPT 中未涉及,但属于计算机视觉课程常见考点。 ] 数据增强通过人工扩增训练集多样性,缓解过拟合,提升模型泛化能力。 几何增强 - [随机裁剪(Random Crop)]与 [中心裁剪(Center Crop)]。 - 随机水平/垂直 [翻转(Flip)]。 - 随机 [旋转(Rotation)](如 ±10°)。 - 随机 [缩放(Resize)]与 [仿射变换(Affine)]。 色彩/光度增强 - 随机调整 [亮度、对比度、饱和度、色调]。 - 随机添加 [高斯噪声]或 [模糊]。 - 色彩 [通道重排(Channel Shuffle)]。 高级增强方法 - [MixUp:]两张图加权混合: tilde(x) = lambda x i + (1-lambda) x j ,标签同理。 lambda tilde "Beta"(alpha, alpha) (如 alpha=0.2 )。 - [CutMix:]将图 A 的随机矩形区域替换为图 B 的对应区域,标签按面积比例混合。 - [CutOut:]随机遮挡图像的矩形区域(置零),强制网络不依赖局部特征。 - [Mosaic(YOLOv4):]4 张图拼接为 1 张,增加小目标比例和上下文多样性。 - [RandAugment:]搜索一组最优增强操作组合,减少手动调参。 () = 典型深度学习框架 三个抽象层 - [张量(Tensor):]数据容器,本质为多维矩阵(标量 0D、向量 1D、矩阵 2D、图像 3D/4D),支持 GPU 加速。 - [计算图(Computational Graph):]将数学表达式转化为有向无环图(DAG)记录张量间的计算依赖关系。 - [模块(Module):]将神经网络层封装成可复用对象,支持参数自动管理。 静态图 vs 动态图 - [静态图(如 TensorFlow 1.x):]先定义完整计算图,编译优化后送入数据执行(Define-and-Run)。便于底层部署,不利于调试。 - [动态图(如 PyTorch):]边执行代码边动态构建计算图(Define-by-Run)。代码直观、易于调试,极大提升研究效率。 PyTorch 核心 API 速查 PyTorch 是计算机视觉研究领域最常用的深度学习框架。 自动求导原理 计算图记录前向传播中间结果,调用 后,PyTorch 从末端节点开始利用链式法则沿拓扑序反向传播梯度,累加到各节点的 属性。 模型部署与推理优化框架 - [TensorRT(NVIDIA):]极致性能优化,支持高度量化,适用于 NVIDIA GPU。 - [OpenVINO(Intel):]针对 Intel 硬件优化,跨平台生态好。 - [ONNX(Microsoft):]跨平台硬件兼容性强,可对接各种推理后端。 - [vLLM:]针对 LLM 设计,PageAttention 技术提升显存利用率和吞吐量。 - [vLLM-Omni:]首个支持文图音视频统一生成的开源框架。 - [LMDeploy(上海 AI Lab):]专为 LLM 设计,解码速度快,量化支持好。 = Lecture 06 2 核心速查(开卷考试直接抄用) [1. 自注意力公式:] "Attention"(Q, K, V) = "softmax"( (Q K^T) / sqrt(d k) ) V [2. 多头注意力:]将 Q, K, V 拆分为多头并行计算,最后拼接。 [3. 视觉 Transformer 代表模型:] - ViT:Patch 划分 + [class] token + Transformer Encoder - DeiT:数据增广 + 正则化,无需超大规模预训练 - PVT:特征金字塔,多阶段分辨率递减 - Swin:移动窗口注意力,兼顾全局与局部 [4. ConvNeXt:]CNN 结构 + Transformer 训练技巧(AdamW、GELU、LN) [5. RepLKNet:]大卷积核 + 结构重参数化(训练多分支、推理融合) [6. 监督学习:] L = 1/N sum {ell}(f(x i), y i) [7. 对比学习 InfoNCE:] L "InfoNCE" = -sum i log (exp(bold(z) i dot bold(z) (i^+) / tau)) / (sum (j != i) exp(bold(z) i dot bold(z) j / tau)) [8. 元学习 MAML:] theta^ = "arg min" (theta) sum k L k^("test")(theta - alpha nabla L k^("train")(theta)) [9. 联邦学习 FedAvg:] theta (t+1) = sum (k=1)^K n k/n theta (t+1)^((k)) [10. 深度学习框架:]PyTorch(动态图)、TensorFlow(静态图) () = 生成对抗网络(GAN) 基本定义 GAN 由两个神经网络相互博弈构成: - [生成器 G :]从噪声分布 p (z)(z) 采样生成假样本 G(z) 。 - [判别器 D :]判断输入来自真实分布 p ("data")(x) 还是生成器。 [目标函数(极小极大博弈):] [ min G max D V(D, G) = EE (x tilde p ("data")(x))[log D(x)] + EE (z tilde p (z)(z))[log(1 - D(G(z)))] ] - D 最大化 V(D, G) (正确区分真实/生成)。 - G 最小化 V(D, G) (让 D 无法分辨)。 标准训练算法 + 判别器更新(梯度 [上升]):从 p (z)(z) 采样 m 个噪声,从 p ("data")(x) 采样 m 个真实样本。 [ nabla (theta d) 1/m sum (i=1)^m [log D(x^((i))) + log(1 - D(G(z^((i)))))] ] + 生成器更新(梯度 [下降]):采样 m 个噪声样本。 [ nabla (theta g) 1/m sum (i=1)^m log(1 - D(G(z^((i))))) ] 理论收敛性 - [定理 1(全局最小值):]当且仅当 p g = p "data" 时, C(G) 达到最小值 -log 4 。 - 此时最优判别器 D G^ (x) = 1/2 , C(G) = log 1/2 + log 1/2 = -log 4 。 GAN 经典演进 - [Progressive GAN:]渐进式增长,从低分辨率逐步生成高分辨率。 - [StyleGAN:]映射网络 z -> W + AdaIN 风格注入 + 截断技巧。 - [StyleGAN2:]去 AdaIN,路径长度正则化 + 权重解调,消除水滴伪影。 - [StyleGAN3:]平移/旋转不变性设计,避免纹理粘连。 - [BigGAN:]大规模训练,残差块 + 谱归一化,极高分辨率高质量。 = Lecture 09 核心速查(开卷考试直接抄用) [1. Snell 定律:] n 1 sin theta i = n 2 sin theta t [2. 像差:]色差(折射率随波长变)、几何畸变(桶形/枕形) [3. 噪声模型:] - 散粒噪声 N "shot" cal(N)(0, beta "shot" I) - 读出噪声 N "read" cal(N)(0, sigma "read"^2) - 量化噪声 N q U(-q/2, q/2) [4. 去反光模型:] I = B + R [5. GAN 目标函数:] min G max D EE[log D(x)] + EE[log(1 - D(G(z)))] [6. GAN 收敛条件:] p g = p "data" 时 D G^ (x) = 1/2 , C(G) = -log 4 [7. GAN 演进:]Progressive → StyleGAN(映射+AdaIN)→ StyleGAN2(路径正则化)→ StyleGAN3(平移不变)→ BigGAN(谱归一化) () = 视觉先验基本概念 先验定义 先验是在观测数据之前,对未知变量已有的假设、约束或概率分布。 贝叶斯框架 [ P(theta | X) prop P(X | theta) P(theta) ] - P(theta | X) :后验(要的结果) - P(X | theta) :似然(观测数据证据) - P(theta) :先验(提前知道的规律) 视觉先验来源 - [物理几何约束:]物体不能悬空、两面墙互相垂直。 - [数据统计约束:]天空是蓝色的、草是绿色的。 - [人为偏好:]图像梯度稀疏(平滑先验)、L2 正则化。 = 传统底层视觉先验 图像去噪先验 - [平滑性先验(TV 范数):]惩罚相邻像素差异,但会抹平边缘。 - [非局部自相似性(NLM):]同一幅图中的重复斑块取平均,噪声抵消(BM3D 基础)。 - [稀疏表示先验:]图像块在过完备字典下可用少数非零系数表示,噪声无法被稀疏表示。 图像超分先验 - [边缘方向先验:]沿边缘方向取点插值,避免锯齿。 - [梯度轮廓先验:]边缘梯度的统计分布规律(高斯混合模型)。 - [跨尺度重复性先验:]斑块在不同尺度下重复出现。 - [自相似性先验:]利用图像自身的相似结构生成高频细节。 = 自监督与零样本图像复原 Noise2Noise(ICML 2018) 使用同场景的另一张独立噪声图像作为监督目标,无需清晰参考图。 [ "arg min" (theta) sum i L(f (theta)(hat(x) i), hat(y) i) ] 其中 hat(x) i, hat(y) i 为同一场景的两张独立噪声图像。当噪声均值为零时,等价于学习到清晰图像。 Noise2Void(CVPR 2019) 盲点网络(Blind Spot Network),通过周围像素预测中心像素,防止恒等映射。 Neighbor2Neighbor(CVPR 2021) 利用同一张噪声图像中相邻的子采样对进行自监督学习。 Zero-shot SR(ZSSR) 图像内部训练的超分网络,从 [测试图像本身]提取高/低分辨率对训练。 = 网络结构先验与归纳偏置 归纳偏置 算法隐含的"性格偏好"或先验假设。 CNN vs ViT - [CNN:]强归纳偏置(局部连接 + 权重共享 + 平移等变性),少量数据即可,数据少时强。 - [ViT:]弱归纳偏置(无局部连接,全局注意力),需海量数据,数据充足时上限极高。 - U-Net 编码器-解码器天然具备 [低频偏好],跳跃连接保留高分辨率细节。 深度图像先验(DIP) 网络天生更容易学习图像中的低频、有结构的部分。无需训练数据、无需参考图像。适合单张退化图像场景(老照片修复)。局限:需手动选停止点,每张图从头训练。 = 损失函数中的先验 感知损失(Perceptual Loss) 利用预训练网络(VGG)的多层特征计算损失,保留结构和语义。 [ L "style" = sum w k E (k)(bar(I), I^t) ] 其中 E k 为特征图间的距离(如 Gram 矩阵距离)。 全变分损失(TV Loss) 惩罚邻域像素差异,促进图像平滑。 [ 一维: "TV"(x) = sum n |x (n+1) - x n| 二维: "TV"(x) = sum (i,j) (|x (i+1,j) - x (i,j)| + |x (i,j+1) - x (i,j)|) ] = GAN 反演(GAN Inversion)与图像编辑 GAN 反演目标 将真实图像 x 反向映射回 GAN 的隐空间,找到潜码 w 使 G(w) approx x ,实现对图像的语义编辑。 Image2StyleGAN++ 引入 W+ 空间和 N 空间,通过潜空间优化重建图像。支持图像交叉、修复、局部编辑、风格迁移。 In-domain GAN Inversion(ECCV 2020) 编码器 E 获取初始潜码,再优化: [ z^ = "arg min" (z) (norm(G(z) - x) + lambda "perc" norm(F(x) - F(G(z))) + lambda "reg" norm(z)) ] pSp(CVPR 2021) 基于学习型编码器: "pSp"(x) approx G(E(x) + bar(w)) 。ResNet-50 映射到 W+ 空间。损失:L2 + LPIPS + W 正则化 + ArcFace ID 损失。 GPEN(CVPR 2021) 盲人脸恢复。同时利用 W+ 和 N 空间,同步优化生成器。 [ L G = min G norm(X - hat(X)) 1 L G = min G max D EE [log(1 + exp(-D(G(hat(X)))))] L D = min D EE [sum norm(D(X) - D(G(hat(X)))) 1] ] 退化模型: I^d = ((I star k) "下采样" + n) "JPEG" 。 = GAN 隐空间分析与条件控制 GANSpace(CVPR 2020) 在 W 空间采样大量随机向量,对 w 做 [主成分分析(PCA)],找出导致图像显著变化的控制方向: w' = w + V x 。 SeFa(Closed-Form Factorization) 寻找隐空间语义方向的 [解析解]。隐特征变化 Delta y = alpha A n ,目标是找到使 |A n| 最大的方向 n : [ n^ = "arg max" (n) |A n| ] 通过拉格朗日乘数法解析求解。 StyleCLIP(ICCV 2021) 利用 [CLIP] 模型寻找文本指引的方向。潜码映射器 + CLIP 损失 L ("clip")(w) 衡量生成图像与文本提示的对齐程度。 CLIP(OpenAI) 视觉-语言预训练模型,4 亿对(图像, 文本)数据训练。通过 [对比学习]将图像和文本编码到同一特征空间。 LoRA(Low-Rank Adaptation) 参数高效微调技术。冻结预训练权重 W 0 ,添加低秩矩阵 A, B : [ h = W 0 x + Delta W x = W 0 x + B A x ] 其中 A tilde cal(N)(0, sigma^2) , B = 0 。训练只更新 A, B ,极大减少参数量和显存占用。 = Lecture 16 核心速查(开卷考试直接抄用) [1. 贝叶斯先验:] P(theta | X) prop P(X | theta) P(theta) [2. 传统先验:]TV 范数(平滑)、NLM 非局部自相似性(BM3D)、稀疏表示 [3. Noise2Noise:] "arg min" sum L(f(hat(x)), hat(y)) ,噪声零均值时等价于学习清晰图 [4. 归纳偏置:]CNN 强局部性、ViT 全局注意力(需海量数据) [5. DIP:]网络天生偏好低频,单张图即可,无需预训练 [6. TV 损失:] "TV"(x) = sum |x (i+1) - x i| ,惩罚邻域差异促进平滑 [7. 感知损失:]预训练 VGG 特征图距离,保留语义结构 [8. GAN 反演:] G(w) approx x ,W+ / N 空间,pSp(编码器)、GPEN(盲人脸恢复) [9. GANSpace:]PCA 找语义方向;SeFa 解析解 n^ = "arg max" |A n| [10. LoRA:] h = W 0 x + B A x ,冻结 W 0 只更新低秩矩阵 () = 自编码器(AE)及其变体 自编码器(AE) 编码器将输入压缩为低维隐变量 z ,解码器重建输出。目标:最小化重建损失。用途:降维、特征压缩。 去噪自编码器(DAE) 输入加噪 x + n ,恢复原始 x 。强制学习对噪声不敏感的鲁棒特征,避免恒等映射。 变分自编码器(VAE) 引入概率分布 P(x) 。隐变量后验 p(z|x) = p(x|z)p(z)/p(x) ,用 q(z|x) tilde cal(N)(mu, sigma) 近似。 [重参数化技巧:]将采样 z tilde cal(N)(mu, sigma) 改写为可导形式: [ z = mu + sigma dot epsilon, quad epsilon tilde cal(N)(0, 1) ] [损失函数:]重建损失 + KL 散度。KL 项防止方差退化为 0,迫使隐分布接近标准正态。 VQ-VAE 放弃连续隐空间,维护 [离散嵌入空间(Codebook)]。 - 匹配 Code: "encoding index" = "arg min"("distances") - 量化: z q = "embedding"("encoding index") - 直通梯度: z q "st" = z e + (z q - z e)."detach"() - Codebook 损失: L "codebook" = "MSE"(z q, z e."detach"()) - 承诺损失: L "commit" = 0.25 times "MSE"(z q."detach"(), z e) - 重建损失: L "recon" = "MSE"("decoder"(z q "st"), x) = 归一化流(Normalizing Flow) 通过一系列可逆变换,将简单分布映射为复杂分布。 [变量变换公式:] [ p (x)(x) = p (z)(f^(-1)(x)) dot |det J (f^(-1))(x)| ] 其中 det J 为雅可比行列式。 [耦合层(Coupling Layer):] - [NICE(加性耦合):] y 1 = x 1,; y 2 = x 2 + m(x 1) - [RealNVP(仿射耦合):] y 1 = x 1,; y 2 = s(x 1) dot x 2 + t(x 1) 逆变换可直接解析求解。 = 扩散模型与基于得分的模型 基于得分的模型(Score-based Models) 建模得分函数 s(x) = nabla x log p ("data")(x) ,通过朗之万动力学采样。 [去噪得分匹配(DSM):] [ J (D)(theta) = EE (p ("data")(x)) EE (p(tilde(x)|x)) [norm(s (theta)(tilde(x)) - nabla (tilde(x)) log p(tilde(x)|x))^2] ] 由于 p(tilde(x)|x) 为高斯分布,得分有解析解。 扩散模型(Diffusion Models) 前向加噪: x t = sqrt(alpha t) x (t-1) + sqrt(1 - alpha t) z (t-1) 单步直接采样: [ x t = sqrt(bar(alpha) t) x 0 + sqrt(1 - bar(alpha) t) z, quad z tilde cal(N)(0, 1), quad bar(alpha) t = product (i=1)^t alpha i ] [简化训练目标(预测噪声):] [ L "simple" = EE (t, x 0, z) [norm(z - z (theta)(sqrt(bar(alpha) t) x 0 + sqrt(1 - bar(alpha) t) z, t))^2] ] [分类器指导(ADM):] [ p (theta)(x t | x (t+1), y) prop p (theta)(x t | x (t+1)) p(y | x t) ] = 主流文本生成图像模型 [DALL-E 2 (unCLIP):]两阶段:先验模型将文本编码映射到 CLIP 图像嵌入,解码器基于嵌入生成图像。 [ P("Image" | "Text") approx P("Image" | "CLIP Emb") times P("CLIP Emb" | "Text") ] [Imagen:]使用通用大语言模型(T5)作为文本编码器 + 级联扩散模型超分。 [Stable Diffusion (LDM):]将扩散过程从像素空间转移到 [潜在空间](VAE 将 512×512 压缩为 64×64),大幅降低计算量。生成器中加入 [交叉注意力]实现条件控制。 = 视觉自回归模型 & 定制化生成 [视觉自回归模型:]通过 VQ-VAE 将图像量化为离散 Token 序列,按光栅扫描顺序自回归预测下一个 Token。 [定制化生成:]在少量主体图像下保留特定身份生成新图像。代表:Elite(0.05s)、MasterWeaver(属性编辑)、PLACE(空间布局控制)。 [长视频生成 LoVIC:]上下文压缩 + FlexFormer,支持超 100 帧视频的前向/反向/插入生成。 [物理一致性视频生成 DreamPhysics:]整合 3D 表示 + 视频扩散 + 物理运动方程(MPM),生成符合物理规律的动态视频。 [图像编辑应用:]FramePainter(视频先验编辑)、ScrollScape(无限卷轴全景)、DreamLite(手机端 < 1s 生成 1024×1024)。 = 生成模型核心速查(开卷考试直接抄用) [1. VAE 重参数化:] z = mu + sigma dot epsilon ,使采样可导 [2. VQ-VAE:]离散 Codebook + 直通梯度(Straight-Through Estimator) [3. 归一化流:] p (x)(x) = p (z)(f^(-1)(x)) dot |det J| [4. NICE:] y 1 = x 1,; y 2 = x 2 + m(x 1) ;RealNVP: y 2 = s(x 1) dot x 2 + t(x 1) [5. 扩散模型前向:] x t = sqrt(bar(alpha) t) x 0 + sqrt(1 - bar(alpha) t) z [6. 扩散训练目标:] L "simple" = EE [norm(z - z (theta)(sqrt(bar(alpha) t) x 0 + sqrt(1 - bar(alpha) t) z, t))^2] [7. Stable Diffusion:]像素扩散 → 潜在扩散(VAE 压缩),加交叉注意力实现文本条件 [8. 视觉自回归:]VQ-VAE 量化图像为 Token,自回归预测