GAN的五大有趣应用
引言
你能看出这张照片中面部的共同点吗?
这些人都不是真实存在的!这些面部图像都是由GAN技术生成的。
“GAN”这个词是由Ian Goodfellow在2014年提出的,但相关概念早在1990年就存在了(Jürgen Schmidhuber开创),在Goodfellow发出这个方向的论文之后才开始普及。从那以后,GAN就一直不断发展!
实际上,GAN无处不在。数据科学家和深度学习研究者使用这项技术来生成逼真的图像,改变面部表情,创建游戏场景,可视化设计,甚至生成令人惊叹的艺术作品!最近有关AI生成艺术作品的新闻就是GAN的成果:
在本文中,我们将介绍五个流行且有趣的GAN应用。你可能遇到过其中一些但没有注意到它们是如何工作的。另外提供了每个GAN应用的链接,可以查看研究一下。
GAN 介绍GAN 的应用图像编辑安全相关生成数据注意力预测3D对象生成总结
GAN 介绍
我们了解了 GAN 可以做些什么。但它们是怎样运行的?这个强大的算法下面发生了什么?用一个流行的例子来理解这一点。
有一个伪造者(创造假艺术品)和一个负责检测这些假艺术品的检查者。
这个伪造者的任务模仿著名艺术家(如达芬奇)的原创绘画。如果他将这项工作作为原始艺术作品,伪造者可能会赚很多钱。
另一方面,检查员的任务是抓住这些伪造者。他应该怎么做?检查员知道真实艺术家独特的特点以及伪造者绘画的特点。检查者将这些已知的特点应用于当前的绘画,检查它是否真实。
这场伪造者与检查员的比赛不断进行,最终会成为世界级的检查员,还有世界级的伪造者。
现在将伪造者和检查者都看做机器人,当你同时训练伪造者和检查者,那你手上就有一个画家!这基本上就是GAN的工作原理。
GAN 的应用
我们已经对GAN的工作方式有了直观的认识,是时候深入研究目前常用的GAN有趣应用了。
图像编辑
大多数的图像编辑软件都缺少很大的灵活性对图片进行创造性的改变。例如通过改变某个年轻人的发型,使他变成一个90岁的人的外表。目前的图像编辑软件无法做到这一点。但是使用GAN,我们可以重建图像并彻底改变外表。
这篇论文展示了这一前沿应用。
另一个类似的应用是从图片中去除雨滴的纹理。下面是该论文中的图像:
安全相关
人工智能的兴起对大多数行业来说都是有好处的。但真正令人担忧的是人工智能革命和网络威胁,即使是深层神经网络也容易被黑客入侵。
对工业应用的持续关注后,发现它们应该对网络攻击具有鲁棒性,因为生产线上有很多机密信息。事实证明,GAN在这方面提供了巨大的帮助,直接解决了“对抗性攻击”的问题。
这些对抗性攻击使用各种技术来欺骗深度学习模型。GAN的使用使现有的深度学习模型更加健壮。可以通过创建更多的假例子并训练模型来识别它们。非常聪明。
还有一种名为SSGAN的技术用来对图像进行隐写分析并检测有害编码。
生成数据
谁不想获得更多的数据来训练深度学习模型?某在些领域获取数据是很有必要的,特别是在需要有训练数据的有监督学习算法领域。医疗行业正是这样的领域。
GAN 再次发威,因为它可以生成用于监督训练的虚假数据。就是这样!你就知道下次怎样获取更多的数据。
例如,这篇论文讨论了通过GAN创建逼真的眼睛图像数据来训练深度学习算法。
注意力预测
当我们观察一幅图像时倾向于关注某一特定部分而不是整幅图像。这被称为注意力,是人类重要的特征。预先了解一个人的确切位置对于公司来说肯定是一个有用的功能,因为可以更好地优化定位他们的产品。比游戏设计师可以专注于游戏的某一部分,增强它的功能使其更有吸引力。
这篇论文探讨了这个技术,作者尝试使用GAN识别图像中最吸引人的部分。
3D对象生成
GAN 在游戏行业也很受欢迎。
为了给玩家一种逼真的感觉,游戏设计师花费无数个小时创建3D头像和背景。创建3D模型需要付出很多努力。用 GAN 来生成3D对象会看起来不真实吗?观看下面这个视频可能就会相信GAN的强大功能,它们使整个过程自动化。
这里有一份开源代码,如果你有兴趣可以试一试。
总结
在研究中已经发表了很多的 GAN 应用。希望上面介绍的 GAN 的应用可以对你有所启发,也许你可以创造自己的 GAN!如果有任何想法或建议,欢迎在做出评论。
欢迎关注磐创博客资源汇总站:
http://docs.panchuang.net/
欢迎关注PyTorch官方中文教程站:
http://pytorch.panchuang.net/
GAN的五大有趣应用的更多相关文章
- Geometric GAN
目录 概 主要内容 McGAN 结合SVM 训练 训练 理论分析 证明 Jae Hyun Lim, Jong Chul Ye, Geometric GAN. 概 很有趣, GAN的训练过程可以分成 寻 ...
- GAN
GAN(Generative Adversarial Nets),产生式对抗网络 存在问题: 1.无法表示数据分布 2.速度 3.resolution太小,大了无语义信息 4.无reference 5 ...
- 大数据应用:五大地区喜新厌旧游戏APP类别之比较与分析
今天,我们来分享点不一样的资讯.....游戏APP之喜新厌旧排行榜!! 前阵子笔者开发了一套系统可以用来收集亚洲五大地区上架APP的每日排名信息,希望观察出五大地区在APP上的喜好和使用程度之间的相异 ...
- Java程序员需要注意的五大Docker误区
Docker现在很火,容器技术看上不无所不能,但这实际上是一种误解,不要被炒作出来的泡沫迷住双眼,本文抛去炒作,理性地从Java程序员的角度,列举出Docker目前的五大误区,帮助你更好地理解Dock ...
- 从一篇ICLR'2017被拒论文谈起:行走在GAN的Latent Space
同步自我的知乎专栏文章:https://zhuanlan.zhihu.com/p/32135185 从Slerp说起 ICLR'2017的投稿里,有一篇很有意思但被拒掉的投稿<Sampling ...
- GAN︱生成模型学习笔记(运行机制、NLP结合难点、应用案例、相关Paper)
我对GAN"生成对抗网络"(Generative Adversarial Networks)的看法: 前几天在公开课听了新加坡国立大学[机器学习与视觉实验室]负责人冯佳时博士在[硬 ...
- GAN 转
生成式对抗网络(GAN)是近年来大热的深度学习模型.最近正好有空看了这方面的一些论文,跑了一个GAN的代码,于是写了这篇文章来介绍一下GAN. 本文主要分为三个部分: 介绍原始的GAN的原理 同样非常 ...
- [ZZ] Valse 2017 | 生成对抗网络(GAN)研究年度进展评述
Valse 2017 | 生成对抗网络(GAN)研究年度进展评述 https://www.leiphone.com/news/201704/fcG0rTSZWqgI31eY.html?viewType ...
- 生成式对抗网络(GAN)实战——书法字体生成练习赛
https://www.tinymind.cn/competitions/ai 生成式对抗网络(GAN)是近年来大热的深度学习模型. 目前GAN最常使用的场景就是图像生成,作为一种优秀的生成式模型,G ...
随机推荐
- 密码学习(一)——Base64
简介 Base64是一种非常常用的数据编码方式,标准Base64可以把所有的数据用"A~Z,a~z,0~9,+,/,="共65个字符(‘=’号仅是一个占位符,作为后缀)表示,当然在 ...
- UVA - 10462 Is There A Second Way Left?
题意: 给你一张无向图,让你判断三种情况:1.不是连通图(无法形成生成树)2.只能生成唯一的生成树 3.能生成的生成树不唯一(有次小生成树),这种情况要求出次小生成树的边权值和. 思路: 比较常见的次 ...
- 用canvas实现简单的下雪效果
首先新建一个html文件,将body的背景设置为天空的那种深蓝色,并创建一个canvas,canvas的操作逻辑都放在snow.js中: <!DOCTYPE html> <head& ...
- 我折腾的shell笔记
目录 Mac一些常用的快捷键记录 iTerm2或者命令行相关 Mac桌面上或者某目录下操作 一些实用脚本示例 代码无提示或者其他抽风症状,清除Xcode缓存 查看当前网络ip地址 日常提交推送git代 ...
- Subsequence POJ - 3061
Subsequence Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22040 Accepted: 9404 Desc ...
- 基于Modelsim的直方图统计算法仿真
一.前言 本篇主要针对牟新刚编著<基于FPGA的数字图像处理及应用>第六章第五节中直方图统计相关类容进行总结,包括代码实现及 基于Modelsim的仿真.书读百遍,其意自现. 2020-0 ...
- 026.掌握Service-外部访问
一 集群外部访问 由于Pod和Service都是Kubernetes集群范围内的虚拟概念,所以集群外的客户端默认情况,无法通过Pod的IP地址或者Service的虚拟IP地址:虚拟端口号进行访问.通常 ...
- 一文深入了解史上最强的Java堆内缓存框架Caffeine
它提供了一个近乎最佳的命中率.从性能上秒杀其他一堆进程内缓存框架,Spring5更是为了它放弃了使用多年的GuavaCache 缓存,在我们的日常开发中用的非常多,是我们应对各种性能问题支持高并发的一 ...
- GO系列 | 5分钟入门GO【译】
什么是Google Go? Google Go是由Robert Griesmer,Rob Pike和Ken Thompson在Google设计的一种开源编程语言. Go在语法上类似于C语言: 除了内存 ...
- 不要再认为Stream可读性不高了!
距离Java 8发布已经过去了7.8年的时间,Java 14也刚刚发布.Java 8中关于函数式编程和新增的Stream流API至今饱受"争议". 如果你不曾使用Stream流,那 ...