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,通过这个噪声生成图片,记作
参考文献:
https://blog.csdn.net/DFCED/article/details/105175097
https://blog.csdn.net/m0_61878383/article/details/122462196
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架