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

GAN(生成对抗神经网络 )的一点思考

GAN(生成对抗神经网络 )的一点思考

        GAN的原理说起来很简单,就是一个生成网络,一个鉴别网络,两个网络不断对抗各自优化,道高一丈,魔高一尺,道再高一丈的过程。

        那么gan到底是如何通过对抗,就可以使得随机的一张图可以生成我们想要的图片呢?

        gan的目的很简单,希望构建一个从隐变量 Z 生成目标数据 X 的模型,也就是说假设了服从某些常见的分布(比如正态分布或均匀分布),然后希望训练一个模型 X=g(Z),这个模型能够将原来的概率分布映射到训练集的概率分布,目的就是进行分布之间的变换。

        通俗的来讲,我们希望有一个模型G,可以使得输入随机分布的噪声X,而得到我们希望的分布Y,即Y=G(X), 而我们已有的标签就是希望得到的真实分布T。也就是说我们希望Y与T的分布可以越来越接近,达到同样的分布。

        但是,难的就在于,我们如何去判断这个通过G构造出来的数据集,它的分布跟我们目标的数据集分布是不是一样的呢?也就是如何判断我们生成网络中生成的图与真实的图是相近的呢?

        也就是求两个概率分布的相似度,有人可能会想到KL散度,但是这里不太适用,KL散度是已知两个概率分布的函数,来计算。但是这里我们并不知道它们的概率分布的表达式,也就没法用KL来计算,我们这里只知道的是一批数据。

        那该怎么办呢?gan的思想就凸显出来了,既然没有合适的度量方法,那就交给网络,去学一个不就解决了吗?这也就是鉴别器的原型。

        也就是构建一个网络L,输入为真实标签Z和生成器Y生成的分布,来输出两个分布之间的距离。Z是提前给定的,可以当作是网络的参数。公式简写为: Θ为参数。

         同时,需要注意的是我们要的是描述分布之间的距离而不是样本的距离,而分布本身跟各个 yi 出现的顺序是没有关系的,因此分布之间的距离跟各个 yi 出现的顺序是无关的,也就是说,尽管 L 是各个 yi 的函数,但它必须全对称的!

        也就是说,我们先找一个有序的函数 D,然后对所有可能的序求平均,那么就得到无序的函数了。无序的最简单实现如下图,可以简单的理解为:分布之间的距离,等于单个样本的距离的平均。

         说了这么多,回归到对抗上来,对于L,我们希望当我们输入为真实分布式,L越小越好,也就是分布相同,而输入为生成的分布时,我们希望越大越好,因为L的作用就是区别不同的分布。但是对于生成网络来说,我们希望生成的分布与真实分布相同,也就是越相近越好,也就是输入到L中越小越好这时候,gan的思想就出来了:gan!

        同时,不难发现,如果对损失函数无约束的话 Loss 基本上会直接跑到负无穷去了。这也是我们不希望的。必要给 D 加点条件,一个比较容易想到的方案是约束 D 的范围,比如能不能给 D 最后的输出加个 Sigmoid 激活函数,让它取值在 0 到 1 之间?事实上这个方案在理论上是没有问题的,然而这会造成训练的困难。因为 Sigmoid 函数具有饱和区,一旦 D 进入了饱和区,就很难传回梯度来更新参数了。

        所以,就引入了Lipschitz 约束。我们分析问题发现,我们距离是为了表明两个对象的差距,而如果对象产生的微小的变化,那么距离的波动也不能太大,这应该是对距离基本的稳定性要求。

        至于如何加到损失函数中,就有很多的方法了。

        如有错误, 欢迎各位批评指正!


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

相关文章:

  • 生成数据的神经网络
  • dbn神经网络
  • gabp神经网络
  • GAN生成对抗网络技术
  • 自动生成神经网络
  • 生成对抗神经网络
  • 对抗神经网络算法
  • grnn神经网络
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,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尋找肇事司機