【机器学习chp14 — 1】生成式模型概述和主要思想(超详细分析,易于理解,推导严谨,一文就够了)

devtools/2025/3/27 14:49:27/

目录

一、生成式模型简介和主要思想

1、从传统神经网络映射到生成式模型

(1)传统映射

(2)生成式模型的映射

2、生成式模型与多样性

(1)模型多样性

(2)神经网络作为生成器

3、生成式模型的目标:极大似然与KL散度

(1)极大似然估计(Maximum Likelihood)

(2)KL 散度的最小化

4、基于能量的模型及其参数学习

(1)能量模型描述

(2)对数似然及其梯度

(3)近似计算与采样问题

5、总结


一、生成式模型简介和主要思想

1、从传统神经网络映射到生成式模型

(1)传统映射

        在大多数传统任务中,神经网络被视为一个确定性的映射

                                                                   f_\theta: X \rightarrow Y

例如,在图像分类中,输入图像(例如尺寸为 H \times W \times 3 的RGB图像)经过神经网络映射到一个固定类别集合

                                                     f_\theta: \mathbb{R}^{H\times W\times 3} \rightarrow \{1, 2, \dots, C\}

这意味着给定一个输入图像,模型输出一个类别标签。

(2)生成式模型的映射

        在生成式模型中,我们将神经网络看作一个映射到概率分布的函数映射到的这个概率分布是什么?什么样的概率分布才能生成我们的目标?再从分布中采样得到最终的结果。

                                                                f_\theta: X \rightarrow P(Y)

也就是说,模型输出的不再是一个确定的类别,而是在输出空间 Y 上的一个概率分布。
例子: 对于 softmax 回归模型,其对类别 c 的概率建模为

                                                             P(Y=c\mid X=x)

并且映射形式为

                                                f_\theta: \mathbb{R}^{H\times W\times 3} \rightarrow (p_1, p_2, \dots, p_C)

这里,输出的概率分布可以看作是对输入图像在各个类别上的“信心”或“不确定性”的表达。

                        ​​​​​​​            


2、生成式模型与多样性

(1)模型多样性

        生成式模型的一个核心优势在于能够通过概率分布来表达多样性。例如,输入一幅鸟的图像经过分类器输出标签“Bird”是确定的;而输入“Bird”(鸟)的概念到生成器中,则可以生成多种不同样式、角度、颜色的鸟图像。
这种多样性通常通过引入随机变量(例如颜色、角度、背景等)来控制,从而使生成的结果具有“创造力”。

        ​​​​​​​        ​​​​​​​        

  • 绘画场景: 输入描述“红眼的角色”,模型可以生成多个不同风格或构图的图像。
  • 聊天机器人: 针对作文题目或对话输入,生成的文本可以体现不同的表达风格和细节。

(2)神经网络作为生成器

        生成式模型常常采用神经网络作为生成器。模型接收来自简单分布(如正态分布)的随机样本 z 作为输入,然后映射到复杂的生成分布 P_G ​。目标是使生成器输出的数据尽可能接近真实数据分布 P_{\text{data}} ​:

        ​​​​​​​        ​​​​​​​        z \sim \mathcal{N}(0, I) \quad\rightarrow\quad x = G_\theta(z) \quad\text{or} \quad x \sim P_G \approx P_{\text{data}}

这正是如生成对抗网络(GAN)和变分自编码器(VAE)中常见的思想。

        ​​​​​​​        


3、生成式模型的目标:极大似然与KL散度

(1)极大似然估计(Maximum Likelihood)

        生成式模型的目标之一是使生成的数据和真实数据“看起来像”。这通常通过极大似然估计(MLE)来实现。给定真实数据样本 \{x_i\}_{i=1}^N​,我们希望最大化对数似然:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        \theta^* = \arg\max_\theta \frac{1}{N}\sum_{i=1}^N \log P_\theta(x_i)

这意味着在真实数据分布下,生成数据的概率要尽可能高。

(2)KL 散度的最小化

        极大似然估计等价于最小化真实数据分布 P_{\text{data}}​ 与模型分布 P_\theta​ 之间的 KL 散度:

        ​​​​​​​        ​​​​​​​     \theta^* = \arg\min_\theta \operatorname{KL}(P_{\text{data}} \,\|\, P_\theta) = \arg\min_\theta \mathbb{E}_{x\sim P_{\text{data}}}\left[-\log P_\theta(x)\right]

直观上,KL 散度衡量了两个分布的“距离”,最小化它可以使模型生成的数据分布尽量接近真实数据分布。


4、基于能量的模型及其参数学习

(1)能量模型描述

        在很多情况下,我们不需要直接获得绝对概率,只需要相对概率即可。基于能量的模型给出如下形式:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        P_\theta(x) = \frac{e^{-E_\theta(x)}}{Z_\theta}

其中:

  • E_\theta(x) 是能量函数,反映了样本 x的“能量”或“代价”。
  • Z_\theta = \int_x e^{-E_\theta(x)}dx 是归一化常数(分区函数),保证 P_\theta(x) 为概率分布。

(2)对数似然及其梯度

在极大似然框架下,对数似然为:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​           \log P_\theta(x) = -E_\theta(x) - \log Z_\theta

对参数 \theta 求梯度得到:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​         \nabla_\theta \log P_\theta(x) = -\nabla_\theta E_\theta(x) - \nabla_\theta \log Z_\theta

其中,\nabla_\theta \log Z_\theta​ 可进一步推导:

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​         \nabla_\theta \log Z_\theta = \frac{1}{Z_\theta} \nabla_\theta Z_\theta

注意到

        ​​​​​​​        ​​​​​​​        Z_\theta = \int_x e^{-E_\theta(x)} dx \quad \Rightarrow \quad \nabla_\theta Z_\theta = -\int_x e^{-E_\theta(x)} \nabla_\theta E_\theta(x) dx

因此,

        ​​​​​​​        ​​​​​​​       \nabla_\theta \log Z_\theta = -\frac{1}{Z_\theta} \int_x e^{-E_\theta(x)} \nabla_\theta E_\theta(x)dx = -\mathbb{E}_{x\sim P_\theta}[\nabla_\theta E_\theta(x)]

代回原式,我们得到:

        ​​​​​​​        ​​​​​​​        ​​​​​​​          \nabla_\theta \log P_\theta(x) = -\nabla_\theta E_\theta(x) + \mathbb{E}_{x\sim P_\theta}[\nabla_\theta E_\theta(x)]

对整个数据分布 P_{\text{data}}​ 取期望,即参数更新的梯度为:

        ​​​​​​​        \nabla_\theta \mathbb{E}_{x\sim P_{\text{data}}}[\log P_\theta(x)] = -\mathbb{E}_{x\sim P_{\text{data}}}[\nabla_\theta E_\theta(x)] + \mathbb{E}_{x\sim P_\theta}[\nabla_\theta E_\theta(x)]

这就给出了模型中两个重要的项:

  • 数据项:从真实数据分布中采样,推动能量函数降低,使真实数据的能量更低。
  • 模型项:从当前模型分布中采样,推动能量函数升高,使模型生成的低能量区域不泛滥。(不同的模型比如下面的VAE和GAN的这一项不一样

(3)近似计算与采样问题

在实际应用中,从 P_\theta​ 采样往往计算代价较高,因此需要近似方法来计算第二项的梯度。常用的方法包括:

  • 马尔可夫链蒙特卡洛(MCMC)
  • 对比散度(Contrastive Divergence)

近似梯度可以写成:

        ​​​​​​​        ​​​​​​​  \nabla_\theta \mathbb{E}_{x\sim P_{\text{data}}}[\log P_\theta(x)] \approx -\frac{1}{N}\sum_{i=1}^{N} \nabla_\theta E_\theta(x_i) + \frac{1}{N}\sum_{i=1}^{N} \nabla_\theta E_\theta(\hat{x}_i)

其中 x_i \sim P_{\text{data}}​ 而 \hat{x}_i \sim P_\theta​ 通过某种采样方法得到。这种方法能够在一定程度上平衡真实数据和模型生成数据之间的差异,从而不断调整参数,使得 P_\theta​ 渐进地逼近 P_{\text{data}} ​。


5、总结

生成式模型通过以下几个关键步骤构建与学习数据分布:

  1. 从确定性映射到概率映射:传统神经网络映射 X \rightarrow Y 被扩展为 X \rightarrow P(Y),允许输出多样化结果。
  2. 模型多样性与创造性:通过引入随机性(例如随机变量 z)生成不同样式的输出,从而满足如图像生成、文本生成等任务的“创造力”需求。
  3. 极大似然估计与KL散度:利用极大似然原理最大化真实数据的似然,等价于最小化真实分布与模型分布间的 KL 散度。
  4. 能量模型的框架:用能量函数 E_\theta(x) 和归一化常数 Z_\theta​ 定义概率分布,重点关注相对概率关系。
  5. 参数学习与梯度推导:推导出对数似然的梯度包含两个项——真实数据项和模型采样项,进而通过近似采样(如 MCMC 或对比散度)进行参数更新。

        这种从简单分布到复杂数据分布的映射,不仅揭示了生成式模型的数学本质,也为如何训练能够生成多样化、真实感强的样本提供了理论依据和实践方法。

        通过以上分析,我们可以看出生成式模型的核心在于如何将神经网络从传统的确定性映射扩展到概率建模,并利用极大似然、能量函数和采样方法等工具,实现对复杂数据分布的有效学习。


http://www.ppmy.cn/devtools/168598.html

相关文章

计算斜着椭圆内某个点到边距离(验证ok)

sPoint center; center.x sLRpInfo.rdOut.x; center.y sLRpInfo.rdOut.y; float a sLRpInfo.rdOut.a; // 长轴半径 float b sLRpInfo.rdOut.b; // 短轴半径 float theta (360.0 - sLRpInfo.rdOut.fAngle) * CV_PI / 180.0f; // 旋转角度…

puppeteer网络爬虫 “网络爬虫”

理解网络爬虫 1.1网络爬虫的定义 当今最大的网络是互联网,最大的爬虫就是各类搜索引擎,包括谷歌丶百度等。网络爬虫就是按照一定规则去爬去人类所需要的信息的程序,主要通过对URL的请求来实现。 一般来说,从搜索引擎这类爬虫搜…

单片机学完开发板,如何继续提升自己的技能?

很多人学完开发板后都会卡在一个尴尬的阶段:觉得自己会的东西不少,但又不知道下一步该干啥。会点C语言,能烧录程序,能点亮LED,玩转按键,搞定串口等等,能用开发板做点小玩意儿,但面对…

【数学建模】灰色关联分析模型详解与应用

灰色关联分析模型详解与应用 文章目录 灰色关联分析模型详解与应用引言灰色系统理论简介灰色关联分析基本原理灰色关联分析计算步骤1. 确定分析序列2. 数据无量纲化处理3. 计算关联系数4. 计算关联度 灰色关联分析应用实例实例:某企业生产效率影响因素分析 灰色关联…

蓝桥杯 之 拔河(2024年C/C++ B组 H题)

文章目录 本题是 2024年C/C B组的H题首先看这个数据范围,个数也就在10^3,并且考察的还是连续区间的和的最小差值位置,注意的是这个区间是不能重合的 连续区间和的问题,考虑用到这个前缀和由于考察的是左右两个区间,并且还不能重合…

【软考-架构】5.3、IPv6-网络规划-网络存储-补充考点

✨资料&文章更新✨ GitHub地址:https://github.com/tyronczt/system_architect 文章目录 IPv6网络规划与设计建筑物综合布线系统PDS💯考试真题第一题第二题 磁盘冗余阵列网络存储技术其他考点💯考试真题第一题第二题 IPv6 网络规划与设计…

【2025 最新 Cursor AI 教程 09】开发者如何使用 Cursor AI

文章目录 9.1 案例 1:一家初创公司如何利用 AI 将开发时间减少 40%案例拆解业务背景如何与 Cursor AI 进行高效协作📌 Step 1:定义核心需求 & 任务拆解📌 Step 2:优化代码 & 进行 AI 辅助重构📌 Step 3:智能调试 & 单元测试📌 Step 4:AI 代码审查 &am…

js语法入门

1.js介绍 JavaScript(简称JS)是当今最流行的编程语言之一,广泛应用于网页开发、服务器端开发以及各种自动化脚本中。对于初学者来说,掌握JS的基础语法是迈向编程之路的第一步。本文将为你详细介绍JavaScript的语法入门知识&#x…