
基于Keras的生成对抗网络详解
文章平均质量分 93
生成对抗网络GAN是由蒙特利尔大学Ian Goodfellow在2014年提出的机器学习架构。Keras是一个由Python编写的开源人工神经网络库,可以作为Tensorflow、Microsoft-CNTK和Theano的高阶应用程序接口,进行深度学习模型的设计、调试、评估、应用和可视化 。
wendy_ya
控制类专业在读研究生
展开
-
基于Keras的生成对抗网络进阶(3)——利用Keras和GAN进行幂函数拟合
上一篇文章介绍了利用Kears拟合正弦函数。本文将介绍利用Keras和生成对抗网络GAN进行幂函数$y=x^3$的拟合。原创 2021-07-09 16:23:56 · 508 阅读 · 2 评论 -
基于Keras的生成对抗网络进阶(2)——利用Keras和GAN进行正弦函数拟合
前面两篇文章分别介绍了利用Kears拟合简单函数以及利用PyTorch拟合正弦函数。在本文,从我们的实际采样数据中,我们将生成随机正弦曲线,并尝试使我们的GAN生成正确的正弦曲线(当然也可以通过改变样本数据函数和模型来将这个基础结构适应并解决一个更复杂的问题,例如图像)。......原创 2021-07-09 11:23:45 · 913 阅读 · 2 评论 -
基于Keras的生成对抗网络进阶(1)——利用Keras和GAN进行简单函数拟合
在进阶阶段,将介绍一下GAN生成对抗网络在除图像领域的一些其他应用,本文将先介绍一下利用GAN进行曲线y=x2y=x^2y=x2拟合。目录一、GAN结构二、函数代码2.1 生成器Generator2.2 判别器Discriminator2.3 生成真实数据2.4 train函数2.5 显示图像sample_images函数一、GAN结构这里进行曲线拟合利用的是普通GAN的结构,即利用全连接层+激活函数,这里不过多介绍。二、函数代码2.1 生成器Generator生成器的目标是输入一行正态分布随机原创 2021-07-07 21:43:31 · 1092 阅读 · 0 评论 -
基于Keras的生成对抗网络(6)——利用Keras搭建CycleGAN实现风格迁移
目录0、前言一、CycleGAN介绍及其结构二、函数代码2.0 前提准备2.1 生成器Generator2.2 判别器Discriminator2.3 train函数三、结果演示四、完整代码0、前言CycleGAN的英文全称是Cycle GAN,即循环生成对抗网络,论文链接:https://arxiv.org/abs/1703.10593。一、CycleGAN介绍及其结构CycleGAN 是一种无需成对示例便可自动进行图像到图像转换的技术。这些模型是采用一批无需关联的来自源域和目标域的图像,以一种无原创 2021-04-26 20:29:09 · 1246 阅读 · 0 评论 -
基于Keras的生成对抗网络(5)——利用Keras搭建LSGAN生成手写体数字
目录0、前言一、LSGAN介绍及其结构二、函数代码2.1 生成器Generator2.2 判别器Discriminator2.3 train函数三、结果演示四、完整代码五、常用技巧0、前言LSGAN的英文全称是Least Squares GAN,即最小二乘GAN,论文链接:https://arxiv.org/abs/1611.04076,LSGAN针对的是标准GAN生成的图片质量不高以及训练过程不稳定这两个缺陷进行改进。改进方法就是将GAN的目标函数由交叉熵损失换成最小二乘损失,而且这一个改变同时解决了原创 2021-04-24 21:38:10 · 496 阅读 · 0 评论 -
基于Keras的生成对抗网络(4)——利用Keras搭建ACGAN生成手写体数字并贴上标签
0、前言上两篇文章分别介绍了DCGAN 和CGAN的基本原理和代码示例,同时也反映出二者的一些缺点,比如DCGAN无法为图像添加标签进行分类,CGAN生成图像效果不好等。这一篇就来一下DCGAN与CGAN的综合版本——ACGAN。一、ACGAN介绍及其结构1.1 ACGAN介绍ACGAN全称Auxiliary Classifier GAN,是在CGAN基础上的扩展,通过对判别器进行改进实现了图像分类的功能,论文链接:https://arxiv.org/abs/1610.09585原始GAN网络的功原创 2021-04-23 21:58:59 · 910 阅读 · 0 评论 -
基于Keras的生成对抗网络(3)——利用Keras搭建CGAN生成手写体数字并贴上标签
目录0、前言一、CGAN介绍及其结构1.1 CGAN介绍1.2 CGAN结构二、函数代码2.1 生成器Generator2.2 判别器Discriminator2.3 train函数三、结果演示四、完整代码0、前言由于很多时候我们不仅想要数据,更想获取数据的标签,因此CGAN应运而生。一、CGAN介绍及其结构1.1 CGAN介绍CGAN全称Conditional Generative Adversarial Nets,论文链接:https://arxiv.org/abs/1411.1784。CG原创 2021-03-31 08:23:04 · 700 阅读 · 0 评论 -
基于Keras的生成对抗网络(2)——利用Keras搭建DCGAN生成手写体数字
目录0、前言一、DCGAN介绍及其结构1.1 DCGAN介绍1.2 DCGAN结构1.3 DCGAN的优点1.4 详细介绍二、函数代码2.0 训练前的准备2.1 生成器Generator2.2 判别器Discriminator2.3 train函数三、结果演示四、完整代码五、常见问题汇总六、【拓展】利用DCGAN实现三通道彩色图像生成0、前言上一篇介绍了GAN 的基本原理以及相关的概念和代码示例,同时也反映出GAN 的一些缺点,比如说训练不稳定,生成过程不可控,不具备可解释性等。这一篇就来看看GAN 的原创 2021-03-28 18:37:44 · 671 阅读 · 0 评论 -
基于Keras的生成对抗网络(1)——利用Keras搭建简单GAN生成手写体数字
0、前言GAN网络是近两年深度学习领域的新秀,本文和之后的初识生成对抗网络系列旨在浅显理解传统GAN,分享学习心得。关于为什么使用Keras进行搭建,而不是如日中天的TensorFlow和pytorch,因为keras是对新手最友好,最简单实用的深度学习框架,因此首先利用keras进行搭建,等充分理解GAN的结构和参数之后,再利用TensorFlow或pytorch进行搭建。一、GAN结构普通GAN的结构就是利用全连接层+激活函数,这里不过多介绍。二、函数代码2.1 生成器Generator生原创 2021-03-23 09:41:21 · 888 阅读 · 0 评论 -
生成对抗网络前言(4)——变分自动编码器(Variational autoencoder,VAE)介绍
目录一、变分自动编码器介绍1.1 变分自动编码器介绍1.2 变分自动编码器实现方法1.3 变分自动编码器实现的理论基础二、变分自动编码器的工作原理四、变分自动编码器的Python代码实现与结果显示五、变分自动编码器的缺点与改进一、变分自动编码器介绍1.1 变分自动编码器介绍变分自动编码器Variational autoencoder (VAE)是一个稍微更现代和有趣的自动编码器。相比于普通的自动编码器,变分自动编码器才算得上是真正的生成模型。为了解决自动编码器存在的不能通过新编码生成数据的问题,VA原创 2021-05-22 17:48:18 · 825 阅读 · 0 评论 -
生成对抗网络前言(3)——其他自动编码器介绍(稀疏自动编码器、深度自动编码器、卷积自动编码器、序列到序列的自动编码器)及自动编码器在图像去噪领域的应用
目录一、稀疏自编码器二、深度自编码器三、卷积自编码器四、使用自动编码器进行图像去噪五、序列到序列的自动编码器(LSTM)一、稀疏自编码器在自动编码器中,我们的隐含层有32个神经元。这种情况下,一般而言自动编码器学到的是PCA的一个近似。但是如果我们对隐含层单元施加稀疏性约束的话,会得到更为紧凑的表达,只有一小部分神经元会被激活。在Keras中,我们可以通过添加一个activity_regularizer达到对某层激活值进行约束的目的。部分代码如下:from keras import regulari原创 2021-05-21 20:17:45 · 734 阅读 · 0 评论 -
生成对抗网络前言(2)——自动编码器(auto-encoder)介绍
目录一、自动编码器介绍1.1 自动编码器介绍1.2 自动编码器特点1.3 自动编码器伪代码实现1.4 自动编码器的应用二、利用自动编码器实现生成模型三、自动编码器的代码实现与结果显示四、自动编码器的不足与改进一、自动编码器介绍1.1 自动编码器介绍自动编码器是一种神经网络模型,该模型的最初意义是为了能够对数据进行压缩。下图是一个标准的自动编码器,它的基本结构是一个多层感知器的神经网络,从输入层到输出层之间有多个隐含层,它的结构特点在于输入层与输出层拥有相同的节点数量,中间编码层的节点数量需要小于输入层原创 2021-05-19 20:40:39 · 780 阅读 · 0 评论 -
生成对抗网络前言(1)——生成对抗网络的数学推导
1.1 数学期望在概率论和统计学中,数学期望(mean)(或均值,亦简称期望)是试验中每次可能结果的概率乘以其结果的总和,是最基本的数学特征之一。它反映随机变量平均取值的大小。1.2 KL散度KL散度:又称“相对熵”,在信息论中,用生成的概率分布Q来拟合逼近真实的概率分布P时,所产生的...原创 2020-09-01 12:12:28 · 1081 阅读 · 0 评论 -
【科普】博弈论之胆小鬼博弈、囚徒困境、智猪博弈与纳什均衡
目录一、前言1.1 博弈论1.2 纳什1.3 胆小鬼博弈二、纳什均衡2.1 纳什均衡定义2.2一、前言在博弈论中,纳什均衡(Nash equilibrium),又称为非合作博弈均衡,是博弈论的一个重要术语,以约翰·纳什命名。1.1 博弈论博弈论(英语:Game Theory),又译为对策论或赛局理论,是经济学的一个分支,1944年冯·诺伊曼与奥斯卡·摩根斯特恩合著《博弈论与经济行为》,标志着现代系统博弈理论的的初步形成,因此他被称为“博弈论之父”。博弈论被认为是20世纪经济学最伟大的成果之一。目前在原创 2020-10-09 20:20:06 · 17207 阅读 · 0 评论 -
GAN生成对抗网络入门介绍及DCGAN、WGAN等介绍
一、原理部分Generative Adversarial Networks(GAN):生成对抗网络。2014年Ian J. Goodfellow等人在论文《Generative Adversarial Nets》中第一次提出GAN的概念。大牛Yann LeCun甚至评价GAN为 “adversarial training is the coolest thing since sliced bread”。1.1举例解释论文中举了一个很通俗的例子——假币与真币的例子。造假币的团伙相当于生成器,他们想原创 2020-08-21 10:48:24 · 2615 阅读 · 1 评论