GAN學習筆記

2021-09-27 18:27:57 字數 1364 閱讀 5734

參考原文:

gan的思想是是一種二人零和博弈思想(two-player game),博弈雙方的利益之和是乙個常數,比如兩個人掰手腕,假設總的空間是一定的,你的力氣大一點,那你就得到的空間多一點,相應的我的空間就少一點,相反我力氣大我就得到的多一點,但有一點是確定的就是,我兩的總空間是一定的,這就是二人博弈,但是總利益是一定的。

在gan中,有兩個這樣的博弈者,乙個是生成模型(g),乙個是判別模型(d):

顯然這是兩種「對抗「性質的網路,生成網路的目的就算讓自己的造樣本的能力盡可能的強(也就是讓判別模型判定為真實樣本1),判別模型的目的就是讓自己的區分能力盡可能的好(也就是把生成模型生成的樣本判定為假樣本0)。那麼極限平衡狀態就是,生成模型生成的樣本無法被判別模型判別(0.5)。

上面可以知道gan是由兩種對抗性質的網路組合而成,那這兩種網路是如何訓練的呢?又是如何在訓練過程中完善彼此的呢?

訓練方法:單獨交替迭代訓練

意思就是:先假設其中乙個已經訓練好了,來幫助訓練另乙個,然後用這個訓練好的模型去幫助訓練,然後再反過來,如此交替訓練。

為什麼要這樣訓練呢?是因為gan本身特性如此,生成網路和判別網路本身是兩個不相干的網路,不可以同步訓練,只能分開訓練,但是彼此又是相輔相成。所以訓練其中乙個又需要另外乙個來搭配訓練。

細看訓練過程

為什麼這樣?這就要看判別模型的目的了,判別模型就是為了區分生成模型生成出來的樣本和真樣本,為了這個目的,所以直接把生成模型生成出來的樣本打上假標籤,然後就形成了最簡單的二分類問題,直接訓練就可以達到目的。

這裡需要注意的是,該步驟是訓練生成模型,而判別模型是已經訓練好的,所以判別模型的引數是不可以發生變化的。

完成了上述兩步,則gan訓練的乙個迴圈就完成了,再進行第二次迴圈,直到生成模型達到我們需要的程度位置。

這是原文中的目標公式(優化目標):

簡單來說,這就是乙個最大最小優化問題,先找到d(判別),使得v最大,然後在此基礎上找到g(生成),使得v最小。這樣理解就簡單了,從公式可以看出,是由兩個期望相加而成。

第乙個期望可以理解為,輸入真實樣本(1)後,判別模型d的判定結果的期望,所以這裡的期望當然是越大越好。

第二個期望可以理解為,當輸入為生成模型生成的樣本時的期望。

優化d的時候,由真樣本x的輸入,也有生成模型生成的樣本的輸入,但是這裡跟生成模型無關,可以看成乙個定值。

優化g的時候,真樣本直接被去掉了,只看生成樣本的輸入。

再續。。。

學習筆記 GAN

gan直觀理解 造假酒的造假者不斷從鑑定師那裡得到反饋從而技術不斷提公升改良製造的假酒越發與真酒無異 鑑定師鑑定技術也隨著不斷提公升。gan 由以下兩部分組成。生成器網路 generator network 它以乙個隨機向量 潛在空間中的乙個隨機點 作 為輸入,並將其解碼為一張合成影象。判別器網路 ...

GAN的學習筆記(1)

1.本文是我的新手作,主要是記錄一些學習gan 生成式對抗網路 的過程和心得體會,能夠提供一些學習的動力,各位看官能看就看。用到的是系統和相關軟體是win7 anaconda3 tensorflow gpu 1.8.0,python版本是3.5.5。至於為什麼不用ubuntu系統,emm主要是怕折騰...

GAN 學習筆記 1 leah

例如 乙個能夠生成二次元影象的gan 訓練乙個generator g 輸入乙個vector,輸出乙個image 同時訓練乙個discriminator d 輸入乙個image,輸出乙個score,評價image有多真實 兩者相互對抗,目標是g生成出足以騙過well trained d 的 訓練過程 ...