近期集中学习了GAN,下面记录一下调研的结果,和学习的心得,疏漏的地方,敬请指正。

本文将分为几个部分进行介绍,首先是GAN的由来,其次是GAN的发展,最后是GAN的应用。

先把最近收集的资料列举一下吧。

其中首推知乎的一位博士生,讲解的深入浅出,将来也是出好产品的科研人啊。令人拍案叫绝的Wasserstein GAN

自己顺着思路推导了一下GAN和WGAN的公式,能搞这些东西的人都是牛人啊。GAN的发展过程,就是loss不断改进的过程!

跑了一下Wgan的代码,是基于pytorch的,我跑的是和文章里的结果一样的数据lsun,的bedroom类。从代码来看吧,确实挺简单的,应该说是比起文章里复杂的公式推导,代码是相当的简单和易懂。wgan也是先优化discriminator,再优化generator,其中优化过程中是先优化D一百步迭代,然后再优化generator G。通篇读了一下代码,相当直观的。就是首先将真实数据作为输入,forward,然后给标签为1,计算backward,计算真实数据带来的误差。然后再随机生成噪声,用噪声作为G的输入,产生样本,再输入D,forward,输入标签-1,计算backward,计算噪声的误差。两个误差一起,进行模型优化,一次迭代更新D完成。在100次迭代更新D后,更新G。更新G的过程也是很直观的,随机噪声输入G,产生样本输入D,完成forward。用-1作为标签,进行backward,计算误差,根据误差进行模型优化。因为是基于pytorch的,基本上函数都封装好了,看着很简单,不过据我同事说,torch里的坑挺多的,不像caffe透明性高点,但是我看caffe里没有人实现wgan,同时caffe现在更新越来越慢了,有点没落的迹象,可能以后我会多用些pytorch。说说wgan的结果吧,训练过程中确实挺稳定的,而且不需要什么特别的技巧,代码里我是没看到,当然有人说还是有差别的,我会继续调一下对比一下看看。

GAN的调研和学习的更多相关文章

  1. GAN︱生成模型学习笔记(运行机制、NLP结合难点、应用案例、相关Paper)

    我对GAN"生成对抗网络"(Generative Adversarial Networks)的看法: 前几天在公开课听了新加坡国立大学[机器学习与视觉实验室]负责人冯佳时博士在[硬 ...

  2. 深度学习新星:GAN的基本原理、应用和走向

    深度学习新星:GAN的基本原理.应用和走向 (本文转自雷锋网,转载已获取授权,未经允许禁止转载)原文链接:http://www.leiphone.com/news/201701/Kq6FvnjgbKK ...

  3. (转)能根据文字生成图片的 GAN,深度学习领域的又一新星

    本文转自:https://mp.weixin.qq.com/s?__biz=MzIwMTgwNjgyOQ==&mid=2247484846&idx=1&sn=c2333a998 ...

  4. 深度学习----现今主流GAN原理总结及对比

    原文地址:https://blog.csdn.net/Sakura55/article/details/81514828 1.GAN 先来看看公式:             GAN网络主要由两个网络构 ...

  5. 人工智能中小样本问题相关的系列模型演变及学习笔记(二):生成对抗网络 GAN

    [说在前面]本人博客新手一枚,象牙塔的老白,职业场的小白.以下内容仅为个人见解,欢迎批评指正,不喜勿喷![握手][握手] [再啰嗦一下]本文衔接上一个随笔:人工智能中小样本问题相关的系列模型演变及学习 ...

  6. 深度学习--GAN学习笔记

    生成模型 WGAN Blog GAN 推荐学习网站 生成模型 什么是生成模型? GMM: 用来做聚类,(非监督学习) NB(朴素贝叶斯):(监督学习,可以用来做垃圾邮件分类) Logistics 回归 ...

  7. GAN one-shot

    基于one-shot的GAN生成图片 GAN的学习资料用于数据增广GAN的调研: https://zhuanlan.zhihu.com/p/32103958 GAN的各种paper汇集(包括Gener ...

  8. 生成式模型之 GAN

    生成对抗网络(Generative Adversarial Networks,GANs),由2014年还在蒙特利尔读博士的Ian Goodfellow引入深度学习领域.2016年,GANs热潮席卷AI ...

  9. [Deep-Learning-with-Python]GAN图片生成

    GAN 由Goodfellow等人于2014年引入的生成对抗网络(GAN)是用于学习图像潜在空间的VAE的替代方案.它们通过强制生成的图像在统计上几乎与真实图像几乎无法区分,从而能够生成相当逼真的合成 ...

随机推荐

  1. XGBoost算法

    一.基础知识 (1)泰勒公式 泰勒公式是一个用函数在某点的信息描述其附近取值的公式.具有局部有效性. 基本形式如下: 由以上的基本形式可知泰勒公式的迭代形式为: 以上这个迭代形式是针对二阶泰勒展开,你 ...

  2. JDK、JRE、JVM各自是什么、以及什么关系

    JDK:java开发工具包 JRE:java运行环境 JVM:java虚拟机 关系:         安装JDK时, JRE.JVM都安装上了 安装JRE时,也把JVM安装上了 JVM(不能单独安装) ...

  3. HBuilder的常用快捷键

    Ctrl + d 删除整行内容 Ctrl + Shift +R 复制当前行到下一行 Ctrl + Shift +D 重新编辑 Ctrl + 方向键 当前行整行内容上移或下移 Alt + ↓ 跳转到下一 ...

  4. 性能测试工具LoadRunner10-LR之Virtual User Generator 错误处理函数

    VuGen提供了错误处理函数lr_continue_on_error,用来在脚本中实时修改Vuser的出错设置.lr_continue_on_error函数语法结构如下: void lr_contin ...

  5. Android 程序结构介绍

    创建好Android开发环境后,创建一个Android Project, 截图如下:

  6. js去除重复项

    window.onload = function(){ var array = [12, 14,15,17,12,11,12,14,16] alert(del(array)); } function ...

  7. 如何在Chrome粘贴图片直接上传

    背景 截图或页面复制图片,可以直接通过Ctrl+v 粘贴上传图片 原理 操作:复制(截图)=>粘贴=>上传 监听粘贴事件=>获取剪贴板里的内容=>发请求上传 浏览器:Chrom ...

  8. Android Studio修改默认Activity继承AppCompatActivity(转)

    在Android Studio中新建Activity默认继承AppCompatActivity,感觉这点十分不爽,找了很久,终于发现在Android Studio安装目录下有个模板文件,修改其中的参数 ...

  9. js的垃圾收集机制以及写代码如何处理

    程序都自己的内存,一旦内存过多就会清楚以前的缓存.所以,在写代码的时候,不要仅仅只会推变量到栈中,还要会将变量从栈中释放. 那么问题来了,我们应该如何将内存从栈中释放呢? 要释放变量,那就要从java ...

  10. 浅谈JavaScript原型

    在JavaScript中,所有函数都会拥有一个叫做prototype的属性,默认初始值为“空”对象(没有自身属性的对象). 1.原型属性 如下所示,简单地定义一个函数: function foo(a, ...