| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 深度学习9 -> 正文阅读 |
|
[人工智能]深度学习9 |
Theory behind GAN Generator
Pdata来说,我们从给定的数据集中sample出一些样本就可以了。对于PG来说,我们随机sample一些向量,扔到Generator里面,然后generator会输出一些图片,这就是从PG里面sample了。 蓝色星星: data sampled from Pdata,橙色星星: data sampled from PG。 我们可以用Discriminator来区分两个Distribution,公式是上图的:V(G,D)。前面一项是表示数据sampled from Pdata,值越大越好,后面一项是表示数据sampled from PG,值越小越好。上面公式的形式和训练一个二分类Classifier的目标函数长得一样,就是说可以把PG和Pdata看成两个分类。训练Discriminator就好比训练一个二分类。
首先train判别器,实际上没办法train到收敛,可以定义训练k次;之后train生成器:其中第一项是与生成器无关的,由于G不能训练太多,所以updata一次就好(最小化JS散度) 1.首先初始化判别器和生成器 2.然后从database中抽取m个图片(like batch size);从一个分布中抽取m个vector,使用m个vector产生m个image。 之后去调整判别器:首先把m张真实图片都拿出来,经过判别器得到分数,然后经过log再统统平均起来(当然希望这个越大越好,因为希望真实的图片得分高);对于生成器生成的m张图片当然希望值越小越好,因此用1-值,其越大越好。因此使用梯度上升的方法,调节判别器参数。(实际训练过程是给真实图片赋值为1,生成图片赋值为0;训练二分类器;等同于上述过程) 3.从一个分布中抽取m个vector,重新生成m张图片,G(Z)就是一张图片,再把它丢到判别器中D(G(Z));再对所有的生成的求平均,在D不改变的情况下,希望这个值越小越好 fGAN
y(t)=xt?f(x)可以看做是t的函数,是条线,t是任意的,因此可以画出很多条线,每个t总会找到一个对应的最大y值和对应的x,可以猜到这样的点连起来应该是个凸函数: 我们的目标G: Mode Dropping Tips for Improving GAN 只要两个分布没有重叠,不管他们是不是接近,算出来的JS散度就是Log2。例子如图:虽然G1比G0更接近Pdata,但是从JS散度看起来,两者是没有差别的。这样的话,train起来是有问题的。 我们有两群data,把它视为两个class,然后判别器就是一个二元分类器,然后最小化交叉熵损失;只要两堆数据没有重合,那么他们的loss就是一样的,这意味着量出来的JS散度是一样的。 Least Square GAN (LSGAN) 上面的分布是简化了的,土堆应该是这样: 同样的分布,推土机可能走过的路程不一样: 上图中的左边是是把邻近的土进行移动,右边是比较远的土进行移动。我们一般用左边的那种。穷举所有可能的铲土的方法,每一种方法我们叫做moving plan,看哪个方法的距离最小,就是earth mover’s distance。 上图中右边是这个例子中最好的一个moving plan Why Earth Mover’s Distance? x是从Pdata中sample出来的,让它的判别器输出越大越好; x是从PG中sample出来的,让它的判别器输出越小越好; 除此之外,还要有一个约束,就是判别器必须是一个1-Lipschitz函数;一个重要特点就是它很平滑 GAN to WGAN
改V Energy-based GAN (EBGAN) 对于一般的判别器,你需要让生成器慢慢变强,你的判别器才会强;但是autoencoder的判别器可以pre-train,可以用正样本进行预训练;一开始的判别器会很强,这样你的生成器一开始就会产生很好的image; |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 18:22:06- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |