当前位置: 首页 > news >正文

生成式对抗网络(GAN)【第六章】

文章目录

  • Generator Network
  • GAN
    • Uncoditional generation
      • Generator
      • Discriminator
    • Basic Idea of GAN
    • Algorithm
    • Theory behind GAN
    • WGAN
      • Wasserstein distance
    • Conditional Generation
      • Conditional GAN


Generator Network

Network 拿来当 Generator 来使用

现在 Network 的输入会加上一个 randomvariable (z),z 是从一个分布中 取样出来的,现在的 Network 是同时看 xz 得到输出。

由于 z 的值随机,所以 y 的输出也就不一样,此时 Network 的输出不是单一的一个东西,而是一个复杂的 distribution

这个可以输出一个 distributionNetwork,我们就叫它 generator

在这里插入图片描述

GAN

Uncoditional generation

Generator

此时 Generator 它的输入就是 z,输出就是 y

假设 z 是从一个 normal distributionsample 出来的向量(维度自定义)
输出是一个卡通图像(可以看成一个高维度的向量)
当输入不同时,输出也会改变。

在这里插入图片描述

Discriminator

除了 generator 外,还需要训练 discriminator(本质上也是一个 neural network

它的作用是:拿一个图片作为输入,输出是一个数值(数字越大代表输入的图片越像是真实的二次元人物的图像)。

generatordiscriminator 都是 neural network,它们的架构完全可以人为设计/选择(如:CNNTransform)。

在这里插入图片描述

Basic Idea of GAN

直观上理解:generator 优化的目标是骗过 discriminator 的识别,而 discriminator 优化的目标是去更好的识别出 generator 生成的图像。

在这里插入图片描述

Algorithm

假设 GeneratorDiscriminator 的参数已经被初始化了。

  1. 固定住 generator,只训练此时的 discriminator
    此时将随机产生的向量作为输入,输出的是很奇怪的一些图片
    用真正的卡通图像跟 generator 产生出来的结果,去训练 discriminator(训练的目标是分辨真正的卡通图像与 generator 产生出来的卡通图像之间的差异)

在这里插入图片描述

  1. 固定住 discriminator,只训练此时的 generator(训练的目标是骗过 discriminator,也就是 discriminator 输出值越大越好)

在这里插入图片描述

  1. 反复的训练 discriminatorgenerator

在这里插入图片描述

Theory behind GAN

Normal Distribution 随机生成一堆 vector,丢到 Generator 以后,会产生一个比较复杂的 Distribution(叫做 PG),真正的 Data 也形成了另外一个 Distribution,叫做 Pdata,我们期待 PGPdata 越接近越好。

此时的 Loss function 可以理解为 PGPdatadivergence

在这里插入图片描述

通过 smaple 出来的数据来估测 Divergence
在这里插入图片描述
Discriminator 训练的目标:给来自 Pdata 的数据更高的分数,给来自 PG 的数据更低的分数。

最大化 Object function 这个 V,相当于要让前面的来自 PdatayD(y) 越大越好,后面的来自 PGyD(y) 越小越好。(等同于 Minimize Cross Entropy,当作训练一个 Classifier

在这里插入图片描述
小的 divergence 对应小的 Object FuctionMaximum 值:小的 divergence 说明 PGPdata 很像,对 discriminatortrain 一个 binaryclassifier)来说,这两对资料是混在一起的,那就很难分开,这个问题就很难,在解这个 Optiminzation Problem 的时候,就没有办法让这个 Objective 的值非常地大,所以 这个 Objective VMaximum 的值就比较小。

在这里插入图片描述
在这里插入图片描述
JS divergence 的问题
在这里插入图片描述
在这里插入图片描述

WGAN

Wasserstein distance 代替 JS divergence

Wasserstein distance

可以理解为用推土机将 P 推到 Q 的距离
在这里插入图片描述

可能有多种移动方法,Wd 需要用最小的一种来定义
在这里插入图片描述

在这里插入图片描述
Wasserstein distance 如何计算:

在这里插入图片描述
在这里插入图片描述

Conditional Generation

之前的 Generator 的输入都是一个随机的分布,而 Conditional Generation 是为了操控 Generator 的输出。给 Generator 一个 x 让其根据 x 和 z 来产生 y

在这里插入图片描述

Conditional GAN

discriminator 训练:需要将 yx 都作为输入,然后产生一个数值(图片辨别 + 图片跟文字匹配)

在这里插入图片描述
应用:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关文章:

  • 了解 Flutter 开发者们的 IDE 使用情况
  • linux下的权限
  • AI 杀疯了,NovelAI开源教程
  • 【深度学习】卷积神经网络之图像分类|CNN、AlexNet、VGG、GoogLeNet、ResNet
  • 手把手完成智慧路灯的开发,完成设备上云【华为云IoT】
  • SpringBoot数据层测试事务回滚
  • 【计算机毕业设计选题】10套易过的精品毕设项目分享(源码+论文)
  • 【CVAdd】Filter 滤波器
  • 常用安卓开发技巧汇总
  • Vue组件库实现按需引入可以这么做
  • 精选32个最新Python实战项目(附源码),拿走就用
  • MYSQL-约束,条件判断,组函数
  • Docker环境下使用docker-compose一键式搭建RocketMQ(4.5.0版本)集群及其管理工具(外网版)
  • Python爬虫之Js逆向案例(11)-百度翻译
  • NX二次开发-外部开发模式exe(不打开NX进行后台操作)以及封装exe传参调用
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • js对象的深浅拷贝
  • passportjs 源码分析
  • Spring Boot MyBatis配置多种数据库
  • Wamp集成环境 添加PHP的新版本
  • webpack4 一点通
  • 百度地图API标注+时间轴组件
  • 彻底搞懂浏览器Event-loop
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 高性能JavaScript阅读简记(三)
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 关于 Cirru Editor 存储格式
  • 区块链共识机制优缺点对比都是什么
  • 网络应用优化——时延与带宽
  • 为什么要用IPython/Jupyter?
  • 系统认识JavaScript正则表达式
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 与 ConTeXt MkIV 官方文档的接驳
  • ​2021半年盘点,不想你错过的重磅新书
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • #java学习笔记(面向对象)----(未完结)
  • #单片机(TB6600驱动42步进电机)
  • (1)(1.9) MSP (version 4.2)
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (6)STL算法之转换
  • (ros//EnvironmentVariables)ros环境变量
  • (二十六)Java 数据结构
  • (六)Flink 窗口计算
  • (南京观海微电子)——COF介绍
  • (四) Graphivz 颜色选择
  • (四)库存超卖案例实战——优化redis分布式锁
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (五)关系数据库标准语言SQL
  • (一)Docker基本介绍
  • (一)Java算法:二分查找
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .CSS-hover 的解释