【题外话:今天上课我做了一个关于DA-GAN技术的ppt演讲,写一点东西留念一下...】

转载请注明出处:https://www.cnblogs.com/GraceSkyer/p/9107471.html

 

DA-GAN技术是微软亚洲研究院新研发的一项技术,可能对今后的艺术创造模式产生巨大影响。

 前言

  首先,大家还记得微软小冰吗,目前最新的第五代拥有“高级感官”的小冰不仅会唱歌、讲故事、写文章,还能主动与人交往。除此之外,她还出版了人类首部人工智能灵思诗集《阳光失了玻璃窗》,这已体现其具有文字的创造力。

             

  我们知道,人工智能可以大致分为下图四个层次:

  从下往上依次是运算智能、感知智能、认知智能和创造智能。而正如前面举例的小冰,其创作的诗集就已经在文字方面体现了人工智能在创造能力上的发展。而我要介绍的DA-GAN技术,是微软亚洲研究院研发的一种让机器绘画创造成为可能的技术。

GAN(Generative Adversarial Nets)简介

   GAN(Generative Adversarial Nets)生成式对抗网络,启发自博弈论中的二人零和博弈(two-player game),GAN 模型中的两位博弈方分别由生成式模型(generative model)和判别式模型(discriminative model)充当。生成模型 G 捕捉样本数据的分布,用服从某一分布(均匀分布,高斯分布等)的噪声 z 生成一个类似真实训练数据的样本,追求效果是越像真实样本越好;判别模型 D 是一个二分类器,估计一个样本来自于训练数据(而非生成数据)的概率,如果样本来自于真实的训练数据,D 输出大概率,否则,D 输出小概率。

  简单说明GAN就比如:生成网络 G 好比假币制造团伙,专门制造假币,判别网络 D 好比警察,专门检测使用的货币是真币还是假币,G 的目标是想方设法生成和真币一样的货币,使得 D 判别不出来,D 的目标是想方设法检测出来 G 生成的假币。双方在训练中都极力优化自己的网络,从而形成竞争对抗,直到最后G可以以假乱真,D难以判定G是否为真时,目标就达成了。实际中,我们就可以用这个生成式的模型G来生成图片。

Deep Attention GAN(DA-GAN)简介

  但是,基于GAN展开的研究工作使得翻译图像的分布与目标集合的分布无法区分。这样的集合约束不能学习实例级别的对应关系(例如对象配置任务中对齐的语义部分)。这种限制常常导致误报(例如几何或语义伪像),并进一步导致模式崩溃问题。为了解决上述问题,微软研究院提出了一个由Deep Attention GAN(DA-GAN)提供的用于实例级图像转换的新框架。

  这样的设计使DA-GAN能够将翻译两个集合的样本任务分解成翻译高度结构化的潜在空间中的实例。具体来说,我们共同学习一个深入关注的编码器,通过参加学习的实例对可以发现实例级别的对应关系。因此,可以在集合级别和实例级别上利用约束条件。

DA-GAN实现效果

  我们首先来看一下DA-GAN实现的效果是什么样的。当我们用文字描述“我想要一只腹部、胸部为白色、头顶灰色、翅膀有白色翅斑的小鸟”时,计算机便可以通过DA-GAN在几毫秒的时间内生成多个与文字描述高度吻合的形象,如下图所示。这些由计算机生成的鸟 完全符合人们期待的鸟的形象,不过它有可能是真实存在于现实世界中的,也有可能是系统根据鸟类特征和文字描述“创造”出来的一只“鸟”。

技术核心部分

  DA-GAN在技术上最大的创新是 “隐空间”(latent space),这是它最核心的部分。

   与传统的数据训练模式需要pair data(数据对)不同,DA-GAN不需要将文本与真实的鸟一一对应,而是将原始图片分割成不同的部分(暂称该部分的样本为T),例如头部、身体、尾巴、姿势等,不同的部分分别投射到一个“隐空间”(暂称该部分的生成样本为T’),然后通过大量的图片训练,去验证T-T’对应的精确程度,也就是去不断验证该“隐空间”的好坏,从而不断迭代,确保从T-T’的过程并非随机产生,而是保持一定的规则,进而让“隐空间”的模型逐步趋于完善。这个过程就是DA-GAN系统最为核心的创新所在,也是它能够更加智能、真正具有举一反三学习能力的关键点。

  上图用于说明DA-GAN流水线的姿态变形示例。给定从源域S和目标域T两个鸟类的图像,姿态变形的目标是将源姿态转换为目标姿态,同时仍然保持s的身份。
(a)中显示了前馈过程,其中两个输入图像被送到DAE中,并将它们投影到一个潜在空间(用虚线框标记)。然后,G从潜在空间中取出这些高度结构化的表示(DAE(s)和DAE(t)),以生成转换后的样本,即s0 = G(DAE(s)),t0 = G(DAE(t))。 (b)中显示了上述DAE的细节(以橙色块标记)。给定图像X,定位函数floc将首先根据X的特征图(即E(X),其中E是可以以任何形式使用的编码器)预测N个关注区域的坐标。然后在X上产生并激活N个注意掩模以产生N个关注区域。最后,每个区域的功能由实例级别的表示组成。通过在S和T上操作相同的方式,可以在潜在空间中找到实例级别的对应关系。我们利用实例级别和集合级别上的约束条件进行优化,如(c)所示。(d)中列出了所有符号。

  接下来,DA-GAN就可以基于该模型创作用户想要的鸟类了,正就如我前面说的,输入你的需求,一只栩栩如生的鸟就会相应生成。它可能是真实存在的,也可能是一只拥有A种鸟类的头部特征、B种鸟类的身体特征、C种鸟类的尾部特征以及任意姿态的一只“想象中 的鸟”,而在现实世界里并没有这样的鸟类,但它看上去就是一只真正的 “鸟”。

优势

  其分辨率已经从其他相关技术能够达到的64*64升级到了256*256,分辨率的提高,意味着图片每个部分所包含的细节信息更加完善,也正因为细节的丰富,才使得DA-GAN的表现在与真实世界的对比中优于同类技术。

  对于DA-GAN来说,最重要的是早期的数据训练,图片越多质量越高。DA-GAN生成的众多新的图片,又可以反哺给该系统,从而让它拥有更多的学习数据。也就是说,只要基于少量的原始数据,它就可以产生更多“真实”的练习数据,大大改善某些领域真实数据缺乏的问题。利用这一优势,研究团队实现了业内首次在鸟类数据集中增加生成数据,并将系统的准确度提升了两个百分点。

 

 

  下图是数据增强结果——一个姿态变换任务。图中有三组图片,每组图片的第一列是原始样本,第二列是目标样本,第三列是DA-GAN生成的鸟类。它保存了与第一列鸟类类别一致,但保留了第二列的鸟类姿态。

发展前景

  在未来,或许,DA-GAN技术将开启一个每个人都是创造者的时代。只要你的需求输入它能够读懂,哪怕是你脑海中幻想出来的物体和场景,它都能“画”出来。而由它所描绘出来的虚拟世界,可能一点都不比文学家、艺术家创作出来的场景逊色。

  它能为安防领域提供更真实的犯罪嫌疑人画像;在生活购物方面帮助人们贴合自身的情况试穿网络售卖的衣物,它也可能让已经灭绝的动植物,通过记载文字的描述重新跃然纸上,等等。它可以用于任何与图片相关的创作。

【这几个应用,老师觉得有些牵强???】

【然后我回答了两个问题,一个是无监督学习方式,一个是... 我又讲了其他类似的技术... Over...  .) 】

参考:

DA-GAN技术:计算机帮你创造奇妙“新物种”

【读书笔记】DA-GAN: Instance-level Image Translation

不要怂,就是GAN (生成式对抗网络) (一): GAN 简介

GAN学习笔记(一)——初探GAN

其他阅读(可能跟本博客内容无关,我看着了解了一点...):

http://www.cyzone.cn/article/14379.html 【了解了一下“视觉文字”以及一种图像分析方式...】

https://mp.weixin.qq.com/s?__biz=MzIzNjc1NzUzMw==&mid=2247497045&idx=2&sn=0ee27b910c192f9fc91dc0c790c8f68d&chksm=e8d04227dfa7cb31fe81cdca28e8ed7679bfbdd1b228c88382735c3e40ebd5da0fed1b1bc0d6&mpshare=1&scene=23&srcid=0527JjXjfwm1OSdCnqx27958#rd【这个看起来挺有意思...】

感兴趣的可以再了解了解“视频结构化”。。。。。。

DA-GAN技术【简介】【机器通过文字描述创造图像】的更多相关文章

  1. Java Servlet 技术简介

    Java Servlet 技术简介 Java 开发人员兼培训师 Roy Miller 将我们现有的 servlet 介绍资料修改成了这篇易于学习的实用教程.Roy 将介绍并解释 servlet 是什么 ...

  2. CSS border三角、圆角图形生成技术简介

    http://www.zhangxinxu.com/wordpress/?p=794 一.前言 利用CSS的border属性可以生成一些图形,例如三角或是圆角.纯粹的CSS2的内容,没有兼容性的问题, ...

  3. FC总线技术简介

    FC是由美国标准化委员会(ANSI)的X3T11小组于1988年提出的高速串行传输总线,解决了并行总线SCSI遇到的技术瓶颈,并在同一大的协议平台框架下可以映射更多FC-4上层协议.FC具备通道和网络 ...

  4. 常见爬虫/BOT 对抗技术简介(二)

    上一篇文章分别从网络协议,Robots文件,JS渲染,行为分析等多方面讲了些“反爬虫”,“反-反爬虫”技术. 点击查看:<常见爬虫/BOT 对抗技术简介(一)> 本文将主要介绍各种IP地址 ...

  5. 【转】Android 防破解技术简介

    http://www.cnblogs.com/likeandroid/p/4888808.html Android 防破解技术简介 这几年随着互联网的不断发展,Android App 也越来越多!但是 ...

  6. InfiniBand技术简介

    InfiniBand技术简介   转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese 介绍         随着CPU和通讯处理速度的 ...

  7. Windows NT 技术简介

    Windows NT 技术简介 NT:New Technoly(新技术,因比DOS.WIN9X采用了很多新技术而得名) Windows NT基本介绍 WindowsNT是Microsoft推出的面向工 ...

  8. P2P技术简介

    P2P技术简介 NAT( Network Address Translation)穿越(俗称打洞)技术 前言: p2p已经存在于我们生活的方方面面:我们通过下载在工具(比如迅雷,bitorent,各种 ...

  9. 【CUDA并行程序设计系列(1)】GPU技术简介

    http://www.cnblogs.com/5long/p/cuda-parallel-programming-1.html 本系列目录: [CUDA并行程序设计系列(1)]GPU技术简介 [CUD ...

随机推荐

  1. SQL Server提取字段中的所有数字

    今天公司项目中遇到了一个需求,要求提取用户电话号码字段中的所有电话信息. 由于该字段在项目最初设计中没有严格控制数据质量,导致用户在输入时包含了很多非电话的信息,如用户名字等(136 **** *** ...

  2. [转]C# 关闭嵌在程序中的word进程而不关闭用户通过word手动打开的word进程

    命名空间 :System.Diagnostics 以前在word的时候,经常碰到word进程产生一大堆,怕关错了,把用户自己打开的word也关闭,一直搞忽悠,今天上网花了10块钱,下了个文件,给我了一 ...

  3. idea入手配置

    一.编码配置 utf-8 二.注释模板(Java Doc) 三.Live Templates 快捷键模板, 如配置logger,(类似 sout)

  4. Exception的情况——java基础1

    除数为0等ArithmeticException,是RuntimException的子类.而运行时异常将由运行时系统自动抛出,不需要使用throw语句.Java编译器允许忽略运行时异常,一个方法可以既 ...

  5. oracle数据库逐步学习总结【基础二】

    原创作品,转载请在文字开头明显位置注明出处:https://www.cnblogs.com/sunshine5683/p/10067872.html 接着上一篇,继续总结! 五.oracle表管理 首 ...

  6. whistle替代Fiddler调试远程服务器代码使用教程

    前沿 之前在window下开发的同学大部分都是使用Fiddler代理工具做远程调试,自从换了Mac后也想找个代替工具调试,查询了下大概都比较推荐两款:Charles 和 Whistle .不过Char ...

  7. angularjs ui-view多视口多层嵌套路由配置

    最近研究了一下ui-view多层嵌套,整理了一下 1.最简单的ui-view用法 html部分: <ul class="nav navbar-nav"> <li ...

  8. JavaWEB SSH文件上传

    一.提交表单的<form> method属性必须为post  并且添加enctype="multipart/form-data" 属性 前台: <td>上传 ...

  9. 对抗网络GAN的应用实例

      https://sigmoidal.io/beginners-review-of-gan-architectures/ 嗨,大家好!像许多追随AI进展的人一样,我无法忽略生成建模的最新进展,尤其是 ...

  10. linux 软件包安装方式选择、安装位置、源码包安装

    对外提供服务,比如apache,应使用源码包安装对内提供服务,比如gcc,只是我自己使用,使用rpm包安装 rpm包不需要指定安装位置,源码包的安装需要手动指定安装位置 rpm包默认安装位置/etc/ ...