GAN 原始損失函式詳解

2022-04-04 02:51:35 字數 646 閱讀 3278

gan的原始損失函式,咋一看是非常難以理解的,但仔細理解後就會發現其簡潔性和豐富的含義。

損失函式定義:

一切損失計算都是在d(判別器)輸出處產生的,而d的輸出一般是fake/true的判斷,所以整體上採用的是二進位制交叉熵函式。

左邊包含兩部分ming和maxd。

首先看一下maxd部分,因為訓練一般是先保持g(生成器)不變訓練d的。d的訓練目標是正確區分fake/true,如果我們以1/0代表true/fake,則對第一項e因為輸入取樣自真實資料所以我們期望d(x)趨近於1,也就是第一項更大。同理第二項e輸入取樣自g生成資料,所以我們期望d(g(z))趨近於0更好,也就是說第二項又是更大。所以是這一部分是期望訓練使得整體更大了,也就是maxd的含義了。

第二部分保持d不變,訓練g,這個時候只有第二項e有用了,關鍵來了,因為我們要迷惑d,所以這時將label設定為1(我們知道是fake,所以才叫迷惑),希望d(g(z))輸出接近於1更好,也就是這一項越小越好,這就是ming。當然判別器哪有這麼好糊弄,所以這個時候判別器就會產生比較大的誤差,誤差會更新g,那麼g就會變得更好了,這次沒有騙過你,只能下次更努力了。

大概就是這樣乙個博弈過程了。自娛自樂,高手刷到請略過。

**參考:50行**實現gan-pytorch

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

理解生成對抗網路的關鍵在於理解gan的損失函式 js散度 gan實際是通過對先驗分布施加乙個運算g,來擬合乙個新的分布 如果從傳統的判別式網路的思路出發,只要選定合適的loss,就可以使生成分布和真實分布之間的距離盡可能逼近 kl散度經常用來衡量分布之間距離 但kl散度是不對稱的。不對稱意味著,對於...

GAN原始Loss解讀

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

損失函式 SRGAN損失函式(目標函式)詳解

srgan的特點之一就是引進了損失感知函式,由此提公升了超解析度之後的細節資訊。本文主要像您介紹srgan使用的損失函式,及其keras實現。這是原文中給出的損失函式。容易看出,此損失函式包括兩部分,第一部分是感知損失,第二部分是正則化損失。感知損失是由李飛飛團隊提出的一種損失函式。感知損失分了兩部...