| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 李宏毅机器学习GAN的笔记 -> 正文阅读 |
|
[人工智能]李宏毅机器学习GAN的笔记 |
笔记仅供参考,加入了很多自己的理解 Generatorz和x以一定的方式作用,不一定是直接相加 相当于这个network是一个两输入(x和noise)的网络,这种network称作一个generator 让输出是有概率的,即加入一个random distribution让输出变成一个distribution 这样的话就是说要让这个network有一定的创造力,因为输出的值是不一定的 GAN先不看x 从z里面sample出一个low-dim vector的向量 generator就是把一个低维的向量变成一个高维的向量 z只需要一个简单的distribution就行,可以是normal当然也可以是其他的,但是一般都取normal discriminatior: 分类和regression的区别 步骤 step1:初始化完成后,generator产生一个picture,然后这个picture和真的数据(一些正确的数据)拿给discriminator训练,就是fix generator然后训练discriminator step2:然后fix这个discriminator,调整generator的参数,使得在这代discriminator中,能够通过discriminator的检测 step3:... 重复step1和step2,即交叉反复训练discriminator和generator generator和discriminator可以看做是一个大的network,其中的一个hidden layer就是图片的输出,整个network的输出是一个评分(可以把这个output的加一个负号,当做一个loss看待) ? 背后的theory? 这个divergence不好计算,现在只需要做一个sample就可以了 ? 就是说要用sample出来的值去得到使两个完整分布的divergence最小的generator的参数 ? 我先当成一个binary classifier去处理,解释一下这个objective function,意思就是D(y)就代表给y打的分数 训练discriminator的时候,有real data 和 generated data,discriminator就是把real data打高分,把generated data打低分,相当于是做了一个二分类问题,于是我们有objective function ? 前半部分代表了real 图片的打分,后面是用1减去了generated 图片的打分,就是说要使得这个objective function最大,就是real 高分,generated 低分 最巧妙的地方在于,依据这样的一个转换,把divergence的问题化为了二分类问题,而在第一篇gan paper里面作者给出了详细的推导,理论上说明了这个objective function和那个divergence是等价的 ? ? 两个分布的重合部分可以看做很小,第一个理由就是,图片是高维空间的一部分,而高维空间很大很大,可以基本看做没有,所以很难重叠 第二个理由是就算重叠了,我们只是sample了一小部分,如果sample的点不够多,不够密的话也不好说重叠 用wasserstain distribution ? ? D必须变化不是特别剧烈,就是这里说的1-lipschitz spectral normalization GAN is still challenging 两个东西都要训练,要是有一个出问题了,都会出问题 ? 这个地方不能做gradient descent,因为这种情况下每次decoder输出的值变化很小,所以对于discriminator来说每次输出的值差不多不变 ? good quality 不要memory 的GAN conditional的data,需要成对的资料去训练 ? Cycle GAN就是把normal distribution改成已知数据的分布 ? 不能直接套用,因为这样的话generator生成的图和输入的照片不一定有关系 但是这里和conditional GAN不太一样,因为没有成对的资料学习 需要两个generator,一个是x变y,一个是从y变成x的,但是有可能网络可能学一个很奇怪的转换,但是实际操作上不会出现这种 最后总结几句自己的话: ?一个noise?分布通过generator然后得到一个新的分布,generator的作用是把一个分布变成了另外一个分布,至于generator是怎么训练的,以及最后训练完成过后要满足什么要求是这样的 最后要满足generator的训练结果,就是noise的分布转化得到的分布和x的分布一样,或者说尽量近似 换句话说是不能把noise单独拎走单独说我已经把x的分布学好了 学习x分布的过程是依赖于noise的 noise的选择可以是高斯也可以是其他的这个没关系,但是取定了就不要换了,因为后面的训练是依赖于这个noise的 如果换成另外一组数据,再加一组generator和discriminator就是cycle GAN的原理了 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/26 21:51:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |