【李宏毅】-生成对抗式网络(GAN)

news2025/6/20 13:21:27

生成对抗式网络GAN

1. Network as Generator

输入不再是只是x,还有一个simple distribution(样本分布),输出也是一个分布
在这里插入图片描述
Why distribution
不同的分布即意味着:相同的输入会有不同的输出
尤其在任务需要创造力的时候,需要分布

2. Anime Face Generation

2.1 Unconditional generation(输入无x)

输入一个
假设z是从normal distribution中sample出来的向量,而输出y是二次元任务的脸,生成图片其实就是生成非常高维的向量,不同的z,输出都是二次人物的脸。
在这里插入图片描述

2.2 Discriminator

scaler越大,表示越像真实的二次元任务的图像
在这里插入图片描述

2.3 Basic idea of GAN

关于generator和discriminator,像是相互促进的存在
在生成二次人物的脸的过程中:
最开始generator的参数是随机的,生成完的图像会丢给discriminator,discriminator拿generator生成的图片和真实的图片做比较,判断是不是生成的,然后generator就会进化,进化的目标是为了骗过discriminator。
第二代的generator会再生成一组图片,然后再交给第二代的discriminator判断,循环往复,直到停止训练。
在这里插入图片描述

2.4 Algorithm

  • 初始化一个generator和一个discriminator
  • 在每个训练步骤下
    • 固定generator G,更新discriminator D。用generator生成一些图片后,和真实的样本做对比,去训练一个discriminator,D的目标就是去分辨真实的二次元任务跟G产生的二次元人物之间的差异。对于D来说,可以把真实是label标记为1,生成的label标记为2,这样的话,可以看成一个分类问题,训练一个分类器,输出图片的标签。或者看成regression的问题把真实是label标记为1,生成的label标记为0,让D学着去分辨。
      在这里插入图片描述
    • 固定discriminator D,训练generator G训练的目的是为了让Generator骗过Discriminator,即让Discriminator的输出值越大越好。将输入z丢进G,G生成图片(高维vector),图片丢进D,D输出一个分数,固定D的参数训练G,D的输出越大越好。而G和D连起来其实可以看成一个大的network,只不过中间有一个高维vector的输出, 这个vector跟图片维度是相同的。训练的方法跟其他的网络的训练没有差异。
      在这里插入图片描述
    • 再固定G,训练D,反复执行以上两个步骤,直到得到满意的结果停止训练。

3. Our Objective

PG是Generator生成的图片的分布,Pdata是真实的数据的分布,我们希望PG和Pdata之间的divergence越小越好,这个divergence就是PG和Pdata之间的某种距离。

在这里插入图片描述

3.1 如何计算divergence?

在GAN中,只需要sample就足够了
我们可以从真实数据库中的图片中sample出Pdata,也可以从G中sample出PG
然后,使用Discriminator就够了
在这里插入图片描述
在Discriminator中,有PdataPG用于训练,如果是Pdata,就给高的分数,如果是PG,就给低的分数,公式如下:
在这里插入图片描述
我们希望V越大越好,那Dy越大越好,所以从真实数据sample的数据给更高的分数,PG反之。
所以Div(PG, Pdata)可以替换成maxV(D, G),就有了下面的式子

在这里插入图片描述

4. 训练GAN的一些技巧

4.1 JS divergence is not suitable

在大多数情况下,PG和Pdata是不能重叠的
在这里插入图片描述
这样的情况下,计算的JS divergence都是log2.
在这里插入图片描述

4.2 Wasserstein distance

可以吧下图中P想象成一堆土,Q想象成堆土的目的地,要把P推到Q处(形状保持一致),推动的距离d就表示wasserstein distance
在这里插入图片描述
但如果P和Q比较复杂,那么就需要做一些处理才能移动,穷举所有把P变成Q的方法,距离最小的那个,就是wasserstein distance
在这里插入图片描述
所以换成wasserstein distance,我们可以知道G是不是做的越来越好
在这里插入图片描述

4.3 WGAN

使用Wseeerstein distance评估Pdata和PG之间的距离
在这里插入图片描述

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

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

相关文章

Win+VisualStudio+vcpkg+Zeromq安装方法

1. 缘由 因为工作上要用到Windows上的zeromq来收发消息,所以我在网上搜集了一些资料最终成功地在Visual Studio2022中用c的libzmq库实现了zmq的收发。 2. 基本资料 2.1 ZeroMQ基本介绍 ZeroMQ官网介绍,因为我也不是专门搞网络和通信的,就…

RocketMQ 事务消息 详解

🍊 Java学习:Java从入门到精通总结 🍊 深入浅出RocketMQ设计思想:深入浅出RocketMQ设计思想 🍊 绝对不一样的职场干货:大厂最佳实践经验指南 📆 最近更新:2023年4月9日 &#x1…

VMware ESXi 8.0c - 领先的裸机 Hypervisor (sysin Custom Image)

本站发布 Dell 和 HPE 定制版 ESXi 8.0c 镜像 请访问原文链接:https://sysin.org/blog/vmware-esxi-8/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 产品简介 VMware ESXi:专门构建的裸机 Hyperviso…

【MATLAB数学建模编程实战】Kmeans算法编程及算法的简单原理

欢迎关注,本专栏主要更新MATLAB仿真、界面、基础编程、画图、算法、矩阵处理等操作,拥有丰富的实例练习代码,欢迎订阅该专栏!(等该专栏建设成熟后将开始收费,快快上车吧~~) 【MATLAB数学建模编…

【MySQL数据库原理】MySQL Community安装与配置

目录 安装成功之后查看版本验证1、介绍、安装与配置数据库2、操作MySQL数据库3、MySQL数据库原理安装成功之后查看版本验证 SELECT VERSION();查看mysql版本号 1、介绍、安装与配置数据库 下载安装包:https://download.csdn.net/download/weixin_41194129/87672588 MySQL…

NumPy 秘籍中文第二版:二、高级索引和数组概念

原文:NumPy Cookbook - Second Edition 协议:CC BY-NC-SA 4.0 译者:飞龙 在本章中,我们将介绍以下秘籍: 安装 SciPy安装 PIL调整图像大小比较视图和副本翻转 Lena花式索引位置列表索引布尔值索引数独的步幅技巧广播数…

比尔·盖茨最新分享:ChatGPT的发展,不止于此

来源: 笔记侠 最近,ChatGPT、GPT 4、文心一言、Copilot,人工智能产品层出不容,一路轰炸;王慧文、王兴、李开复等各位高调以及低调的商业领袖和技术专家,纷纷入局AI赛道。人声鼎沸,十分热闹。 昨天&#xff…

自动写作ai-自动写作神器

自动生成文章 自动生成文章是指使用自然语言处理和人工智能技术,通过算法来自动生成文章的过程。一些自动生成文章的工具可以使用大量数据,学习数据背后的语言规范和知识结构,从而生成高质量和有用的文章。这种技术能够减少写作时间和人力成…

Nature子刊 定制饮食去除半胱氨酸和蛋氨酸可诱导细胞自毁进而治疗脑瘤?

恶性胶质瘤是成人最常见的脑部肿瘤。恶性胶质瘤的致死率为100%,无法治愈,是一种极度的恶性肿瘤。如此糟糕的预后促使研究者及神经外科医生不断学习研究肿瘤生物学,期望创造更好的疗法。神经外科助理教授Dominique Higgins博士从事肿瘤生物学的…

必胜方法,矩阵堆量

0x1 问题 今天不讲量化,来聊聊其他的 铁废柴一年到头也想不明白,那些几万人用的程序,几百万人关注的自媒体账号 到底是怎么做出来的啊 为什么我发一百个视频才赚100块钱 我要怎么才可以过上小康生活? 0x2 答案 矩阵&#xff…

WPF mvvm框架Stylet使用教程-特殊用法

事件绑定 除了绑定Command属性&#xff0c;在WPF中经常需要绑定一些事件的操作&#xff0c;在别的框架中需要引入其他包支持&#xff0c;在Stylet框架中&#xff0c;可以 同样使用s:Action进行绑定&#xff0c;对应绑定ViewModel中的方法。 示例&#xff1a; XAML:<Button…

中科网联CCData借助亚马逊云科技实现高效融媒体测量

近年来&#xff0c;随着媒体与广告传媒行业数字化转型向纵深发展&#xff0c;如何利用数据洞察用户生态、实现精准触达以及业务持续创新已成为媒体产业深入发展的“必答题”。与此同时&#xff0c;随着数据应用的不断深入&#xff0c;借助人工智能和机器学习技术&#xff0c;找…

TCP为什么要三次握手,而不是两次或四次?

文章目录TCP为什么要三次握手&#xff0c;而不是两次或四次&#xff1f;三次握手才可以阻止重复历史连接的初始化&#xff08;主要原因&#xff09;同步双方初始序列号避免资源浪费小结TCP为什么要三次握手&#xff0c;而不是两次或四次&#xff1f; TCP连接时用于保证可靠性和…

eclipse下载与安装(汉化教程)超详细

一、下载eclipse安装包 首先进入 eclipse官网 如下&#xff1a; 这里面有很多版本&#xff1b;我们小白一般选择第二个&#xff0c;向下滑动&#xff1b; 点击符合自己系统的版本。 这里我们切换镜像下载&#xff0c;一般选择离你最近的地址下载。 我建议选择大连东软信息学…

【MATLAB图像处理实用案例详解(9)】——基于最大类间方差遗传算法的道路分割

目录一、最大类间方差遗传算法二、代码示例一、最大类间方差遗传算法 最大类间方差的求解过程&#xff0c;就是在解空间中查找到一个最优的解&#xff0c;使得其方差最大&#xff0c;而遗传算法能非线性快速查找最优解k*及最大的方差&#xff0c;其步骤如下&#xff1a; ①为了…

【算法】01-算法解剖学-二分查找

汝之观览&#xff0c;吾之幸也&#xff01;本系列主要讲解的是算法知识&#xff0c;从算法基本概念&#xff0c;利用图解的方式更好的认识算法&#xff0c;再通过letcode算法题 进行进一步的巩固。刷题三步走&#xff08;1、掌握一门基本的编程语言&#xff1b;2、深入理解基础…

Redis7持久化

一、redis持久化 1、RDB RDB持久性以指定的时间间隔执行数据集的时间点快照 也就是说在一定的时间间隔内&#xff0c;将某一时刻的数据和状态以文件的形式写到磁盘上&#xff0c;这个快照文件交dump.rdb Redis6更新策略 Redis7更新策略 RDB手动触发 5秒2次修改 RDB手动触…

【安卓源码】SystemServer系统进程启动原理

一. SystemServer进程启动概括 Android系统中&#xff0c;第一个启动的是init进程&#xff0c;通过解析init.rc文件启动对应的service。Zygote就是由init启动起来的。Zygote作为应用的孵化器&#xff0c;所有的应用程序都是由他创建而来的。 Zygote是C/S架构的&#xff0c;当…

GANSeg:通过无监督分层图像生成学习分割

文章目录GANSeg: Learning to Segment by Unsupervised Hierarchical Image Generation摘要引言方法Level 1: Point Generation and Part ScaleLevel 2: From Points to MasksLevel 3: Mask-conditioned Image Generation损失函数实验结果GANSeg: Learning to Segment by Unsup…

挖掘潜在用户:2023年海外社交电商网红营销策略解析

近年来&#xff0c;随着社交媒体的不断发展和电商行业的崛起&#xff0c;海外社交电商平台已经成为了一个飞速发展的领域。然而&#xff0c;随着市场竞争的加剧&#xff0c;越来越多的海外社交电商平台开始采用网红营销策略来提升品牌知名度和销售业绩。本文Nox聚星将和大家探讨…