GAN

生成对抗网络

背景

一般而言,深度学习模型可以分为判别式模型与生成式模型。由于反向传播、dropout等算法的发明,判别式模型得到了迅速发展。然而,由于生成式模型建模较为困难,因此发展缓慢,直到近年来最成功的生成模型--生成式对抗网络的发明,这一领域才换发新的生机。

简介

GAN是一种深度学习模型,是近年来复杂分布上无监督学习最具前景的方法之一。模型通过框架中(至少)两个模块:生成模型G和判别模型D的互相博弈学习产生相当好的输出。原始GAN理论中,并不要求G和D都是神经网络,只需要是能拟合相应生成和判断的函数即可。但实用中一般均使用深度神经网络作为G和D。一个优秀的GAN应用需要有良好的训练方法,否则可能由于神经网络模型的自由性而导致输出不理想。

GAN的基本架构图

生成网络和判别网络都是神经网络的模式。
生成器:通过机器生成数据,最终目的是骗过判别器
判别器:判断这张图像是真实的还是机器生成的,目的是找出生成器做的假数据。

一个GAN的形成过程

构建GAN模型的基本逻辑:现实问题需求-->建立实现功能的GAN框架(编程)-->训练GAN(生成网络、对抗网络)-->成熟的GAN模型-->应用。

训练GAN

这是一个生成器和判别器博弈的过程。生成器生成假数据,然后将生成的假数据和真数据都输入判别器,判别器要判断出哪些是真的哪些是假的。判别器第一次判别出来的肯定有很大的误差,然后我们根据误差来优化判别器。现在判别器水平提高了,生成器生成的数据很难再骗过判别器,所以我们得反过来优化生成器,之后生成器水平提高了,然后然过来继续训练判别器,判别器水平又提高了,再反过来训练生成器,就这样循环往复,直到达到纳什均衡。

损失函数

生成网络的损失函数

判别网络的损失函数

优化原理:生成网络和判别网络有了损失函数,就可以基于各自的损失函数,利用误差反向传播(Backpropagation)(BP)反向传播算法和最优化方法(如梯度下降法)来实现参数的调整),不断提高生成网络和判别网络的性能(最终生成网络和判别网络的成熟状态就是学习到了合理的映射函数)。


GAN算法流程原理

判别模型和生成模型

机器学习大模型可大体分为两类,生成模型和判别模型。判别模型需要输入变量,通过某种模型来预测。生成模型是给定某种隐含信息,来随机产生观测数据。举个简单例子:

  • 判别模型:给定一张图,判定图中的动物是什么类别
  • 生成模型:给一系列猫的图片,生成一张新的猫咪

GAN原理

假设我们有两个网络,G和D。G是一个生成图片的网络,它接收一个随机的噪声z,通过这个噪声生成图片,记作G(z)。D是一个生判别网络,判别一张图片是不是真实的。它的输入参数是xx代表一张图片,输出Dx代表x为真实图片的概率,如果是1,就代表100%是真实图片,而输出为0,就代表不可能是真实的图片。

参考文献:
https://blog.csdn.net/DFCED/article/details/105175097
https://blog.csdn.net/m0_61878383/article/details/122462196

posted @   小舟渡河  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示