学习记录--生成对抗网络GAN研究进展(一)

生成对抗网络(GAN)入门 判别器的任务是尝试区分接收到的数据是真实数据还是由生成网络生成的数据。生成器的任务是从随机噪声中生成与真实数据相似的合成样本,而判别器则负责辨别给定的样本是真实数据还是生成器产生的人工样本。在生成对抗网络(GANs)中,生成器(G)是一个关键组件,其任务是利用随机噪声(通常表示为z)作为输入,并通过不断的学习和拟合过程生成一个与真实样本在尺寸和分布上相似的伪造样本G(z)。GAN的原理在于通过这种对抗性训练,生成器学习生成逼真的数据,而判别器学习更好地区分真实和生成的数据。 阅读详情

1. 生成式模型

1.1 概述

机器学习方法可以分为生成方法(generative approach)和判别方法(discriminative approach),所学到的模型分别称为生成式模型(generative model)和判别式模型(discriminative model)[1 李航]。

生成方法通过观测数据学习样本与标签的联合概率分布P(X, Y),训练好的模型能够生成符合样本分布的新数据,它可以用于有监督学习和无监督学习。

在有监督学习任务中,根据贝叶斯公式由联合概率分布P(X,Y)求出条件概率分布P(Y|X),从而得到预测的模型,典型的模型有朴素贝叶斯、混合高斯模型和隐马尔科夫模型等。无监督生成模型通过学习真实数据的本质特征,从而刻画出样本数据的分布特征,生成与训练样本相似的新数据。生成模型的参数远远小于训练数据的量,因此模型能够发现并有效内化数据的本质,从而可以生成这些数据。生成式模型在无监督深度学习方面占据主要位置,可以用于在没有目标类标签信息的情况下捕捉观测到或可见数据的高阶相关性。

深度生成模型可以通过从网络中采样来有效生成样本,例如受限玻尔兹曼机(Restricted Boltzmann Machine, RBM)、深度信任网络(Deep Belief Network, DBN)、深度玻尔兹曼机(Deep Boltzmann Machine, DBM)和广义除噪自编码器(Generalized Denoising Autoencoders)。近两年来流行的生成式模型主要分为三种方法[OpenAI 首批研究]:

1.1.1 生成对抗网络(GAN:Generative Adversarial Networks)

GAN启发自博弈论中的二人零和博弈,由[Goodfellow et al, NIPS 2014]开创性地提出,包含一个生成模型(generative model G)和一个判别模型(discriminative model D)。生成模型捕捉样本数据的分布,判别模型是一个二分类器,判别输入是真实数据还是生成的样本。这个模型的优化过程是一个“二元极小极大博弈(minimax two-player game)”问题,训练时固定一方,更新另一个模型的参数,交替迭代,使得对方的错误最大化,最终,G 能估测出样本数据的分布。

1.1.2 变分自编码器(VAE: Variational Autoencoders)

在概率图形模型(probabilistic graphical models )的框架中对这一问题进行形式化——在概率图形模型中,我们在数据的对数似然上最大化下限(lower bound)。

1.1.3 自回归模型(Autoregressive models)
PixelRNN 这样的自回归模型则通过给定的之前的像素(左侧或上部)对每个单个像素的条件分布建模来训练网络。这类似于将图像的像素插入 char-rnn 中,但该 RNN 在图像的水平和垂直方向上同时运行,而不只是字符的 1D 序列。

1.2 生成式模型的分类[重磅 | Yoshua Bengio深度学习暑期班]

1.2.1 全观察模型(Fully Observed Models)

模型在不引入任何新的非观察局部变量的情况下直接观察数据。这类模型能够直接编译观察点之间的关系。对于定向型图模型,很容易就能扩展成大模型,而且因为对数概率能被直接计算(不需要近似计算),参数学习也很容易。对于非定向型模型,参数学习就困难,因为我们需要计算归一化常数。全观察模型中的生成会很慢。下图展示了不同的全观察生成模型[图片来自Shakir Mohamed的展示]:
这里写图片描述

1.2.2 变换模型( Transformation Models)
模型使用一个参数化的函数对一个非观察噪音源进行变换。很容易做到(1):从这些模型中取样 (2):在不知道最终分布的情况下仅算期望值。它们可用于大型分类器和卷积神经元网络。然而,用这些模型维持可逆性并扩展到一般数据类型就很难了。下图显示了不同的变换生成模型[图片来自Shakir Mohamed的展示]:
这里写图片描述
1.2.3 隐变量模型( Latent Variable Models)
这些模型中引入了一个代表隐藏因素的非观察局部随机变量。从这些模型中取样并加入层级和深度是很容易的。也可以使用边缘化概率进行打分和模型选择。然而,决定与一个输入相联系的隐变量却很难。下图显示了不同的隐变量生成模型[图片来自Shakir Mohamed的展示]:
这里写图片描述

1.3 生成式模型的应用

我们需要生成(Generative models)模型,这样就能从关联输入移动到输出之外,进行半监督分类(semi-supervised classification)、数据操作(data operating)、填空(filling in the blank)、图像修复(inpainting)、去噪(denoising)、one-shot生成 [Rezende et al, ICML 2016]、和其它更多的应用。下图展示了生成式模型的进展(注意到纵轴应该是负对数概率)[图片来自Shakir Mohamed的展示]:
这里写图片描述

另据2016 ScaledML会议IIya Sutskever的演讲报告“生成模型的近期进展”介绍,生成模型主要有以下功能:

  • Structured prediction,结构化预测(例如,输出文本);
  • Much more robust 更鲁棒的预测
  • Anomaly detection,异常检测
  • Model-based RL,基于模型的增强学习

    生成模型未来推测可以加以应用的领域:

  • Really good feature learning, 非常好的特征学习

  • Exploration in RL, 在强化学习中的探索
  • Inverse RL, 逆向增强学习
  • Transfer learning, 迁移学习
【论文研读】GAN 逆映射 综述 GAN Inversion: A Survey 关键部分翻译 研读思考 本文未完成,感兴趣请收藏 计算机视觉综述:GAN 论文集 GAN Inversion: A Survey 关键部分翻译 研读思考 阅读详情

相关推荐

GAN学习记录(三)——半监督生成对抗网络(SGAN)

半监督生成对抗网络(SGAN) 半监督生成对抗网络(Semi-Supervised GAN,SGAN)是一种生成对抗网络,其鉴别器是多分类器。这里的鉴别器不只是区分两个类(真和假),而是学会区分N+1类,其中N是训练数据集中的类数,生成器生成的伪样本增加了一个类。 结构区别 与传统GAN相比,SGAN区分多个类的任务不仅影响了鉴别器本身,还增加了SGAN架构、训练过程和训练目标的复杂性。 SGAN生成器的目的与原始GAN相同:接收一个随机数向量并生成伪样本,力求使伪样本与训练数据集别无二致。但是,SGAN

yunlong_G的博客 9337

生成对抗网络(GAN)详解

生成对抗网络(Generative Adversarial Network, GAN)是由IanGoodfellow于2014年在《Generative Adversarial Nets》中提出的模型。

qq_57019146的博客 6338

从头开始GAN【论文】(一) —— GAN

忙了三个多月的秋招终于接近尾声,得开始看点学术类的东西了,没办法,要毕业啊。想来想去还是觉得有必要写个GAN 的专栏记录自己在GAN 方面的学习历程。一方面,可以通过总结的方式来加深自己的理解;另一方面,也可以及时给自己反馈,规划下一步的学习目标。 这个专栏的文章里基本上不会出现比较晦涩难懂的概念或者复杂的数学公式推理,更多的是我个人在学习GAN 过程中对它的一个理解、相关知识点的整理和从网上各...

少东的博客 5827

生成对抗网络(GAN)

对抗”的含义就是生成器通过不断的训练尽可能的生成以假乱真的图像,判别器通过不断的识别尽可能的区分图像的真假。第一张图是训练集选取的部分图片,第二张图片是由生成器产生的图片,可以看出,通过多次训练,生成可以生成比较接近训练集图片的图片。生成器的训练过程,简单来说就是,给定网络,给定标签,然后更新输入(这里是随机数据,可以符合一定的分布),使输出图像对应的标签逐渐靠近给定的标签;也是生成对抗网络中的一部分,用于识别出哪些是有生成网络生成的“假”数据,哪些是真正的训练集数据。

weixin_49346755的博客 1万+

深度学习笔记38-生成对抗网络GAN入门(Pytorch)

import os## 创建文件夹os.makedirs("./images/", exist_ok=True) # 记录训练过程的图片效果os.makedirs("./save/", exist_ok=True) # 训练完成时模型保存的位置os.makedirs("./datasets/mnist", exist_ok=True) # 下载数据集存放的位置## 超参数配置b1 = 0.5b2 = 0.999n_cpu = 2。

m0_67869333的博客 918

深度学习100例-生成对抗网络(GAN)手写数字生成 | 第18天

???? 大家好,我是 ???? K同学啊,《深度学习100例》系列将持续更新 欢迎 点赞????、收藏⭐、关注???? 文章目录一、前期工作1. 设置GPU2. 定义训练参数二、什么是生成对抗网络1. 简单介绍2. 应用领域三、网络结构四、构建生成器五、构建鉴别器六、训练模型1. 保存样例图片2. 训练模型七、生成动图 本文将采用 GAN 模型实现手写数字的生成,重点是了解 GAN 模型的结构及其搭建方法。 一、前期工作 ???? 我的环境: 语言环境:Python3.6.5 编译器:jupyter

“365天深度学习训练营”报名进行中~ 6353

生成对抗性网络简介

1. 原理1. GANs如何工作2. GAN架构3. 培训GAN4. 艺术家与评论家5. 评估指标6. GAN变体7. GAN应用8. 图像合成(Image synthesis)9. 图像到图像的转换(Image-to-image translation)10. 文本到图像(Text-to-Image)11. 超越图像12. 其他GAN应用参考这篇博客将介绍生成对抗性网络(GAN)、各种GAN变体以及解决现实世界问题的有趣的应用程序。

qq_40985985的博客 4009

生成对抗网络在各领域应用研究进展

随着深度学习的快速发展, 生成式模型领域也取得了显著进展. 生成对抗网络(Generative adversarial network, GAN)是一种无监督的学习方法, 它是根据博弈论中的二人零和博弈理论提出的. GAN具有一个生成器网络和一个判别器网络, 并通过对抗学习进行训练.

【AI广延 | GAN】一文带你了解生成对抗网络

近年来,深度学习在很多领域的都取得了突破性进展,但大家似乎发现了这样的一个现实,即深度学习取得突破性进展的工作基本都与判别模型相关。什么意思呢?也就是说,生成模型并没有被好好地运用以释放其潜能。生成模型关注于分析和理解数据背后的生成过程,能够生成与训练数据类似的新样本。生成模型的训练和性能评估发展缓慢,生成高质量的样本仍然是一个挑战。2014 年 Goodfellow 等人启发自博弈论中的二人零和博弈 ,开创性地提出了生成对抗网络 (GAN)生成对抗网络包含一个生成模型和一个判别模型。

等风来 9235

【Flink cdc】Data row is smaller than a column index, internal schema representation is probably xxx

翻译一下:当scan.startup.mode=EARLIEST_OFFSET时,如果在最早的offset之后表结构有过变化就无法支持。原因应该是在binlog 的earliest_offset之后,表结构被修改过。我的解决方案:source配置中使用。mysql source配置使用。,以时间戳为消费依据。

integrity 2085

不修改MMDetection源码使用自定义数据和模型

以目标检测为例,用非侵入式的模型和MMDetection数据的方法进行配置。也就是不改动MMDetection的任何源码或目录的条件下,使用自定义数据训练自定义模型。

Dlite的技术笔记 1341

生成对抗网络(Generative Adversarial Networks)

目录 一、生成对抗网络原理 1、模型的起源 2、模型的结构和损失函数 二、对GAN的改进 1、零和博弈 2、非饱和博弈 3、最大似然博弈 三、GAN的训练 四、GAN面临的问题 1、很难达到纳什均衡点 2、无法有效监控收敛状态 3、模型崩溃 4、不适合离散输出 五、GAN的应用 1、图像生成 2、由文本生成图片 3、超分辨Super-Resolution 一、生...

weixin_36670529的博客 1万+

最适合入门的100个深度学习项目

本专栏整理了《PyTorch深度学习项目实战100例》,内包含了各种不同的深度学习项目,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。

优快云 精品推荐 12万+

生成对抗网络(GAN)教程 - 多图详解

一.生成对抗网络简介 1.生成对抗网络模型主要包括两部分:生成模型和判别模型。 生成模型是指我们可以根据任务、通过模型训练由输入的数据生成文字、图像、视频等数据。 [1]比如RNN部分讲的用于生成奥巴马演讲稿的RNN模型,通过输入开头词就能生成下来。 [2]或者由有马赛克的图像通过模型变成清晰的图像,第一张是真实,第四张是合成的。 ...

马飞飞的博客 10万+

java零基础从入门到精通(全)

目录前言1. 入门知识1.1 java体系1.2 JDK/JRE/JVM区别1.3 编译与运行理解1.4 类体函数细节2. 标识符 前言 java优势 健壮性(JVM(C++语言写的一个虚拟的计算机)、GC(垃圾回收机制)) 多线程并发 可移植性/跨平台 1. 入门知识 1.1 java体系 JavaSE:标准版 JavaEE:企业版 JavaME:微型版 1.2 JDK/JRE/JVM区别 JVM是不能独立安装的。 JRE和JDK都是可以独立安装的 层层嵌套,jvm包括jdk,jdk包括jre

码农研究僧的博客 6万+

泛微OA自定义post接口和路径(无侵入)

泛微OA自定义post接口和路径(无侵入)

技术分享 3870

第G1周:生成对抗网络(GAN)入门

GAN(生成对抗网络)是一种神经网络架构,它的设计灵感来自于博弈论的思想。这种网络由两个关键组件组成:生成器(Generator)和判别器(Discriminator)。生成器的任务是从随机噪声中生成与真实数据相似的合成样本,而判别器则负责辨别给定的样本是真实数据还是生成器产生的人工样本。这两个组件通过反复对抗性的训练相互影响和提升。在训练过程中,生成器努力生成越来越逼真的样本,而判别器则不断提高辨别真实与生成样本的能力。

geo436872的博客 2176

069、PCIE属性字段:缓存、顺序与安全

上个月调试一块自研的PCIE采集卡,遇到了一个诡异的问题:主机通过DMA从设备读取图像数据,大部分帧正常,但偶尔会出现局部数据错位,像是缓存没刷干净。用逻辑分析仪抓链路层报文,发现TLP(事务层包)本身完好,但内存中的数据就是不对。排查三天后,终于锁定在设备端TLP的**属性字段(Attribute Field)**配置上——那几位看似不起眼的缓存、顺序控制位,差点让项目延期。今天我们就拆解PCIE事务头中的这个关键区域,看看它如何影响系统性能与数据安全。

z534437748的博客 50

GAN的学习 - 实际的训练过程

20200824 - 0. 引言 前面的文章中,了解了GAN的基础知识,同时介绍了实际代码(如何利用GAN来生成MNIST的数据),前面两篇文章中,进行了具体的基础知识铺垫,但是我在实际的训练过程中,也感受到了GAN训练不稳定。本篇文章从这个角度来入手,来讲讲训练过程。 前文回顾: 1. GAN的训练过程 1.1 GAN如何训练 在前文中提到GAN是通过训练两个神经来实现生成模型,其中两个模型分别是生成器模型和判别器模型。在训练过程中,判别器将尽可能提高识别真数据和假数据的能力,而生成器将尽可能生成真的数据

围城 1万+

使用RV1126实现人脸识别——将Facenet模型转换为RKNN模型

在本文中,我们将探讨如何在RV1126芯片上实现人脸识别,并将Facenet模型转换为RKNN(Rockchip Neural Network)模型,以在RV1126上进行高效的人脸识别。Fine-tuning是指在预训练模型的基础上,使用自己的数据集进行进一步训练,以适应特定的任务。同时,我们需要下载Facenet模型的预训练权重,这些权重将作为我们的基础模型。综上所述,我们详细介绍了如何在RV1126上实现人脸识别,并将Facenet模型转换为RKNN模型。方法将模型导出为RKNN格式的文件。

code_program481的博客 1524

CAN总线入门(硬件部分)

这篇博客讲述CAN总线入门知识。

记得诚 1万+

GAN 的训练、调参实践

自从 GAN 提出后,它变得越来越火热,吸引了众多的爱好者前来学习实践。 但是只要你自己去从无到有写出一个 GAN 模型并运行,除非你运气太好,大多数情况下你都会发现自己的GAN并不能很好地 work 。 下面首先对 GAN 进行简要的介绍,然后整理了我自己在 GAN 的设计网络结构、调整参数等方面的经验。 1 什么是GAN? GAN 是一种生成模型,由知名的学者 Ian Goodfellow 首...

四个菜 1万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

深度学习 GAN生成对抗网络-手写数字生成及改良

在前面一篇文章,我们使用GAN网络生成了1010格式的数字,接下来我们将使用GAN网络生成手写数字图像。本文不会一下给出最终方案,而是顺着思路一步步测试改良,加强大家的理解,最终达到我们想要的效果。

李乾文的博客 3720

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

详解GAN代码之逐行解析GAN代码

转自: https://blog.youkuaiyun.com/jiongnima/article/details/80033169 训练数据集:手写数字识别 下载链接:https://pan.baidu.com/s/1d9jX5xLHd1x3DFChVCe3LQ 密码:ws28 在本篇博客中,笔者将逐行解析一下NIPS 2014的Generative Adversarial Network...

duanyajun987的博客 2458

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

上一篇: Docker学习笔记 – 应该知道的几件事
下一篇: GitHub Windows下客户端的安装及简单使用
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值