zl程序教程

您现在的位置是:首页 >  其他

当前栏目

深度学习 Day 9——浅知有关GAN训练与预测

训练学习 深度 预测 有关 Day GAN
2023-09-11 14:22:09 时间

深度学习 Day 9——浅知有关GAN训练与预测

一、前言

活动地址:CSDN21天学习挑战赛

21天学习挑战赛已经接近尾声,本期博客也是这个活动的最后一篇打卡博客了,还没有看过我之前博客的同学可以去看一下我的学习专栏,谢谢!

这是我的学习专栏:Python深度学习专栏

21天的时间转瞬即逝,但是学习的道路任重而道远,成功的秘诀在于永不改变既定的目标。

作为IT专业的人我们要时刻做到活到老学到老的觉悟,才不会被时代所抛弃。

耐心是一切聪明才智的基础,本周内容的前两期博客我们进行了GAN的学习和问题的解决,那么本期博客我们主要来了解和学习有关GAN内的一些相关知识。

好啦废话不多说,我们开始今天的学习之旅叭!

二、我的环境

  • 电脑系统:Windows 11
  • 语言环境:Python 3.8
  • 编译器:PyCharm 2022.2
  • 深度学习环境:TensorFlow 2.3.0

三、GAN的训练和预测

上一期博客中我们了解到了GAN的几何直觉,现在我们来了解一下GAN的训练和预测。

1、定义问题

首先进行GAN训练之前,我们肯定需要定义我们要创建的内容,然后GAN可以帮助我们处理我们针对的一组不同的问题,它可以处理音频、诗歌、文本、图像等等。

2、选择GAN架构

到目前为止,有很多不同类型的GAN,我们必须选择我们要使用哪种内心的GAN架构。

3、在真实数据集上训练判别器

判别器在真实的数据集上训练时它只有一条向前的路径,在我们定义的n个epoch的判别器中没有反向传播,而且我们提供的真实数据没有包含噪声,只有真实的图像,对于假的图像,判别器使用生成器创建的实例作为负输出,当我们在训练判别器的时候,它会对真实数据和假数据进行分类,判别器的损失有助于提高它的性能,判别器的权重也是通过鉴别器损失而进行更新的。

4、训练生成器

当我们为生成器提供一些假输入,它将使用一些随机噪声并生成一些假输出,训练生成器和判别器并不是同时工作的,当我们训练生成器时,判别器空闲,训练判别器时,生成器空闲。

在通过任何随机噪声作为输入进行生成器训练期间,它会尝试将其转换为有意义的数据,从生成器获得有意义的输出需要时间并在许多时期下运行。

首先生成器会获取随机噪声并在噪声样本上生成生成器输出,然后将会预测判别器的生成器输出是真实的还是虚假的,之后我们计算判别器损失,然后通过判别器和生成器执行反向传播来计算梯度,最后使用梯度更新生成器权重。

5、训练假数据判别器

生成器将它生成的数据传递给判别器,然后判别器将预测的信息再传递给它的数据,并判断是真还是假,然后再次向生成器提供反馈。

6、使用判别器的输出训练生成器

生成器将再次根据鉴别器给出的反馈进行训练,并尝试提高性能,如此持续的迭代,直到生成器成功欺骗判别器。

四、不同类型的GAN

1、DCGAN

它是一种深度卷积的GAN,相比于GAN它的改进主要是在网络结构上面,它也是最常用、最强大和最成功的GAN架构类型之一,它是在ConvNets的帮助下代替多层感知器实现的,ConvNets使用卷积步长,并且在没有最大池化的情况下构建,并且该网络中的层没有完全连接。

2、CGAN

CGAN是深度学习神经网络,其中使用了一些额外的参数,生成器和判别器都增加额外信息 yy为条件, yy 可以使任意信息,例如类别信息,或者其他模态的数据。标签也被放置在鉴别器的输入中,以帮助鉴别器对输入进行正确分类,并且不容易被生成器填满。

3、LSGAN

它是一种采用最小二乘损失函数作为判别器的 GAN,最小化 LSGAN 的目标函数会导致最小化 Pearson 散度,这样的改变解决了GAN训练的不稳定和生成图片质量不高的问题,它的判别器是一个二元分类器,使用二元交叉熵损失函数进行训练。这种损失函数的一个限制是它主要关注预测是否正确,而不是预测的正确或不正确。

4、ACGAN

它是与CGAN相同但是它的高级版,ACGAN 代表辅助分类器生成对抗网络,ACGAN 的一个重要特征是它生成的图像与以前的方法相比被认为具有相当高的分辨率。它的鉴别器不仅可以将图像分类为真假,还可以提供输入图像的源或类别标签。

5、InfoGAN

它是GAN的高级版本,能够学习以无监督学习方法解开表示,InfoGAN是一种生成对抗网络,它修改GAN目标以鼓励它学习可解释和有意义的表示。这是通过最大化 GAN 噪声变量的固定小子集与观察值之间的互信息来完成的。在一般的GAN中,随机输入噪声向量作为生成器网络的输入,它不向生成器网络提供任何信息,而InfoGAN使用潜在代码和噪声向量来相应的生成图像。

五、一句话总结

GAN 基本上是一种生成建模方法,它根据看起来像训练数据的训练数据生成一组新数据,GAN 有两个主要模块(两个神经网络)即生成器和判别器,它们相互竞争,能够捕获、复制和分析数据集中的变化。

六、最后我想说

本期的博客也就到这里结束啦,也代表这21天学习挑战赛算是比较完美的画上了句号,如果后续CSDN后续继续推出这类活动的话,我也会继续参加的,并在学习过程中分享出我的学习笔记的,和大家一起学习有关计算机专业的知识。

暑假也马上就要结束了,本人也马上就大三了,大三必然是忙碌的一年,后续我可能会进行Python基础知识以及其他内容的更新,顺便我也巩固一下之前学习的知识。

知足,上进,不负野心。这是我的座右铭,我在这里也将它送给大家,少一分懈怠,多一份努力,如果你不去学习,你永远不会做任何事情,只会找别人来替你做。

最后,祝大家在剩下的假期中能过得愉快并且能坚持每天学习一点知识,开学之后也要更加努力学习。

创作不易,期待大家的支持,谢谢!
在这里插入图片描述