GAN和扩散模型
GAN
一、GAN的架构
1.生成器(Generator)
(1)功能:负责生成新的数据样本。
(2)结构:通常是一个深度神经网络,输入为低维向量(如随机噪声),输出为高维向量(如图片、文本或语音)。
(3)训练目标:生成尽可能真实的数据,以欺骗判别器。
2.判别器(Discriminator)
(1)功能:负责区分输入的数据是真实数据还是由生成器生成的假数据。
(2)结构:同样是一个深度神经网络,输入为高维向量(如图片、文本或语音),输出为一个标量,表示输入数据的真实性概率。
(3)训练目标:尽可能准确地区分真实数据和生成数据。

GAN模型的训练过程
- 初始化网络:
生成器(Generator)和判别器(Discriminator)的参数需要随机初始化。这两个网络都是神经网络,通常使用随机权重开始训练。
# 实例化
generator = Generator()
discriminator = Discriminator()
- 训练判别器:
(1)从真实数据集中 随机选择一批数据,将其输入到 判别器中进行训练。
for i, (img, _) in enumerate(dataloader): # 内层迭代次数为 10000 // 64 = 157次,每次 64个数据
(2)同时,从生成器的当前状态生成一批假数据(也称为生成数据),也将这些数据输入到判别器中进行训练。
# 假数据的生成
fake_img = torch.randn(size, 100)
(3)在训练判别器时,需要固定生成器的参数(.detach函数),只更新判别器的参数。
output_fake = generator(fake_img)
fake_socre = discriminator(output_fake.detach())
(4)判别器的目标是将真实数据和假数据区分开来,因此其损失函数通常定义为二元交叉熵损失函数(.BCELoss函数)
# 损失函数
criterion = torch.nn.BCELoss() # 对应 Sigmoid,计算二元交叉墒损失
(5)使用反向传播算法更新判别器的参数,以最小化损失函数。
3. 训练生成器:
(1)生成器的目标是生成与真实数据相似的假数据,使得判别器无法区分真实数据和假数据。
(2)生成器的 损失函数通常定义为 判别器对 假数据的 输出结果的 交叉熵损失函数的 相反数。换句话说,生成器希望判别器 对假数据的判断结果 尽可能接近真实数据。
fake_G_socre = discriminator(output_fake)
G_fake_loss = criterion(fake_G_socre, torch.ones_like(fake_G_socre))
(3)同样使用反向传播算法更新生成器的参数,以最小化其损失函数。
4.具体的训练原理
(1)神经网络架构

一般神经网络模型基本构成包含三个部分(由这三个部分组成):输入层(Input Layer)、隐藏层(Hidden Layer)和输出层(Output Layer)组成。
(一)输入层:只有一层,用于接收输入数据的特征X1 、X2……,然后原封不动输出给隐藏层,输入层不进行任何计算。
(二)隐藏层:可以一层或多层,对上一层过来的数据进行处理然后输出给下一层,最终输出到输出层。f 指的是激活函数
(三)输出层: 从隐藏层获取输入并执行计算,作为这些计算结果的计算值Y1 、Y2……,即输出。
(2)损失函数
目的:损失函数(loss function)是用来估量模型的预测值与真实值的不一致程度(即误差)。
生成网络的损失函数:

G 代表生成网络,D 代表判别网络,H 代表交叉熵,z 是输入随机数据。D(G(z))是对生成数据的判断概率,1代表数据绝对真实,0代表数据绝对虚假。H(1,D(G(z)))代表判断结果与1的距离。生成网络想取得良好的效果,那就要做到,让判别器将生成数据判别为真数据(即D(G(z))与1的距离越小越好)。
判别网络的损失函数:

x是真实数据,H(1,D(x))代表真实数据与1的距离,H(0,D(G(z))代表生成数据与0的距离。识别网络要想取得良好的效果,那么就要做到,在它眼里,真实数据就是真实数据,生成数据就是虚假数据(即真实数据与1的距离小,生成数据与0的距离小)。
(3)优化原理:生成网络和判别网络有了损失函数,就可以基于各自的损失函数,利用误差反向传播(Backpropagation)(BP)反向传播算法和最优化方法(如梯度下降法)来实现参数的调整),不断提高生成网络和判别网络的性能(最终生成网络和判别网络的成熟状态就是学习到了合理的映射函数)。
GAN的优缺点(据NeurIPS2023最新研究)
一、主要优点
1.高质量生成能力
GAN 能够生成高度逼真的图像和其他复杂的数据结构,这得益于生成器和判别器之间的竞争机制。这种特性使得 GAN 在图像合成、超分辨率重建等领域表现出色。
2.无需显式概率建模
对抗性模型的一个显著特点是不需要显式的概率密度估计过程。相反,生成器通过学习如何欺骗判别器来间接优化目标函数。这种方法减少了对先验假设的需求,并允许更灵活地处理复杂的分布。
3.尖锐分布的支持
GAN 可以有效地捕捉并表示非常集中甚至退化的分布形式,这是许多依赖于马尔可夫链蒙特卡洛方法的传统技术难以实现的优势之一2。因此,在某些特定场景下,GAN 提供了一种更为精确的表现方式。
4.无直接数据样本更新的风险
发生器网络并不直接利用训练集中的具体实例来进行权重调整;它仅仅依据来自判别器反向传播过来的信息完成自我改进进程。这一特点有助于降低过拟合的可能性,同时也增强了隐私保护方面的潜力。
二、存在的问题与挑战
1.模式崩溃现象
当前版本下的标准型 GAN 容易遭遇所谓的 “mode collapse”,即生成的结果趋向单一化或者多样性不足的情况发生频率较高。这种情况会严重影响最终产物的质量及其适用范围。
2.收敛困难
训练过程中经常会出现不稳定的现象,比如两个子模块间力量失衡导致整个系统无法正常运作下去等问题较为普遍。这类状况增加了调参难度以及延长开发周期时间成本。
3.评估指标缺乏统一标准
扩散模型
一、基本原理
扩散模型包括两个步骤:
(1)固定的(或预设的)前向扩散过程q:该过程会逐渐将高斯噪声添加到图像中,直到最终得到纯噪声。
(2)可训练的反向去噪扩散过程:训练一个神经网络,从纯噪音开始逐渐去噪,直到得到一个真实图像。
二、理解
1.扩散模型的目的是什么?
学习从纯噪声生成图片的方法
2.扩散模型是怎么做的?
训练一个U-Net,接受一系列加了噪声的图片,学习预测所加的噪声
3.前向过程在干什么?
逐步向真实图片添加噪声最终得到一个纯噪声
对于训练集中的每张图片,都能生成一系列的噪声程度不同的加噪图片
在训练时,这些 【不同程度的噪声图片 + 生成它们所用的噪声】 是实际的训练样本
4.反向过程在干什么?
训练好模型后,采样、生成图片
三、扩散模型与GAN在医学图像生成中的对比分析(基于NeurIPS 2023研究)
NeurIPS 2023相关研究表明,在医学图像生成中,扩散模型相较于GAN具有明显优势,其生成图像多样性更强,能更好学习数据潜在分布,有效避免GAN常见的模式崩溃问题,且在处理复杂医学数据时稳定性更佳,可通过对噪声的逐步处理学习图像特征和结构,在含噪声、伪影、边界模糊的医学图像场景下表现良好;而GAN在复杂数据场景下生成图像质量波动较大。但扩散模型也存在明显劣势,其训练过程复杂耗时,处理高分辨率医学图像时训练时间显著增加,大规模模型训练可能需数天甚至数月,难以满足临床实时性需求,相比之下GAN训练效率更高、生成速度更快,且扩散模型生成图像仍存在细节丢失、结构不准确等问题,而GAN在部分情况下能生成细节更丰富的图像。
阅读文献
[1]周朝阳.(2024).基于扩散模型的医学图像生成方法研究(硕士学位论文,华中农业大学).硕士https://link.cnki.net/doi/10.27158/d.cnki.ghznu.2024.000233doi:10.27158/d.cnki.ghznu.2024.000233.
[2]Hisaichi Shibata,Shouhei Hanaoka,Takahiro Nakao,Tomohiro Kikuchi,Yuta Nakamura,Yukihiro Nomura… & Osamu Abe.(2024).Practical Medical Image Generation with Provable Privacy Protection Based on Denoising Diffusion Probabilistic Models for High-Resolution Volumetric Images.Applied Sciences,14(8),
[3]李例洪.(2024).基于扩散模型的阿尔茨海默病MRI图像生成研究(硕士学位论文,重庆理工大学).硕士https://link.cnki.net/doi/10.27753/d.cnki.gcqgx.2024.000278doi:10.27753/d.cnki.gcqgx.2024.000278.
[4]盛啸.(2023).医学图像分割中基于Transformer和扩散模型的改进U-Net算法研究(硕士学位论文,东南大学).硕士https://link.cnki.net/doi/10.27014/d.cnki.gdnau.2023.001267doi:10.27014/d.cnki.gdnau.2023.001267.
[5]Bhattad, A., McKee, D., Hoiem, D., & Forsyth, D. A. (2023). StyleGAN knows Normal, Depth, Albedo, and More. In Proceedings of the 37th Conference on Neural Information Processing Systems (NeurIPS 2023).
[6]Lou, H., Li, S., & Ni, H. (2023). PCF-GAN: generating sequential data via the characteristic function of measures on the path space. In Proceedings of the 37th Conference on Neural Information Processing Systems (NeurIPS 2023).
更多推荐
所有评论(0)