解读生成对抗网络(GAN) 之U-GAN-IT
Unsupervised Generative Attentionnal Networks with Adapter Layer-In(U-GAN-IT)
从字面我们可以理解为无监督生成对抗网络和适配层的结合
论文实现:
- 论文实现了无监督图像的翻译问题,当两个图像之间两个图像、纹理差别较大时的图像风格(style)转换。
- 论文实现了相同的网络结构和超参数同时需要同时保持shape的图像翻译I(类似风格迁移但是图像本身形状这些原始shape不变),以及需要改变shape的图像翻译任务(个人观点,跨domain)
图1:风格迁移(horse2zebra)
图2跨domain的图像翻译(cat2dog)
创新:
在于这篇论文新增加了一个新的注意模块(attention):辅助分类器和一个可以自主学习的规范化函数(自适应的归一化方式)AdaLIN,使得该模型具有更优越性。
- attention:增强判别器的鉴别能力,更好的区分原始图像和生成图像
- 自适应的归一化AdaLIN:增强鲁棒性
得到了在固定网络结构和超参数下保持形状(如horse2zebra)和改变形状(如cat2dog)的图像转换的预期结果。需要针对特定数据集调整网络结构或超参数设置。在这项工作中,我们提出了一种新的无监督图像到图像的翻译方法,它以端到端的方式结合了一个新的注意模块和一个新的可学习的规范化函数。我们的模型根据辅助分类器获得的注意图,通过区分源域和目标域,引导翻译关注更重要的区域而忽略次要区域。这些注意映射被嵌入到生成器和鉴别器中,以集中在语义上重要的区域,从而便于形状转换。而在生成器中的注意图将焦点诱导到专门区分这两个域的区域,而鉴别器中的注意映射通过聚焦目标域中真实图像和假图像的差异来帮助微调。除了注意机制外,我们还发现,对于形状和纹理变化量不同的数据集,归一化函数的选择对转换结果的质量有显著影响。受批处理实例规范化(BIN)(Nam&Kim(2018))的启发,我们提出了自适应层实例规范化(AdaLIN),该方法通过自适应选择实例规范化(IN)和层规范化(LN)之间的比例,在训练过程中从数据集学习参数。AdaLIN函数帮助我们的注意力引导模型灵活地控制形状和纹理的变化量。不需要改变模型的整体形状,也不需要改变模型的整体形状。实验结果表明,与现有的模型相比,本文提出的方法在风格转换和物体变形方面都具有优势。拟议工作的主要贡献可概括如下:
图3.生成器和判别器工作流程
AdaLIN:
层级归一化Layer Norm(LN),更多考虑特征输入通道之间的相关性,自适应实例级归一化(IN)更多考虑的是单个特征通道的内容,可以更好地保存源图像的语义信息,但是对于风格转换不彻底。所以本论文将两者相结合,并且做了很多实验从实验数据我们可以看到这种学习方法,证明实验可用性。
Ateention:
图三中我们可以分析出该神经网络的流程,首先经过一个编码器获得图片特征,编码器由上采样和残差block结构组成,然后经过全连接层获得一个预测E然后乘以权重之后经过attention之后的特征图经过解码(dencoder)之后获得最后的图片。
数据验证:
前置内容:
GAN的基本思想
纳什均衡,也叫非合作博弈均衡。
Pdata(x) = Pgen(x) ∀x
D(x) = 1/2 ∀x
理解起来就是生成器的生成图片能够让判别器判别不出来为最终目的,通过一个数据样本的潜在分布生成一个新的数据样本,这和VAE(变分自编码器)是很相似的。
CycleGAN:
本篇论文应对cycleGAN有一个前置了解,本篇论文的网络结构基于cycleGAN
x生成y,y反循环给x,确保F(G(X))≈X。
分析:
我们复现论文可以从以下几点考虑
1. 该模型基于cycleGAN,所以应该对cycleGAN深入了解
2.关于attention以及AdaLIN自适应的使用
git:https://github.com/znxlwm/UGATIT-pytorch
参考出处:
李宏毅GAN2018笔记 | GAN背后的数学理论
解读生成对抗网络(GAN) 之U-GAN-IT的更多相关文章
- 生成对抗网络(GAN)
GAN的全称是 Generative Adversarial Networks,中文名称是生成对抗网络.原始的GAN是一种无监督学习方法,巧妙的利用“博弈”的思想来学习生成式模型. 1 GAN的原理 ...
- 不到 200 行代码,教你如何用 Keras 搭建生成对抗网络(GAN)【转】
本文转载自:https://www.leiphone.com/news/201703/Y5vnDSV9uIJIQzQm.html 生成对抗网络(Generative Adversarial Netwo ...
- AI佳作解读系列(六) - 生成对抗网络(GAN)综述精华
注:本文来自机器之心的PaperWeekly系列:万字综述之生成对抗网络(GAN),如有侵权,请联系删除,谢谢! 前阵子学习 GAN 的过程发现现在的 GAN 综述文章大都是 2016 年 Ian G ...
- 用MXNet实现mnist的生成对抗网络(GAN)
用MXNet实现mnist的生成对抗网络(GAN) 生成式对抗网络(Generative Adversarial Network,简称GAN)由一个生成网络与一个判别网络组成.生成网络从潜在空间(la ...
- [ZZ] Valse 2017 | 生成对抗网络(GAN)研究年度进展评述
Valse 2017 | 生成对抗网络(GAN)研究年度进展评述 https://www.leiphone.com/news/201704/fcG0rTSZWqgI31eY.html?viewType ...
- 生成对抗网络(GAN)
基本思想 GAN全称生成对抗网络,是生成模型的一种,而他的训练则是处于一种对抗博弈状态中的. 譬如:我要升职加薪,你领导力还不行,我现在领导力有了要升职加薪,你执行力还不行,我现在执行力有了要升职加薪 ...
- 生成对抗网络(GAN)相关链接汇总
1.基础知识 创始人的介绍: “GANs之父”Goodfellow 38分钟视频亲授:如何完善生成对抗网络?(上) “GAN之父”Goodfellow与网友互动:关于GAN的11个问题(附视频) 进一 ...
- 生成对抗网络(Generative Adversarial Networks,GAN)初探
1. 从纳什均衡(Nash equilibrium)说起 我们先来看看纳什均衡的经济学定义: 所谓纳什均衡,指的是参与人的这样一种策略组合,在该策略组合上,任何参与人单独改变策略都不会得到好处.换句话 ...
- 使用生成对抗网络(GAN)生成手写字
先放结果 这是通过GAN迭代训练30W次,耗时3小时生成的手写字图片效果,大部分的还是能看出来是数字的. 实现原理 简单说下原理,生成对抗网络需要训练两个任务,一个叫生成器,一个叫判别器,如字面意思, ...
随机推荐
- java IO流 (三) 节点流(或文件流)
1.FileReader/FileWriter的使用:1.1 FileReader的使用 /* 将day09下的hello.txt文件内容读入程序中,并输出到控制台 说明点: 1. read()的理解 ...
- 数据可视化之DAX篇(十二)掌握时间智能函数,同比环比各种比,轻松搞定!
https://zhuanlan.zhihu.com/p/55841964 时间可以说是数据分析中最常用的独立变量,工作中也常常会遇到对时间数据的对比分析.假设要计算上年同期的销量,在PowerBI中 ...
- 浏览器常见攻击方式(XSS和CSRF)
常见的浏览器攻击分为两种,一种为XSS(跨站脚本攻击),另一种则为CSRF(跨站请求伪造). XSS(跨站脚本攻击) 定义 XSS 全称是 Cross Site Scripting,为了与“CSS”区 ...
- 基于.NetCore3.1系列 ——认证授权方案之Swagger加锁
一.前言 在之前的使用Swagger做Api文档中,我们已经使用Swagger进行开发接口文档,以及更加方便的使用.这一转换,让更多的接口可以以通俗易懂的方式展现给开发人员.而在后续的内容中,为了对a ...
- 【测试工具】这些APP实用测试工具,不知道你就out了!
本期,我将给大家介绍14款实用的测试工具,希望能够帮到大家!(建议收藏) UI自动化测试工具 1. uiautomator2 Github地址:https://github.com/openatx/u ...
- OSCP Learning Notes - File Transfers(3)
Metasploit Attack Target Server: IE8 on WinXP 1.Start the Metasploit. setoolkit 2.Select 2)Website A ...
- P1866 编号
大致题意: 求太郎的n只兔子的编号的排列种数 基本思路: 每只兔子都有一个范围,那么每只兔子的范围就是这只兔子选择编号的种数. 以5 8为例,第一只兔子有5种,第二只兔子有8种,而第一只兔子选择后,第 ...
- CSS把容器中的内容限制行数,在超过行数后,在最后一行显示"..."
<style type="text/css"> .main{ width: 400px; background-color: #3498db; display: -we ...
- WPF 有缩放时显示线条的问题
公司项目已经开发好几年了,用的WPF开发的,期间遇到好多问题,都是些小细节.很久没有写博客了,以后有时间还是需要写写博客啊!作为分享也好.记录也好,利人利己嘛. 今天主要说一下显示线条的问题,因为我们 ...
- Unable to find a constructor that takes a String param or a valueOf() or fromString() method
Unable to find a constructor that takes a String param or a valueOf() or fromString() method 最近在做服务的 ...