例如:乙個能夠生成二次元影象的gan
訓練乙個generator(g),輸入乙個vector,輸出乙個image
同時訓練乙個discriminator(d),輸入乙個image,輸出乙個score,評價image有多真實
兩者相互對抗,目標是g生成出足以騙過well-trained d 的
訓練過程
準備乙個二次元影象庫,隨機sample一些vector
把vector輸入g生成,固定g引數,訓練d給影象庫里真實的和g生成的分類
固定d,訓練g使得隨機向量生成的在d中獲得高分
回到2-3的迴圈
g即為所求
每個輸入向量都代表乙個輸出影象,連續的輸入可以得到在某個屬性上連續的輸出影象
gan as structured learning
structure learning 代表著輸出結構化資訊的machine learning,包括,文字等
這類學習很難,因為資訊空間太大,機器要學會創造沒見過的sample,需要有大局觀
傳統的stuctured learning有bottom up(g)和top down (d)兩個方向,結合起來就成為了gan
g and d necessary?
只有g行不行?
變成了auto-encoder : input輸入encoder得到vector(code),把vector輸入decoder,得到,訓練使得輸入和輸出的相同,問題是得到的decoder對於連續的輸入向量不能得到正確的連續的輸出(reasonable image)。
為了解決這個問題有了vae(variational auto-encoder):encoder產生vector和每個dimension的bias。隨機sample一組noise,與bias相乘,加到vector上去,然後再輸入decoder,這樣可以使decoder能夠抵抗一些輸入中的noise
但問題是,此處的pixel error充當loss可能會使得decoder犧牲語義來提高畫素上的準確,比如畫素的空間一致性難以保證,需要比gan更大的網路。
只有d行不行?
窮舉所有的,找到在d中得到高分的(給爺爬!)
好吧 假設真的有辦法合理的窮舉,那如何訓練乙個好的d,需要大量的假的,盡量覆蓋空間中的所有區域,所以就先訓練d,再窮舉,再用窮舉得到的訓練d。。。開始迴圈
以上出現在一些早古graphical model方法中,bayesian network; markov random field之類的
個人猜想:資訊的表象是無意義的,有意義的是發布者和接受者之間達成的共識,gan模擬出了這一過程
評價指標
fid score:表示圖有多真實,一般是個挺大的範圍
GAN的學習筆記(1)
1.本文是我的新手作,主要是記錄一些學習gan 生成式對抗網路 的過程和心得體會,能夠提供一些學習的動力,各位看官能看就看。用到的是系統和相關軟體是win7 anaconda3 tensorflow gpu 1.8.0,python版本是3.5.5。至於為什麼不用ubuntu系統,emm主要是怕折騰...
GAN學習筆記
參考原文 gan的思想是是一種二人零和博弈思想 two player game 博弈雙方的利益之和是乙個常數,比如兩個人掰手腕,假設總的空間是一定的,你的力氣大一點,那你就得到的空間多一點,相應的我的空間就少一點,相反我力氣大我就得到的多一點,但有一點是確定的就是,我兩的總空間是一定的,這就是二人博...
學習筆記 GAN
gan直觀理解 造假酒的造假者不斷從鑑定師那裡得到反饋從而技術不斷提公升改良製造的假酒越發與真酒無異 鑑定師鑑定技術也隨著不斷提公升。gan 由以下兩部分組成。生成器網路 generator network 它以乙個隨機向量 潛在空間中的乙個隨機點 作 為輸入,並將其解碼為一張合成影象。判別器網路 ...