本文淺顯理解通俗的GAN模型
核心思想
GAN的核心思想在于博弈颖变,GAN有兩部分模型構(gòu)成,一個(gè)是生成模型(G),一個(gè)是判別模型(D)虏杰。生成模型用于生成一個(gè)逼真的樣本,判別模型用于判斷模型的輸入是真是假勒虾。通俗來(lái)講纺阔,就是生成模型要不斷提升自己的造假本領(lǐng),最終達(dá)到騙過(guò)判別模型的目的从撼。而判別模型則不斷提升自己的判別能力州弟,達(dá)到辨別真假的目的,這也就形成了博弈低零,也就是對(duì)抗婆翔。
設(shè)計(jì)者的目的是什么
由上文的分析可以發(fā)現(xiàn),兩個(gè)網(wǎng)絡(luò)處于一個(gè)矛盾的關(guān)系掏婶,那么對(duì)抗的結(jié)果究竟是什么啃奴,這個(gè)要取決于我們的目的是什么,比如說(shuō)雄妥,我們的目的是生成逼真的人臉圖像最蕾,那么自然就設(shè)計(jì)生成網(wǎng)絡(luò)博弈獲勝了依溯。
GAN是如何實(shí)現(xiàn)的
在理解GAN網(wǎng)絡(luò)的一些基本思想后,我們應(yīng)該如何根據(jù)這一思想去設(shè)計(jì)實(shí)現(xiàn)GAN呢瘟则?
首先黎炉,我們有兩個(gè)網(wǎng)絡(luò)模型,生成網(wǎng)絡(luò)與判別網(wǎng)絡(luò)醋拧,這兩個(gè)網(wǎng)絡(luò)是相對(duì)獨(dú)立的慷嗜,我們要找到的,是如何實(shí)現(xiàn)這個(gè)博弈的過(guò)程丹壕,也就是如何對(duì)模型進(jìn)行訓(xùn)練庆械。
這里,我們采用的大方法叫做單獨(dú)交替迭代訓(xùn)練菌赖。
單獨(dú)交替迭代訓(xùn)練
1.首先缭乘,我們有一個(gè)簡(jiǎn)單的生成網(wǎng)絡(luò)模型(當(dāng)然未訓(xùn)練時(shí)效果很差),那么我們給這個(gè)模型一個(gè)隨機(jī)的輸入琉用,便會(huì)輸出得到一個(gè)假的樣本集堕绩,而真的樣本集我們本身就有,所以我們得到了真假數(shù)據(jù)集辕羽。
2.在得到真假數(shù)據(jù)集之后逛尚,我們開(kāi)始對(duì)判別模型進(jìn)行訓(xùn)練,訓(xùn)練過(guò)程就是一個(gè)有監(jiān)督的二分類(lèi)問(wèn)題刁愿,即給定一個(gè)樣本绰寞,能判斷出其是真實(shí)存在的(真樣本),還是利用生成網(wǎng)絡(luò)生成的(假樣本)铣口。
3.在完成判定模型的訓(xùn)練之后滤钱,我們要提升生成模型的造假能力,我們將生成網(wǎng)絡(luò)與訓(xùn)練好的判定網(wǎng)絡(luò)串接脑题,我們的目標(biāo)是生成可以迷惑判定模型的圖像件缸,所以我們給生成網(wǎng)絡(luò)一個(gè)隨機(jī)輸入,損失函數(shù)是判定網(wǎng)絡(luò)的輸出是否為真(是否達(dá)到迷惑的效果)叔遂,根據(jù)損失函數(shù)他炊,對(duì)生成網(wǎng)絡(luò)的參數(shù)進(jìn)行更新,(注意:這里判定網(wǎng)絡(luò)的參數(shù)是不改變的已艰,因?yàn)榕卸ňW(wǎng)絡(luò)是用來(lái)評(píng)價(jià)生成網(wǎng)絡(luò)的造假能力痊末,計(jì)算損失的)
4.完成生成網(wǎng)絡(luò)的訓(xùn)練之后,再次給定隨機(jī)輸入哩掺,得到新的假的數(shù)據(jù)集凿叠,將最新得到真假樣本輸入給判定網(wǎng)絡(luò)進(jìn)行訓(xùn)練,從而完成對(duì)判定網(wǎng)絡(luò)的再一次訓(xùn)練。
5.不斷重復(fù)上述過(guò)程盒件,直到滿足設(shè)計(jì)者設(shè)定的訓(xùn)練次數(shù)蹬碧。
至此,就基本實(shí)現(xiàn)了一個(gè)傳統(tǒng)的GAN網(wǎng)絡(luò)了