[PyTorch][chapter 54][GAN- 1]

news2024/11/17 5:45:32

前言:

        GAN playground: Experiment with Generative Adversarial Networks in your browser

         生成对抗网络(Generative Adversarial Nets,GAN)是一种基于对抗学习的深度生成模型,最早由Ian Goodfellow于2014年在《Generative Adversarial Nets》中提出.

生成对抗网络(Generative Adversarial Network)由一个生成网络与一个判别网络组成。生成网络从潜在空间(latent space)中随机采样作为输入,其输出结果需要尽量模仿训练集中的真实样本。判别网络的输入则为真实样本或生成网络的输出,其目的是将生成网络的输出从真实样本中尽可能分辨出来。而生成网络则要尽可能地欺骗判别网络。两个网络相互对抗、不断调整参数,最终目的是使判别网络无法判断生成网络的输出结果是否真实

在线工具:

   GAN playground: Experiment with Generative Adversarial Networks in your browser 

训练效果:

目录:

    1: 简介

     2:  Generative Adversarial Nets 原理

     3: 损失函数

     


一 简介

          生成对抗网络(Generative Adversarial Networks)是一种无监督深度学习模型,用来通过计算机生成数据,由Ian J. Goodfellow等人于2014年提出。模型通过框架中(至少)两个模块:

   生成模型(Generative Model)和判别模型(Discriminative Model)的互相博弈学习产生相当好的输出。目前主要应用于样本数据生成、图像生成、图像修复、图像转换、文本生成等方向。
 

Discriminative model:  鉴别模型 用于检测样本是来自于模型分布还是数据分布

Generative model:       生成模型可以被认为类似于伪造者团队.  试图制造假货币并在未经检测的情况下使用,而判别模型是类似于警察,试图发现假币此游戏中的竞争驱动 两个团队都在改进他们的方法,直到赝品与真品难以区分。


二   Generative Adversarial Nets 原理

      目的:

              学习一个生成器G,产生的数据分布p_g, 和训练集数据上面的分布

p_r 一致,让鉴别器Discriminative model 无法分辨输入的数据x 到底是

真实的,还是Generative model 产生的

       Generator model:

             生成器模型,简单的多层感知器。

             输入:

                一个随机的噪声z \sim p_z(z)

              输出:

                    x_g=G(z)

          Discriminative model:

                输入:

                        Trainset 得到的 x_{data}或者 生成器得到的 x_g

                输出:D(x)

                          D(x_{data}) 判别为1

                          D(x_g)     判别为0


三  损失函数

   优化的目标函数是:

                         

    分为两部分

            Discriminative  model 优化目标

             max_{D}V(D,G)=E_{x\sim P_{data}}[log D(x)]+E_{z \sim P_z(z)}[log(1-D(G(z))]

            鉴别器的目标是 : D(x)=1, D(G(z))=0

                            D(x)=1  真实输入,鉴别器输出概率为 D(x)=1

                            D(G(z))  Generator model 输入

                                           鉴别器输出概率为D(G(z))=0,最大化 1-D(G(z))

           Generator  model 优化目标:

             min_{D}V(D,G)=E_{x\sim P_{data}}[log D(x)]+E_{z \sim P_z(z)}[log(1-D(G(z))]

             前半部分不需要优化,希望生成的和真实的分布一样,让Discriminative  model

           D(G(z))=1最小化 1-D(G(z)) ,优化目标跟上面相反,所以称为Adversarial 


四   如何训练

           生成器G  隐式地将概率分布p_g定义为 G(z) 样本的分布

z \sim p_z时得到的G(z). 

4.1 训练方法

 通过k次迭代,训练一个  Discriminative  model,

 再 训练一下 Generator model

     训练过程
          第一阶段:固定「生成器G」,训练「判别器G」。使用一个性能不错的判别器
         第二阶段:固定「判别器D」,训练「生成器G」。
         重复第一阶段、第二阶段。通过不断的循环,「生成器G」和「判别器D」的能力都越来越强。最终我们得到了一个效果非常好的「生成器G」,就可以用它来生成数据。
 

 

4.2  优化的目标:

              p_g=p_{data}

  要使随机输入的数据分布和真实数据分布的概率一致

---------------------------待续----------------


参考:

GAN的Loss的比较研究(1)——传统GAN的Loss的理解1_传统gan损失函数_田神的博客-CSDN博客

GAN的loss函数的解读 - 简书

GAN模型总结_lreaderl的博客-CSDN博客

GAN模型总结 - 知乎

常用几种GAN——Loss的理解 - 知乎

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

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

相关文章

Android 性能优化--内存优化分析总结

一、内存优化概念 1.1 为什么要做内存优化? 内存优化一直是一个很重要但却缺乏关注的点,内存作为程序运行最重要的资源之一,需要运行过程中做到合理的资源分配与回收,不合理的内存占用轻则使得用户应用程序运行卡顿、ANR、黑屏&…

maven(总)

maven maven的简介 maven主要服务于基于java平台的项目构建,依赖管理和项目信息管理 主要体现在项目和管理 瀑布式开发:在做项目的时候要求有明确的需求,必须按照需求一步一步去做好规划,在项目的运行过程中严格的产出一些文档 …

gdal求矢量图形的形心

gdal求矢量图形的形心 #include "gdal_priv.h" #include "ogrsf_frmts.h"int main() {OGRRegisterAll();OGRPolygon* square_1 new OGRPolygon();OGRLinearRing* ring_1 new OGRLinearRing();// 添加 square_1 的点ring_1->addPoint(0, 0);ring_1-&g…

js--15----闭包是什么?说说闭包的使用场景

1、闭包是什么? 一个函数和对其周围状态(词法环境)的引用绑定在一起(或者说函数被引用包围),这样的组合就是是闭包(closure),也就是说,闭包让你在一个内层函数…

win环境安装SuperMap iserver和配置许可

SuperMap iServer是我国北京超图公司研发的基于跨平台GIS内核的云GIS应用服务器产品,通过服务的方式,面向网络客户端提供与专业GIS桌面产品相同功能的GIS服务,能够管理、发布多源服务,包括REST服务、OGC服务等。 SuperMap iserve…

23062C++QT day2

封装一个结构体,结构体中包含一个私有数组,用来存放学生的成绩,包含一个私有变量,用来记录学生个数, 提供一个公有成员函数,void setNum(int num)用于设置学生个数 提供一个公有成员函数:void…

AI 时代的向量数据库、关系型数据库与 Serverless 技术丨TiDB Hackathon 2023 随想

TiDB Hackathon 2023 刚刚结束,我仔细地审阅了所有的项目。 在并未强调项目必须使用人工智能(AI)相关技术的情况下,引人注目的项目几乎一致地都使用了 AI 来构建自己的应用。 大规模语言模型(LLM)的问世使得…

监听Helm release资源

监听Helm release资源 基于helm做部署管理工具时,可能想要管理用户已有环境,这时需要将已有环境中的release信息上报到业务系统中。当用户在环境中部署新的release时,也需要实时监听并上报回来。下面将讲解如何去监听release资源 helm rele…

天津web前端培训班 前端是否适合零基础学?

随着HTML 5和ECMAScript 6的正式发布,大量的前端业务逻辑,极大地增加了前端的代码量,前端代码的模块化、按需加载和依赖管理势在必行,因此Web前端越来越被人们重视。 Web前端的就业前景 Web前端开发工程师薪资持续走高&#xff…

LoadRunner参数化详解

安装打开loadrunner时,发现虽然自己的思想还在,但已经非常生疏了,好多设置都找不到了具体的位置。下面说参数化参数化是性能测试中时最常用的一种技巧吧!这里需要说明的是,不是只有loadrunner才可以设置参数化&#xf…

《热题100》字符串、双指针、贪心算法篇

思路:对于输入的的字符串,只有三种可能,ipv4,ipv6,和neither ipv4:四位,十进制,无前导0,小于256 ipv6:八位,十六进制,无多余0(00情况不允许),不…

JAVA设计模式第十讲:SPI - 业务差异解决方案

JAVA设计模式第十讲:SPI - 业务差异解决方案 我们需要在不修改源代码的情况下,动态为程序提供一系列额外的特性。首先想到的是Spring的AOP技术来构建应用插件,但是在Java自带的插件中,就有完整的实现。SPI(Service Pro…

OJ练习第165题——修车的最少时间

修车的最少时间 力扣链接:2594. 修车的最少时间 题目描述 给你一个整数数组 ranks ,表示一些机械工的 能力值 。ranksi 是第 i 位机械工的能力值。能力值为 r 的机械工可以在 r * n2 分钟内修好 n 辆车。 同时给你一个整数 cars ,表示总…

pyspark 系统找不到指定的路径; \Java\jdk1.8.0_172\bin\java

使用用具PyCharm 2023.2.1 1:pyspark 系统找不到指定的路径, Java not found and JAVA_HOME environment variable is not set. Install Java and set JAVA_HOME to point to the Java installation directory. 解决方法:配置正确环境变量…

博物馆网上展厅有哪些用途,如何搭建数字时代的文化宝库

引言: 博物馆一直以来都是保存、展示和传承人类文化遗产的地方。然而,随着数字时代的来临,博物馆也逐渐迎来了创新的变革。博物馆网上展厅,作为一种新型的文化传播方式,正逐渐崭露头角。 一.什么是博物馆网上展厅&…

JAVA 比较两个区间是否存在交集

最近遇到一个开发问题,判断两个价格的大小,听着很简单,但其实价格是浮动的,也就是说价格是一个范围,比如物品A的价格是5~10,现在我们通过筛选条件,把价格符合在8~20之前的…

解锁无限的检索能力:谷歌的MEMORY-VQ以卓越的压缩力彻底改变了LLM

检索增强是一种常用且有效的方法,用于增强语言模型的事实知识,同时加快模型推理时间。尽管如此,这种方法带来了相当大的计算成本,这归因于存储预先计算的表示所需的大量存储需求。 为了解决这一相关问题,谷歌研究小组…

【漏洞复现】时空智友企业流程化管控系统文件上传

漏洞描述 通过时空智友该系统,可让企业实现流程的自动化、协同上提升、数据得洞察及决策得优化,来提高工作效率、管理水平及企业的竞争力。时空智友企业流程化 formservice接口处存有任意文件上传漏洞,未经认证得攻击者可利用此接口上传后门程序,可导致服务器失陷。 免责…

webrtc的FULL ICE和Lite ICE

1、ICE的模式 分为FULL ICE和Lite ICE: FULL ICE:是双方都要进行连通性检查,完成的走一遍流程。 Lite ICE: 在FULL ICE和Lite ICE互通时,只需要FULL ICE一方进行连通性检查, Lite一方只需回应response消息。这种模式对于部署在公网…

Qt应用开发(基础篇)——工具按钮类 QToolButton

一、前言 QToolButton类继承于QAbstractButton,该部件为命令或选项提供了一个快速访问按钮,通常用于QToolBar中。 按钮基类 QAbstractButton QToolButton是一个特殊的按钮,一般显示文本,只显示图标,结合toolBar使用。它…