「GAN優化」從動力學視角看GAN是一種什麼感覺?

AIBigbull2050發表於2019-08-28

今天講述的內容是GAN與動力學,這是一個非常好玩、非常新鮮的視角。考慮到很多人微積分和線性代數等知識的涉獵不多,我將會對涉及的內容都做出基本說明,也並不會涉及過深入的東西,然後爭取串成一個故事,擴充套件一下大家的視野。

作者 | 小米粥

編輯 | 小米粥

最近這幾期我們都一直在講GAN的訓練,最開始說明了實際訓練GAN面臨的幾個理論和實踐上的問題,然後接著從博弈論角度解釋了GAN和納什均衡,還說了幾個幫助網路收斂的技巧。

這期將從動力學的視角看一下GAN,首先介紹基本概念常微分方程和尤拉法,然後介紹非常經典的梯度下降動力學系統,最後將GAN表示成動力學系統,並給出了一些比較好的結論。其實無論是什麼視角,都是為了能更好的解決訓練收斂的問題。

1 常微分方程與尤拉法

很多人平時接觸的方程大部分是代數方程、超越方程等等,比如:

「GAN優化」從動力學視角看GAN是一種什麼感覺?

其解是一個或幾個數值,例如上式的解為:

「GAN優化」從動力學視角看GAN是一種什麼感覺?

而微分方程是一種稍微“抽象”的方程,它是表示未知函式y(x)、未知函式的導數y`(x)以及自變數x關係的方程,比如:

「GAN優化」從動力學視角看GAN是一種什麼感覺?

其解(如果可解)應是一個函式或者函式族,例如上式的解析解為:

「GAN優化」從動力學視角看GAN是一種什麼感覺?

未知函式y(x)是一元函式的稱為常微分方程,若是多元函式則稱為偏微分方程。方便起見,將自變數x寫成時間t,則可以用微分方程來表示某些隨時間變化的規律或者動力學系統:

「GAN優化」從動力學視角看GAN是一種什麼感覺?

需要說明,對於常微分方程,只有某些特殊型別的方程能求得解析解,大部分是很難求得解析解的,所以實際中主要依靠數值法來近似計算求得數值解,以一個簡單的具有初始值常微分方程為例:

「GAN優化」從動力學視角看GAN是一種什麼感覺?

其解析解為:

「GAN優化」從動力學視角看GAN是一種什麼感覺?

而數值解只能給出部分、離散的自變數、因變數近似數值對,例如

「GAN優化」從動力學視角看GAN是一種什麼感覺?

尤拉法便是一種非常經典的一階數值方法。給定初始值和一系列固定間隔h的離散時間點,則可迭代計算:

「GAN優化」從動力學視角看GAN是一種什麼感覺?

得到微分方程的數值解。根據遞推關係:

「GAN優化」從動力學視角看GAN是一種什麼感覺?

可以看出,尤拉法是先從初始點開始,在每一點做切線並沿當前切線推進至下一點,最後連線成一條折線,這種比較“粗糙”的方式精度是比較差的。上面的例子使用尤拉法得到的解如藍線所示:

「GAN優化」從動力學視角看GAN是一種什麼感覺?

2 梯度下降法

在機器學習或者神經網路中,我們大量使用梯度下降法,其實它也可以看作是一個動力系統。給定關於訓練集的某種損失函式:

「GAN優化」從動力學視角看GAN是一種什麼感覺?

一般情況下,對相當複雜的損失函式,不太可能一步到位直接求解引數的最優解,只能通過某些演算法“慢慢地”去尋找最優解,比如使用經典的梯度下降演算法,引數不斷更新,在引數空間留下一條美妙的軌跡,其行為與動力系統十分相像。

考慮一個由常微分方程表示的動力系統:

「GAN優化」從動力學視角看GAN是一種什麼感覺?

使用尤拉法求解該動力系統,則有如下迭代關係:

「GAN優化」從動力學視角看GAN是一種什麼感覺?

如果把固定時間間隔h視為學習速度learning rate,則這就是大家非常熟悉的梯度下降演算法的表示式,到此應該看得出,所謂梯度下降演算法從動力學角度來看,就是使用尤拉法求解某個動力學系統。

當然,我們並不單單致力於能求解微分方程的數值解或者得到引數的軌跡,更重要的是,希望引數θ能夠收斂到某個穩定點,動力系統達到某個穩定的狀態,損失函式能夠收斂。

3 GAN的動力學系統

在GAN中,我們設定生成器的優化目標為最大化f,而判別器的優化目標為最大化g,動力系統的引數由兩部分組成:

「GAN優化」從動力學視角看GAN是一種什麼感覺?

那麼動力學微分方程可寫為:

「GAN優化」從動力學視角看GAN是一種什麼感覺?

整個動力學仍然採用梯度下降法進行迭代更新,若使用尤拉法求解GAN動力學系統,則可理解為使用同時梯度下降演算法:

「GAN優化」從動力學視角看GAN是一種什麼感覺?

即在一個時間節點上,同時更新生成器和判別器的引數,其引數軌跡如下:

「GAN優化」從動力學視角看GAN是一種什麼感覺?

需要說明一下,通常在GAN中我們使用的是交替梯度下降,兩者有一些區別(但是很多情況下並不影響最終的結論),即依次交替更新生成器和判別器的引數,其引數軌跡為:

「GAN優化」從動力學視角看GAN是一種什麼感覺?

上一期也說過,GAN並不是在尋找全域性最優解,而是在尋找一個區域性最優解。我們希望動力學系統的軌跡可以隨著不斷迭代而進入一個區域性收斂點,也就是納什均衡,定義納什均衡點為:

「GAN優化」從動力學視角看GAN是一種什麼感覺?

容易證明對於零和博弈(f=-g),在納什均衡點,其雅可比矩陣:

「GAN優化」從動力學視角看GAN是一種什麼感覺?

是負定的。反過來,可以通過檢查雅可比矩陣的性質來判斷是否達到了區域性收斂,如果在某個點,其一階導數為0

「GAN優化」從動力學視角看GAN是一種什麼感覺?

且其雅可比矩陣為負定矩陣,則該點為納什均衡點。

我們知道半負定矩陣的特徵值均小於等於0,則:如果在某一點的雅可比矩陣的特徵值為均負實數,則在足夠小的學習速率的前提下,訓練過程收斂;如果特徵值出現複數,則訓練一般而言不會實現區域性收斂;如果複數特徵值的實部很小而虛部比較大,此時需要某種非常苛刻的學習速率才能達到收斂狀態。

[1] Mescheder L , Nowozin S , Geiger A . The Numerics of GANs[J]. 2017.

[2] Nagarajan V, Kolter J Z, Nagarajan V, et al. Gradient descent GAN optimization is locally stable[J]. 2017.

總結

這篇文章首先介紹了常微分方程以及使用尤拉法得到常微分方程的數值解,然後從動力學的系統重新看梯度下降演算法,最後從動力學視角重新表述了GAN,並且給出幾個有用的結論。

https://www.toutiao.com/a6729686499383575053/

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2655250/,如需轉載,請註明出處,否則將追究法律責任。

相關文章