【学习笔记】GAN实战(基础)

本文介绍构建和训练生成对抗网络(GAN)的方法。

生成对抗网络(GAN)与生成模型导论

生成对抗网络(Generative Adversarial Network,GAN)

GAN简介

机器学习算法擅长识别已有数据中的模式,并将这种能力用于分类(为样本分配正确类别)和回归(根据一系列的输入进行数值估算)等任务中。

1.1 什么是GAN

GAN是一类由两个同时训练的模型组成的机器学习技术:一个是生成器,训练其生成伪数据;另一个是鉴别器,训练其从真实数据中识别伪数据。
生成(generative)表示模型的总目标——生成新数据。GAN通过学习生成的数据取决于所选择的训练集。
对抗(adversarial)指的是构成GAN框架的两个动态博弈、竞争的模型:生成器和鉴别器。
网络(network)表示最常用于生成器和鉴别器的一类机器学习模型是神经网络。从简单到复杂有前馈神经网络、卷积神经网络,以及U-Net。

1.2 GAN是如何工作的

生成器的目标是生成能最大程度有效捕捉训练集特征的样本,以至于生成出的样本与训练数据别无二致。生成器可以看作是一个反向的对象识别模型——对象识别算法学习图像中的模式,以期望能够识别图像的内容。生成器不是去识别这些模式,而是学习从头开始去创建它们。
生成器通过从鉴别器的分类结果中接收反馈来不断学习。鉴别器的目标是判断一个特定的样本是真的(来自训练集)还是假的(由生成器生成)。
因此,每当鉴别器将假的图像错判为真实图像时,生成器就会得到奖励;相反,每当鉴别器正确地将生成的假图像识别出来,生成器就会得到反馈进行改进。

1.3 GAN的收敛问题

GAN训练就是一个零和博弈问题,即一方的收益等于另一方的损失。当一方提高一定程度时,另一方会恶化同意的程度。零和博弈都有一个纳什均衡点,任何一方无论怎么努力都不能改善他们的处境或者结果。
当满足以下条件时,GAN达到纳什均衡。
(1)生成器生成的伪样本与训练集中的真实数据别无二致。
(2)鉴别器所能做的只是随机猜测一个特定的样本是真的还是假的(即猜测一个实例为真的概率是50%)
当达到纳什均衡时,GAN就被认为是收敛的。实际中,很难达到。

1.4 为什么要学习GAN

GAN一个引人瞩目的成就是图像到图像的转换(image-to-image translation)。GAN的最大魅力来自它的创造性。

1.5 小结

(1)GAN是一种利用两个神经网络之间的动态竞争来合成真实数据样本的深度学习技术,例如能合成具有照片级真实感的虚假图像。构成一个完整的GAN的两个网络如下:
· 生成器,其目标是通过生成与训练数据集别无二致的数据来欺骗鉴别器;
· 鉴别器,其目标是正确区分来自训练数据集的真实数据和由生成器生成的伪数据。
(2)目前,GAN在许多不同的领域都要者广泛的应用,如时尚、医药和网络安全等。

自编码器生成模型入门

自编码器被认为是最接近GAN的前身。

2.1 生成模型简介

从要生成内容的描述指令开始,最后在转换系统的另一端得到图像。这就是最简单、最非正式的生成模型

2.2 自编码器

自编码器可以帮助我们对数据进行自动编码,它由两部分构成:编码器和解码器。典型应用:压缩。

2.3 什么是GAN的自编码器

自编码器与GAN的一个关键区分点是:我们用一个损失函数对整个自编码器网络进行端到端的训练,而GAN的生成器和鉴别器分别有损失函数。

2.4 自编码器的构成

(1)编码器网络
(2)潜在空间
(3)解码器网络

2.5 自编码器的使用

(1)自由的压缩图像或对象
(2)训练自编码器不需要带标签的数据
(3)生成新图像

2.6 无监督学习

无监督学习(unsupervised learning)是一种从数据本身学习而不需要关于这些数据含义的附加标签的机器学习。例如,聚类是无监督的,因为只是试图揭示数据的底层表示;异常检测时有监督的,因为需要人工标记异常情况。

2.7 代码就是生命

使用深度学习高级API——Keras。
优势免费资源社区:Towards Data Science。
曼宁出版社——Deep Learning with Python。
Keras是用于TensorFlow、Microsoft Cognitive Toolkit(CNTK)和Theano这几个深度学习框架的高级API。它易于使用并被允许更高级别的抽象,可以让用户专注于概念和思路。

2.8 为什么要使用GAN

GAN对真实数据的分布具有隐式且难以分析的理解。

2.9 小结

(1)高级自编码器由编码器、潜在空间和解码器组成。使用常用目标函数来训练自编码器,该目标函数可以测量再现数据和原始数据之间的距离。
(2)自编码器有许多应用,也可以用作生成模型。在实践中这往往不是其主要用途,因为其他方法(尤其是GAN)对生成任务更为擅长。
(3)可以使用Keras编写简单的变分自编码器生成手写数字。
(4)VAE的局限性促使我们的研究向GAN迈进。

GAN模型

3.1 GAN的基础:对抗训练

每个网络只控制了决定损失的部分参量,生成器和鉴别器只能调整自己的参数而不能互相调整对方的参数。因此GAN训练可以用一个博弈 过程来更好地描述,而非优化。该博弈的对手是GAN所包含的两个网络。

3.2 生成器和鉴别器

生成器( G G G)接收随机噪声向量 z z

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/182971.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Lustre相关】功能实践-03-文件级冗余(FLR)

一、前言 DDN-03.11-File Level Redundancy (FLR) Category:FLR 1、功能介绍 在文件级冗余(File Level Redundancy,FLR)特性出现之前,Lustre文件系统数据冗余完全依赖于后端存储设备(如RAID6)。 Lustre在L…

SpringCloudSleuth+Zipkin 整合及关键包汇总

背景 整合了一下 SpringCloudSleuth Zipkin,本来是很简单的东西,但是最终导出依赖包时没注意,导致目标服务上始终没有纳入 Zipkin 的链路追踪中,本文记录这个过程及关键依赖包。 部署zipkin 官网下载最新的 zipkin 可执行包&a…

创建Asp.net MVC项目实现视图页面数据传值显示

MVC中视图传值 ViewData ViewBag TempData 举例创建三中传值方式实现页面数据展示 MVC中视图传值 Asp.net MVC中Controller向View传值有多种方式,这里简单说一下其中3种方式 ViewData、ViewBag和TempData ViewData ViewData存储数据,ViewData的声明和赋值方…

基于物联网的交叉口智能交通灯控制系统设计与实现

摘 要 智能视频监控技术是近年来新兴的一种利用计算机视觉技术,人工智能技术和数字视频处理技术对监控视频的目标进行识别,通过对此的分析处理,从而对视频监控系统进行控制,智能视频监控技术是一项较为复杂的课题。特别是对运动物…

代码随想录算法训练营第五十九天| 503.下一个更大元素II 42. 接雨水

文档讲解:代码随想录 视频讲解:代码随想录B站账号 状态:看了视频题解和文章解析后做出来了 503.下一个更大元素II class Solution:def nextGreaterElements(self, nums: List[int]) -> List[int]:res [-1] * len(nums)stack []for i in…

普中STM32 单片机资料

普中科技–各型号开发板资料下载链接: ①普中-精灵1开发板: 百度网盘链接:https://pan.baidu.com/s/1Pa8Ep1xmg6uoq17O6Nwyyw?pwd=1234 提取码:1234 ②普中-ESP32开发板: 百度网盘链接:https://pan.baidu.com/s/16VthcbW27oEWp162H3bi6Q?pwd=1234 提取码:1234 一…

Springboot 使用 阿里的 druid 连接池 启用 wall sql防火墙的情况下怎么支持多sql同时执行?

1、问题如上,看了不少网上的文章,在我这都不生效,网上主要的解决思路有两个。 第一个是:去掉配置文件中的 wall filter # 修改之前 spring.datasource.druid.filtersstat,wall,log4j# 修改之前 spring.datasource.druid.filte…

【Pytorch】Visualization of Feature Maps(5)——Deep Dream

学习参考来自: PyTorch实现Deep Dreamhttps://github.com/duc0/deep-dream-in-pytorch 文章目录 1 原理2 VGG 模型结构3 完整代码4 输出结果5 消融实验6 torch.norm() 1 原理 其实 Deep Dream大致的原理和【Pytorch】Visualization of Feature Maps(1&…

一次Apollo Client升级导致的生产404 Not Found问题排查记录

概述 本文记录一次升级Apollo Client组件到1.7.0后遇到的重大生产事故。只想看结论的,可直接快进到文末。实际上,第一句话就是一个结论。 另,本文行文思路事后看起来可行略显思路清晰,实际上排查生产问题时如无头苍蝇&#xff0…

Python TypeError: int() argument must be a string, a bytes原因

int()函数的TypeError Python开发过程中,使用int()函数来转换或生成int类型的数据时,如果Python抛出并提示TypeError: int() argument must be a string, a bytes-like object or a real number, not complex,那么原因在于传递给int()函数的…

45、Flink 的指标体系介绍及验证(3)- 完整版

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

day67

今日回内容 视图层 响应对象 cbv和fbv 上传文件 模板层 视图层 一、响应对象 响应对象的本质都是 HttpResponse HttpResponse:字符串 render: 将一个模板页面中的模板语法进行渲染,最终渲染成一个html页面作为响应体。 redirect:重定向 …

Java SpringBoot DES加密解密

可以使用 hutool加密 ,在本地没什么问题,但是在服务器会出现JDK安全问题 JCE cannot authenticate the provider BC 可以在本地写工具类进行DES加密 package com.neusoft.hit.cmpd.emg.nurse.information.utils;import javax.crypto.BadPaddingExceptio…

MATLAB基础应用精讲-【基础知识篇】MATLAB脚本和函数

目录 循环和条件语句 函数文件 函数句柄 输入参数数量 变量名称 实时脚本

药物副作用预测网络---------数据处理(2)

上一篇文章已经对7个txt文件做出了初步的筛选,现在借用excel来进行需要的数据筛选以及对空值的填补。(ps,其实主要就是对DEMO以及DRUG的清洗) 1.DEMO文件:(主要存储了报告信息以及病例患者的基本信息) pr…

从源代码出发,Jenkins 任务排队时间过长问题的解决过程

最近开发了一个部署相关的工具,使用 Jenkins 来构建应用。Jenkins 的任务从模板中创建而来。每次部署时,通过 Jenkins API 来触发构建任务。在线上运行时发现,通过 API 触发的 Jenkins 任务总是会时不时在队列中等待较长的时间。某些情况下的…

Node.js案例 - 记账本

目录 项目效果 项目的搭建 ​编辑 响应静态网页 ​编辑 ​编辑 结合MongoDB数据库 结合API接口 进行会话控制 项目效果 该案例实现账单的添加删除查看,用户的登录注册。功能比较简单,但是案例主要是使用前段时间学习的知识进行实现的&#xff0c…

C++ AVL 树

AVL树的概念 当数据有序或接近有序二叉搜索树将退化为单支树,此时二叉搜索树的搜索效率低下 解决方法:AVL树(降低树的高度,从而减少平均搜索长度) 一棵AVL树或者是空树,或者是具有以下性质的二叉搜索树&#xff1…

JavaScript基础—函数、参数、返回值、作用域、变量、匿名函数、综合案例—转换时间,逻辑中断,转换为Boolean型

版本说明 当前版本号[20231129]。 版本修改说明20231126初版20231129完善部分内容 目录 文章目录 版本说明目录JavaScript 基础 - 第4天笔记函数声明和调用声明(定义)调用细节补充 参数形参和实参函数默认值 返回值作用域全局作用域局部作用域 变量全…

laraval6.0 GatewayWorker 交互通信

laravel 6.0 GatewayWorker 通讯 开发前准备下载 GatewayWorker 及操作方式前端demo测试效果项目中安装GatewayClient 开发前准备 GatewayClient 官网:https://www.workerman.net/ 当前使用的是宝塔操作 下载 GatewayWorker 及操作方式 前端demo 测试效果 项目中安…