提出一個GAN
(Generative Adversarial Nets)
1 方法
(1)生成模型G(Generative),是用來得到分布的,在統(tǒng)計學眼里,整個世界是通過采樣不同的分布得到的,生成東西的話,目前就是要抓住一個數(shù)據(jù)的分布,
(2)辨別模型D(D) ,他是來辨別你的樣本究竟是從真實世界來的呢,還是來自于生成模型G
想象一場假幣制造比賽,有兩名參賽者:造幣專家(生成器)和驗幣專家(判別器)。
-
造幣專家(生成器):這位專家的任務是制造偽造的硬幣,希望這些偽造硬幣盡量像真正的硬幣一樣。生成器開始時可能只是隨機制造硬幣,但通過不斷練習,它學會了如何制造更加逼真的偽造硬幣。
-
驗幣專家(判別器):驗幣專家的任務是檢查硬幣,確定它們是真正的還是偽造的。判別器開始時可能很容易識別偽造硬幣,但隨著時間的推移,它變得越來越擅長區(qū)分真?zhèn)巍?/p>
比賽的規(guī)則如下:
-
造幣專家(生成器)制造了一些偽造硬幣,并將它們交給驗幣專家(判別器)。
-
驗幣專家(判別器)嘗試檢查硬幣,然后告訴造幣專家哪些硬幣是偽造的,哪些是真的。
-
造幣專家(生成器)收到反饋后,嘗試改進偽造硬幣的制造方法,以使它們更難被驗幣專家(判別器)識別。
-
驗幣專家(判別器)也在不斷提高自己的檢測技能,以偵測越來越逼真的偽造硬幣。
這個過程不斷重復,生成器和判別器互相競爭,生成器努力制造更逼真的偽造硬幣,判別器努力提高自己的驗幣技能。隨著時間的推移,生成器越來越擅長制造逼真的偽造硬幣,而判別器越來越擅長檢測它們。最終,生成器制造的偽造硬幣變得如此逼真,以至于判別器幾乎無法區(qū)分真?zhèn)巍?/p>
2 可視化舉例
以一維度數(shù)據(jù)做可視化
紫色線條是判別器D,綠色線條是生成器G,黑色線條是真實分布
圖(a)初始狀態(tài) 此時可以觀察到 真實分布(黑色)和生成器(綠色)的分布差別較大,判別器(紫色)
圖(b)更新判別器(紫色) 此時可以觀察到 判別器(紫色)可以分辨的比較好了,黑色線附近為1 ,綠色線附近為0
圖(c)更新生成器(綠色) 此時可以觀察到 生成器(綠色)像真實數(shù)據(jù)分布靠近,為了使得判別器不分別出來
圖(d)不斷反復,可以看到 綠色生成器要盡量靠近黑色生成數(shù)據(jù),當足夠接近的時候,會發(fā)現(xiàn)判別器輸出就是0.5了,此時就無法分辨了
3 算法流程
最簡單的應用是G和D是MLP
如圖所示
(1)從噪聲中采樣m個樣本得到z,從真實數(shù)據(jù)中采樣m個樣本得到x
(2)先更新判別器,增強判別器
D(x) 表示把真實分布采樣得到的數(shù)據(jù)放到辨別器里,假如辨別器是完美的,那么D(x)是1 log(D(x))是0,如果不完美,則 log(D(x))為負數(shù)
G(z)表示把噪音分布采樣得到的噪音放到生成器里,會生成偽真實x,再放入D判別器,假如辨別器是完美的,那么D(x)是0 整體log(1-D(G(x)))是0 ,如果不完美的話,也會輸出負數(shù)
所以要最大化如下函數(shù),使得接近0
使得判別器函數(shù)輸出盡可能正確,盡可能完美區(qū)分
(3)再更新生成器,使得生成器盡可能糊弄判別器
使得后面一項盡可能小
這樣就會導致生成器盡可能糊弄判別器
k是一個超參數(shù),要保證我們的G和D每次進步差不多,這樣才能保證我們自己的一個有效性
外面的這個for loop就是說我們要迭代N次文章來源:http://www.zghlxwxcb.cn/news/detail-675265.html
怎么判斷收斂是一個比較難的點,因而有些時候不是很有效文章來源地址http://www.zghlxwxcb.cn/news/detail-675265.html
到了這里,關(guān)于GAN | 論文精讀 Generative Adversarial Nets的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!