CGAN解析

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介:

最近看了好多大神的博客之后越来越觉得自己写的简直不忍直视,不过后来发现不找点事情做就天天吃鸡打dota颓废的不行,,,,
这两个月天天搞gan,做了好多实验,有了点感觉,准备写几篇博客,算是一个总结,其中会附上自己做的一些实验,说说图像方面gan存在的问题、主要的模型等等,先从CGAN开始。
gan那篇论文里,作者用mlp的D和G在mnist,tfd,cifar10上做了实验,用卷积的D和反卷积的G在cifar10上做了实验,看上去效果是不错的,但是亲手做过实验的表示,作者很有可能是从几十张中选出了几张能看的,而且就我的实验结果来看,mode collapse的现象还是挺严重的,当然也可能我受制于硬件效果没那么好。文章在future work这一块列出了未来可以做的方向,其中就包括了五个月之后的这篇CGAN,也就是我今天要说的。
先看paper吧,原理上这篇paper其实很简单,就是在原有的gan上加了一个先验y,公式如下:
1
那么主要的问题就回到了工程上,这里的D和G作者用的都是MLP,结构如下:
2
原文如下:“We trained a conditional adversarial net on MNIST images conditioned on their class labels, encoded as one-hot vectors.
In the generator net, a noise prior z with dimensionality 100 was drawn from a uniform distribution within the unit hypercube. Both z and y are mapped to hidden layers with Rectified Linear Unit (ReLu) activation [4, 11], with layer sizes 200 and 1000 respectively, before both being mapped to second, combined hidden ReLu layer of dimensionality 1200. We then have a final sigmoid unit layer as our output for generating the 784-dimensional MNIST samples.
The discriminator maps x to a maxout [6] layer with 240 units and 5 pieces, and y to a maxout layer with 50 units and 5 pieces. Both of the hidden layers mapped to a joint maxout layer with 240 units and 4 pieces before being fed to the sigmoid layer. (The precise architecture of the discriminator is not critical as long as it has sufficient power; we have found that maxout units are typically well suited to the task.)

这里的G引入了一个one hot encoder独热编码,其实就是把一个有m个状态的变量变成了m个有两个状态的变量,比如2就是0010000000,5就是0000100000,然后把这个作为输入,经过一层全连接后合并到一起,最后output是784个单元。
而D的话作者采用了maxout,当然作者也说,只需要D有足够的鉴别能力就可以,我采用的是cnn作为D,但是后来我知道了perfect discriminator的问题,现在想想可能对于mnist来说mlp就够了,关于完美鉴别器之后再讲。
以下是作者的实验结果:
3
接下来作者做了一个比较有意思的,也是工业上可能会有用的,就是利用UGM(user generated metadata)去给图像生成标签,原文说的很复杂,但是说的很专业,贴出来作为参考:“In this section we demonstrate automated tagging of images, with multi-label predictions, using conditional adversarial nets to generate a (possibly multi-modal) distribution of tag-vectors conditional on image features.”
简单讲一下原理,这里的G有两个input,一个是size100的noise,一个是size4096的image feature vector(类比one hot vector),output是word vector,结构是mlp;D的input也是两个,一个是500size的word vector,一个是size1200的image feature vector,输出是一个代表生成数据真假的值。
综上,CGAN提出了一种可以人为控制的生成模型,并从工程上讲了如何去实现。

目录
相关文章
|
8月前
修剪灌木问题
修剪灌木问题
52 0
|
5月前
|
机器学习/深度学习
ChatGPT 等相关大模型问题之Transformer中将Attention值转换为概率如何解决
ChatGPT 等相关大模型问题之Transformer中将Attention值转换为概率如何解决
|
7月前
|
机器学习/深度学习 计算机视觉 网络架构
【YOLOv8改进】Non-Local:基于非局部均值去噪滤波的自注意力模型 (论文笔记+引入代码)
YOLO目标检测专栏探讨了YOLO的创新改进,包括引入非局部操作以捕获远程依赖,增强上下文信息。非局部模块可应用于图像分类、目标检测等任务,尤其适合视频分类。文章介绍了Non-local自注意力模型,通过计算任意位置间交互,提供全局信息。此外,展示了如何在YOLOv8中实现NLBlockND模块。详细内容及实战配置见相关链接。
【YOLOv8改进】Non-Local:基于非局部均值去噪滤波的自注意力模型 (论文笔记+引入代码)
|
6月前
|
机器学习/深度学习 PyTorch API
生成对抗网络(GAN)由两部分组成:生成器(Generator)和判别器(Discriminator)。
生成对抗网络(GAN)由两部分组成:生成器(Generator)和判别器(Discriminator)。
|
8月前
|
人工智能 物联网
PiSSA :将模型原始权重进行奇异值分解的一种新的微调方法
我们开始看4月的新论文了,这是来自北京大学人工智能研究所、北京大学智能科学与技术学院的研究人员发布的Principal Singular Values and Singular Vectors Adaptation(PiSSA)方法。
108 3
|
8月前
|
SQL 数据可视化 数据挖掘
R语言线性分类判别LDA和二次分类判别QDA实例
R语言线性分类判别LDA和二次分类判别QDA实例
|
8月前
|
机器学习/深度学习 编解码 自然语言处理
LRP-QViT完美而来 | 输出层分配相关性+剪切通道让Swin Transformer量化后居然涨1.5个点
LRP-QViT完美而来 | 输出层分配相关性+剪切通道让Swin Transformer量化后居然涨1.5个点
305 0
|
8月前
|
机器学习/深度学习 编解码 自动驾驶
【论文速递】WACV2022 - 基于小样本分割的多尺度Non-Novel片段消除方法
【论文速递】WACV2022 - 基于小样本分割的多尺度Non-Novel片段消除方法
|
8月前
|
机器学习/深度学习 文字识别 算法
[Halcon&图像] 基于多层神经网络MLP分类器的思想提取颜色区域
[Halcon&图像] 基于多层神经网络MLP分类器的思想提取颜色区域
180 0
|
机器学习/深度学习 算法 数据可视化
使用Python实现单隐藏层神经网络的训练(一)
使用Python实现单隐藏层神经网络的训练(一)
269 0
使用Python实现单隐藏层神经网络的训练(一)