官术网_书友最值得收藏!

2.1.3 GAN的本質

為了深入探究GAN的本質,我們對其進行理論上的分析。首先,在每次迭代的過程中,我們都可以計算出最優判別器D*,只需令目標函數的一階導數為0,可得

具體證明過程如下所示。

首先,我們對目標函數中的項進行變換:

則判別器的目標函數變為:

使其一階導數為0,則

當判別器達到最優時,生成器的目標函數為:

可改寫為:

具體的計算步驟為:

JS散度是一種度量兩個概率分布之間的差異的常用方式。為了加深理解,我們對JS散度稍作解釋。我們非常熟悉這樣一件事:在一個二維平面上,每個點便是一個元素,點與點之間的距離即歐氏距離,可通過勾股定理計算,如(3,0)與(1,0)的距離肯定要比(0,1)與(1,0)的距離大。其實元素是一個抽象的概念,平面上的點可視為元素,矩陣、多項式、函數也均可視為元素,類似剛才的例子,若將每一個概率分布p(x)也視為一個元素(如圖2-5所示),則概率分布之間的距離可使用JS散度計算,有

圖2-5 JS散度解釋

相應地,JS散度越小,表示兩個概率分布越相似;JS散度越大,表示兩個概率分布差異越多;兩個分布完全相同時,JS散度為0。對于圖2-5中的例子,計算可知JS(p1x)|| p2x))>JS(p2x)||p3x))。

可以看出,GAN本質上是先通過訓練判別器得到pdatapg的JS散度,然后訓練生成器使JS散度達到最小,當JS散度為0時,生成器達到全局最優,即pdata=pg。理論上也可以證明,當生成器和判別器具有足夠的容量,并且在給定生成器時,如果判別器能夠達到最優解,則GAN可以實現全局最優,當然這在實踐中幾乎是不可能的。

另外,對于生成器的非飽和形式目標函數,同樣在最優判別器D*的條件下,目標函數變為:

具體的計算步驟:

可以看出這里存在理論上的矛盾,即非飽和形式的生成器在最小化KL散度的同時也在最大化JS散度,這是兩個方向相反的優化方向,但從實際效果上看,它確實在一定程度上避免了訓練梯度飽和的問題。

主站蜘蛛池模板: 南郑县| 积石山| 广丰县| 文成县| 社旗县| 吉木萨尔县| 衡南县| 托克逊县| 宜昌市| 千阳县| 门源| 攀枝花市| 涞源县| 溧水县| 衢州市| 铜鼓县| 原阳县| 义马市| 宁城县| 巴里| 通榆县| 东港市| 沽源县| 彭阳县| 城口县| 绩溪县| 乌恰县| 措勤县| 绥滨县| 广州市| 开化县| 涪陵区| 嘉祥县| 东港市| 道孚县| 蛟河市| 秭归县| 商洛市| 鄂尔多斯市| 哈尔滨市| 丘北县|