当前位置:网站首页>生成对抗网络GAN:Generative Adversarial Networks
生成对抗网络GAN:Generative Adversarial Networks
2022-08-09 07:09:00 【代码的路】
1 原理
对于生成对抗网络GAN,一个简单的理解是可以将其看做博弈的过程,我们可以将生成模型和判别模型看作博弈的双方,比如在犯罪分子造假币和警察识别假币的过程中:
- 生成模型G相当于制造假币的一方,其目的是根据看到的钱币情况和警察的识别技术,去尽量生成更加真实的、警察识别不出的假币。
- 判别模型D相当于识别假币的一方,其目的是尽可能的识别出犯罪分子制造的假币。 这样通过造假者和识假者双方的较量和朝目的的改进,使得最后能达到生成模型能尽可能真的钱币、识假者判断不出真假的纳什均衡效果(真假币概率都为0.5)。
2 训练
生成器G的目标是欺骗鉴别器D,其目标是能够区分真实数据和生成数据。因此,在训练生成器时,我们希望误差最大化,同时我们想要使鉴别器的误差最小化。
2.1 判别模型
目标函数是:
其中D(x)是判别模型的输出结果,是一个0-1范围内的实数值,用来判断图片是真实图片的概率,其中Pr和Pg分别代表真实图像的分布与生成图像的数据分布情况,可以看出目标函数是找到使得后面两个式子之和最大的判别模型函数D(z),后面两个式子是一个加和形式,其中:
- 是指使得真实数据放入到判别模型D(x)输出的计算值和整个式子值尽可能大。
- 是指使得造假数据放入到判别模型D(x)输出的计算值尽可能小和整个式子值尽可能大。
这样整合下来就是使得目标函数尽可能大,因此在训练时就可以根据目标函数进行梯度提升。
2.2 生成模型
目标是让判别模型无法区分真实图片和生成图片,其目标函数是:
也就是找到生成函数g(z)使得生成模型的目标函数尽量小。
学习更多编程知识,请关注我的公众号:
边栏推荐
猜你喜欢
随机推荐
es6 基础知识详解 变量 字符串 解构赋值 函数 对象 从入门到精通
redis学习笔记
JSONObject遍历的时候顺序不一致,导致数据对应出错
XxlJobConfig distributed timer task management XxlJob configuration class, replace
入门cv必读的10篇baseline论文
Built-in macros in C language (define log macros)
Leetcode 70 stairs issues (Fibonacci number)
A brief introduction to microservice architecture
【Shell】查找进程的pid并根据pid获取该进程所占用的端口号以及该进程在系统中所下达的指令名称
2017 G icpc shenyang Infinite Fraction Path BFS + pruning
买口罩(0-1背包)
先序遍历,中序遍历,后序遍历,层序遍历
sklearn数据预处理
SAP ALV 数据导出被截断的bug
虚拟机网卡报错:Bringing up interface eth0: Error: No suitable device found: no device found for connection
【Docker】Docker安装MySQL
Codeforces Round #359 (Div. 2) C. Robbers' watch 暴力枚举
Forest Program dfs+tanjar仙人掌
日期处理,字符串日期格式转换
子路由及路由出口配置