gan網路損失函式 GAN的損失函式

2021-10-13 06:58:16 字數 1811 閱讀 5860

理解生成對抗網路的關鍵在於理解gan的損失函式

js散度

gan實際是通過對先驗分布施加乙個運算g, 來擬合乙個新的分布

如果從傳統的判別式網路的思路出發,只要選定合適的loss,就可以使生成分布和真實分布之間的距離盡可能逼近

kl散度經常用來衡量分布之間距離

但kl散度是不對稱的。不對稱意味著,對於同乙個距離,觀察方式不同,獲取的loss也不同,那麼整體loss下降的方向就會趨向於某個特定方向。這在gan中非常容易造成模式崩塌,即生成資料的多樣性不足

js散度在kl散度的基礎上進行了修正,保證了距離的對稱性:

實際上,無論kl散度還是js散度,在直接用作loss時,都是難以訓練的:由於分布只能通過取樣計算,這個loss在每次迭代時都幾乎為零

gan loss的推導

gan的訓練方法,能夠巧妙的解決這個問題:

先訓練d,再訓練g,二者相互對抗,直到收斂

在原始的gan中,提出的loss是:

當g固定且運算可逆時(實際上這一點一般不成立,但不影響了解gan的思想):

代入loss公式,進而有:

對於積分區間內的每乙個x,設被積函式為f 為:

注意這裡x是固定的,變數是d。對f求導,得到當

時,f存在最大值。

由於被積函式的最大值對於任意x都成立,所以當

時, v(d, g)有最大值

代入loss公式,有:

所以原始gan的loss實際等價於js散度

wasserstein loss

js散度存在乙個嚴重的問題:兩個分布沒有重疊時,js散度為零,而在訓練初期,js散度是有非常大的可能為零的。所以如果d被訓練的過於強,loss會經常收斂到-2log2而沒有梯度

對於這個問題,wgan提出了乙個新的loss,wasserstein loss, 也稱作地球移動距離:

這個距離的直觀含義是,將分布r移動到分布g所需要的距離,所以即使是兩個分布沒有重疊,這個loss也是有值的

可以證明,該距離可以轉化為如下形式:

其中f必須滿足1-lipschitz連續,即:

可以看到,符合1-lipschitz連續的函式的梯度是受限的,可以有效的防止梯度的**,使訓練更加穩定

spectral normalization

對於gan來說,f其實就是指的d或g,也就是神經網路。對於神經網路來說,一般是由一系列矩陣乘法復合而成的。可以證明,如果矩陣乘法這個運算滿足1-lipschitz連續,那麼其復合運算也會滿足1-lipschitz連續,神經網路也就滿足1-lipschitz連續

對於矩陣變換a來說,它滿足k-lipschitz連續的充要條件是: $$ ||ax|| \leq k||x|| $$ 對其等價變換有:

假設的特徵向量構成的基底為

對應的特徵值為

,則x可由特徵向量表示:

那麼有:

只有當i 不等於j時,式子不為零, 且

所以有:

矩陣是半正定矩陣,所有特徵值都為非負,所以只要矩陣除以它最大的奇異值的開方,就可以滿足1-lipschitz連續。power iteration 是求奇異值的一種簡便演算法,

稱這種除以最大奇異值的操作為spectral norm

hinge loss

hinge loss 是對地球移動距離的一種拓展

hinge loss 最初是svm中的概念,其基本思想是讓正例和負例之間的距離盡量大,後來在geometric gan中,被遷移到gan:

對於d來說,只有當d(x) < 1 的正向樣本,以及d(g(z)) > -1的負樣本才會對結果產生影響

也就是說,只有一些沒有被合理區分的樣本,才會對梯度產生影響

這種方法可以使訓練更加穩定

GAN 原始損失函式詳解

gan的原始損失函式,咋一看是非常難以理解的,但仔細理解後就會發現其簡潔性和豐富的含義。損失函式定義 一切損失計算都是在d 判別器 輸出處產生的,而d的輸出一般是fake true的判斷,所以整體上採用的是二進位制交叉熵函式。左邊包含兩部分ming和maxd。首先看一下maxd部分,因為訓練一般是先...

GAN是一種特殊的損失函式?

資料科學家jeremy howard在fast.ai的 生成對抗網路 gan 課程中曾經講過這樣一句話 從本質上來說,生成對抗網路 gan 是一種特殊的損失函式。你是否能夠理解這句話的意思?讀完本文,你會更好的理解這句話的含義。神經網路的函式逼近理論 在數學中,我們可以將函式看做乙個 機器 或 黑匣...

GAN是一種特殊的損失函式?

摘要 從本質上來說,生成對抗網路 gan 是一種特殊的損失函式,我們來深入探索下這句話的含義。資料科學家jeremy howard在fast.ai的 生成對抗網路 gan 課程中曾經講過這樣一句話 從本質上來說,生成對抗網路 gan 是一種特殊的損失函式。你是否能夠理解這句話的意思?讀完本文,你會更...