查看全课大纲(第 87 / 93 节)
- 1.计算机视觉概述
- 2.计算机视觉应用场景
- 3.困难与挑战
- 4.开源库介绍
- 5.图像显示与存储
- 6.CLAHE
- 7.腐蚀膨胀与开闭运算
- 8.滤波与边缘填充
- 9.各种滤波
- 10.图像金字塔
- 11.傅里叶变换
- 12.短时傅里叶变换与小波变换
- 13.颜色特征与颜色直方图
- 14.几何特征_边缘
- 15.几何特征-角点与斑点
- 16.局部特征-SIFT特征描述子
- 17.局部特征-SURF特征描述子
- 18.局部特征-ORB特征描述子
- 19.其他特征描述子
- 20.传统图像分割技术
- 21.GraphCut
- 22.GrabCut
- 23.人脸检测的传统方法
- 24.行人检测的传统方法HOG+SVM
- 25.行人检测DPM
- 26.人工神经网络的架构
- 27.目标函数与梯度下降
- 28.误差反向传播
- 29.可手算的神经网络
- 30.改进目标函数与克服梯度消散
- 31.神经网络之传统神经网络与深度网络的差异
- 32.各种梯度下降算法
- 33.如何选择合适的梯度下降算法
- 34.避免过适应
- 35.CNN的架构
- 36.CNN的误差反向传播_卷积层
- 37.CNN的误差反向传播_池化层
- 38.分类所用的数据集
- 39.Alexnet详解
- 40.VGG详解
- 41.GoogLeNet_v1
- 42.BatchNormalization
- 43.GoogLeNet_v3v4
- 44.ResNet
- 45.ResNeXt
- 46.CNN设计准则
- 47.图像检索与推土机距离
- 48.基于颜色相似性
- 49.基于形状相似性
- 50.基于纹理相似性
- 51.基于局部特征相似性
- 52.DL的二值哈希编码
- 53.高维空间中检索KDTree
- 54.高维空间中检索LSH
- 55.目标识别任务综述
- 56.RCNN
- 57.SPP-Net
- 58.Fast R-CNN
- 59.Faster R-CNN
- 60.R-CNN系列模型回顾
- 61.R-FCN的设计思路
- 62.R-FCN的实现
- 63.YOLOv1
- 64.YOLOv2_9000
- 65.YOLOv3
- 66.图像分割应用场景与数据集
- 67.上采样的实现方式
- 68.FCN网络架构的由来
- 69.FCN构建细节
- 70.DeepLabv1
- 71.CRF
- 72.DeepLabv2
- 73.DeepLabv3
- 74.特定的医学影像分割任务
- 75.U-Net
- 76.3D U-Net
- 77.V-Net
- 78.DenseNet
- 79.病理切片分析任务及数据集
- 80.病理切片分析
- 81.图说任务及其传统处理方法
- 82.深度语言模型与RNN
- 83.LSTM及其变种
- 84.NIC模型
- 85.SAT模型
- 86.图说的性能指标
- 87.判别模型与生成模型
- 88.KL散度与JS散度
- 89.VAE
- 90.GAN的基本原理
- 91.DCGAN与CGAN
- 92.Wasserstein GAN
- 93.SRGAN
判别模型与生成模型
小象实战讲义 · 基于深度学习的计算机视觉
在计算机视觉的广阔领域中,我们已掌握了如何让模型“看懂”世界——识别物体、分割场景、描述画面。现在,我们将进入一个更具创造性的领域:让模型“创造”世界。本节是开启图像生成技术大门的钥匙,我们将深入理解生成式模型(Generative Model)与判别式模型(Discriminative Model)的根本区别与联系,并了解生成模型的核心思想——极大似然估计(MLE)。掌握这些基础,是理解后续变分自编码器(VAE)和生成对抗网络(GAN)等深度学习时代代表性生成模型的关键。
💡 核心导读
- 判别 vs 生成:判别模型学习“区分”数据(如分类),建模
P(类别|图像);生成模型学习“创造”数据,建模P(图像|类别)。 - 生成模型的目标:学习训练数据的分布,并生成服从该分布的新样本。
- 核心工具:极大似然估计(MLE):通过最大化观测数据出现的概率来估计模型参数,是生成模型的理论基石。
- 从简单到复杂:从单高斯模型到高斯混合模型(GMM),再到以“近似显式密度”(VAE)和“隐式密度”(GAN)两条路线应对复杂分布的深度生成模型,生成模型在处理高维数据上不断演进。
判别式模型与生成式模型
在深度学习应用于计算机视觉的绝大多数任务中,如我们之前学习的图像分类、目标检测,我们主要使用的是判别式模型。
判别式模型(Discriminative Model) 直接对条件概率 P(z|X) 进行建模。其中,X 代表观察到的变量,例如一张图像;z 代表隐含的变量,例如图像的类别标签。模型的目标是:给定输入 X,判断它最可能属于哪个类别 z。其学习过程是直接寻找数据特征与标签之间的决策边界。
用数学公式表示,判别模型学习的是: P(z|X)
生成式模型(Generative Model) 则恰恰相反。它对联合概率 P(X, z) 进行建模,即 P(X, z) = P(z) · P(X|z):既要刻画隐含变量 z(例如类别)本身出现的先验,也要刻画在给定 z 的条件下观察变量 X(例如一张图像)的分布。模型的目标是:给定一个隐含变量 z(例如一个类别或一个隐空间向量),生成一个符合该条件的观察变量 X(例如一张图像)。其学习过程是理解数据本身的分布规律。
用数学公式表示,生成模型学习的是: P(X, z) = P(z) · P(X|z)
其中刻画“给定类别生成图像”的核心部分是条件分布 P(X|z),因此也常把生成模型的目标简写为学习 P(X|z)。
为了更直观地理解两者的区别,我们用一个语言识别的例子来说明:
- 生成式模型做法:假设我们要区分日语和韩语。生成式模型会分别对日语和韩语建立完整的语言模型,包括语法、词汇分布等。当听到一段新语音时,模型会计算这段语音分别由日语模型和韩语模型生成的概率,哪个概率大,就判断为哪种语言。这需要完整地“理解”每种语言。
- 判别式模型做法:判别式模型则不去完整建模每种语言,而是直接寻找最能区分两种语言的特征。例如,它可能发现韩语中常出现“思密达”结尾,而日语中常出现“です”结尾。模型就专注于学习这些区分性特征,并基于此做判断。这种方法通常更直接高效。
两者的联系在于:生成模型建模的联合分布 P(X, z) 一旦学得,就可以用贝叶斯公式推出 P(z|X),因而同样能拿来做分类(朴素贝叶斯就是一例),只是必须把每个类别的完整分布都学出来,代价更高。
对于分类任务,判别式模型往往更胜一筹,因为它直接针对分类边界进行优化。然而,生成式模型拥有其不可替代的独特价值,尤其是在需要刻画高维、复杂概率分布,或需要模型具备“创造力”的领域,例如:
- 图像生成:根据文字描述或随机噪声生成新的图像。
- 数据补全:在数据缺失的情况下,生成合理的完整数据。
- 多模态输出:对于同一输入,可以生成多种多样但都合理的输出(它们都是背后规律的某种采样,服从同一个分布)。
- 真实输出与预测:如对未来数据进行预测等真实输出任务。
常见的生成式模型包括朴素贝叶斯、高斯混合模型(GMM)、隐马尔可夫模型(HMM)、贝叶斯网络、马尔可夫随机场,以及由多层受限玻尔兹曼机堆叠而成的深度信念网络(DBN)等。而我们接下来要深入学习的变分自编码器(VAE)和生成对抗网络(GAN),则是专门为了处理图像这类高维、复杂分布数据而诞生的强大生成模型。
生成模型的核心:极大似然估计
生成模型的根本目标是让模型学习到的数据分布 P_model(X) 尽可能接近真实数据的分布 P_train(X)。如何让这两个分布“接近”呢?最经典的理论工具是极大似然估计。
极大似然估计(Maximum Likelihood Estimation, MLE) 的核心思想是:既然我们观测到了一组数据,那么我们就去寻找一组模型参数,使得这组数据在该模型参数下出现的概率最大。这是一种“既然发生了,就假设它是最大可能”的估计原则。
假设我们有一个由 N 个独立同分布样本组成的数据集 D = {x_1, x_2, ..., x_N},模型参数为 θ。那么,所有样本同时出现的联合概率(即似然函数)为: L(θ) = P(D|θ) = Π_{i=1}^{N} P(x_i|θ)
我们的目标是找到使似然函数 L(θ) 最大的参数 θ*: θ* = argmax_θ L(θ) = argmax_θ Π_{i=1}^{N} P(x_i|θ)
由于连乘容易导致数值下溢,且不便求导,我们通常对其取自然对数,将连乘变为连加,得到对数似然函数: log L(θ) = Σ_{i=1}^{N} log P(x_i|θ)
最大化对数似然函数等价于最大化似然函数。
举例说明:假设你在街上遇到一个人,皮肤是黑色的,并且讲法语。我们想判断他最可能来自哪里(参数 θ 代表国家)。我们考虑几个可能:法国(欧洲)、美国、巴西、某个非洲法语区国家。
P(皮肤黑 | 来自法国)概率较低。P(讲法语 | 来自美国)概率较低。P(皮肤黑 | 来自巴西)概率中等,但P(讲法语 | 来自巴西)概率较低。P(皮肤黑 | 来自非洲法语区)概率很高,且P(讲法语 | 来自非洲法语区)概率也很高。
根据极大似然估计,我们计算每个国家下“皮肤黑且讲法语”这个联合事件的概率(似然)。最终,来自“非洲法语区”这个参数 θ 会使我们观测到的现象(皮肤黑、讲法语)的似然值最大,因此我们判断他最可能来自非洲法语区。这就是“最可能”的原则。
从简单分布到复杂分布
基于MLE,我们可以对已知形式的简单分布进行参数估计。
单高斯分布
假设数据服从一个单一的高斯(正态)分布 N(μ, σ^2),参数 θ = (μ, σ^2)。我们可以直接构造对数似然函数,对其求导并令导数为零,解析地求出最优参数 μ(样本均值)和 σ^2(除以 N 的极大似然方差估计,而非除以 N-1 的无偏估计)。
高斯混合模型
现实中的数据往往更复杂。例如,一组数据可能实际上来自两个不同的群体,分别服从不同的高斯分布,这就是高斯混合模型。用单个高斯去拟合这类数据,效果往往很差;用多个高斯的混合才能贴合。 P(x) = Σ_{k=1}^{K} π_k N(x | μ_k, Σ_k) 其中,π_k 是混合权重,Σ π_k = 1。
这时问题变复杂了:我们不仅要知道每个高斯分布的参数 (μ_k, Σ_k),还要知道每个样本 x_i 究竟属于哪个高斯分量(这是一个隐变量)。而这两个问题是循环依赖的:不知道样本属于哪个分布,就无法准确估计分布参数;不知道分布参数,也无法判断样本属于哪个分布。
解决这个“鸡生蛋、蛋生鸡”问题的经典方法是期望最大化算法。它从一个初始的参数猜测开始,然后交替执行两步:
- E步(期望):基于当前参数,计算每个样本属于每个高斯分量的“责任度”(概率)。
- M步(最大化):基于E步计算出的“责任度”,更新每个高斯分量的参数
(μ_k, Σ_k)和混合权重π_k,使得对数似然函数增大。 反复迭代,直至收敛。
面对图像的复杂分布
然而,图像数据的分布极其复杂,我们根本无法用有限个简单高斯分布的混合来精确描述。一张猫的图片所服从的概率分布,我们无法写出其解析形式。
这正是深度生成模型要解决的挑战。根据对概率密度函数的处理方式,生成模型主要分为两大类:
显式密度模型:明确地定义并试图逼近真实数据的概率密度函数
P(X)。- 可解密度模型:如我们刚才讨论的GMM,密度函数有解析解。
- 近似密度模型:密度函数形式可知但难以精确求解,需要近似。变分自编码器是这类模型的代表,它通过引入一个易处理的近似分布来逼近真实的后验分布。
隐式密度模型:不显式定义密度函数,而是提供一个直接从分布中采样的机制。生成对抗网络是这类模型的典范,它通过一个生成器网络直接将随机噪声映射为数据样本,并通过一个判别器网络来驱动生成器学习到真实数据分布。
VAE和GAN构成了 2014 年前后深度学习图像生成的两大支柱,我们将在后续章节中详细展开。
📝 动手练一练
- 概念辨析:假设我们有一个模型,输入是“猫”或“狗”的文本标签,输出是相应的动物图片。这个模型更可能是判别式模型还是生成式模型?为什么?
👉 点击查看参考答案
这是一个典型的生成式模型。
- 判别式模型建模的是
P(标签 | 数据),即给定一张图片,判断它是猫还是狗。 - 而题目中的模型是给定一个标签(“猫”),生成一张图片。这正是在建模
P(数据 | 标签),即给定类别的条件下,数据(图片)出现的概率分布,因此属于生成式模型。
- 手算MLE(单高斯):假设我们观测到3个一维数据点:
[1.0, 2.0, 3.0],且我们假设它们来自一个高斯分布N(μ, σ^2)。请使用极大似然估计的原理,手算该高斯分布的参数μ和σ^2的估计值。
👉 点击查看参考答案
对于单高斯分布,其极大似然估计的解就是样本均值和样本方差(注意是除以N,而非N-1)。
计算样本均值
μ:μ = (1.0 + 2.0 + 3.0) / 3 = 6.0 / 3 = 2.0计算样本方差
σ^2:σ^2 = [(1.0-2.0)^2 + (2.0-2.0)^2 + (3.0-2.0)^2] / 3= [1.0 + 0.0 + 1.0] / 3= 2.0 / 3 ≈ 0.6667
因此,估计出的高斯分布为 N(2.0, 0.6667)。
本章小结
本节我们奠定了图像生成技术的理论基础。我们首先清晰地区分了判别式模型与生成式模型:前者精于“区分”,是分类任务的利器;后者善于“创造”,是生成任务的基石。生成模型的根本目标是让模型学到的分布逼近真实数据分布,而实现这一目标的核心数学工具是极大似然估计。我们从简单的单高斯分布参数估计,讲到用EM算法解决高斯混合模型中的循环依赖问题,最后指出图像数据的分布极其复杂,引出了需要借助深度神经网络进行近似或隐式建模的两条路线——变分自编码器和生成对抗网络。
需要说明的是,朴素贝叶斯、HMM、DBN 等属于更早的经典生成模型,VAE(2013)与 GAN(2014)则是 2014—2020 年前后的主流方案,它们共同构成本节的历史坐标;2020 年以后,图像生成的主流已转向扩散模型,近年来又出现自回归的多模态大模型,但“显式密度 / 隐式密度”这一划分仍是理解这些新方法的坐标系。
📋 行动清单
- 清晰复述判别式模型与生成式模型在建模目标上的根本区别(
P(z|X)vs 联合分布P(X, z),其核心为P(X|z))。 - 理解极大似然估计“最大化观测数据出现概率”的核心思想,并能解释其直观含义。
- 了解高斯混合模型(GMM)和期望最大化(EM)算法解决“隐变量”问题的基本思路。
- 明确VAE和GAN在生成模型谱系中所处的位置(显式近似密度 vs 隐式密度)。
—— 小象教研组
配套资料 · 直接下载
课件、代码、数据集等配套资料全部免费,点击即可直接下载,无需分享或解锁。