「GAN優化」詳解SNGAN(頻譜歸一化GAN)
今天將和大家一起學習具有很高知名度的SNGAN。之前提出的WGAN雖然效能優越,但是留下一個難以解決的1-Lipschitz問題,SNGAN便是解決該問題的一個優秀方案。我們將先花大量精力介紹矩陣的最大特徵值、奇異值,然後給出一個簡單例子來說明如何施加1-Lipschitz限制,最後一部分講述SNGAN。
作者 | 小米粥
編輯 | 小米粥
在GAN中,Wasserstein距離比f散度擁有更好的數學性質,它處處連續,幾乎處處可導且導數不為0,所以我們更多的使用Wasserstein距離。在上一期的結尾,我們得到critic(判別器)的目標函式為:
本篇所講的SNGAN便是一種“嚴格”地解決了判別器1-Lipshcitz約束的方法。
1 最大特徵值(奇異值)
我們從矩陣的特徵值、奇異值開始說起。線上性代數中,Ax=b表示對向量x做矩陣A對應的線性變換,可以得到變換後的向量b。如果x為矩陣A對應的特徵向量,則有:
即對特徵向量x做矩陣A對應的線性變換的效果是:向量方向不變,僅長度伸縮λ 倍!比如,對
兩個特徵值、特徵向量分別為:
線性變換作用在特徵向量的效果如下:
對於一般向量x,對其線性變換的中間運算過程可以分解為三步。例如對於計算Ax,其中x=[0,1],先將x分解到兩個特徵向量上:
然後在兩個特徵向量方向上分別進行伸縮變換,有:
最後再進行簡單的向量合成,可有:
一般的,對於非奇異n階方陣,有n個特徵向量和與之對應的特徵值,故n階方陣A對應的線性變換操作其實可以分解成三步:將向量x先分解到n個特徵向量對應的方向上(本質是求解x在以特徵向量組成的基上的表示),分別進行伸縮變換(在特徵向量組成的基上進行伸縮變換),最後進行向量合成(本質是求解得到的新向量在標準基上的表示)。這其實就是在描述熟悉的矩陣特徵值分解:
特徵值是對應於方陣的情況,將其推廣至一般矩陣,便可引出奇異值。奇異值分解形式為:
簡單說,特徵值分解其實是對線性變換中旋轉、縮放兩種效應的歸併,奇異值分解正是對線性變換的旋轉、縮放和投影三種效應的一個析構(當V的維度大於U的維度時存在投影效應)。
說了這麼多,其實是為了直觀地解釋一個問題,對於任意單位向量x,Ax的最大值(這裡使用向量的2範數度量值的大小)是多少?顯然,x為特徵向量v2時其值最大,因為這時的x全部“投影”到伸縮係數最大的特徵向量上,而其他單位向量多多少少會在v1方向上分解出一部分,在v1方向上只有2倍的伸縮,不如在v2方向上4倍伸縮的值來的更大。這樣,我們可以得到一個非常重要的式子:
其中σ (A)表示A的最大特徵值(奇異值),也稱為A的譜範數。
2 Lipshcitz限制
所謂Lipshcitz限制,在最簡單的一元函式中的形式即:
或者也可以寫成:
直觀上看,它要求f(x)任意兩點之間連線的“斜率”絕對值小於Lipshcitz常數k。在WGAN中要求k=1,1-Lipshcitz限制要求保證了輸入的微小變化不會導致輸出產生較大變化。我們常見的函式,比如分段線性函式|x|,連續函式sin(x)都顯而易見的滿足該限制:
我們以一個最簡單的例子來展示一下,如何使用譜範數施加1-Lipshcitz限制。考慮f(x)=Wx,其中
顯然,f(x)=Wx不滿足1-Lipshcitz限制,利用第一部分的結論,考慮到
那麼若將W整體縮小4倍,
即可以得到:
可以看出,雖然線性函式f(x)=Wx不滿足1-Lipshcitz限制,但是可使用譜範數將W的”縮放大小“限定為小於等於1,(有點類似於向量的歸一化操作)這樣處理後的f*(x)可以滿足1-Lipshcitz限制。接下來,我們將對這條思路進行補充、推廣,最後得到SNGAN將是顯而易見的事情了。
3 SNGAN
通常在神經網路中的每一層,先進行輸入乘權重的線性運算,再將其送入啟用函式,由於通常選用ReLU作為啟用函式,ReLu啟用函式可以用對角方陣D表示,如果Wx的第i維大於0,則D的第i個對角元素為1,否則為0,需要注意D的具體形式與W,x均有關係,但是D的最大奇異值必然是1。
因此,一般而言,即使神經網路的輸出是非線性的,但是在x的一個足夠小的鄰域內,它一個表現為線性函式Wx,W的具體形式與x有關。真實的判別器f(x)的函式影像在比較小的尺度上來看應該是類似這種形式的分段函式:
考慮到對於任意給定的x,均有:
整體標記判別器各層的權值、偏置項:
那麼可以得到:
根據:
可得到:
不必像第二部分所描述辦法整體求解W的譜範數,充分利用上述不等式,我們只需要計算每層的權值矩陣的最大奇異值,即可完成1-Lipshcitz限制。
對於每層的權值矩陣,處理為:
綜上,有結論:對於任意x
為了嚴格起見,需要說明,f(x)在x的任意鄰域內都滿足1-Lipshcitz限制,則f(x)在定義域上滿足1-Lipshcitz限制。
其實這裡有一個遺留的小問題,如何快速求解超大矩陣A的最大奇異值。在原論文中使用了一種冪方法(power method),隨機給兩個初始變數,然後令:
則經過數次迭代,便有
我們用求最大特徵值的例子來輔助理解一下,A對向量x的線性變換的實質是對x在不同的特徵向量方向進行伸縮,由於在不同的特徵向量方向進行伸縮的幅度不同,造成的結果是:不斷對x做A對應的線性變換,則x的方向不斷靠近伸縮幅度最大的特徵向量的方向,如下圖
則經過足夠次數的迭代,得到的新的向量方向與伸縮幅度最大的特徵向量的方向重合,故每次迭代結果只差一個常數,即最大特徵值。
[1] Yoshida, Yuichi , and T. Miyato . "Spectral Norm Regularization for Improving the Generalizability of Deep Learning." (2017).
[2] Miyato, Takeru , et al. "Spectral Normalization for Generative Adversarial Networks." (2018).
[3]Wasserstein GAN and the Kantorovich-Rubinstein Duality. https://vincentherrmann.github.io/blog/wasserstein/
總結
這篇文章帶領大家一起學習了SNGAN,學習了特徵值和奇異值相關問題,學習如何使用譜範數解決1-Lipschitz限制,並推導了SNGAN,最後給出了一個快速求解矩陣最大奇異值的方法。下一期的內容將比較“數學”一點,介紹一個個人非常喜歡的統一理論,它將WGAN和諸多GAN納入一個框架。
https://www.toutiao.com/a6717657249738654222/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2655032/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 「GAN優化」GAN訓練的小技巧優化
- 「GAN優化」如何選好正則項讓你的GAN收斂優化
- 「GAN優化」從動力學視角看GAN是一種什麼感覺?優化
- 優化GAN的分佈的梯度問題,WGAN優化梯度
- 解讀生成對抗網路(GAN) 之U-GAN-IT
- 「GAN優化」什麼是模式崩潰,以及如何從優化目標上解決這個問題優化模式
- GAN實戰筆記——第一章GAN簡介筆記
- Wasserstein GAN
- GAN入門
- MySQL之SQL優化詳解(一)MySql優化
- 李弘毅老師GAN筆記(三),Unsupervised Conditional GAN筆記
- GAN網路從入門教程(二)之GAN原理
- 能量視角下的GAN模型:GAN=“挖坑”+“跳坑”模型
- GAN原理,優缺點、應用總結
- 能量視角下的GAN模型(二):GAN=“分析”+“取樣”模型
- 李巨集毅GAN學習(四)GAN的基本理論
- 論文解讀(GAN)《Generative Adversarial Networks》
- 「完結」12篇GAN的優化文章大盤點,濃濃的數學味兒優化
- 令人拍案叫絕的 Wasserstein GAN,徹底解決GAN訓練不穩定問題
- MongoDB索引優化詳解MongoDB索引優化
- BAIR提出MC-GAN,使用GAN實現字型風格遷移AI
- 【雜談】GAN最成功的3個商業化落地領域,你是否瞭解過?
- GAN生成影象綜述
- GAN生成影像綜述
- GAN實戰筆記——第三章第一個GAN模型:生成手寫數字筆記模型
- MongoDB索引與優化詳解MongoDB索引優化
- 利用NAS尋找最佳GAN:AutoGAN架構搜尋方案專為GAN打造架構
- GAN 論文大彙總
- GAN訓練技巧彙總
- CNN,GAN,AE和VAE概述CNN
- Wasserstein GAN and the Kantorovich-Rubinstein Duality
- 下一個GAN?OpenAI提出可逆生成模型GlowOpenAI模型
- 氣泡排序及優化詳解排序優化
- [MySQL 優化] Explain 之 type 詳解MySql優化AI
- MySQL之SQL優化詳解(二)MySql優化
- MySQL之SQL優化詳解(三)MySql優化
- 影像歸一化
- 谷歌開源的 GAN 庫–TFGAN谷歌