当前位置: 首页>編程日記>正文

对抗神经网络(GAN)

对抗神经网络(GAN)

对抗神经网络其实时两个网络的组合,可以理解为一个网络生成模拟数据,另一个网络判断生成的数据是真实的还是模拟的。生成模拟数据的网络要不断优化自己让判别的网络判断不出来,判别的网络也要优化自己让自己判断得更加准确。

一、GAN的理论知识

GAN有generator和discriminator两部分构成

  • generator:主要是从训练数据中产生相同分布的samples,对于输入x,类别标签y,在生成式模型中估计器联合概率分布。
  • discriminator:判断输入是真实数据还是generator生成的数据,即估计样本属于某类的条件概率分布。采用传统的监督学习方式。

二者结合后,经过大量次数的迭代训练会使generator尽可能模拟出以假乱真的样本,而discriminator会更精确的鉴别真伪数据的能力,最终真个GAN会达到所谓的纳什均衡,即discriminator对于generator的数据鉴别结果为正确率和错误率各占50%

1.GAN的训练方法

根据GAN的结构不同,会有不同的对应训练方法。有的会在一个优化步骤中对两个网络优化,有的会对两个网络采取不同的优化步骤。

二、DCGAN——基于深度卷积的GAN

DCGAN即使用卷积网络的对抗网络,其原理和GAN一样,只是把CNN卷积技术用于GAN模式的网络中,G网络生成数据是,使用反卷积的重构技术来重构原始图片。D网络采用卷积技术来识别图片特征。
同时,DCGAN中的卷积神经网络也做了一些结构的改变,以提高样本的质量和收敛速度:

  • G网络中取消了所有的池化层,使用转置卷积并且步长大于等于2进行上采样
  • D网络中也加入stride的卷积代替pooling
  • 在D网络和G网络中均使用批量归一,而在最后一层通常不会使用batch normalization,这是为了保证模型能够学习到数据的正确均值和方差。
  • 去掉FC层,使网络变成全卷积网络
  • G网中使用ReLU作为激活函数,最后一层使用Tanh作为激活函数
  • D网络中使用LeakyReLU作为激活函数
    DCGAN中换成了两个卷积网,可以更好的学习到输入图像层次化的表示,尤其在生成器部分会有更好的莫您效果,采用Adam优化算法。

三、InfoGAN和ACGAN:指定类别生成模拟样本的GAN

1.InfoGAN:带有隐含信息的GAN

InfoGAN是GAN模型的一种改进,是一种能够学习样本中的关键维度信息的GAN,即对生成样本的噪声进行细化。相比于对抗自编码,InfoGAN的思路正好相反,InfoGAN是先固定标准高斯分布作为网络输入,再慢慢调整网络输出去调整网络输出去匹配复杂样本分布。
InfoGAN生成器是从标准高斯分布中随机采样作为输入,生产恒模拟样本,解码器是将生成器输出的模拟样本还原会成生成器输入的随机中的一部分,判别器将样本作为输入区分真假。
InfoGAN的理论思想是将输入的随机标准高斯分布当做噪声,并将噪声分为两类,第一类是不可压缩的噪音Z,第二类是可解释性的信息C。在一个样本中,决定其本身的只有少量重要的维度,大多数的维度是可有忽略的。这里的解码器也可以叫做重构器,重构一部分输入的特征确定与样本信息相关的维度。

2.AC-GAN:带有辅助分裂信息的GAN

ACG-GAN,即在判别器中再输出相应的分类概率,然后增加输出的分类与真实分类的损失计算,使生成的模拟数据与其所属的class一一对应。

3.实例88:构建InfoGAN生成MNIST模拟数据

四、AEGAN:基于自编码器的GAN

1.AEGAN原理及用途介绍

  AEGAN的理论比变分自编码简单得多,在GAN之后加上自解码网络即可。通过GAN可以利用噪声生成模拟数据的特点,使用自解码完成特征到图像的反向映射,从而实现一个可以将数据映射到低维空间,又可以从低维还原到模拟分布数据的网络中。
在这里插入图片描述
  在InfoGAN上嫁接一个自编码网络,原本的自编码网络在这里叫做反向生成网络,解码器就是GAN网络里的编码器网络。AEGAN网络训练分为两步。

  • 用传统的方法训练一个GAN,图中的GAN为InfoGAN(由隐含信息和噪声信息构成)
  • 固定GAN网络,利用自编码网络来训练反向生成网络,使反向生成网络具有高维向低维映射的能力。

  AEGAN的原理先固定复杂样本分布作为网络输入,再慢慢调整网络输出去匹配标准高斯分布。对抗自编码网络的思路方向与GAN相反(GAN的思路是将低维数据确定,来匹配高维数据),对抗自编码器应该属于自编码器的变种。变分自编码,其中编码器得出均值和方差,然后比较标准高斯分布kL散度来拟合高斯分布。这里判别器就起到公式计算的功能,目的都是辅助解码器生成标准高斯分布的数据,即拉近编码器分布和标注高斯分布的距离,只不过这部分的公式用神经网络代替。大大降低了模型依赖公式的复杂度,对扩展性也有极好提升,只需要改变判别式中真实样本的输入分布,就可以得到不同分布的编码器。

2.实例99:使用AEGAN对MNIST数据集压缩特征及重建

五、WGAN-GP:更容易训练的GAN

六、LSGAN(最小乘二GAN):具有WGAN同样效果的GAN

七、GAN-cls:具有匹配感知的判别器

八、SRGAN——使用与超分辨率重建的GAN


https://www.fengoutiyan.com/post/13736.html

相关文章:

  • 对抗神经网络算法
  • elman神经网络
  • 神经网络
  • 神经网络与深度神经网络
  • 对抗神经网络模型
  • 对抗神经网络可以做什么
  • 对抗神经网络是什么
  • 对抗性神经网络
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機