生成式AI模型学习笔记

article/2025/6/23 5:12:29

文章目录

  • 生成式AI模型
    • 1. 定义
    • 2. 生成式模型与判别式模型
    • 3. 深度生成式模型的类型
      • 3.1 能量模型
      • 3.2 变分自编码
        • 3.2.1 变分自编码器(Variational Autoencoder, VAE)简介
        • 3.2.2 代码示例(以 PyTorch 为例)
      • 3.3 生成对抗网络
      • 3.4 流模型
        • 3.4.1 流模型简介
        • 3.4.2 NICE:开创性流模型
        • 3.4.3 流模型与 VAE、GAN 的区别
      • 3.5 自回归模型
        • 3.5.1 自回归模型简介
        • 3.5.2 与 GAN 的对比
        • 3.5.3 优缺点
      • 3.6 扩散模型
        • 3.6.1 扩散模型简介
        • 3.6.2 模型优缺点
          • 优点
          • 缺点
        • 3.6.3 主要应用领域
      • 3.7 一致性模型
        • 3.7.1 一致性模型简介
        • 3.7.2 主要特点
        • 3.7.3 推理速度与训练成本
    • 4. 总结

生成式AI模型

深度生成式模型有多种类型,可用于生成不同类型的媒体内容,包括图像、视频、文本和音频。除了这些媒体类型外,模型还可以用于生成特定领域的数据,比如有机分子和蛋白质结构。

1. 定义

生成式模型是一类能够根据输入数据学习其分布,并能够生成与原始数据相似新样本的模型。在机器学习和人工智能领域,生成式模型不仅可以对数据进行建模,还能用于数据生成、增强、补全等任务。常见的生成式模型包括生成对抗网络(GAN)、变分自编码器(VAE)和扩散模型等。

2. 生成式模型与判别式模型

生成式模型试图学习数据的联合概率分布 P ( x , y ) P(x, y) P(x,y),不仅能够判断输入属于哪个类别,还能生成与训练数据相似的新样本。它们可以用于数据生成、缺失值填补等任务。

判别式模型则关注于学习条件概率分布 P ( y ∣ x ) P(y|x) P(yx),直接建模输入与输出之间的映射关系,主要用于分类或回归等判别任务,无法生成新样本。

特点生成式模型判别式模型
学习目标联合概率分布 P ( x , y ) P(x, y) P(x,y)条件概率分布 $P(y
主要任务数据生成、建模分类、回归
能否生成数据可以生成新样本不能生成新样本
代表模型GAN、VAE、朴素贝叶斯等逻辑回归、SVM、决策树等
复杂性通常更复杂相对简单
训练难度较高较低

3. 深度生成式模型的类型

谈及深度生成式模型或深度生成式AI时,我们常宽泛地将此定义扩展到所有能生成逼真数据(通常是文本、图像、视频和声音)的模型上。

3.1 能量模型

能量模型(Energy-Based Model, EBM)是一类通过定义能量函数 E ( x ) E(x) E(x) E ( x , y ) E(x, y) E(x,y) 来对数据建模的生成式模型。能量函数用于衡量某个样本(或样本-标签对)的“合理性”或“可能性”,能量越低表示样本越可能来自真实数据分布。

能量模型的目标是学习一个能量函数,使得真实数据样本具有较低的能量,而非真实样本具有较高的能量。通过对能量函数的优化,模型能够区分真实数据与噪声数据,并可用于生成新样本、异常检测等任务。常见的能量模型包括玻尔兹曼机(Boltzmann Machine)、深度玻尔兹曼机(Deep Boltzmann machine, DBM)、受限玻尔兹曼机(Restricted Boltzmann Machine, RBM)等。

下图是一个四层玻尔兹曼机,有三层隐藏节点:
DBM

DBM 作为早期的深度生成式模型之一,在历史上扮演过重要角色,但如今在数据生成方面已经不那么流行。它的训练成本较高且较为复杂,与下文即将介绍的一些更新的模型相比,其表单能力相对较弱,容易导致生成样本的质量较低。

3.2 变分自编码

3.2.1 变分自编码器(Variational Autoencoder, VAE)简介

变分自编码器是一种基于概率图模型的生成式模型,通过引入潜在变量 z z z,对数据分布进行建模。VAE 由编码器(Encoder)和解码器(Decoder)两部分组成:编码器将输入数据 x x x 映射到潜在空间 z z z 的分布,解码器则从 z z z 生成新的数据样本 x ′ x' x

VAE 的核心思想是最大化观测数据的似然概率,同时通过变分推断近似后验分布。其损失函数通常包括重构误差和 KL 散度两部分。

3.2.2 代码示例(以 PyTorch 为例)
import torch
from torch import nnclass VAE(nn.Module):def __init__(self, input_dim, hidden_dim, latent_dim):super(VAE, self).__init__()# 编码器self.encoder = nn.Sequential(nn.Linear(input_dim, hidden_dim),nn.ReLU())self.fc_mu = nn.Linear(hidden_dim, latent_dim)self.fc_logvar = nn.Linear(hidden_dim, latent_dim)# 解码器self.decoder = nn.Sequential(nn.Linear(latent_dim, hidden_dim),nn.ReLU(),nn.Linear(hidden_dim, input_dim),nn.Sigmoid())def encode(self, x):h = self.encoder(x)return self.fc_mu(h), self.fc_logvar(h)def reparameterize(self, mu, logvar):std = torch.exp(0.5 * logvar)eps = torch.randn_like(std)return mu + eps * stddef decode(self, z):return self.decoder(z)def forward(self, x):mu, logvar = self.encode(x)z = self.reparameterize(mu, logvar)return self.decode(z), mu, logvar

该代码实现了一个简单的 VAE,包括编码、重参数化和解码过程。实际训练时,损失函数通常为重构误差与 KL 散度之和。

3.3 生成对抗网络

生成对抗网络(Generative Adversarial Network, GAN)简介:

生成对抗网络(GAN)是一类通过对抗过程进行训练的生成式模型,由 Ian Goodfellow 等人在 2014 年提出。GAN 由两个神经网络组成:生成器(Generator)和判别器(Discriminator)。生成器的目标是生成尽可能以假乱真的数据样本,而判别器的目标是区分输入是真实数据还是生成器生成的假数据。两者在训练过程中相互博弈,最终生成器能够生成与真实数据分布非常接近的新样本。

组成结构:

  • 生成器(G): 接收随机噪声向量,输出伪造的数据样本。
  • 判别器(D): 接收真实样本或生成样本,输出其为真实的概率。

训练目标是使生成器生成的数据能够“骗过”判别器,而判别器则努力分辨真假。整个过程可用极小极大博弈(minimax game)来描述。

优点:

  • 能生成高质量、逼真的样本(如图像、音频等)。
  • 不需要显式建模数据的概率分布。
  • 在图像生成、风格迁移、超分辨率等领域表现突出。

缺点:

  • 训练过程不稳定,容易出现模式崩溃(mode collapse)等问题。
  • 需要精心设计网络结构和训练策略。
  • 难以衡量生成样本的多样性和质量。

GAN 及其变体已成为生成式模型领域的重要研究方向,推动了深度生成模型的发展。

3.4 流模型

3.4.1 流模型简介

流模型(Flow-based Model)是一类通过可逆变换将简单分布(如高斯分布)映射到复杂数据分布的生成式模型。其核心思想是构建一系列可逆的变换函数,使得每一步变换都可以精确计算其雅可比行列式,从而能够直接对数据的似然概率进行精确建模和高效采样。

流模型的训练目标是最大化观测数据的对数似然(log-likelihood),与 VAE 类似,但流模型能够直接、精确地计算似然值,无需近似推断。

3.4.2 NICE:开创性流模型

NICE(Non-linear Independent Components Estimation,非线性独立分量估计)是流模型领域的开创性工作之一,由 Dinh 等人在 2014 年提出。NICE 采用一系列可逆的仿射变换,将数据从复杂分布映射到简单分布(如标准正态分布),并且每一步变换都保证可逆和雅可比行列式易于计算。NICE 的提出为后续更复杂的流模型(如 RealNVP、Glow)奠定了基础。

3.4.3 流模型与 VAE、GAN 的区别
  • 生成方式不同:流模型通过可逆变换直接从噪声生成数据,且生成过程是确定性的;VAE 通过采样潜变量再解码生成数据,GAN 则通过生成器网络生成数据。
  • 似然计算:流模型可以精确计算数据的对数似然,VAE 只能近似计算,GAN 通常无法直接计算似然。
  • 训练目标:流模型和 VAE 都以最大化似然为目标,GAN 采用对抗训练目标。
  • 样本质量与多样性:GAN 通常生成样本质量较高但训练不稳定,流模型生成样本质量略逊但训练稳定且易于解释。

流模型因其可逆性和精确似然计算的特性,在密度估计、可解释性和无损压缩等任务中具有独特优势。

3.5 自回归模型

3.5.1 自回归模型简介

自回归模型(Autoregressive Model)是一类通过将数据的每个元素建模为前面元素的条件概率来生成数据的生成式模型。其核心思想是将高维数据的联合分布分解为一系列有序的条件分布。例如,对于序列 x = ( x 1 , x 2 , . . . , x n ) x = (x_1, x_2, ..., x_n) x=(x1,x2,...,xn),自回归模型将其联合概率分布分解为:
P ( x ) = P ( x 1 ) P ( x 2 ∣ x 1 ) P ( x 3 ∣ x 1 , x 2 ) ⋯ P ( x n ∣ x 1 , . . . , x n − 1 ) P(x) = P(x_1)P(x_2|x_1)P(x_3|x_1, x_2)\cdots P(x_n|x_1, ..., x_{n-1}) P(x)=P(x1)P(x2x1)P(x3x1,x2)P(xnx1,...,xn1)
常见的自回归模型包括:PixelRNN、PixelCNN(用于图像生成)、WaveNet(用于音频生成)、Transformer(用于文本生成)等。

3.5.2 与 GAN 的对比
  • 生成方式:自回归模型按顺序逐步生成每个元素,每一步依赖于前面已生成的内容;GAN 则通过生成器一次性生成完整样本。
  • 训练目标:自回归模型直接最大化数据的似然概率(log-likelihood);GAN 采用对抗训练目标,不直接优化似然。
  • 采样速度:自回归模型生成速度较慢(需逐步生成),GAN 生成速度快(可并行)。
  • 样本质量:GAN 通常能生成更高质量的样本,但训练不稳定;自回归模型训练稳定,生成样本多样性好,但可能缺乏全局一致性。
3.5.3 优缺点

优点:

  • 训练过程稳定,易于收敛,训练难度低。
  • 能精确计算数据的似然概率,便于模型评估。
  • 生成样本多样性好,适用于序列建模(如文本、音频)。

缺点:

  • 生成速度慢,难以并行化(尤其是长序列或高维数据)。
  • 可能难以捕捉全局结构,生成的样本有时缺乏整体一致性。

自回归模型因其稳定性和可解释性,在自然语言处理、音频建模等领域应用广泛。

3.6 扩散模型

3.6.1 扩散模型简介

扩散模型(Diffusion Model)是一类基于概率扩散过程的生成式模型。其核心思想是将数据逐步添加噪声,直到变为纯噪声,然后训练一个神经网络学会逐步去噪,逆向还原出原始数据。训练过程中,模型学习如何从噪声中一步步恢复出真实样本。常见的扩散模型包括 DDPM(Denoising Diffusion Probabilistic Model)等。

3.6.2 模型优缺点
优点
  • 能生成高质量、高分辨率的样本,尤其在图像生成领域表现突出。
  • 训练过程稳定,不易出现模式崩溃(mode collapse)等问题。
  • 理论基础扎实,易于解释和分析。
缺点
  • 采样速度较慢,需要多步迭代去噪才能生成样本。
  • 对计算资源要求较高,训练和推理成本大。
3.6.3 主要应用领域
  • 图像生成与编辑(如文本到图像生成、图像修复、超分辨率等)
  • 音频生成(如语音合成、音乐生成)
  • 分子结构生成、医学影像等科学领域

扩散模型已成为当前生成式模型研究和应用的热点,推动了生成式 AI 在多个领域的进步。

3.7 一致性模型

3.7.1 一致性模型简介

一致性模型(Consistency Model, CM)是一类新兴的生成式模型,旨在结合扩散模型的高生成质量与更快的采样速度。其核心思想是通过一致性正则化训练神经网络,使模型在不同噪声水平下生成的样本保持一致,从而实现一步或少步采样即可生成高质量样本。

3.7.2 主要特点
  • 高效采样:一致性模型能够在极少的采样步数(甚至一步)内生成高质量样本,大幅提升推理速度。
  • 高生成质量:在图像等任务上,生成样本的质量接近甚至优于传统扩散模型。
  • 训练方式灵活:可与扩散模型等已有生成模型结合,作为蒸馏或加速模块使用。
3.7.3 推理速度与训练成本
  • 推理速度:一致性模型的推理速度远快于传统扩散模型,通常只需一步或少数几步采样,适合对实时性要求高的应用场景。
  • 训练成本:训练成本与扩散模型相当,甚至略高,因为需要在不同噪声水平下进行一致性约束,以图像生成为例,需要包含大量成对的含噪声图像与清晰图像的数据集。但训练过程稳定,易于收敛。

一致性模型为生成式 AI 带来了高效推理与高质量生成的平衡,成为当前生成模型领域的重要研究方向之一。

4. 总结

本文系统梳理了主流深度生成式模型的类型及其特点,包括能量模型、变分自编码器(VAE)、生成对抗网络(GAN)、流模型、自回归模型、扩散模型和一致性模型。各类模型在生成方式、训练目标、样本质量、采样速度等方面各有优劣。能量模型和 VAE 以概率建模为核心,GAN 通过对抗训练生成高质量样本,流模型强调可逆性和精确似然计算,自回归模型适合序列建模,扩散模型和一致性模型则在高质量生成和高效采样之间取得平衡。生成式模型已广泛应用于图像、文本、音频等领域,并持续推动 AI 技术进步。


http://www.hkcw.cn/article/gRSpNjaFjX.shtml

相关文章

DAY 16 numpy数组与shap深入理解

一、NumPy 数组基础笔记 1. 理解数组的维度 (Dimensions) NumPy 数组的维度 (Dimension) 或称为 轴 (Axis) 的概念,与我们日常理解的维度非常相似。 直观判断: 数组的维度层数通常…

Maven 安装与配置指南(适用于 Windows、Linux 和 macOS)

Apache Maven 是一款广泛应用于 Java 项目的项目管理和构建工具。 本文提供在 Windows、Linux 和 macOS 系统上安装与配置 Maven 的详细步骤,旨在帮助开发者快速搭建高效的构建环境。 一、前置条件:安装 Java Development Kit (JDK) Maven 依赖于 Java …

Java对象克隆:从浅到深的奥秘

浅克隆与深克隆在Java中的应用及区别 核心概念 浅克隆 复制对象时仅克隆基本数据类型字段,引用类型字段共享原对象引用。实现方式: class Person implements Cloneable {String name;Address address; // 引用类型字段Overrideprotected Object clone…

【HW系列】—日志介绍

文章目录 一、日志介绍二、Apache日志详解1. 日志存放位置2. 日志类型3. 日志级别4. 常用日志分析命令(Linux环境) 三、IIS日志详解四、日志分析工具:360星图 一、日志介绍 为什么要使用日志 故障诊断:快速定位系统错误根源安全审…

cuda_fp8.h错误

现象: cuda_fp8.h错误 原因: CUDA Toolkit 小于11.8,会报fp8错误,因此是cuda工具版本太低。通过nvcc --version查看 CUDA Toolkit 是 NVIDIA 提供的一套 用于开发、优化和运行基于 CUDA 的 GPU 加速应用程序的工具集合。它的核心作用是让开发…

内容中台构建数字化管理新路径

数字化内容管理核心架构 现代企业数字化内容管理的核心架构依托于动态元数据架构构建策略与多源数据智能整合体系的双重支撑。通过建立三层架构模型——数据采集层、逻辑处理层与应用服务层,系统能够实现跨平台内容资产的统一索引与语义关联。其中,Bakl…

【连载21】基础智能体的进展与挑战综述-交互风险

20. 智能体外部安全性:交互风险 随着人工智能智能体的发展以及与日益复杂的环境互动,与这些互动相关的安全风险已成为一个关键问题。本章聚焦于人工智能智能体与记忆系统、物理和数字环境及其他智能体的互动。这些互动使人工智能智能体面临各种脆弱性&a…

【Day41】

DAY 41 简单CNN 知识回顾 数据增强卷积神经网络定义的写法batch归一化:调整一个批次的分布,常用与图像数据特征图:只有卷积操作输出的才叫特征图调度器:直接修改基础学习率 卷积操作常见流程如下: 1. 输入 → 卷积层 →…

C++:参数传递方法(Parameter Passing Methods)

目录 1. 值传递(Pass by Value) 2. 地址传递(Pass by Address) 3. 引用传递(Pass by Reference) 数组作为函数参数(Array as Parameter) 数组作为函数返回值 什么是函数&#xff…

【iOS】方法交换

方法交换 method-swizzling是什么相关API方法交换的风险method-swizzling使用过程中的一次性问题在当前类中进行方法交换类方法的方法交换 方法交换的应用 method-swizzling是什么 method-swizzling的含义是方法交换,他的主要作用是在运行的时候将一个方法的实现替…

GoogLeNet网络模型

GoogLeNet网络模型 诞生背景 在2014年的ImageNet图像识别挑战赛中,一个GoogLeNet的网络架构大放异彩,与VGG不同的是,VGG用的是3*3的卷积,而GoogLeNet从1*1到7*7的卷积核都用,也就是使用不同大小的卷积核组合。 网络…

Linux:动静态库

一:什么是库 库是写好的,现有的,成熟的可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人都从零开始写,因此库的存在一样非同寻常 本质上库是一种可执行代码的二进制形式,可以被操作…

【图像处理入门】2. Python中OpenCV与Matplotlib的图像操作指南

一、环境准备 import cv2 import numpy as np import matplotlib.pyplot as plt# 配置中文字体显示(可选) plt.rcParams[font.sans-serif] [SimHei] plt.rcParams[axes.unicode_minus] False二、图像的基本操作 1. 图像读取、显示与保存 使用OpenCV…

设计模式——装饰器设计模式(结构型)

摘要 文中主要介绍了装饰器设计模式,它是一种结构型设计模式,可在不改变原有类代码的情况下,动态为对象添加额外功能。文中详细阐述了装饰器模式的角色、结构、实现方式、适合场景以及实战示例等内容,还探讨了其与其他设计模式的…

生活小记啊

最近生活上的事情还是蛮多的,想到哪写到哪。 工作 三月的某个周六,正在加班写技术方案,大晚上写完了听到调动通知,要去新的团队了。 还是蛮不舍的,看着产品从无到有,一路走过来,倾注了不少感…

【android bluetooth 案例分析 04】【Carplay 详解 2】【Carplay 连接之手机主动连车机】

1. 背景 在【android bluetooth 案例分析 04】【Carplay 详解 1】【CarPlay 在车机侧的蓝牙通信原理与角色划分详解】中我们从整理上介绍了车机中 carplay 相关基础概念。 本节 将详细分析 iphone手机主动 连接 车机carplay 这一过程。 先回顾一下 上一节, carpla…

【Kotlin】数字字符串数组集合

【Kotlin】简介&变量&类&接口 【Kotlin】数字&字符串&数组&集合 文章目录 Kotlin_数字&字符串&数组&集合数字字面常量显式转换数值类型转换背后发生了什么 运算字符串字符串模板字符串判等修饰符数组集合通过序列提高效率惰性求值序列的操…

FreeCAD源码分析: 串行化工具

本文分析FreeCAD中的串行化工具。 注1:限于研究水平,分析难免不当,欢迎批评指正。 注2:文章内容会不定期更新。 零、预修 0.1 QDataStream 0.2 Boost.Iostreams 0.3 Zipios 0.4 Xerces-C 一、核心组件 1.1 Base::Writer 1.2 Ba…

【R语言编程绘图-plotly】

安装与加载 在R中使用plotly库前需要安装并加载。安装可以通过CRAN进行,使用install.packages()函数。加载库使用library()函数。 install.packages("plotly") library(plotly)测试库文件安装情况 # 安装并加载必要的包 if (!requireNamespace("p…

设计模式——系统数据建模设计

摘要 本文主要介绍了UML在软件系统分析和设计中的应用,详细阐述了六大类关系(泛化、实现、依赖、关联、聚合、组合)及其在UML类图中的表示方法,并通过具体例子说明了这些关系在实际编程中的应用。同时,文章还概述了UM…