❶ 如何訓練對抗生成網路
這個倒是不知道 不過你可以試著設置
❷ 如何理解對抗生成網路是無監督學習
生成對抗網路是一種生成模型(Generative Model),其背後最基本的思想就是從訓練庫里獲取很多的訓練樣本(Training Examples),從而學習這些訓練案例生成的概率分布。 一些生成模型可以給出概率分布函數定義的估測
❸ 神經網路中的對抗攻擊與對抗樣本
對抗攻擊
對抗攻擊論文參考:
《Intriguing properties of neural networks》
《神經網路有趣的特性》
《Threat of Adversarial Attacks on Deep Learning in Computer Vision: A Survey》,以下簡稱『Survey』。
圖片做適當修改後能欺騙深度學習模型的可能性
1.舉例理解:
左邊是一張能夠被GoogLeNet正常分類為熊貓的圖片,在添加一定的噪音後變成右圖,在人的肉眼看來,它還是熊貓,但GoogLeNet會判定為長臂猿。這種被修改後人類無法明顯察覺,卻被機器識別錯誤的數據即為 對抗樣本 ,而這整個過程就可以理解為 對抗攻擊 。
2.數學理解:
神經網路中每層神經元的輸入 a = g(Wx+b),其中 g 為激活函數,W 為權重參數,x 為上一層的樣本數據,b 為偏置參數,那麼從拓撲學角度來看,在一個二維平面上,這個過程相當於哪幾個步驟呢?
(1)一次使用權重參數矩陣 W 的線性變換
(2)一次使用偏執向量 b 的移動
(3)一次應用非線性激活函數 g 的變換
在 二維平面 ,其實是將整個平面進行了 旋轉、移動和拉伸 三步。
分類問題
簡單分類問題:通過較少幾次變換將問題轉換為一條直線可分割的空間。
既是一層神經網路就可以完成分類,通過變換空間布局,最終通過一條直線完成分類。
舉例:
簡單轉換ing........
轉換結果看下圖
復雜分類問題:通過多幾次的轉換完成將問題轉換為一條直線可分割的空間。
就是多層神經網路完成分類,通過變換空間布局,最終通過一條直線完成分類。
舉例:
動態多步轉換
以上是從低維度理解神經網路的訓練,其中也有難以拉伸的例外,下圖所示的圓套圓的情況,就是難以在二維空間將其拉伸到理想的位置的例子。
但,增加神經元,可以在 三維空間 中輕松將其分離。
看!
歸納 同樣對於復雜問題可以通過,增加神經元在高維度通過更長且復雜的方式解決。
但是例如兩個相互套起來的環,按照推測需要在四維空間中才能完全分開,然而我們難以想像四維空間,在現實世界的數據集中,這種死結或者纏繞問題可能會更復雜。
對於神經網路來,可以選擇 將打成死結的數據盡可能拉伸開,而不是完全解開 ,如下圖,對於分類問題來說,已經具有較高的准確率和召回率。
部分情況下,為了更精確地分類,較寬的神經網路可能相對深度來說更重要。
綜上所述
1. 神經網路中包含語義信息的不在每個獨立的神經單元,而是整個空間。 神經網路在最後一層能將樣本中諸多變化的因子理清楚並理解其語義,並不是因為某個獨立神經元中包含了什麼特定的語義,而是 對整個空間進行變換後從最終的表徵層中學到的 ,經過學習,神經網路會 放大某些相關因子,同時縮小某些無關因子 。
2. 神經網路學習到的輸入到輸出的映射在很大程度上是不連續的。 就像上面圖中為了解開一個死結所做的拉伸結果一樣, 在人看來,在拉伸距離較大的地方我們可以認為這種映射是連續的, 然而 對於仍然纏繞在一起的部分,之前可以用來劃分界限的直線或者超平面已經無法連續 。
通過仔細觀察可以區分出來,但是上文只是一個簡單的例子,現實世界中的真實數據較為復雜,對於肉眼來說可能很難分清楚纏繞在一起的部分。對於神經網路來說, 對抗樣本已經嚴重的跨過了用於分類的界限 ,而對於肉眼其實還 看不出來它有移動。
()線性特性的攻擊行為()和()高效製造對抗樣本的方法()
參考論文:
《Explaining and harnessing adversarial examples》
《對抗性例子的解讀和掌握》
深度神經網路在高緯空間中的線性特性已經足以產生這種攻擊行為 ,並提出了一種 更高效生成對抗樣本的方法 ,接下來我們就簡單分析一下這一理論和方法。
目前神經網路為了提高訓練效率所使用的激活函數在局部都過於線性。
例如:
類比先前舉出的拓撲學例子,在 最後的表徵層 都是 通過直線或超平面完成的分類 ,在線性的假設下,暫且不通過二維或三維空間來理解,先從一個簡單的數學公式角度開始。
數學解釋
公式內容解釋:
w 是訓練好的參數向量
x 表示真實樣本數據向量
η 表示給圖像加入的噪音向量
x ~表示加入噪音後新生成的樣本
當加入足夠小的 η 時,肉眼無法區分出 x 的變化,直觀感覺上左邊的式子可能也不會變化很大。
事實上 ,然而 η 當的方向與 w 完全一致的時候,即使很小,也會使整個激活值變化很大。
假設證明:
如果 w 是一個 n 維向量,而其權值的平均大小為 m,那麼激活值將會增加 nm。可見,在一個肉眼幾乎無法差覺的擾動干擾下,對神經網路最終激活層的計算會產生巨大的干擾,從而迷惑神經網路訓練出來的模型。
尋找正確方向
當 η 與 w 的方向一致時會使激活值最大,那麼,如何找到這個正確的方向呢?
結論,那就是損失函數在待構造樣本上的梯度方向,即下面的式子。
ε 是一個調節系數
sign() 是一個符號函數,代表的意思也很簡單,就是取一個值的符號
(當值大於 0 時取 1,當值等於 0 時取 0,當值小於 0 時取 -1)
▽ 表示求 x 的梯度,可以理解為偏導,
J 是訓練模型的損失函數。
結論的由來
在正常的神經網路模型訓練過程中,有一個過程叫反向傳播,就是對參數求偏導,然後將參數更新,我們結合下面這張圖看一下。
假設圖中的函數即為 損失函數 ,為了使損失函數降到最低,我們會根據當前值的梯度去調整。
當梯度小於 0 的時候我們可以看出,當前值需要右移。
而當梯度大於 0 的時候,當前值需要左移。
這個過程實際上就是用 θ 減去 θ。擴展到損失函數 J(θ, x, y) 中,θ 即為 我們要調整的參數 ,因此在樣本 x 和 y 不改變的情況下,我們會**不斷去調整參數 θ **以尋求局部最優解,即 θ = θ - θ 。
生成對抗樣本,也可以採用類似的方法,那就是 固定參數 θ,調整 x 同時使損失函數增大 ,而不是變小,此時就應該讓 x 往相反的方向走,即 x = x + x ,這樣是不是很容易可以理解上面 η 的定義呢?在實踐中,我們還需要通過 ε 這個參數來 調節噪音的大小 ,這種方法相比之前提到的優化方法非常高效,基本只需要一次計算就可以找到對抗樣本,因此作者將這種方法叫做 快速梯度符號法 (Fast Gradient Sign Method,FGSM)。總結一下FGSM,這種方法通過替換目標值 y 就可以 讓攻擊樣本朝著指定的分類目標走 ,即,可以做任意目標的欺騙。
將線性假設簡化到二維空間,我們要求的 η 其方向正好就接近於參數 w 的方向,不再展開說明,有興趣的讀者可以自行畫一畫。
建立在一個高維空間線性的假設或猜測前提下,需要 實驗 支撐,根據下列圖片分析展開。
圖片解釋
這張圖是對數據集CIFAR-10的分類器的決策邊界示意圖。
其中每個小格子代表的是不同的CIFAR-10樣本,
每個小格子中:
橫向從左往右代表的是FGSM演算法中的梯度方向,
縱向代表的是FGSM梯度方向的正交方向,
白色表示模型能分類正確的情況
彩色代表預測出錯的情況
不同的顏色代表不同的錯誤預測分類。
可以看出,在出錯的區域都程線性分布,另外,如果橫軸的方向走的不夠遠,即便再往其他方向走都無法使模型出錯,而一單進入這個區域,就會出現大量的對抗樣本。而在隨機找到的對抗樣本中,這種分布也是很隨機的,甚至很難找到,見下圖。
從實驗結果表明
高維空間中的線性假設也是合理的
舉例
一匹叫做 Clever Hans 的馬,剛出現的時候人們認為這匹馬會做算術,但實際上它只是會閱讀人的表情,當它點馬蹄的次數接近正確答案時,人們的表情會更興奮,它就知道該這個時候停止了。
隱喻神經網路,一個測試效果良好的分類器,其實並不像人類一樣學習到了所分類樣本的真正底層概念,只不過剛好構建了一個在訓練數據上運行相當良好的模型,所以,你以為你以為的就是你以為的嗎?
分類器能夠在訓練集的不同子集上訓練時獲得大致相同的分類權重,因為機器學習演算法能夠泛化, 基礎分類權重的穩定性反過來又會導致對抗性樣本的穩定性。因此, 對抗攻擊可以認為是存在於任何神經網路模型。
以上是論文二的線性特性的攻擊行為
高效製造對抗樣本的方法
目前來看還沒有能夠完全抵抗這種攻擊的方法,其實結合攻擊的原理也不難看出,即便分類器做得再好,總能使一個樣本用最小的干擾走到錯誤的分類區域,我們能做的更多是如何構造魯棒性更強的模型,同時也保持對這個領域的關注。『Survey』(注意第一篇論文的引用有注釋)中總結的目前抵禦攻擊的辦法可以分為三大類:
1.修改訓練樣本 ———— 通過添加更多的對抗樣本到訓練集中可以有效避免一部分攻擊 ,但這更像是一種無奈的做法, 當擴大樣本集的時候,其實分類邊界有可能也在隨之擴大 。
2.修改訓練網路 ,這類方法會對訓練網路做出一定調整,其中有一種方式是模擬生物學 在最後一層使用更加非線性的激活函數 ,但這種方式又會 導致訓練效率和效果下降 。修改訓練網路的方法分為 完全抵抗 和 僅檢測 兩種方式,完全抵抗其實就是讓模型能將對抗樣本識別為正確的分類,而僅檢測是為了發現這種攻擊樣本,從而拒絕服務。
3.附加網路 ,這種方式是在 不改變原有模型的情況下使用額外的網路進行輔助 ,這樣可以使原有網路保持不變,其中最有效的一種方式是生成式對抗網路——GAN。同樣的,這種方式也分為 完全抵抗 和 僅檢測 兩種方式。
總結一下
定義:
對抗樣本:是指在數據集中通過故意添加細微的干擾所形成的輸入樣本,會導致模型以高置信度給出一個錯誤的輸出。
原因分析:
對抗樣本出現的主要原因之一是過度線性, 神經網路主要是基於線性塊構建的,實現的整體函數被證明是高度線性的,如果一個線性函數具有許多輸入,那麼它的值可以非常迅速地改變。
參考:
❹ 什麼是生成對抗網路
生成式對抗網路(GAN, Generative Adversarial Networks )是一種深度學習模型,是近年來復雜分布上無監督學習最具前景的方法之一。模型通過框架中(至少)兩個模塊:生成模型(Generative Model)和判別模型(Discriminative Model)的互相博弈學習產生相當好的輸出。原始 GAN 理論中,並不要求 G 和 D 都是神經網路,只需要是能擬合相應生成和判別的函數即可。但實用中一般均使用深度神經網路作為 G 和 D 。一個優秀的GAN應用需要有良好的訓練方法,否則可能由於神經網路模型的自由性而導致輸出不理想。
❺ LSGAN:最小二乘生成對抗網路
解決問題: 解決傳統 GAN 生成圖片質量不高,訓練不穩定的問題。
做法: 將傳統 GAN 的 交叉熵損失函數 換成 最小二乘損失函數
本篇主要通過GAN對比來學習LSGAN
通過例子介紹:
使用 位於決策邊界正確側 但仍然 遠離真實數據的假樣本 更新生成器時,交叉熵損失函數將導致梯度消失的問題。
如圖 (b)所示,當我們使用 假樣本 (品紅色)通過使鑒別器相信它們來自真實數據來更新生成器時,它 幾乎不會引起錯誤 ,因為它們在正確的一側,既決策邊界的真實數據面。
然而,這些樣本 仍然離真實數據很遠 ,我們想把它們拉得接近真實數據。
問題總結:在交叉熵損失函數情況下,判別器判定真實面的假數據距離真實數據較遠,效果不足。
基於這一觀察,我們提出了最小二乘生成對抗網路,它採用 最小二乘損失函數作為鑒別器 。
最小二乘損失函數能夠 將偽樣本移向決策邊界 ,
因為最小二乘損失函數會 懲罰位於決策邊界正確一側很遠的樣本 。
如圖 (c)所示,最小二乘損失函數將懲罰假樣本(品紅色),並 將它們拉向決策邊界 ,使它們被正確分類。
基於這一特性,最小二乘能夠生成更接近真實數據的樣本
總結概括
最小二乘: 最小二乘損失與交叉熵損失相比,優勢在於生成樣本在欺騙判別器的前提下同時讓生成器把 距離決策邊界比較遠 的生成圖片拉向 決策邊界 ,這樣保證了生成高質量的樣本。
交叉熵: 以交叉熵作為損失,會使得生成器 不會再優化那些被判別器識別為真實圖片的生成圖片 ,即使這些生成圖片距離判別器的決策邊界仍然很遠,也就是距離真實數據比較遠,因為此時的交叉熵損失已經很小,生成器完成了為它設計的目標。
LSGAN的缺陷: 在於它並 沒有解決當判別器足夠優秀時生成器發生梯度彌散的問題
梯度彌散: 使用反向傳播演算法傳播梯度的時候,隨著傳播深度的增加, 梯度的幅度會急劇減小,會導致淺層神經元的權重更新非常緩慢 ,不能有效學習。
這樣一來,深層模型也就變成了前幾層相對固定,只能改變最後幾層的淺層模型。
GANs 的損失函數:
LSGANs的損失函數:
最小二乘
公式注釋:
鑒別器 D
生成器 G
G 的目標是學習數據 x 上的分布 pg。
G 服從均勻或高斯分布 pz(z)對輸入變數 z 進行采樣開始,然後將輸入變數 z 映射到數據空間 G(z; θg)。
D 是分類器 D(x; θd),其目的是識別圖像是來自訓練數據還是來自g。
z 為噪音,它可以服從歸一化或者高斯分布,為真實數據 x 服從的概率分布,為 z 服從的概率分布。為期望值,同為期望值。
假設我們對鑒別器使用 a-b 編碼方案 ,其中a 和b 分別是假數據和真實數據的標簽。
c 表示 G 預測的D 相信的假數據的值。
最小二乘法的具體優點:
1.決策邊界固定(鑒別器參數固定),生成樣本靠近決策邊界,更接近真實數據。
2.懲罰遠離決策邊界的樣本時,可以在更新生成器時生成更多的梯度,這反過來緩解了梯度消失的問題(梯度消失:前面隱藏層的學習速率低於後面隱藏層的學習速率,即隨著隱藏層數目的增加,分類准確率反而下降)
GAN中:最小化等式 1 產生最小化詹森-香農散度:
LSGAN:探討LSGAN與f散度的關系
公式解釋:(下文關於a-b編碼證明a,b,c條件)
將
加入到
並不會改變最佳值,因為並沒有引入含有G的參數
從而我們可以推出G固定情況下的最佳鑒別器:
使用 pd 來表示 pdata,來重新表示4式
此處不詳細證明
化簡為:
如果: b-c = 1, b-a = 2,則
是皮爾遜散度,總之可證,當 a,b,c滿足b-c = 1 和 b-a = 2的條件,則最小化等式 4 會使 pd + pg 和 2pg 之間的皮爾遜 χ2 散度最小化。
採用 a-b編碼方案:
由上述證明可設a = 1, b = 1, c = 0
採用 0-1二進制編碼方案 :
兩式接近,但此處,論文作者採用a-b編碼方式,來實現實驗:
帶上其中一個實驗:
參考論文:Mao X D, Li Q, Xie H R, et al. Least squares generative
adversarial networks[C]//Proceedings of the 2017 IEEE
International Conference on Computer Vision, Venice, Oct
22- 29, 2017. Washington: IEEE Computer Society, 2017:
2813-2821.
❻ 生成式對抗網路GAN(一)
上面這張圖很好的很好的闡述了生成式對抗網路的結構~~ 博弈論
此圖給出了生成性對抗網路的概述。目前最重要的是要理解GAN是使兩個網路協同工作的一種方式 - 而Generator和Discriminator都有自己的架構。為了更好地理解這個想法的來源,我們需要回憶一些基本的代數並問自己 - 我們怎麼能欺騙一個比大多數人更好地分類圖像的神經網路?
在我們詳細描述GAN之前,讓我們看一下類似的主題。給定一個訓練有素的分類器,我們可以生成一個欺騙網路的樣本嗎?如果我們這樣做,它會是什麼樣子?
事實證明,我們可以。
甚至更多 - 對於幾乎任何給定的圖像分類器,可以將圖像變換為另一個圖像,這將被高度置信地錯誤分類,同時在視覺上與原始圖像無法區分!這種過程稱為對抗性攻擊,生成方法的簡單性解釋了很多關於GAN的內容。
精心計算的示例中的對抗性示例,其目的是錯誤分類。以下是此過程的說明。左邊的熊貓與右邊的熊貓無法區分 - 但它被歸類為長臂猿。
圖像分類器本質上是高維空間中的復雜決策邊界。當然,在對圖像進行分類時,我們無法繪制這個邊界。但我們可以安全地假設,當訓練結束時,網路並不是針對所有圖像進行推廣的 - 僅針對我們在訓練集中的那些圖像。這種概括可能不是現實生活的良好近似。換句話說,它適用於我們的數據 - 我們將利用它。
讓我們開始為圖像添加隨機雜訊並使其非常接近零。我們可以通過控制雜訊的L2范數來實現這一點。數學符號不應該讓您擔心 - 出於所有實際目的,您可以將L2范數視為向量的長度。這里的訣竅是你在圖像中擁有的像素越多 - 它的平均L2范數就越大。因此,如果雜訊的范數足夠低,您可以預期它在視覺上難以察覺,而損壞的圖像將遠離矢量空間中的原始圖像。
為什麼?
好吧,如果HxW圖像是矢量,那麼我們添加到它的HxW雜訊也是矢量。原始圖像具有相當密集的各種顏色 - 這增加了L2規范。另一方面,雜訊是一組視覺上混亂的相當蒼白的像素 - 一個小范數的矢量。最後,我們將它們添加到一起,為損壞的圖像獲取新的矢量,這與原始圖像相對接近 - 但卻錯誤分類!
現在,如果原始類 Dog 的決策邊界不是那麼遠(就L2范數而言),這種加性雜訊將新圖像置於決策邊界之外。
您不需要成為世界級拓撲學家來理解某些類別的流形或決策邊界。由於每個圖像只是高維空間中的矢量,因此在其上訓練的分類器將「所有猴子」定義為「由隱藏參數描述的該高維斑點中的所有圖像矢量」。我們將該blob稱為該類的決策邊界。
好的,所以,你說我們可以通過添加隨機雜訊輕松欺騙網路。它與生成新圖像有什麼關系?
現在我們假設有兩個結構模型,相當於兩個神經網路:
這是關於判別網路D和生成網路G的價值函數(Value Function),訓練網路D使得最大概率地分對訓練樣本的標簽(最大化log D(x)),訓練網路G最小化log(1 – D(G(z))),即最大化D的損失。訓練過程中固定一方,更新另一個網路的參數,交替迭代,使得對方的錯誤最大化,最終,G 能估測出樣本數據的分布。生成模型G隱式地定義了一個概率分布Pg,我們希望Pg 收斂到數據真實分布Pdata。論文證明了這個極小化極大博弈當且僅當Pg = Pdata時存在最優解,即達到納什均衡,此時生成模型G恢復了訓練數據的分布,判別模型D的准確率等於50%。
接著上面最後一個問題:怎麼才能生成我指定的圖像呢?
指定標簽去訓練
顧名思義就是把標簽也帶進公式,得到有條件的公式:
具體怎麼讓CGAN更好的優化,這里不解釋,就是平常的優化網路了。
參考文章:
本文大部分翻譯此外文
通俗易懂
小博客的總結
唐宇迪大神
❼ 生成對抗網路GAN的Loss
GAN同時要訓練一個生成網路(Generator)和一個判別網路(Discriminator),前者輸入一個noise變數 ,輸出一個偽圖片數據 ,後者輸入一個圖片(real image)以及偽圖片(fake image)數據 ,輸出一個表示該輸入是自然圖片或者偽造圖片的二分類置信度 ,理想情況下,判別器D需要盡可能准確的判斷輸入數據到底是一個真實的圖片還是某種偽造的圖片,而生成器G又需要盡最大可能去欺騙D,讓D把自己產生的偽造圖片全部判斷成真實的圖片。
根據上述訓練過程的描述,可以定義一個損失函數:
其中 , 分別是真實的圖片數據以及noise變數。
而優化目標則是:
參考資料
❽ GAN生成對抗網路(一)
GAN(Generative Adversarial Networks)是兩個網路的的組合, 一個網路生成模擬數據, 另一個網路判斷生成的數據是真實的還是模擬的。生成模擬數據的網路要不斷優化自己讓判別的網路判斷不出來, 判別的網路也要優化自己讓自己判斷得更准確。 二者關系形成對抗博弈,因此叫 對抗神經網路 (生成對抗網路)。實驗證明, 利用這種網路間的對抗關系所形成的網路, 在無監督及半監督領域取得了很好的效果, 可以算是用網路來監督網路的一個自學習過程。在GAN發明之前,變分自編碼器被認為是理論完美、實現簡單,使用神經網路訓練起來很穩定, 生成的圖片逼近度也較高, 但是人類還是可以很輕易地分辨出真實圖片與機器生成的圖片。
生成對抗網路包含了 2 個子網路: 生成網路(Generator, G)和判別網路(Discriminator,D), 其中生成網路負責學習樣本的真實分布,判別網路負責將生成網路采樣的樣本與真實樣本區分開來。
生成網路 G(𝐳) 生成網路 G 和自編碼器的 Decoder 功能類似, 從先驗分布 中采樣隱藏變數 ,通過生成網路 G 參數化的 分布, 獲得生成樣本 ,如下圖所示。 其中隱藏變數𝒛的先驗分布 可以假設屬於某中已知的分布,比如多元均勻分布 。
可以用深度神經網路來參數化, 如下圖所示, 從均勻分布 中采樣出隱藏變數𝒛, 經過多層轉置卷積層網路參數化的 分布中采樣出樣本 。
判別網路 D(𝒙) 判別網路和普通的二分類網路功能類似,它接受輸入樣本𝒙,包含了采樣自真實數據分布 的樣本 ,也包含了采樣自生成網路的假樣本 , 和 共同組成了判別網路的訓練數據集。判別網路輸出為𝒙屬於真實樣本的概率 ,我們把所有真實樣本 的標簽標注為1,所有生成網路產生的樣本 標注為0, 通過最小化判別網路預測值與標簽之間的誤差來優化判別網路參數。
我們的目標很明確, 既要不斷提升判斷器辨別真假圖像樣本的能力, 又要不斷提升生成器生成更加逼真的圖像,使判別器越來越難判別。
對於判別網路 D ,它的目標是能夠很好地分辨出真樣本 與假樣本 。即最小化圖片的預測值和真實值之間的交叉熵損失函數:
其中 代表真實樣本 在判別網路 的輸出, 為判別網路的參數集, 為生成樣本 在判別網路的輸出, 為 的標簽,由於真實樣本標注為真,故 , 為生成樣本的 的標簽,由於生成樣本標注為假,故 。 根據二分類問題的交叉熵損失函數定義:
因此判別網路的優化目標是:
去掉 中的負號,把 問題轉換為 問題,並寫為期望形式:
對於生成網路G(𝒛) ,我們希望 能夠很好地騙過判別網路 , 假樣本 在判別網路的輸出越接近真實的標簽越好。也就是說,在訓練生成網路時, 希望判別網路的輸出 越逼近 1 越好,此時的交叉熵損失函數:
把 問題轉換為 問題,並寫為期望形式:
再等價轉化為:
GAN的優化過程不像通常的求損失函數的最小值, 而是保持生成與判別兩股力量的動態平衡。 因此, 其訓練過程要比一般神經網路難很多。
把判別網路的目標和生成網路的目標合並,寫成min-max形式:
原GAN論文中:
這里為了好理解,把各個符號梳理的更清晰了,注意符號和網路參數的對應。
理想情況下 , 會有更精確的鑒別真偽數據的能力,經過大量次數的迭代訓練會使 盡可能模擬出以假亂真的樣本, 最終整個GAN會達到所謂的納什均衡, 即 對於生成樣本和真實樣本鑒別結果為正確率和錯誤率各佔50%。下面具體從理論層面來推導。
現在從理論層面進行分析, 通過博弈學習的訓練方式,生成器 G 和判別器 D 分別會達到什麼狀態。 具體地,來看以下 2 個問題:
首先我們通過 一維正態分布的例子給出一個直觀的解釋,如下圖所示,黑色虛線曲線代表了真實數據的分布 , 為某正態分布 , 綠色實線代表了生成網路學習到的分布 , 藍色虛線代表了判別器的決策邊界曲線, 圖中(a)(b)(c)(d)分別代表了生成網路的學習軌跡。在初始狀態,如圖 (a)所示, 分布與 差異較大,判別器可以很輕松地學習到決策邊界,即圖(a)中的藍色虛線,將來自 的采樣點判定為 0, 中的采樣點判定為 1。 隨著生成網路的分布 越來越逼近真實分布 ,判別器越來越困難將真假樣本區分開,如圖 (b)(c)所示。 最後,生成網路性能達到最佳,學習到的分布 ,此時從生成網路中采樣的樣本非常逼真, 判別器無法區分,即判定為真假樣本的概率均等,如圖(d)所示。
固定生成器G的參數 ,判別器D最佳能達到的狀態:
證明: 對於給定的生成器G,要讓判別器D達到最優,我們的目標是最大化損失函數,其積分形式為:
對於給定的 ,真實分布始終是固定的,所以 和 都是定值,於是對於判別器D,要找出
的最大值,其中 是判別器網路參數,對於函數 ,不難得到 在 處取得極大值且是最大值。因此可得 的極值點也為
故判別器 能達到的最佳狀態為定理中給出的式子。
現在考慮第二個問題。
JS 散度(Jensen–Shannon divergence)
對於KL散度, ,是不對稱的。但JS散度是對稱的。
當 達到 時,考慮此時 和 的 散度:
考慮到判別網路到達 時,此時的損失函數為:
於是我們可以得到:
對於生成網路 而言,目標是最小化損失函數,由於 ,因此 取得最小值僅在 時(此時 ), 取得最小值:
此時生成網路達到 狀態是:
即 的學到的分布 與真實分布 一致,網路達到納什均衡點,此時:
即對於生成器生成的圖像有0.5的概率被判定為真,也有0.5的概率被判定為假。
❾ BEGAN邊界平衡生成對抗網路
解決問題: GAN訓練模型較為困難
做法: BEGAN並沒有直接去估計生成分布 pg 和真實分布 px 的距離,而是估計兩者分布誤差的距離。
分布之間的誤差分布相近的話,也可以認為 pg 和 px 是相近的。
BEGAN 將判別器 G 設計成自編碼器用來重構分布誤差,並優化分
布誤差之間的距離,如下式:
BEGAN 提出一種均衡概念,用以平衡 G 和 D 的訓練,使 GAN 即使使用很簡單的網路,不加如 BN、minibath 等訓練技巧也能得到很好的訓練效果。
同時還提出了一種能夠在樣本多樣性和樣本質量上均衡的超參數以及衡量模型收斂性的方法。
實驗中發現 BEGAN 收斂很快,並且 G 和 D 訓練平衡,但超參數的選取比較考驗經驗。
1.使得GAN具有快速而穩定的收斂的標准訓練過程。
2.引入均衡概念,均衡鑒別器和發生器的功率。
3.提供控制圖像多樣性和視覺質量之間權衡的新方法
4.收斂的近似度量
使用自動編碼器作為鑒別器,使用從瓦瑟斯坦距離(類似於我先前提到的KL散度,具有正定性,對稱性,三角不等式特性)導出的損失來匹配自動編碼器損失分布。
L:R^Nx->R+訓練像素式自動編碼器的 1.損失函數:
BEGAN中提出了一種思路,它使用了自動編碼器做為判別器 D,它所做的是盡可能地匹配誤差的分布而不是直接匹配樣本的分布,如果誤差的分布之間足夠的接近,那麼真實的樣本之間的分布也會足夠的接近。
D:自動編碼器功能
n:是目標標准
v:是Nx維度的樣例
u1,2是自動編碼器損失函數的兩個分布
Γ(u1,u2)是1和2的所有組合的集合
m1,2∈R是他們各自的平均值
瓦瑟斯坦距離為:
其中x1和x2是從
利用詹森不等式,可以導出W1(u1,u2)的下界:
目標是優化自動編碼器損失分布之間的瓦瑟斯坦距離的下限,而不是樣本分布之間的下限。
設計鑒頻器,使自動編碼器損耗之間的等式1最大化。
設u1為損失L(x)的分布,其中x為實樣本。
設u2為損失L(G(z))的分布
其中G : RNz →RNx為生成函數
z∈[-1,1]Nz為維數Nz的均勻隨機樣本
由於m1,m2 ∈R+到達最大化| m1-m2 |只有兩種可能的解決方案:
選擇解決方案(b)作為我們的目標,因為最小化m1自然會導致對真實圖像的自動編碼。
給定鑒別器和發生器參數θD和θG
每個參數都通過最小化損耗LD和LG來更新
將問題表示為GAN目標,其中zD和zG是z的樣本:
在BEGAN中G和D對應的損失函數:
2.引入平衡:
當產生器和鑒別器損失之間保持平衡,滿足情況:
生成的樣本不能被鑒別器從真實樣本中區分出來,那麼它們的 誤差分布包括預期誤差應該是相同的 ,使得其均衡。
γ引入來平衡D既可以對真實圖像自動編碼,又可以正確的判別輸入的樣本。γ很小時,說明分母部分值很大,那麼此時模型專注於識別的正確率,則出現G只生成可以騙過D的圖像
鑒別器有兩個相互競爭的目標:
1.自動編碼真實圖像和從生成的圖像中鑒別真實圖像。
2.γ項讓我們平衡這兩個目標。
較低的γ值導致較低的圖像多樣性 ,因為鑒別器更側重於自動編碼真實圖像。
將γ稱為分集比。有一個自然的邊界,圖像清晰,有細節。
對於θD和θG和每一訓練步t,來說的目標
γ∈[0,1]是一個超參數,值越小代表生成的樣本多樣性越低
λk是 kt + 1 的更新步長,kt表示對D判別能力的重視度
採用比例控制理論來維持平衡
這是使用一個變數kt ∈[0,1]來實現的,以控制在梯度下降過程中對L(G(zD))的重視程度。
我們初始化k0 = 0.λk是k的比例增益;
在機器學習術語中,它是k的學習率。
我們在實驗中使用了0.001。
本質上,這可以被認為是閉環反饋控制的一種形式,其中kt在每一步被調整以保持等式4。
在早期訓練階段,G傾向於為自動編碼器生成易於重建的數據,因為生成的數據接近於0,並且還沒有準確地了解真實的數據分布。
這時L(X)>L(G(z))
與需要交替訓練 D 和 G 或預訓練 D 的傳統訓練相比,BEGAN提出的方法開始不需要穩定訓練。
Adam在訓練中使用默認的超參數
θD 和 θG 基於各自的損失通過獨立的Adam優化器獨立更新。
我們通常使用 n = 16 的批量。
3.全局收斂度量:
確定 GANs 的收斂性通常是一項困難的任務,因為最初的公式被定義為零和博弈。
結果,一個虧損上升,另一個虧損下降。
我們通過使用 平衡概念 導出了 收斂的全局度量 :我們可以將收斂過程框架為找到比例控制演算法(控制裝置輸出信號與輸人信號間呈線性關系的控製作用數學表示法)|γL(x)-L(G(Zg))|的 瞬時過程誤差絕對值最小的最近重構L(x) 。這一衡量標准由兩項和:
該度量可用於確定網路何時達到其 最終狀態 或 模型是否已崩潰 也即是模型是否收斂。
4.模型架構
鑒別器: R Nx->R Nx是一個卷積深度神經網路,其架構為自動編碼器。
Nx = H × W × C 是x 尺寸的簡寫
其中 H、 W、 C 是高度、寬度和顏色。
我們使用自動編碼器和深度編碼器和解碼器。目的是盡可能簡單,以避免典型的GAN詭計。
結構如圖 1 所示。我們使用了 3 × 3 的卷積,在它們的輸出端應用了指數線性單位。
每層重復多次(通常為 2 次)。我們觀察到,重復次數越多,視覺效果越好。
卷積濾波器隨著每次下采樣線性增加。
下采樣作為步長為 2 的子采樣實現,上采樣由最近鄰完成。
在編碼器和解碼器之間的邊界處,經過處理的數據的張量通過完全連接的層被映射到嵌入狀態 h ∈RNh 和從嵌入狀態 h∈ RNh 來,其中 Nh 是自動編碼器的隱藏狀態的維度,而沒有任何非線性。
生成器 G : RNz → RNx 使用與鑒別器解碼器相同的架構(雖然權重不同)。
但為了簡化。輸入狀態為均勻采樣的 z∈ [-1, 1]Nz。
這個簡單的架構實現了高質量的結果,並展示了技術的健壯性。
此外,可選的細化有助於梯度傳播,並產生更清晰的圖像。受深度殘差網路[8]的啟發,使用消失殘差初始化網路:對於連續的相同大小的層,層的輸入與其輸出相結合:inx+1 =carry×inx+(1 carry)×outx。
在實驗中,我們從進位= 1 開始,經過 16000 步
逐漸減少到 0。
我們還引入了跳躍連接[8, 17, 9]來幫助梯度傳播。第一解碼器張量 h0 是通過將 h 投影到 8 × 8 × n 張量而獲得的。在每個上采樣步驟之後,輸出與上采樣到相同維數的 h0 連接。
這在隱藏狀態和解碼器的每個連續上采樣層之間創建了跳躍連接。
我們沒有探索 GANs 中通常使用的其他技術,如批量歸一化、缺失、轉置卷積或卷積濾波器的指數增長,盡管它們可能會進一步改進這些結果
5.通過實驗來理解
變 γ 的值時,模型生成結果的多樣性和質量對比效果如下所示,從中可以看出
γ值越小,生成的圖像越清晰,也更接近;
γ值越大,多樣性提高了,但是圖像的質量同樣也下降了
BEGAN的空間連續性與其他GAN相比表現更優異:
伴隨著模型收斂,圖像質量也在不斷提升
總之:BEGAN針對 GAN 訓練難易度難、控制生成樣本多樣性難、平衡鑒別器和生成器收斂難等問題,做出了很大的改善。
參考論文:Berthelot D, Schumm T, Metz L. BEGAN: boundary equilibrium generative adversarial networks[J]. arXiv:1703.10717,
2017