红色php企业网站模板,中山做百度网站的公司吗,wordpress扫描附件到新浪图床,泰安飞讯网络有限公司本文详细介绍早期生成式AI的代表性模型#xff1a;生成对抗网络GAN。 文章目录 一、基本结构生成器判别器 二、损失函数判别器生成器交替优化目标函数 三、GAN 的训练过程训练流程概述训练流程步骤1. 初始化参数和超参数2. 定义损失函数3. 训练过程的迭代判别器训练步骤生成器… 本文详细介绍早期生成式AI的代表性模型生成对抗网络GAN。 文章目录 一、基本结构生成器判别器 二、损失函数判别器生成器交替优化目标函数 三、GAN 的训练过程训练流程概述训练流程步骤1. 初始化参数和超参数2. 定义损失函数3. 训练过程的迭代判别器训练步骤生成器训练步骤 4. 交替优化5. 收敛判别 GAN 训练过程的挑战 四、GAN 的常见变体1. DCGANDeep Convolutional GAN2. CycleGAN3. BigGAN4. StyleGAN5. cGANConditional GAN 五、GAN 的应用场景六、GAN 的优势与挑战总结 历史文章机器学习深度学习 生成对抗网络Generative Adversarial Network, GAN是一种生成模型由 Ian Goodfellow 等人于 2014 年提出。GAN 通过两个网络——生成器Generator和判别器Discriminator之间的对抗训练使得生成器能够生成逼真的数据从而被判别器难以区分。GAN 已广泛应用于图像生成、图像修复、风格迁移、文本生成等任务。
论文Generative Adversarial Nets 一、基本结构
GAN 包含两个核心部分生成器和判别器。
生成器
功能生成器接收一个随机噪声向量通常是高斯分布或均匀分布并将其映射到数据空间使生成的数据尽可能接近真实数据。目标生成器的目标是 “欺骗”判别器使其无法区分生成数据和真实数据。网络结构生成器通常由一系列反卷积或上采样层组成以逐步生成更高分辨率的图像。
判别器
功能判别器接收输入样本并判断该样本真假。目标判别器的目标是尽可能准确地分辨出真假样本。网络结构判别器通常是一个卷积神经网络CNN将输入数据压缩为一个概率值表示该样本属于真实数据的概率。 二、损失函数
GAN 的训练是一个生成器和判别器相互博弈的过程通过对抗训练逐步提高生成器的生成质量。训练过程主要包括以下步骤
判别器
训练判别器时其输入是真实数据和生成器的生成数据。判别器的目标是区分真实数据和生成数据即使得判别器输出接近 1 的概率表示真实数据接近 0 的概率表示生成数据。判别器的损失函数通常使用二元交叉熵Binary Cross-Entropy L D − E x ∼ p data [ log D ( x ) ] − E z ∼ p z [ log ( 1 − D ( G ( z ) ) ) ] L_D - \mathbb{E}_{x \sim p_{\text{data}}} [\log D(x)] - \mathbb{E}_{z \sim p_z} [\log(1 - D(G(z)))] LD−Ex∼pdata[logD(x)]−Ez∼pz[log(1−D(G(z)))]
参数含义 x x x真实数据样本来自于真实数据分布 p data p_{\text{data}} pdata。 z z z生成器输入的噪声向量通常从均匀分布或正态分布中采样。 D ( x ) D(x) D(x)判别器对真实样本 x x x 的输出表示判别器认为该样本是真实数据的概率。 D ( G ( z ) ) D(G(z)) D(G(z))判别器对生成数据 G ( z ) G(z) G(z) 的输出表示判别器认为该样本为真实数据的概率。
判别器损失的计算过程 第一部分 − E x ∼ p data [ log D ( x ) ] - \mathbb{E}_{x \sim p_{\text{data}}} [\log D(x)] −Ex∼pdata[logD(x)] 表示对真实样本的损失。判别器希望尽量将真实数据的输出 D ( x ) D(x) D(x) 接近 1因此这部分的目标是最小化 log D ( x ) \log D(x) logD(x)。 第二部分 − E z ∼ p z [ log ( 1 − D ( G ( z ) ) ) ] - \mathbb{E}_{z \sim p_z} [\log(1 - D(G(z)))] −Ez∼pz[log(1−D(G(z)))] 表示对生成样本的损失。判别器希望尽量将生成数据的输出 D ( G ( z ) ) D(G(z)) D(G(z)) 接近 0因此这部分的目标是最小化 log ( 1 − D ( G ( z ) ) ) \log(1 - D(G(z))) log(1−D(G(z)))。
生成器
训练生成器时其输入是一个 随机噪声向量通常记为 z。生成器的目标是生成逼真的样本“欺骗”判别器使判别器无法分辨生成数据和真实数据因此生成器希望判别器输出接近 1让判别器以为生成的图像是真实的。生成器的损失函数与判别器的损失类似但这里生成器希望最大化判别器对生成数据的输出即让判别器认为生成数据为真实数据 L G − E z ∼ p z [ log D ( G ( z ) ) ] L_G -\mathbb{E}_{z \sim p_z} [\log D(G(z))] LG−Ez∼pz[logD(G(z))]
参数含义 z z z生成器输入的噪声向量通常从均匀分布或正态分布中采样。 D ( G ( z ) ) D(G(z)) D(G(z))判别器对生成数据 G ( z ) G(z) G(z) 的输出表示判别器认为生成样本为真实数据的概率。
生成器损失的计算过程 损失形式 − E z ∼ p z [ log D ( G ( z ) ) ] -\mathbb{E}_{z \sim p_z} [\log D(G(z))] −Ez∼pz[logD(G(z))] 生成器的目标是使 D ( G ( z ) ) D(G(z)) D(G(z)) 接近 1也就是希望判别器对生成的样本做出“真实”的判断。 目标 生成器通过最大化判别器对生成样本的输出使得判别器无法区分生成样本和真实样本。 生成器的目标是最小化该损失即最大化判别器对生成样本的输出。 交替优化
在每轮训练中
固定生成器训练判别器。固定判别器训练生成器。通过交替优化两者不断改进生成器的生成样本越来越逼真而判别器的分辨能力也不断提高。
目标函数
GAN 的目标是找到一个平衡点使生成器生成的样本和真实数据在分布上尽可能接近。它是一个极小极大minimax损失函数表达了生成器和判别器的博弈 min G max D V ( D , G ) E x ∼ p data [ log D ( x ) ] E z ∼ p z [ log ( 1 − D ( G ( z ) ) ) ] \min_G \max_D V(D, G) \mathbb{E}_{x \sim p_{\text{data}}}[\log D(x)] \mathbb{E}_{z \sim p_z}[\log(1 - D(G(z)))] GminDmaxV(D,G)Ex∼pdata[logD(x)]Ez∼pz[log(1−D(G(z)))]
参数含义: G G G生成器的参数。 D D D判别器的参数。 x x x真实样本来自真实数据分布 p data p_{\text{data}} pdata。 z z z噪声输入通常从均匀分布或正态分布中采样。 D ( x ) D(x) D(x)判别器对真实样本 x x x 的输出概率。 D ( G ( z ) ) D(G(z)) D(G(z))判别器对生成样本的输出概率。
这个目标函数包含两个部分
最大化判别器的目标判别器希望最大化 log D ( x ) \log D(x) logD(x) 和 log ( 1 − D ( G ( z ) ) ) \log(1 - D(G(z))) log(1−D(G(z)))即尽可能将真实数据判断为真实样本、生成数据判断为生成样本。最小化生成器的目标生成器希望最小化 log ( 1 − D ( G ( z ) ) ) \log(1 - D(G(z))) log(1−D(G(z)))即生成器希望生成的样本尽可能接近真实样本以欺骗判别器。 实际的 GAN 训练过程中不会直接出现极小极大损失函数而是通过优化生成器和判别器的各自损失函数来间接实现这个目标。 极小极大损失函数的目标通过分解为判别器损失和生成器损失来实现二者的对抗优化就是对极小极大目标函数的间接实现。通过交替优化生成器和判别器的损失。伪代码实现如下 三、GAN 的训练过程
训练流程概述
GAN 的训练是一个极小极大minimax的博弈过程。
生成器的目标是生成逼真的样本来“欺骗”判别器使得判别器无法分辨生成样本与真实样本判别器的目标是尽可能准确地区分真实样本和生成样本。
这种对抗关系通过两个网络的交替训练来实现。
GAN 的训练过程分为以下几个主要步骤。
训练流程步骤
1. 初始化参数和超参数
初始化生成器 G G G 和判别器 D D D 的网络参数。设定超参数如学习率、训练轮数、批量大小、优化器等。通常选择的优化器为 Adam 优化器初始学习率一般设为较小值以确保训练过程稳定。
2. 定义损失函数
GAN 的损失函数由生成器和判别器的对抗损失组成。目标是找到一个平衡点使生成器能够生成与真实样本分布相近的样本。 判别器损失 参考上节 生成器损失 参考上节
3. 训练过程的迭代
训练过程的每一轮迭代中生成器和判别器会交替优化。一般的训练过程如下
判别器训练步骤
判别器的目标是区分真实样本和生成样本。每轮判别器训练分为以下步骤
从真实数据分布中采样一批真实样本 x x x。生成器从随机噪声分布 z z z通常为正态分布或均匀分布中采样一批噪声向量并生成对应的样本 G ( z ) G(z) G(z)。将真实样本 x x x 和生成样本 G ( z ) G(z) G(z) 分别输入判别器 D D D。判别器是一个二分类神经网络通常由卷积层构成以提取样本的特征。输出是一个概率值表示输入样本为真实样本的概率。计算出对真实样本的输出 D ( x ) D(x) D(x) 和生成样本的输出 D ( G ( z ) ) D(G(z)) D(G(z))。根据判别器损失函数 L D L_D LD计算判别器的损失更新判别器的参数使其能够更好地区分真实样本和生成样本。
判别器训练的目的是让它尽可能区分真实样本和生成样本鼓励其将真实样本判断为 1生成样本判断为 0。
生成器训练步骤
生成器的目标是生成能够“欺骗”判别器的样本。生成器的训练步骤如下
从随机噪声分布 z z z 中采样一批噪声向量。将噪声向量输入生成器 G G G得到生成的样本 G ( z ) G(z) G(z)。生成器是一个神经网络通常由多层神经网络构成。在图像生成任务中生成器通常采用反卷积转置卷积或上采样层来逐步生成高分辨率图像。将生成样本 G ( z ) G(z) G(z) 输入判别器 D D D计算判别器对生成样本的输出 D ( G ( z ) ) D(G(z)) D(G(z))。根据生成器损失函数 L G L_G LG计算生成器的损失通过反向传播更新生成器的参数使生成器生成的样本更加逼真以“欺骗”判别器。
生成器的优化目标是使得判别器的输出 D ( G ( z ) ) D(G(z)) D(G(z)) 越接近 1 越好即让判别器认为生成样本是真实样本。生成器训练时这里的 D D D 的参数是不可训练的。
4. 交替优化
训练过程中生成器和判别器会不断地交替优化。通常每轮训练中会多次优化判别器如更新判别器参数数次再更新生成器参数一次以确保判别器的分辨能力。这种交替优化的过程被称为 GAN 的“对抗训练”。
5. 收敛判别
GAN 的训练目标是找到生成器和判别器之间的平衡点但收敛难以判断。通常可以通过以下方法判别 GAN 是否趋于收敛 生成样本质量 观察生成样本的视觉质量当生成样本变得清晰且真实时说明生成器已经学到了接近真实数据分布的特征。 判别器输出的均衡 在理想的情况下判别器对真实样本和生成样本的输出概率应接近 0.5表示判别器很难区分真假样本。 损失变化 监控生成器和判别器的损失若损失趋于平稳说明两者逐渐达到平衡状态。 GAN 训练过程的挑战
GAN 的训练通常存在一些挑战需要在训练过程中进行调试和优化。 训练不稳定 GAN 的训练过程可能会发生梯度消失或梯度爆炸导致生成效果不佳。可以使用 WGAN、谱归一化等方法来提升稳定性。 模式崩溃Mode Collapse 生成器可能会陷入“模式崩溃”现象即只生成相似的样本而缺乏多样性。可以通过多样性损失如 Minibatch Discrimination或训练策略如添加噪声来缓解模式崩溃。 对抗关系平衡 判别器和生成器的能力需要平衡。若判别器太强生成器难以改进若生成器太强判别器很快失去判断能力。可以适当调整判别器和生成器的训练频率保持两者的平衡。
四、GAN 的常见变体
原始的 GAN 结构存在一些问题例如训练不稳定、容易陷入模式崩溃mode collapse等。为了克服这些问题出现了多种改进的 GAN 变体。
变体主要改进应用场景优点DCGAN使用深度卷积结构生成图像批量归一化等改进高质量图像生成、人脸生成、艺术风格图像生成生成质量高结构简单CycleGAN无需配对数据使用循环一致性损失和双生成器双判别器实现图像转换图像风格迁移照片转素描、白天转夜晚等无需配对数据双向转换BigGAN标签嵌入、谱归一化、大型网络结构更多层次的卷积高清图像生成、超高分辨率生成生成质量极高适合大规模数据StyleGAN样式映射网络自适应实例归一化AdaIN多尺度控制高质量人脸生成、风格迁移细节控制能力强质量极高cGAN在生成器和判别器中加入条件输入实现特定属性生成根据类别标签生成图像不同表情、年龄等可控性高适合特定属性生成 1. DCGANDeep Convolutional GAN DCGAN 是最早将卷积神经网络CNN应用于 GAN 的变体之一被广泛应用于图像生成任务。DCGAN 的目标是提升图像生成质量使生成器可以生成更高分辨率和更具细节的图像。 主要改进 使用卷积层替代 GAN 中传统的全连接层生成器使用反卷积或转置卷积逐步生成图像判别器使用标准的卷积层提取图像特征。移除池化层用步幅卷积stride convolution来减小分辨率从而保留更多细节。在生成器和判别器中使用批量归一化Batch Normalization来加速训练和提升稳定性。生成器使用 ReLU 激活判别器使用 Leaky ReLU 激活。 应用场景 高质量图像生成、人脸生成、艺术风格图像生成等。 优点 结构简单训练稳定性较高生成图像质量较好是后续很多 GAN 变体的基础。 2. CycleGAN CycleGAN 是一种专注于未配对数据集的图像到图像转换的 GAN 变体用于解决当缺少成对样本时的风格迁移和图像转换任务。 主要改进 循环一致性损失Cycle Consistency LossCycleGAN 在生成器中引入了循环一致性损失使得图像从一种风格转换为另一种风格后还可以还原回原始风格。这种双向映射的设计让 CycleGAN 能够在没有配对数据的情况下进行训练。双生成器双判别器CycleGAN 使用两个生成器和两个判别器分别负责从源域到目标域的转换以及从目标域到源域的逆向转换。 应用场景 图像风格转换如将马变为斑马、照片转为素描、白天转为夜晚、图像修复和艺术创作等。 优点 无需配对训练数据即可实现高质量的图像到图像转换特别适合风格迁移任务。 3. BigGAN BigGAN 是一种大规模、高分辨率的 GAN 变体主要用于生成高质量、高分辨率的图像。BigGAN 在生成效果上达到了新的高度但其训练难度和计算资源要求也较高。 主要改进 标签嵌入Label Embedding在生成器和判别器中加入标签嵌入以便在条件 GAN 中生成具有特定类别的图像。正则化和归一化技术BigGAN 使用谱归一化Spectral Normalization来控制判别器的梯度使得训练更稳定。此外使用大批量训练、渐进式训练等手段来提高生成图像的分辨率和质量。生成器架构调整生成器中使用了更多层次的卷积使得生成的图像更细腻并利用大型网络结构提升生成质量。 应用场景 高清图像生成、图像生成研究等适用于需要超高质量和分辨率的生成任务。 优点 生成质量出色可以生成高分辨率的图像但训练成本较高适合有强大计算资源支持的场景。 4. StyleGAN StyleGAN 是由 NVIDIA 提出的基于样式控制的 GAN 变体提供了更高的图像生成质量和样式可控性。它被广泛用于高质量人脸生成和其他具有分层样式控制的生成任务中。 主要改进 样式映射网络Style Mapping NetworkStyleGAN 使用一个样式映射网络将潜在空间中的输入向量映射到样式空间然后将这些样式控制应用于生成器的不同层次。自适应实例归一化Adaptive Instance Normalization, AdaIN生成器在每一层应用 AdaIN 操作使样式向量可以控制每层的特征分布实现不同分辨率下的细节和整体风格调整。多尺度控制通过在不同生成层次中应用样式向量StyleGAN 可以在不同层次上控制图像的特征从而生成更细腻、更有层次感的图像。 应用场景 高质量人脸生成、艺术风格迁移、细节编辑等。 优点 生成图像质量极高具有强大的样式控制能力能够在不同层次上调整生成样本的特征。 5. cGANConditional GAN cGAN条件 GAN 是在生成器和判别器中引入条件信息如类别标签、属性标签等的 GAN 变体使得 GAN 生成的图像可以带有特定的属性或类别。cGAN 的基本思想是在生成器和判别器的输入中加入条件变量。 主要改进 条件输入在生成器的输入噪声向量上添加类别标签或其他条件变量这使得生成器可以根据给定条件生成带有特定特征的图像。判别器的条件输入在判别器中引入相同的条件信息使判别器能够更准确地判断生成样本是否符合给定条件。 应用场景 根据类别生成特定属性的图像如不同表情、服装、场景、年龄等。适用于需要生成带有特定特征的图像任务。 优点 生成的图像具有更高的可控性适合生成带有明确标签或特征的图像。 五、GAN 的应用场景
GAN 具有强大的生成能力在多个领域中得到了广泛应用 图像生成 GAN 可用于生成高分辨率图像应用于艺术创作、广告、电影制作等领域。 图像修复 GAN 可用于修复有缺陷或损坏的图像例如老照片修复、面部填补。 图像超分辨率 GAN 可生成清晰的高分辨率图像用于增强低分辨率图像的细节。 图像到图像的转换 例如将草图转为真实照片黑白图像上色等。CycleGAN 在无监督图像转换任务上表现优异。 数据增强 在数据集有限的情况下GAN 可以用于生成新样本扩展训练数据提升模型的泛化能力。 文本生成与文本到图像生成 GAN 已应用于文本生成、文本到图像生成等任务使 AI 能够根据描述生成符合语义的图像。
六、GAN 的优势与挑战
优势 生成能力强 GAN 的生成器可以生成逼真的样本不仅限于简单的噪声分布。 无监督学习 GAN 不需要带标签的样本能够通过未标注数据进行无监督训练。 适用范围广 GAN 的生成能力在图像、音频、文本等多种数据类型上都有广泛应用。
挑战 训练不稳定 GAN 的训练是生成器和判别器的对抗过程容易陷入梯度消失或爆炸训练过程不稳定。 模式崩溃 GAN 可能生成重复样本而缺乏多样性模式崩溃即生成器只生成某些特定样本。 超参数敏感 GAN 的训练对学习率、批量大小等超参数较为敏感调优成本高。 难以衡量生成质量 GAN 的生成样本质量较难定量评估目前常用的 FIDFréchet Inception Distance等指标也无法完全反映样本质量。
总结
GAN 是一种强大的生成模型通过生成器和判别器的对抗训练使得生成器能够生成接近真实的数据。GAN 的多种变体和改进版本在图像生成、数据增强、风格转换等领域取得了显著成果。尽管 GAN 面临训练不稳定、模式崩溃等挑战但它的生成能力为多个领域的研究和应用提供了新的可能性。未来的研究将继续优化 GAN 的稳定性和多样性扩展其在不同场景的应用。
历史文章
机器学习
机器学习笔记——损失函数、代价函数和KL散度 机器学习笔记——特征工程、正则化、强化学习 机器学习笔记——30种常见机器学习算法简要汇总 机器学习笔记——感知机、多层感知机(MLP)、支持向量机(SVM) 机器学习笔记——KNNK-Nearest NeighborsK 近邻算法 机器学习笔记——朴素贝叶斯算法 机器学习笔记——决策树 机器学习笔记——集成学习、Bagging随机森林、BoostingAdaBoost、GBDT、XGBoost、LightGBM、Stacking 机器学习笔记——Boosting中常用算法GBDT、XGBoost、LightGBM迭代路径 机器学习笔记——聚类算法Kmeans、GMM-使用EM优化 机器学习笔记——降维
深度学习
深度学习笔记——优化算法、激活函数 深度学习——归一化、正则化 深度学习——权重初始化、评估指标、梯度消失和梯度爆炸 深度学习笔记——前向传播与反向传播、神经网络前馈神经网络与反馈神经网络、常见算法概要汇总 深度学习笔记——卷积神经网络CNN 深度学习笔记——循环神经网络RNN、LSTM、GRU、Bi-RNN 深度学习笔记——Transformer 深度学习笔记——3种常见的Transformer位置编码 深度学习笔记——GPT、BERT、T5 深度学习笔记——ViT、ViLT 深度学习笔记——DiTDiffusion Transformer 深度学习笔记——多模态模型CLIP、BLIP 深度学习笔记——AE、VAE