【GANs学习笔记】(十五)EBGAN、BEGAN
完整笔记:http://www.gwylab.com/note-gans.html
———————————————————————
本章借鉴内容:
https://blog.csdn.net/qq_25737169/article/details/77575617?locationNum=1&fps=1
2. EBGAN
EBGAN的全称是Energy-Based GAN,它只改动了discriminator,使其不再去鉴别输入图像是来自于还是,而是去鉴别输入图像的重构性高不高。具体来说就是,本来discriminator的目的是学会寻找与之间的差异,进而给图片质量打分,现在我们不再是通过寻找差异来打分,而是用一种”强烈的记忆”让discriminator仅仅记住长什么样子,然后对于一个任意的输入x,只要x符合这个“记忆”中的样子就给高分,只要x与“记忆”中的样子有差异就给低分。EBGAN就是用autoencoder实现了这样的“记忆”,我们会在接下来详细介绍。
首先值得说明的是,图中的autoencoder是提前用真实图片训练好的,也就是说,如果输入是来自真实数据集的图片,这个autoencoder就能产生和输入非常相似的图片;但是如果输入的是其他图片,autoencoder的输出就不会和输入相似。现在把这个autoencoder放入discriminator中,每当discriminator输入一张image x,通过这个autoencoder得到重构图像x’,我们就能用x与x‘的差值作为评判输入图像x质量好坏的标准,当差值越低的时候意味着输入图片越符合真实图片的特征。
由此我们可以看到,EBGAN的最大特点就是discriminator一开始就非常强(因为有pretrain),因此generator在一开始就能获得比较大的“能量驱动”(energy based),使得在一开始generator就进步非常快。所以如果我们比较看中训练效率,希望在短期内获得一个比较不错的generator的话,就可以考虑EBGAN。
更:上边写的太简单了点,关于EBGAN的详细解释,新写了一篇: 【GANs学习笔记】(二十三)EBGAN深度理解
3.* BEGAN
BEGAN看着与EBGAN好像,二者确实存在着一些关联。BEGAN的全称是Boundary Equilibrium GAN(边界均衡GAN),它借鉴了 EBGAN 和 WGAN 各自的一些优点,提出了一种新的评价生成器生成质量的方式,使GAN即使使用很简单的网络,也能实现很好的训练效果,完全不用担心模式崩溃(model collapse)和训练不平衡的问题。
直观来讲,如果两个分布越相近,我们可以认为他们越相似,当生成数据分布非常接近于真实数据分布的时候,这时候生成器就有足够的生成能力。BEGAN代替了这种估计概率分布方法,它不直接去估计生成分布Pg与真实分布Px的差距,而是估计分布的误差分布之间的差距,作者认为只要分布之间的误差分布相近的话,也可以认为这些分布是相近的。
BEGAN中,作者做出了以下四个贡献:
1. 提出了一种新的简单强大GAN网络结构,使用标准的训练方式不加训练trick也能很快且稳定的收敛
2. 对于GAN中G,D的能力的平衡提出了一种均衡的概念
3. 提供了一个超参数,这个超参数可以在图像的多样性和生成质量之间做均衡
4. 提出了一种收敛程度的估计,这个机制只在WGAN中出现过。
这篇paper比较偏理论了,我就不再做详细介绍了(逃),感兴趣的读者可以自行去研究,附上一篇非常好的讲解博文:
https://blog.csdn.net/qq_25737169/article/details/77575617?locationNum=1&fps=1
【GANs学习笔记】(十五)EBGAN、BEGAN相关推荐
- python复制指定字符串_python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)...
python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...
- windows内核开发学习笔记十五:IRP结构
windows内核开发学习笔记十五:IRP结构 IRP(I/O Request Package)在windows内核中,有一种系统组件--IRP,即输入输出请求包.当上层应用程序需要访问底层输入输 ...
- Polyworks脚本开发学习笔记(十五)-用Python连接Polyworks的COM组件
Polyworks脚本开发学习笔记(十五)-用Python连接Polyworks的COM组件 用Polyworks脚本开发,没有高级语言的支持,功能难免单一,一些比较复杂的交互实现不了,界面和报告也很 ...
- IOS之学习笔记十五(协议和委托的使用)
1.协议和委托的使用 1).协议可以看下我的这篇博客 IOS之学习笔记十四(协议的定义和实现) https://blog.csdn.net/u011068702/article/details/809 ...
- Mr.J-- jQuery学习笔记(十五)--实现页面的对联广告
请看之前的:Mr.J-- jQuery学习笔记(十四)--动画显示隐藏 话不多说,直接上demo <!DOCTYPE html> <html lang="en"& ...
- 世界是有生命的(通向财富自由之路学习笔记十五)
最近因为工作调度的事情,有了一段空闲的日子,有比较多的时间来回望自己走过的路以及如何走好以后的路.之前忙得很少时间来写博文,很少时间来写读书笔记,逐渐将自己一些很好的习惯丢弃了.从今天起将重拾写博文的 ...
- 前端学习笔记(十五)
第十五章 HTML5新增标签 一.HTML5概述 1.简介 HTML5万维网的核心语言.标准通用标记语言下的一个应用超文本标记语言的第五次大修改.HTML5将成为 HTML.XHTML ...
- 【theano-windows】学习笔记十五——受限玻尔兹曼机
前言 终于到了最喜欢的模型: 受限玻尔兹曼机(RBM)了, 发现关于RBM是如何从能量模型发展过来的介绍非常不错, 而关于详细理论证明, 可以去看我前面的受限玻尔兹曼机的一系列博客. 国际惯例, 参考 ...
- hough变换直线检测_CV学习笔记(十五):直线检测
在这一篇文章中我们将学习使用OpenCV中的 HoughLines 函数和 HoughLinesP 函数来检测图像中的直线. 在这个函数中,使用的是霍夫变换(Hough Transform) 这是计算 ...
- javascript学习笔记(十五) 间歇调用和超时调用
1.超时调用setTimeout() setTimeout() 方法接受两个参数,第一个参数是函数,第二个参数是时间(单位微秒),返回数值ID 1 setTimeout( function () { ...
最新文章
- ASP.NET前台代码绑定后台变量方法总结
- sql导航函数 NTH_VALUE
- 【Python】一个已经存在 10 年,却被严重低估的库
- 【数学建模】线性规划模型MATLAB求解(最优化)
- Android开发之WebView加载自定义scheme报错net::ERR_UNKNOWN_URL_SCHEME(附带源码标题下面可点击下载)
- mysql 修复模式_Mysql表修复
- 2012-04-12
- python倒三角形粉色填充笔的形状海龟_Python001-Turtle(海龟绘图)详解
- 【计算机视觉】【车辆识别】--Matlab实现
- VMware上安装Linux镜像CentOS
- python---之hasattr()
- OpenCasCade拓扑变换(使用gp_trsf)
- 最新kali之hping3
- 关于防范ONION勒索软件病毒攻击的解决办法
- HDU - 2586 - How far away ? (最短路)
- 六级考研单词之路-二十二
- 塞规公差带图_塞规公差计算表
- 【采样算法】拉丁超立方采样
- 廖雪峰Python基础笔记
- 知识中藏着美好的未来,社科院杜兰金融管理硕士项目是你前行路上的里程碑吗