判别两棵树是否相等 设计算法_一文看懂生成对抗网络 - GANs?(附:10种典型算法+13种应用)...

57ac0a366f4de5f6d53d32cadc506224.png

生成对抗网络 – GANs 是最近2年很热门的一种无监督算法,他能生成出非常逼真的照片,图像甚至视频。我们手机里的照片处理软件中就会使用到它。

本文将详细介绍生成对抗网络 – GANs 的设计初衷、基本原理、10种典型算法和13种实际应用。

GANs的设计初衷

一句话来概括 GANs 的设计动机就是——自动化。

人工提取特征——自动提取特征

我们在《一文看懂深度学习(概念+优缺点+典型算法)》中讲过,深度学习最特别最厉害的地方就是能够自己学习特征提取。

17ae26d8204800c4ff2aaba8e50c1e8a.png

机器的超强算力可以解决很多人工无法解决的问题。自动化后,学习能力更强,适应性也更强。

人工判断生成结果的好坏——自动判断和优化

我们在《监督学习》中讲过,训练集需要大量的人工标注数据,这个过程是成本很高且效率很低的。而人工判断生成结果的好坏也是如此,有成本高和效率低的问题。

而 GANs 能自动完成这个过程,且不断的优化,这是一种效率非常高,且成本很低的方式。GANs是如何实现自动化的呢?下面我们讲解一下他的原理。

生成对抗网络 GANs 的基本原理

大白话版本

知乎上有一个很不错的解释,大家应该都能理解:

假设一个城市治安混乱,很快,这个城市里就会出现无数的小偷。在这些小偷中,有的可能是盗窃高手,有的可能毫无技术可言。假如这个城市开始整饬其治安,突然开展一场打击犯罪的「运动」,警察们开始恢复城市中的巡逻,很快,一批「学艺不精」的小偷就被捉住了。之所以捉住的是那些没有技术含量的小偷,是因为警察们的技术也不行了,在捉住一批低端小偷后,城市的治安水平变得怎样倒还不好说,但很明显,城市里小偷们的平均水平已经大大提高了。

f6ba7b39d1ca3b0390a3bdc03d0cd590.png

警察们开始继续训练自己的破案技术,开始抓住那些越来越狡猾的小偷。随着这些职业惯犯们的落网,警察们也练就了特别的本事,他们能很快能从一群人中发现可疑人员,于是上前盘查,并最终逮捕嫌犯;小偷们的日子也不好过了,因为警察们的水平大大提高,如果还想以前那样表现得鬼鬼祟祟,那么很快就会被警察捉住。

97e8f8e23c91cbf05222b8101b212e16.png

为了避免被捕,小偷们努力表现得不那么「可疑」,而魔高一尺、道高一丈,警察也在不断提高自己的水平,争取将小偷和无辜的普通群众区分开。随着警察和小偷之间的这种「交流」与「切磋」,小偷们都变得非常谨慎,他们有着极高的偷窃技巧,表现得跟普通群众一模一样,而警察们都练就了「火眼金睛」,一旦发现可疑人员,就能马上发现并及时控制——最终,我们同时得到了最强的小偷和最强的警察。

1156ef835ec03a2755279e3b0476f8b8.png

非大白话版本

生成对抗网络(GANs)由2个重要的部分构成:

  1. 生成器(Generator):通过机器生成数据(大部分情况下是图像),目的是“骗过”判别器
  2. 判别器(Discriminator):判断这张图像是真实的还是机器生成的,目的是找出生成器做的“假数据”
7aa2b247e15401cd4c155402f37c696d.png

下面详细介绍一下过程:

第一阶段:固定「判别器D」,训练「生成器G」

我们使用一个还 OK 判别器,让一个「生成器G」不断生成“假数据”,然后给这个「判别器D」去判断。

一开始,「生成器G」还很弱,所以很容易被揪出来。

但是随着不断的训练,「生成器G」技能不断提升,最终骗过了「判别器D」。

到了这个时候,「判别器D」基本属于瞎猜的状态,判断是否为假数据的概率为50%。

78e932128e676a2c5865cc563842a482.png

第二阶段:固定「生成器G」,训练「判别器D」

当通过了第一阶段,继续训练「生成器G」就没有意义了。这个时候我们固定「生成器G」,然后开始训练「判别器D」。

「判别器D」通过不断训练,提高了自己的鉴别能力,最终他可以准确的判断出所有的假图片。

到了这个时候,「生成器G」已经无法骗过「判别器D」。

a88ce8331044838ac7f7087716c8a422.png

循环阶段一和阶段二

通过不断的循环,「生成器G」和「判别器D」的能力都越来越强。

最终我们得到了一个效果非常好的「生成器G」,我们就可以用它来生成我们想要的图片了。

下面的实际应用部分会展示很多“惊艳”的案例。

391a72fedeb21d0d3172537c9feed05a.png

如果对 GANs 的详细技术原理感兴趣,可以看看下面2篇文章:

《生成性对抗网络(GAN)初学者指南 – 附代码》

《长文解释生成对抗网络GAN的详细原理(20分钟阅读)》

GANs的优缺点

3个优势

  1. 能更好建模数据分布(图像更锐利、清晰)
  2. 理论上,GANs 能训练任何一种生成器网络。其他的框架需要生成器网络有一些特定的函数形式,比如输出层是高斯的。
  3. 无需利用马尔科夫链反复采样,无需在学习过程中进行推断,没有复杂的变分下界,避开近似计算棘手的概率的难题。

2个缺陷

  1. 难训练,不稳定。生成器和判别器之间需要很好的同步,但是在实际训练中很容易D收敛,G发散。D/G 的训练需要精心的设计。
  2. 模式缺失(Mode Collapse)问题。GANs的学习过程可能出现模式缺失,生成器开始退化,总是生成同样的样本点,无法继续学习。

扩展阅读:《为什么训练生成对抗网络如此困难?》阅读这篇文章对数学要求很高

10大典型的GANs算法

GANs 算法有数百种之多,大家对于 GANs 的研究呈指数级的上涨,目前每个月都有数百篇论坛是关于对抗网络的。

下图是每个月关于 GANs 的论文发表数量:

1ce0c025820439327691a6fd72223ea8.png

如果你对 GANs 算法感兴趣,可以在 「GANs动物园」里查看几乎所有的算法。我们为大家从众多算法中挑选了10个比较有代表性的算法,技术人员可以看看他的论文和代码。

算法论文代码GAN论文地址代码地址DCGAN论文地址代码地址CGAN论文地址代码地址CycleGAN论文地址代码地址CoGAN论文地址代码地址ProGAN论文地址代码地址WGAN论文地址代码地址SAGAN论文地址代码地址BigGAN论文地址代码地址

上面内容整理自《Generative Adversarial Networks – The Story So Far》原文中对算法有一些粗略的说明,感兴趣的可以看看。

GANs 的13种实际应用

GANs 看上去不如「语音识别」「文本挖掘」那么直观。不过他的应用已经进入到我们的生活中了。下面给大家列举一些 GANs 的实际应用。

生成图像数据集

人工智能的训练是需要大量的数据集的,如果全部靠人工收集和标注,成本是很高的。GANs 可以自动的生成一些数据集,提供低成本的训练数据。

6845b93f28334ef2e3ded1bf695f62cd.png

生成人脸照片

生成人脸照片是大家很熟悉的应用,但是生成出来的照片用来做什么是需要思考的问题。因为这种人脸照片还处于法律的边缘。

f1ccea5d0bb6c0aa4c1ee3845de4021c.png

生成照片、漫画人物

GANs 不但能生成人脸,还能生成其他类型的照片,甚至是漫画人物。

66e32ec95a2c7556009c2858a547ffac.png
6ee2e7c50318cd3f5d43cf6555a3be60.png

图像到图像的转换

简单说就是把一种形式的图像转换成另外一种形式的图像,就好像加滤镜一样神奇。例如:

  • 把草稿转换成照片
  • 把卫星照片转换为Google地图的图片
  • 把照片转换成油画
  • 把白天转换成黑夜
96c39e7ac966e1de8c73cdaaa3581cdd.png
d6e563de524bd1af4c7c8a6c64f7072f.png

文字到图像的转换

在2016年标题为“ StackGAN:使用 StackGAN 的文本到逼真照片的图像合成 ”的论文中,演示了使用 GAN,特别是他们的 StackGAN,从鸟类和花卉等简单对象的文本描述中生成逼真的照片。

853717e0db15207138801965f7f2ae88.png

语意 – 图像 – 照片 的转换

在2017年标题为“ 高分辨率图像合成和带条件GAN的语义操纵 ”的论文中,演示了在语义图像或草图作为输入的情况下使用条件GAN生成逼真图像。

db6ac84968179bdecc7599dadafd7771.png

自动生成模特

在2017年标题为“ 姿势引导人形象生成 ”的论文中,可以自动生成人体模特,并且使用新的姿势。

e59dbdc811e1baa45d5ef44d8f424f70.png

照片到Emojis

GANs 可以通过人脸照片自动生成对应的表情(Emojis)。

2251962a58b3ab5ad69e678838194000.png

照片编辑

使用GANs可以生成特定的照片,例如更换头发颜色、更改面部表情、甚至是改变性别。

f05b4a42616572e444df363f2d72be5c.png

预测不同年龄的长相

给一张人脸照片, GANs 就可以帮你预测不同年龄阶段你会长成什么样。

da4e211e87c4e2bdfaeece20b91b69a1.png

提高照片分辨率,让照片更清晰

给GANs 一张照片,他就能生成一张分辨率更高的照片,使得这个照片更加清晰。

880e63f58cdade5e1e3822f4c94e7752.png

照片修复

假如照片中有一个区域出现了问题(例如被涂上颜色或者被抹去),GANs可以修复这个区域,还原成原始的状态。

785ab9da31d512587ab9dbbfa19aee9e.png

自动生成3D模型

给出多个不同角度的2D图像,就可以生成一个3D模型。

11f5488a9e28dfe2d736e06b59b8aec3.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/567534.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sql语句 int(11)含义误区

使用sql中 int(11)存储手机号错误!!!! 这些类型,是定长的,其容量是不会随着后面的数字而变化的,其值的范围是确定的。 比如int(11)和int(8),都是一样的占4字节。tinyint(1)和tinyin…

python保存图片到指定路径_使用Python将不同大小照片制作为GIF动画2

导读:本文介绍如何使用Python将不同大小的照片制作为GIF动画,文末附源代码。阅读完本文,你将学会使用Python编写程序,将不同大小的照片制作为心仪的GIF动画。在上一篇文章里,介绍了使用Python和imageio,不改…

GitHub访问慢-FastGithub下载及使用

很多需要用到的脚本及软件会先发布在GitHub上,所以经常需要访问GitHub,但是每次都会卡在跳转到GitHub的步骤,就是还没开始就可以结束了。 之前尝试过手动修改host文件来解决网站的访问问题 以及更换网络但还是有时候无法如愿的访问GitHub Fa…

android r 编译找不到头文件_「投稿」iOS逆向——砸壳与反编译

作者:疯狂的蛋神近来对iOS逆向十分感兴趣,就在业余时间里自己在上网找了各种资料学习,发现许多资料对于一些细节描述的不够详细,所以也踩了很多坑,我也将自己踩的一些坑总结出来,希望对大家有所帮助。注&am…

python-类思想-实现简单增删查改

class Person:def __init__(self,name, phone):self.UserInfo {name: name,phone: phone}class Opt:def __init__(self):self.person []def add_person(self, user_info):print(增加)self.person.append(user_info)def delete_person(self):print(删除)self.person.pop()def …

vb microsoft.xmlhttp 获取所有超链接_编写我的第一个VB程序

若不是因为新冠肺炎疫情影响,下面的内容应该是在学校的课堂上给学生们讲解的,如今采用这种方法,也是迫不得已。软件的使用在中学信息学科课堂中,往往普遍存在于小学和初中课堂,而在高中课堂上演示软件操作,…

C++ 偏微分数值计算库_Windows下RTCGAToolbox库下载TCPA数据(RPPA)学习笔记

1. RTCGAToolbox库加载library(RTCGAToolbox)2. 下载TCPA数据2.1 下载代码# Get the last run dates lastRunDate <- getFirehoseRunningDates()[1]# get RPPA data and clinical data for LGG lgg.data <- getFirehoseData(dataset "LGG",gistic2_Date getF…

MySQL安装之没有配置向导

解决方案&#xff1a; <1>安装MySQL服务 首先我们先进入mysql的安装目录下的bin目录 之后打开DOS命令窗口&#xff0c;进入该目录下&#xff08;一定要进入该目录&#xff0c;否则操作错误&#xff09;&#xff0c;然后执行mysqld --install命令&#xff0c;如下&…

unet图像分割_UNet++解读 + 它是如何对UNet改进 + 作者的研究态度和方式

UNet论文: 地址UNet论文翻译:地址UNet源代码: 地址UNet作者在知乎上进行了解读,里面还有视频的讲解,深入人心.里面有一句话令我印象深刻,我总结下: 很多论文给出了他们建议的网络结构&#xff0c;其中包括非常多的细节&#xff0c;比如用什么卷积&#xff0c;用几层&#xff0c…

python中0、1、True、False、if条件

总结&#xff1a; 无论是python还是C&#xff0c;true1&#xff0c;false0 非零就是true&#xff0c;此说法只应用在判断条件中 1、python中0、1、True、False >>> print(True 1) >>> print(True 2) >>> print(False 0) >>> print(…

labview my_fpga开发套件下载_LabVIEW面向对象的ActorFramework(1)

本系列文章主要阐述以下几个问题&#xff1a;&#xff08;1&#xff09;什么是面向对象编程&#xff1f;&#xff08;2&#xff09;为什么要学习面向编程&#xff1f;&#xff08;3&#xff09;LabVIEW面向编程学习为什么有点难&#xff1f;&#xff08;4&#xff09;LabVIEW面…

Python-类与文件读取结合

目录 作业1&#xff1a; 知识点1&#xff1a;eval使用 知识点1&#xff1a;类对象数组定义 知识点2&#xff1a;文件读取 知识点3&#xff1a;内容解包 知识点4&#xff1a;列表排序 作业2&#xff1a; 知识点1&#xff1a;类继承后 初始化管理 知识点2&#xff1a;文件…

乌龟量化估值怎么看_推荐几个查询指数估值的网址

首先说一下&#xff0c;因为每一家网站的数据来源不同&#xff0c;因此在不同的网站上&#xff0c;相同指数的估值数据未必相同。但这不重要&#xff0c;只要大方向没错&#xff0c;对指数所处的估值区域有一个大致的概念&#xff0c;保持“模糊的正确”即可。以下推荐几个可以…

机器学习-01regression

主要内容&#xff1a; 1.回归模型的出现 2.回归模型的选择--使得损失最小 3.损失最小时&#xff0c;参数求值 梯度下降法 4.损失不理想&#xff0c;重新调整模型 5.添加正则表达式&#xff0c;即学习率 import numpy as np import matplotlib.pyplot as plt x_data [338.…

unity 草 可以一棵棵种吗?_这种野草人称“瓜子金”,1斤能卖50多,拔1棵少棵很珍贵...

欢迎来到“农民爱花草”&#xff0c;这里每天都会分享一些有关花草绿植的小知识&#xff0c;喜欢的朋友请“关注”今日导读&#xff1a;这种野草人称“瓜子金”&#xff0c;1斤能卖50多&#xff0c;拔1棵少棵很珍贵在我们广大的农村地区生活着很多的植物&#xff0c;有很多的植…

安装IntelliJ IDEA 2019.2激活

所有教程就是下载完成后&#xff0c;配置 我下载完jetbrains-agent-latest.rar将后缀名改为jar。添加----失败 百度了很多 都没有 最后把jetbrains-agent-latest.rar进行解压&#xff0c;将解压内容复制到IntelliJ中。再进行添加即可。 ps:刚开始安装完成后安装路径下没有im…

pytorch tensor查找0_Pytorch简单教程

2019 年&#xff0c;ML 框架之争只剩两个实力玩家&#xff1a;PyTorch 和 TensorFlow。研究者大批涌向 PyTorch&#xff0c;而业界的首选仍然是 TensorFlow。Pytorch和TensorFlow的区别&#xff1a;TensorFlow是基于静态计算图的&#xff0c;静态计算图是先定义后运行&#xff…

白盒测试-条件覆盖-短路陷阱

条件覆盖 ​要求设计足够多的测试用例&#xff0c;使得每一个判定的​每一个条件的每一个取值&#xff08;真或假&#xff09;至少各执行一次。 对于示例来说​&#xff0c;可以设计&#xff1a; {x4,y4,z11} 条件取值&#xff1a;TFTF {x2,y6,z9} 条件取值&#xff1a;F…

抖音2020研究报告_抖音音乐发布2020抖音音乐生态数据报告

近几年&#xff0c;随着原创音乐产业规模逐年递增及数字音乐4.0时代觉醒&#xff0c;拓宽了原创音乐创作与宣发渠道&#xff0c;真正实现了大众娱乐生活从“听音乐”到“看音乐”到“玩音乐”的多重共振。11月5日&#xff0c;抖音音乐正式发布《2020抖音音乐生态数据报告》。报…

mysql主备切换 自动_核电生产管理信息系统EAM完成首次备用环境切换演练

安全是核电事业稳步发展的基石&#xff0c;中国核电始终将安全放在第一位&#xff0c;在系统设计及日常管理中&#xff0c;注重安全备用及安全冗余的考虑。核电生产管理信息系统作为核电现场业务的主要承载工具&#xff0c;在核电日常生产运行中发挥着越来越重要的作用。近日&a…