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

GAN | 论文精读 Generative Adversarial Nets

提出一个GAN

(Generative Adversarial Nets)

1 方法

(1)生成模型G(Generative),是用来得到分布的,在统计学眼里,整个世界是通过采样不同的分布得到的,生成东西的话,目前就是要抓住一个数据的分布,

(2)辨别模型D(D) ,他是来辨别你的样本究竟是从真实世界来的呢,还是来自于G

李沐老师把型G是造假币的人,然后D是鉴别假币的人

两个人相互对抗,提升各自的能力

两个网络相互对抗,提升各自的能力

生成模型有两种

第一种生成模型是 我明明白白把一个模型给学出来,知道我们要求的分布的均值和方差之类的

第二种生成模型是,我去近似就好,坏处是不知道分布长什么样子,好处是这个东西算起来会比较容易

GAN用到的就是第二种

2 可视化举例

以一维度数据做可视化

 

紫色线条是判别器D,绿色线条是生成器G,黑色线条是真实分布

图(a)初始状态 此时可以观察到 真实分布(黑色)和生成器(绿色)的分布差别较大,判别器(紫色)

图(b)更新判别器(紫色) 此时可以观察到 判别器(紫色)可以分辨的比较好了,黑色线附近为1 ,绿色线附近为0

图(c)更新生成器(绿色) 此时可以观察到 生成器(绿色)像真实数据分布靠近,为了使得判别器不分别出来

图(d)不断反复,可以看到 绿色生成器要尽量靠近黑色生成数据,当足够接近的时候,会发现判别器输出就是0.5了,此时就无法分辨了

3 算法流程

 

最简单的应用是G和D是MLP

如图所示

(1)从噪声中采样m个样本得到z,从真实数据中采样m个样本得到x

(2)先更新判别器,增强判别器

D(x) 表示把真实分布采样得到的数据放到辨别器里,假如辨别器是完美的,那么D(x)是1 log(D(x))是0,如果不完美,则 log(D(x))为负数

G(z)表示把噪音分布采样得到的噪音放到生成器里,会生成伪真实x,再放入D判别器,假如辨别器是完美的,那么D(x)是0 整体log(1-D(G(x)))是0 ,如果不完美的话,也会输出负数

所以要最大化如下函数,使得接近0

 

使得判别器函数输出尽可能正确,尽可能完美区分

(3)再更新生成器,使得生成器尽可能糊弄判别器

使得后面一项尽可能小

 

这样就会导致生成器尽可能糊弄判别器

k是一个超参数,要保证我们的G和D每次进步差不多,这样才能保证我们自己的一个有效性

外面的这个for loop就是说我们要迭代N次

怎么判断收敛是一个比较难的点,因而有些时候不是很有效

http://www.lryc.cn/news/141724.html

相关文章:

  • Yolo系列-yolov2
  • Linux下的系统编程——vim/gcc编辑(二)
  • 2023年国赛 高教社杯数学建模思路 - 案例:最短时间生产计划安排
  • 芯科科技推出专为Amazon Sidewalk优化的全新片上系统和开发工具,加速Sidewalk网络采用
  • Kotlin 丰富的函数特性
  • Node.js怎么搭建HTTP服务器
  • 基于Redisson的联锁(MultiLock)
  • 人脸识别平台批量导入绑定设备的一种方法
  • MySQL—MySQL的NULL值是怎么存放的
  • sql server删除历史数据
  • 目标检测项目中,使用python+xml.etree.ElementTree修改xml格式标注文件中的类别名称
  • 最新域名和子域名信息收集技术
  • C语言基础之——指针(上)
  • 构建 NodeJS 影院预订微服务并使用 docker 部署(04/4)
  • SpringBootWeb案例 Part3
  • C++中using 用法
  • window下jdk安装及更换jdk版本的一些问题。
  • GPT4模型架构的泄漏与分析
  • GEE/PIE遥感大数据处理与典型案例丨数据整合Reduce、云端数据可视化、数据导入导出及资产管理、机器学习算法等
  • STM32--DMA
  • mongodb和redis的用途
  • 【动手学深度学习】--18.图像增广
  • 数据分析--统计学知识
  • matlab 计算点云协方差矩阵
  • python进阶之图像编程 pillow扩展库
  • TiCDC Canal-JSON 消息接收示例(Java 版)
  • SQLite、MySQL、PostgreSQL3个关系数据库之间的对比
  • 开源容灾备份软件,开源cdp备份软件
  • Java合并区间
  • 前端面试:【代码质量与工程实践】单元测试、集成测试和持续集成