「GAN優化」從動力學視角看GAN是一種什麼感覺?
今天講述的內容是GAN與動力學,這是一個非常好玩、非常新鮮的視角。考慮到很多人微積分和線性代數等知識的涉獵不多,我將會對涉及的內容都做出基本說明,也並不會涉及過深入的東西,然後爭取串成一個故事,擴充套件一下大家的視野。
作者 | 小米粥
編輯 | 小米粥
最近這幾期我們都一直在講GAN的訓練,最開始說明了實際訓練GAN面臨的幾個理論和實踐上的問題,然後接著從博弈論角度解釋了GAN和納什均衡,還說了幾個幫助網路收斂的技巧。
這期將從動力學的視角看一下GAN,首先介紹基本概念常微分方程和尤拉法,然後介紹非常經典的梯度下降動力學系統,最後將GAN表示成動力學系統,並給出了一些比較好的結論。其實無論是什麼視角,都是為了能更好的解決訓練收斂的問題。
1 常微分方程與尤拉法
很多人平時接觸的方程大部分是代數方程、超越方程等等,比如:
![「GAN優化」從動力學視角看GAN是一種什麼感覺?](https://i.iter01.com/images/254770e7712699845ccc25428f3dbf1356d022782423fdee860f3873c60a89c8.jpg)
其解是一個或幾個數值,例如上式的解為:
![「GAN優化」從動力學視角看GAN是一種什麼感覺?](https://i.iter01.com/images/24167eabe60c61cd7d9388bb12c0ae2615ae5c6b5182d3e02f12f73d9f86fda7.jpg)
而微分方程是一種稍微“抽象”的方程,它是表示未知函式y(x)、未知函式的導數y`(x)以及自變數x關係的方程,比如:
![「GAN優化」從動力學視角看GAN是一種什麼感覺?](https://i.iter01.com/images/04c7caed914614d9501dc81cc2e96478f2cc6a85aed956e0c79dbf0fd8201ae6.jpg)
其解(如果可解)應是一個函式或者函式族,例如上式的解析解為:
![「GAN優化」從動力學視角看GAN是一種什麼感覺?](https://i.iter01.com/images/ea491f1acf07e460f8587c4fb4db38add9d192b98346bf747ab4fe291addf905.jpg)
未知函式y(x)是一元函式的稱為常微分方程,若是多元函式則稱為偏微分方程。方便起見,將自變數x寫成時間t,則可以用微分方程來表示某些隨時間變化的規律或者動力學系統:
![「GAN優化」從動力學視角看GAN是一種什麼感覺?](https://i.iter01.com/images/e06e99248a005d2e62bba88588224d738ceb880144798220ca7b9a40d8cd4fde.jpg)
需要說明,對於常微分方程,只有某些特殊型別的方程能求得解析解,大部分是很難求得解析解的,所以實際中主要依靠數值法來近似計算求得數值解,以一個簡單的具有初始值常微分方程為例:
![「GAN優化」從動力學視角看GAN是一種什麼感覺?](https://i.iter01.com/images/36b1ec45aa8573e1349577371f44610f106e271e9927e56facec5374a773de16.jpg)
其解析解為:
![「GAN優化」從動力學視角看GAN是一種什麼感覺?](https://i.iter01.com/images/ba600888c6153cb5915a247d0dab8dd4bcaed6e0ac3cd4d07cbf19aae32eec2e.jpg)
而數值解只能給出部分、離散的自變數、因變數近似數值對,例如
![「GAN優化」從動力學視角看GAN是一種什麼感覺?](https://i.iter01.com/images/7e73c33f55dea78f0e79e7de3c08fc54f96f639cfad9cfe8f9cab3f83e07cd62.jpg)
尤拉法便是一種非常經典的一階數值方法。給定初始值和一系列固定間隔h的離散時間點,則可迭代計算:
![「GAN優化」從動力學視角看GAN是一種什麼感覺?](https://i.iter01.com/images/b9ea96b5e50fe8622f89f685c88cdcc1a4276011acf14f66b70786e5b1aa4b3f.jpg)
得到微分方程的數值解。根據遞推關係:
![「GAN優化」從動力學視角看GAN是一種什麼感覺?](https://i.iter01.com/images/779cd0491df35e8d80d92326c34b12d04a76910f11458b01a92202c24d1f5bfe.jpg)
可以看出,尤拉法是先從初始點開始,在每一點做切線並沿當前切線推進至下一點,最後連線成一條折線,這種比較“粗糙”的方式精度是比較差的。上面的例子使用尤拉法得到的解如藍線所示:
![「GAN優化」從動力學視角看GAN是一種什麼感覺?](https://i.iter01.com/images/8968c81b865761f729fe853cbed73d7492cc2f5bb87822e44411f27f3e50e7bb.jpg)
2 梯度下降法
在機器學習或者神經網路中,我們大量使用梯度下降法,其實它也可以看作是一個動力系統。給定關於訓練集的某種損失函式:
![「GAN優化」從動力學視角看GAN是一種什麼感覺?](https://i.iter01.com/images/cbde44250f058ec17dcea48b96e332c55b4ed650c583f04406196b3eb5c26d12.jpg)
一般情況下,對相當複雜的損失函式,不太可能一步到位直接求解引數的最優解,只能通過某些演算法“慢慢地”去尋找最優解,比如使用經典的梯度下降演算法,引數不斷更新,在引數空間留下一條美妙的軌跡,其行為與動力系統十分相像。
考慮一個由常微分方程表示的動力系統:
![「GAN優化」從動力學視角看GAN是一種什麼感覺?](https://i.iter01.com/images/a60e7c1ad8bd9f09a320eedf1d0e5b6809c6445d08e559cb08e0e6c28638f611.jpg)
使用尤拉法求解該動力系統,則有如下迭代關係:
![「GAN優化」從動力學視角看GAN是一種什麼感覺?](https://i.iter01.com/images/5233fae9e160005d710b2b9479e23ba083ea779203a58be14a3d5a4404d5e799.jpg)
如果把固定時間間隔h視為學習速度learning rate,則這就是大家非常熟悉的梯度下降演算法的表示式,到此應該看得出,所謂梯度下降演算法從動力學角度來看,就是使用尤拉法求解某個動力學系統。
當然,我們並不單單致力於能求解微分方程的數值解或者得到引數的軌跡,更重要的是,希望引數θ能夠收斂到某個穩定點,動力系統達到某個穩定的狀態,損失函式能夠收斂。
3 GAN的動力學系統
在GAN中,我們設定生成器的優化目標為最大化f,而判別器的優化目標為最大化g,動力系統的引數由兩部分組成:
![「GAN優化」從動力學視角看GAN是一種什麼感覺?](https://i.iter01.com/images/acfb36e7677fcf39fec751acdbed435b53001393f85033f715535e37d7b614e8.jpg)
那麼動力學微分方程可寫為:
![「GAN優化」從動力學視角看GAN是一種什麼感覺?](https://i.iter01.com/images/69a16ef7b8b40270dd4150cd3fb2aec35d0af6143752eb84702dd33a5872bb52.jpg)
整個動力學仍然採用梯度下降法進行迭代更新,若使用尤拉法求解GAN動力學系統,則可理解為使用同時梯度下降演算法:
![「GAN優化」從動力學視角看GAN是一種什麼感覺?](https://i.iter01.com/images/47c77e9f41026615d5133a69d64c654fc410301db3286423879bec501aae51f2.jpg)
即在一個時間節點上,同時更新生成器和判別器的引數,其引數軌跡如下:
![「GAN優化」從動力學視角看GAN是一種什麼感覺?](https://i.iter01.com/images/95a4db993280fe19eb2a7633a1539bec24c064f77de3cbf5818abd1324600b20.jpg)
需要說明一下,通常在GAN中我們使用的是交替梯度下降,兩者有一些區別(但是很多情況下並不影響最終的結論),即依次交替更新生成器和判別器的引數,其引數軌跡為:
![「GAN優化」從動力學視角看GAN是一種什麼感覺?](https://i.iter01.com/images/f796c03573dae279c29bdbabfc45222daf7a18143a70877a1f9171381506a5f8.jpg)
上一期也說過,GAN並不是在尋找全域性最優解,而是在尋找一個區域性最優解。我們希望動力學系統的軌跡可以隨著不斷迭代而進入一個區域性收斂點,也就是納什均衡,定義納什均衡點為:
![「GAN優化」從動力學視角看GAN是一種什麼感覺?](https://i.iter01.com/images/18954399a9d8bf59b2298033ea5c884a4b09e1c3124eac9c5cce41180b4d82d4.jpg)
容易證明對於零和博弈(f=-g),在納什均衡點,其雅可比矩陣:
![「GAN優化」從動力學視角看GAN是一種什麼感覺?](https://i.iter01.com/images/5031c6660ed716ea605e1e24c0d04d61ee09b87f7c353bbddf4c5f4de81de632.jpg)
是負定的。反過來,可以通過檢查雅可比矩陣的性質來判斷是否達到了區域性收斂,如果在某個點,其一階導數為0
![「GAN優化」從動力學視角看GAN是一種什麼感覺?](https://i.iter01.com/images/c85d4bae3ea34a7d4eedd55c647de07b60aa8df2670a0fc9fcecb98cfac0830d.jpg)
且其雅可比矩陣為負定矩陣,則該點為納什均衡點。
我們知道半負定矩陣的特徵值均小於等於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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 能量視角下的GAN模型:GAN=“挖坑”+“跳坑”模型
- 「GAN優化」詳解SNGAN(頻譜歸一化GAN)優化
- 能量視角下的GAN模型(二):GAN=“分析”+“取樣”模型
- 「GAN優化」GAN訓練的小技巧優化
- 「GAN優化」什麼是模式崩潰,以及如何從優化目標上解決這個問題優化模式
- 【計算機視覺】利用GAN Prior來處理各種視覺任務計算機視覺
- 什麼是生成模型和GAN?一文體驗計算機視覺的魔力(附連結)模型計算機視覺
- 資料視覺化的優點是什麼(一)視覺化
- 換個角度看GAN:另一種損失函式函式
- 「GAN優化」如何選好正則項讓你的GAN收斂優化
- 什麼是人工智慧領域的 GAN人工智慧
- GAN網路從入門教程(二)之GAN原理
- 資料視覺化的優點是什麼(二)視覺化
- 【深度學習】--GAN從入門到初始深度學習
- 什麼是資料視覺化?視覺化
- 什麼是資料視覺化,為什麼資料視覺化很重要?視覺化
- 李巨集毅GAN學習(四)GAN的基本理論
- 起量是玄學嗎?——從上帝視角看買量
- 資料視覺化大屏是什麼?有哪些優點?視覺化
- 優化GAN的分佈的梯度問題,WGAN優化梯度
- 什麼是大資料視覺化大資料視覺化
- GAN實戰筆記——第一章GAN簡介筆記
- 從NLP視角看電視劇《狂飆》,會有什麼發現?
- Wasserstein GAN
- 人成熟了是什麼感覺?
- 三大深度學習生成模型:VAE、GAN及其變種深度學習模型
- 什麼是資料視覺化,有什麼價值視覺化
- GAN入門
- 視覺化資料用什麼軟體做,大資料視覺化是用什麼做的視覺化大資料
- GAN原理,優缺點、應用總結
- 李弘毅老師GAN筆記(三),Unsupervised Conditional GAN筆記
- [譯] 寫一個完整的 Flutter App 是什麼感覺FlutterAPP
- 什麼是資料視覺化?hightopo資料視覺化助力企業數字化視覺化
- 從GAN到WGAN的來龍去脈
- 解讀生成對抗網路(GAN) 之U-GAN-IT
- 六種GAN評估指標的綜合評估實驗,邁向定量評估GAN的重要一步指標
- 「完結」12篇GAN的優化文章大盤點,濃濃的數學味兒優化
- GAN背後的數學原理是什麼?初學者的理論入門聖經來了 | 一週AI最火論文AI