本周基本工作總結(jié)20211121
(一)stygan3預(yù)訓(xùn)練模型使用
本周主要對(duì)stylegan3發(fā)布的源代碼和預(yù)訓(xùn)練模型進(jìn)行簡(jiǎn)單復(fù)現(xiàn)。
實(shí)現(xiàn)了服務(wù)器上基本cuda、conda環(huán)境的搭建 - conda環(huán)境確實(shí)比較好用,相關(guān)過程在專欄里作了簡(jiǎn)單記錄。
(二)stygan3運(yùn)行結(jié)果分析
有一個(gè)很明顯的現(xiàn)象,不知道gan2有沒有類似現(xiàn)象




很特別的現(xiàn)象:在皮膚表面會(huì)有環(huán)形紋理或者說類似輪胎印記的痕跡。幾乎在每一張圖片中都有類似的表現(xiàn),并且基本只在皮膚裸漏區(qū)域出現(xiàn)而在毛發(fā)覆蓋區(qū)域并不會(huì)。
與stylegan2的結(jié)果對(duì)比 -> 2生成的圖像更加真實(shí),3改進(jìn)了平移旋轉(zhuǎn)不變性




分析原因:直觀感覺stylegan3生成器對(duì)紋理、毛發(fā)等細(xì)節(jié)信息過分?jǐn)M合,很大程度上超出了判別器的判定能力?;蛘哒f,生成器認(rèn)為這樣的圖片在判別器中能得到高分。
(三)GAN網(wǎng)絡(luò)的想法
基本思想是D、G相互博弈,理想狀態(tài)讓二者達(dá)到均衡。但實(shí)際運(yùn)用中,貌似將這個(gè)階段人為分成了兩部分,即先優(yōu)化D,再優(yōu)化G,且訓(xùn)練過程中設(shè)置trueimage_label=1,fake=0,這樣訓(xùn)練之后,生成器會(huì)傾向于生成判別器打分高的圖片,所以生成器的生成高度依賴于判別器打分。也就是說,一旦生成器出現(xiàn)某種偏好或者誤判,就會(huì)導(dǎo)致生成器生成某種極端圖像。
考慮如何解決這一問題:(1)多個(gè)判別器打分-類似隨機(jī)森林的思想,這樣可以避免單一判別器偏好對(duì)生成器造成的極端影響;(2)限制判別器對(duì)fake數(shù)據(jù)的打分不能過高(低于某一閾值),并且考慮真實(shí)數(shù)據(jù)的label設(shè)置,可以在首次訓(xùn)練設(shè)置為1,之后逐步降低。這樣或許一定程度能夠隱藏判別器偏好。
還有一種思路:讓D具有聯(lián)想功能,比如上圖中stylegan的結(jié)果,乍一看確實(shí)比較真實(shí),但人腦的聯(lián)想功能會(huì)讓我們自動(dòng)將每張圖片放到一定的語義背景下,比如人在聚會(huì)吃飯等,這樣乍一看真實(shí)的圖片經(jīng)過人腦分析后就會(huì)發(fā)現(xiàn)明顯的不合理之處。
如果D具有這種聯(lián)想功能,其實(shí)是對(duì)D判別真假的能力附加了buff,從而進(jìn)一步提升生成器效果。這個(gè)功能可以通過上邊多個(gè)判別器的情況實(shí)現(xiàn),只需要對(duì)每個(gè)判別器用不同場(chǎng)景下的圖片分別訓(xùn)練就可以。
GAN在對(duì)抗中生成足夠真實(shí)的圖片,但關(guān)于“真實(shí)”這一信息的來源僅僅來自于判別器的反饋,實(shí)質(zhì)上神經(jīng)網(wǎng)絡(luò)并沒有理解生成圖片的語義信息,從而會(huì)出現(xiàn)一些我們看到的很“荒誕”的圖片,但卻被網(wǎng)絡(luò)認(rèn)為是真實(shí)的。
什么意思呢?就是說GAN的認(rèn)知來源很狹隘——僅判別器,而沒有更多的反饋信息。
這與現(xiàn)實(shí)并不符合,以豹子和羚羊?yàn)槔?,二者相互?duì)抗的結(jié)果是在速度上的不斷提升,但一昧增長(zhǎng)速度帶來體型上的變化可能會(huì)導(dǎo)致在覓食、休憩等方面的不適應(yīng),從而也會(huì)導(dǎo)致滅絕。
一方面,GAN只知道生成的圖片得分低,想辦法要提高,但得不到為什么得分低的信息
其二,就是只依賴于一個(gè)判別器,生成器一旦找到得分高的產(chǎn)物,會(huì)投其所好,生成大量類似的圖片。

(四)GAN生成video
現(xiàn)有思路:假定每一幀的數(shù)據(jù)都包含在了隱空間里,需要做的是找一條路徑,使生成的video比較真實(shí)。
實(shí)際中的video不止是開始到結(jié)束幀的簡(jiǎn)單插值,其中也會(huì)有重復(fù)幀、關(guān)聯(lián)幀等各種各樣的聯(lián)系,所以對(duì)于生成video來說,單純gan感覺并不會(huì)奏效,需要附加RNN之類的記憶屬性,或者生成video的過程需要基于一定的語義指導(dǎo)。
需要找的是基于語義指導(dǎo)的path,并且每一步不一定都在變化,也有重復(fù)和倒退的情況出現(xiàn)(速度問題),結(jié)合前幾天看的mh方法,可以對(duì)插值后的結(jié)果過濾,比如下一幀以一定的概率改變,也有一定的概率保持不變(類似馬氏性)。
目前需要做的工作:
stylegan3復(fù)現(xiàn) - √
隱空間嵌入 - 尚未實(shí)現(xiàn)
語義編輯 - 尚未實(shí)現(xiàn)(即將要做的工作)
————————————————————————————————
上邊就是復(fù)現(xiàn)的工作,自己新的方法嘗試
找path :基本找到方向之后,只需要在某一方向上變動(dòng)基本都能實(shí)現(xiàn)屬性變化的效果,關(guān)鍵就是使這個(gè)過程盡可能真實(shí)。
需要有一個(gè)衡量真實(shí)的標(biāo)準(zhǔn),只要建立了這個(gè)標(biāo)準(zhǔn),就能在現(xiàn)有方法基礎(chǔ)上添加標(biāo)準(zhǔn)觀察效果如何,而不需要自己再去重新找某一種特殊的路徑,因?yàn)椴煌尘跋隆罢鎸?shí)”路徑并不一樣,很難找到一條通路(“每個(gè)人通往成功的道路都是不同的”)
那我目前的思路:(這兩個(gè)思路都需要在方向確定的情況下實(shí)現(xiàn))
1)訓(xùn)練一個(gè)適用于video的判別網(wǎng)絡(luò) - 具體準(zhǔn)備還需要結(jié)合"視頻"相關(guān)概念確定
2)將視頻看作一條馬氏鏈,且狀態(tài)轉(zhuǎn)移只能走一步,利用轉(zhuǎn)移概率對(duì)該問題進(jìn)行建模。
每次只能停留或向前走一步(以一定的概率),且如果變動(dòng)的話,相應(yīng)幅度就是轉(zhuǎn)移概率。
嘗試能不能把這個(gè)馬氏過程的模型建立出來! -? 我今晚可以試一下,如果先能把語義編輯那個(gè)工作搞定的話~
------------------------------> 神經(jīng)網(wǎng)絡(luò)需要做的就是計(jì)算轉(zhuǎn)移概率矩陣