热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

了解GAN网络

GAN网络,第一次听说它就不明觉厉。其他网络都是对输入图像进行某种处理,得到某种特定的输出。而GAN网络居然可以“无中生有”,无论是去除马

GAN网络,第一次听说它就不明觉厉。其他网络都是对输入图像进行某种处理,得到某种特定的输出。而GAN网络居然可以“无中生有”,无论是去除马赛克,还是换脸,还是对灰度图像上色,都显得不可思议,怎么可能凭空产生多余的信息?

在做了一点初步的了解之后发现,GAN网络确实和直观的感觉一样,它不需要带标签的图像进行训练,这也是它得到Yann Lecunc称赞为机器学习十年来最有意思的想法的原因,它使无监督学习成为可能。但作为一个机器学习方法,它依然应该有机器学习的三要素:模型,策略,算法。先再介绍一下GAN网络的基本情况,再来从三要素分析之。

GAN网络(Generative Adversarial Networks),生成对抗网络,由lan Goodfellow在2014年提出,发表在NIPS会议(神经信息处理系统大会)上。https://arxiv.org/abs/1406.2661

模型

GAN网络使用了两个模型,一个是生成器Generator(属于生成模型),一个是鉴别器Discriminator(属于判别模型)。两个模型的关系是相互对抗又相互促进,就像军备竞赛一样,这也是这个网络名字的由来。生成器使用随机噪声或者潜在变量生成逼真的样本。鉴别器实质就是一个二分类器,判断当前输入是真实样本还是仿冒样本。

下面是GAN网络的基本架构。

 

从图中可以看到GAN网络基本分为G和D两部分。G和D有时相连接,有时断开,这时D的输入是真正的样本(但是不带标签)。这种特殊的连接关系实际是之后要讲的训练方法:单独交替迭代训练。

策略

训练的结果,这两个模型会达到纳什均衡,鉴别器再也分不清楚生成器生成的样本是真是假,若分类器是软判决的,那么输出的概率都分布在0.5附近,距离1和0的距离相同。

纳什均衡是博弈学中的一个概念,被广泛应用于经济学中。比如两个厂商,它们的定价策略有各种组合形式,那么存在这么一直策略组合是稳定的,在这种局面下,任何一方单独改变策略,都无法获得收益,于是没有哪一方会主动改变策略,从而继续维持稳定。GAN就是生成器和鉴别器之间的博弈。考虑鉴别器D,我们站在鉴别器的角度考虑问题。输出是概率,分布在0~1之间,1代表真实样本,0代表假样本,当D的输入是真实样本时,希望输出越大越好;当D的输入是生成器产生的假样本时,希望输出越小越好,即能正确识别真假。

考虑生成器G,我们希望G生成的样本也可以以假乱真,被D判别为近似1。

算法

具体算法还需要研究作者的文章。在这里分析一下前面提到的单独交替迭代训练。鉴别器比较容易理解,就是一个带监督的分类器。虽然说我们提供的样本是没有标签的,那只是意味着我们不知道样本图像具体的类别,我们也不需要知道,我们只需要知道它是真样本还是假样本就可以了(把真/假作为标签)。这时候鉴别器不需要和生成器相连。也可以理解为先固定生成器的参数,之后还要固定鉴别器的参数,更新生成器的权重。

对于生成网络,就需要两个模型相连,这样我们才能得到反馈。这时候保持鉴别器D的参数不变,还需要注意的是要把生成器生成的结果的标签置1,因为我们希望鉴别器能把它判为1,这样把鉴别器的输出一直逼近1就达到了训练的目的。

链接中给了使用matlab的DeepLearnToolbox生成mnist图像的例子。但是在github有说明这个项目已经不再维护,作者推荐使用Theano,torch,TensorFlow。

除了普通的GAN,还有条件GAN,让生成的样本符合我们的预期。这个条件可以是类别标签(例如 MNIST 手写数据集的类别标签),也可以是其他的多模态信息(例如对图像的描述语言)等。

使用方法分两步

    Download.

addpath(genpath('DeepLearnToolbox'));

然后就可以在test文件夹中运行测试用例了。

P.s 在matlab中使用自定义函数,要将函数定义在同名m文件中,用function修饰

Reference:


  1. 好在哪里 https://blog.csdn.net/heyc861221/article/details/80128351
  2. 单独交替迭代https://blog.csdn.net/on2way/article/details/72773771
  3. 三篇文章https://www.cnblogs.com/Charles-Wan/p/623803html
  4. DeepLearnToolbox:https://blog.csdn.net/zhenyu_zhang/article/details/78266415?locationNum=3&fps=1

推荐阅读
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 闭包一直是Java社区中争论不断的话题,很多语言都支持闭包这个语言特性,闭包定义了一个依赖于外部环境的自由变量的函数,这个函数能够访问外部环境的变量。本文以JavaScript的一个闭包为例,介绍了闭包的定义和特性。 ... [详细]
  • 打开文件管理器_【教程】模组管理器3.1食用指南
    文编:byakko最近有部分小伙伴反应还不会使用unity模组管理器,现在我就给大家讲一下unity模组管理器——从下载到使用。完整视频版以下是无WiF ... [详细]
  • vue使用
    关键词: ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
author-avatar
小菜鸡
新手
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有