WGAN、CSGAN、ADC-GAN…你都掌握了吗?一文总结图像生成必备经典模型(四 )

简介: WGAN、CSGAN、ADC-GAN…你都掌握了吗?一文总结图像生成必备经典模型

1.7 IC-GAN


GAN 有着神经网络模型所共有的致命缺点,就是具有局限性,通常只能生成与训练数据集密切相关的物体或场景的图像。Facebook AI Research 为了解决这个问题,提出了IC-GAN,可以生成逼真的、没有见过的图像组合。研究人员从核密度估计(kernel density estimation, KDE)技术中得到启发,引入了一种非参数化方法来建模复杂数据集的分布。KDE是一种非参数密度估计器,以参数化核的混合形式对每个训练数据点周围的密度进行建模。IC-GAN可以看作是一种混合密度估计器,其中每个分量都是通过对训练实例进行条件化得到的。

IC-GAN 将数据流形划分为由数据点及其最近邻描述的重叠邻域的混合物,IC-GAN模型能够学习每个数据点周围的分布。通过在条件实例周围选择一个足够大的邻域,可以避免将数据过度划分为小的聚类簇。当给定一个具有M个数据样本的未标记数据集的嵌入函数f,首先使用无监督或自监督训练得到f来提取实例特征(instance features)。然后使用余弦相似度为每个数据样本定义k个最近邻的集合。使用生成器隐式模拟条件分布p(x | h_i) 时,生成器从单位高斯先验z~N(0, 1)变换样本从条件分布中抽取样本x,其中h_i是从训练数据中抽取的实例x_i的特征向量。



图8.  IC-GAN。(a) 生成器的目标是生成与h_i的邻域相似的现实图像,在嵌入空间中使用余弦相似度定义。图中显示了七个邻居中的五个。请注意,同一邻域的图像可能属于不同的类别(被描述为不同的形状)。(b) 以实例特征h_i和噪声z为条件,生成器产生一个合成样本x_g。生成的样本和真实样本(h_i的邻居)被送入鉴别器,鉴别器以相同的h_i为条件



在IC-GAN中,采用对抗式方法来训练生成器,因此可以联合训练生成器和鉴别器,鉴别器用来区分h_i的真实相邻节点和生成的相邻点。对于每个h_i,真实邻居都从A_i中均匀采样。生成器 G和鉴别器 D都参与了一个两人最小-最大博弈,在博弈中,二者试图找到目标的纳什均衡的等式。



在训练IC-GAN时,使用所有可用的训练数据点来微调模型。在推理时,与KDE等非参数密度估计方法一样,IC-GAN的生成器也需要实例特征,这些特征可能来自于训练分布或不同的分布。

并且这种方法可以扩展到具有类别条件(class condition)的生成上。通过在类别标签y上添加一个额外的生成器和鉴别器,可以让IC-GAN 用于有类别条件的生成。IC-GAN 通过向生成器和鉴别器提供实例的表示作为额外的输入,并通过使用实例的邻居作为鉴别器的真实样本,学习对数据点(也称为实例)的邻域的分布建模。与对离散簇索引进行条件处理不同,对实例表示进行条件处理自然会导致生成器为相似实例生成相似样本。并且一旦训练完成,IC-GAN可以通过在推理时简单地交换条件实例,轻松地迁移到训练期间未看到的其他数据集。

作者在文章中是基于BigGAN和StyleGAN2实现的IC-GAN,同时扩展了它们的架构来处理引入的实例条件。当使用BigGAN作为基础架构时,IC-GAN用全连接层来替换生成器和鉴别器中的类别嵌入层。生成器中的全连接层的输入大小为2,048(对应于特征提取器f_θ的维数)和一个可以调整的输出大小o_dim。鉴别器中的全连接层具有一个可变的输出大小n_dim来匹配中间无条件鉴别器特征向量的维数。对于类别条件的IC-GAN,同时使用类别嵌入层以及与实例条件反射相关联的全连接层。将类别嵌入(维度c_dim=128)和实例嵌入(维度o_dim=512)连接起来。

当使用StyleGAN2作为基础架构时,将生成器中的输出维数512的全连接层替换类别嵌入层。替换鉴别器中的类别嵌入的全连接层是大小可变的。在这种情况下,实例特征与StyleGAN2的映射网络输入处的噪声向量连接起来,为生成器创建一个style vector。当涉及到鉴别器时,映射网络只输入提取的实例特征,以获得一个modulating vector,该向量乘以每个块上的内部鉴别器表示。所有实例特征向量h_i在计算邻域和用作GAN的条件反射之前都用l2范数进行归一化处理。


当前 SOTA!平台收录 IC-GAN 共 1 模型实现资源。

项目 SOTA!平台项目详情页
IC-GAN 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/ic-gan


1.8  ADC-GAN


条件生成模型(Conditional generative models )学习数据和标签的基本联合分布,以实现条件数据的生成。其中,辅助分类器生成式对抗网络(auxiliary classifier generative adversarial network ,AC-GAN)已被广泛使用,但存在着生成样本的类内多样性低的问题。原因是AC-GAN的分类器与生成器无关,因此不能为生成器提供接近联合分布的信息指导,导致条件熵的最小化降低了类内多样性。ADC-GAN的目标是解决上述问题,具体来说,所提出的辅助判别分类器通过辨别真实数据和生成的数据的类别标签而具备生成器感知特性( generator-aware )。

图9 cGAN、AC-GAN、TAC-GAN和ADC-GAN的鉴别器/分类器的说明。符号+/-表示GAN标签(真实或虚假),y是数据x的类别标签。ADC-GAN与cGAN不同,它明确预测了标签,与AC-GAN和TAC-GAN不同的是,分类器C_d也区分真实和生成,就像鉴别器一样
使分类器能够对具有不同类别标签的真实数据和生成的数据进行分类,建立一个鉴别性分类器Cd : X → Y+ ∪ Y- (Y+代表真实数据,Y-代表生成的数据),以鉴别性地识别真实和生成样本的标签。鼓励生成器产生可分类的真实数据,而不是可分类的虚假数据。ADC-GAN的鉴别器、鉴别分类器和生成器的目标函数被定义为:


其中,C_d表示数据x被判别性分类器同时归类为标签y和真假的概率。φ : X → Rd是一个特征提取器,与原始鉴别器共享(D = σ ◦ ψ ◦ φ,具有线性映射ψ : Rd → R和sigmoid函数σ : R → [0, 1]),ϕ+ : Y → Rd和ϕ- : Y → Rd捕获负责真实和生成数据的标签的可学习嵌入。log C_d(y+|x)的最大化鼓励生成器只生成少数标签一致的数据,促进了保真度,但失去了生成样本的多样性。另一方面,log C_d(y-|x)的最小化鼓励生成器不合成典型的标签一致的数据,增加多样性,但可能降低生成样本的保真度。


当前 SOTA!平台收录 ADC-GAN  1模型实现资源。

项目 SOTA!平台项目详情页
ADC-GAN 前往SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/adc-gan

前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及API等资源。


网页端访问:在浏览器地址栏输入新版站点地址 sota.jiqizhixin.com ,即可前往「SOTA!模型」平台,查看关注的模型是否有新资源收录。


移动端访问:在微信移动端中搜索服务号名称「机器之心SOTA模型」或 ID 「sotaai」,关注 SOTA!模型服务号,即可通过服务号底部菜单栏使用平台功能,更有最新AI技术、开发资源及社区动态定期推送。

相关文章
|
存储 缓存 C语言
TCM、ITCM、DTCM
TCM、ITCM、DTCM
2722 0
|
11月前
|
存储 机器学习/深度学习 弹性计算
阿里云服务器租用价格参考:2核4G/4核8G/8核16G价格与选型指南
阿里云服务器2核4G、4核8G、8核16G配置价格参考,目前,2核4G配置按量收费最低0.225元/小时,包年包月平均月价最低47.52元,按年购买u1实例2核4G5M带宽仅需199元且续费不涨价;4核8G配置按量收费最低降至0.45元/小时,包年包月平均月价最低159.84元;8核16G配置按量收费最低0.9元/小时,按月租用平均月价最低319.68元。云服务器实例规格和配置不同,收费标准与活动价格也不同,本文将为您介绍这三大配置的收费标准、活动价格及选型策略,以供选择参考。
|
机器学习/深度学习 自然语言处理 PyTorch
深入剖析Transformer架构中的多头注意力机制
多头注意力机制(Multi-Head Attention)是Transformer模型中的核心组件,通过并行运行多个独立的注意力机制,捕捉输入序列中不同子空间的语义关联。每个“头”独立处理Query、Key和Value矩阵,经过缩放点积注意力运算后,所有头的输出被拼接并通过线性层融合,最终生成更全面的表示。多头注意力不仅增强了模型对复杂依赖关系的理解,还在自然语言处理任务如机器翻译和阅读理解中表现出色。通过多头自注意力机制,模型在同一序列内部进行多角度的注意力计算,进一步提升了表达能力和泛化性能。
11297 48
|
JavaScript Java C++
ArkTS揭秘:如何在无‘类’的世界里,用组件与对象构建HarmonyOS应用的奇妙桥梁?
【10月更文挑战第19天】在鸿蒙系统的ArkTS开发中,类和对象的概念类似于传统OOP语言,但融入了声明式UI的特性。本文通过对比Java中的类和对象,详细介绍了如何在ArkTS中定义组件和实例化组件,并展示了实际开发中的应用示例。通过示例代码,读者可以清晰地理解ArkTS中类和对象的模拟方式及其灵活性。
709 1
|
传感器 安全 Java
如何使用 CoAP 协议进行设备通信
CoAP(Constrained Application Protocol)是一种适用于资源受限设备的轻量级协议,常用于物联网(IoT)设备之间的通信。本文介绍如何使用 CoAP 协议进行设备通信,包括协议的基本概念、消息格式、请求与响应流程以及实际应用示例。
2166 4
|
机器学习/深度学习 JavaScript 算法
深度学习500问——Chapter07:生成对抗网络(GAN)(1)
深度学习500问——Chapter07:生成对抗网络(GAN)(1)
963 3
|
算法 数据处理 计算机视觉
基于OpenCV的人脸对齐步骤详解及源码实现
基于OpenCV的人脸对齐步骤详解及源码实现
|
人工智能 数据安全/隐私保护 开发者
开源大模型与闭源大模型那个更好?
开源大模型与闭源大模型那个更好?
|
人工智能 自然语言处理 IDE
通义灵码:程序员必备的AI编程助手!
通义灵码:阿里云AI编程助手,提供代码生成、智能问答、异常排查等功能,支持多种编程语言和IDE,如VSCode、JetBrains。具备跨文件感知、阿里云服务优化,现个人专业版限时免费。包括行级/函数级续写、自然语言转代码、单元测试生成、代码优化与注释、研发问答等。适用于Java、Python等语言
2649 0
|
机器学习/深度学习 自然语言处理 算法
WGAN、CSGAN、ADC-GAN…你都掌握了吗?一文总结图像生成必备经典模型(二)
WGAN、CSGAN、ADC-GAN…你都掌握了吗?一文总结图像生成必备经典模型(二)
762 0

热门文章

最新文章