上圖中的圖片有什麼共同點?回答是這些臉都是虛構的,是由GAN(對抗神經網路)生成的。自從2014年第一次提出之後,做為一種生成式的模型,不到五年的時間,GAN已經衍伸出很多意料之外的應用場景,本文簡述其中五個,未來預期GAN會在更多的領域大放異彩。關於GAN的基礎知識,可以參考對抗神經網路初探,GAN用在藝術品生成與風格遷移的具體案例分析,可以參考怎麼樣用深度學習取悅你的女朋友(有程式碼)。
1)影象編輯
這簡直是美圖秀秀中的各種濾鏡的升級版,給出一張原始的妹子圖片,可以生成出金發版,捲髮版,微笑版,還能ps出你的雙胞胎兄弟長什麼樣。
不止是對人物進行定向的修改,還能修改圖片中的壞境因素,例如上圖中左圖中是下雨的場景,右圖是GAN生成的同樣壞境但是沒有下雨的照片,倆者人眼看來,就只能看出是否下雨這一個差異來。實現這樣黑科技的,是GAN的一個變種,稱為conditional GAN, 有了這項技術,就可以根據一個人小時候的照片,生成其長大後,年老後的樣子,或者你上傳你家狗狗的照片,然後再虛擬的壞境下給狗狗換衣服,然後你再購買你喜歡的狗狗衣服。這項技術也存在著被濫用的風險,比如生成虛擬的果照。關於技術細節,請閱讀參考資料【1】與【2】。
2)惡意攻擊檢測
通過給深度神經網路一些特異生產的訓練資料,深度學習生成的模型是可以被黑客攻擊,利用甚至控制的。為了對抗這樣的逆向攻擊(adversarial attacks),可以訓練對抗神經網路去生成更多的虛假訓練資料作為假想敵,讓模型在演習中去識別出這些虛假資料,就如同人類打疫苗,GAN生成的虛假資料讓正在做分類的模型更加穩健。
另一個在安全領域的應用的加密傳輸,在圖片中,可以使用額外的畫素來加密一段文字,從而你以為你接收的是一副普通的圖片,但實際上通過解密,卻可以發現其中包含了加密的資訊。GAN的變種SSGAN,通過在傳統的GAN模型中增加一個判別器,可以識別出這樣加密後的影象,也可以用於更高效生成上述的加密資訊。參考【3】
3)資料生成
在特定的應用場景下,例如醫療領域,缺少訓練資料是應用深度學習的最大障礙。資料增強的傳統做法是將原影象拉伸旋轉剪下,但這畢竟還是原來的影象,通過使用GAN,能夠生成更多類似的資料,如下圖所示,右邊是真實的圖片,而左邊是合成的訓練資料,中間的是GAN生成後原始圖片,之後經過了修飾,使得面部的肌肉和紋理更加真實。這個GAN生成的圖片,通過了圖靈測試,讓眼科醫生都無法分辨出。而隨著生成出的資料被加入訓練集,相同的模型在分類任務上的表現也有所提升,具體參考【4】。
4)注意力預測
人類在看一張圖片時,往往只關注特定的部分,而通過GAN模型,可以預測出人類關心的區域在哪裡,下圖展示的SalGAN預測出的圖片中人類觀測的熱點區域,和真實的區域,以及之前模型的對比。SalGAN的預測不止更準確,而且能夠包含很多之前模型沒有預測到的區域。對注意力的預測,可以指導廣告的投送,例如在電影中做植入廣告前,可以先預測一下植入的區域是不是在注意力的熱點區。類似的方法還可以反過來用,假設不同型別的人有不同的注意力熱點模式,根據一個人關注圖片中的那個部分,來對人進行歸類。參考【5】
5)三維結構生成
pix2vox是一個基於GAN的開源工具,能夠根據手繪的二維圖片,生成對應的三維結構,不止有對應的形狀,還會生成對應的顏色,有了這樣的工具,就能降低3D建模的門檻,從而讓3D列印更容易的落地。
總結
標註資料總是少數的,未標註的資料才是待開掘的金礦。GAN可以通過標註資料,生成模擬資料,也可以用在自監督學習中,讓模型具備從部分標記的資料中學習的能力。本文只是列出了在圖片上使用GAN的五種有趣的場景,在視訊,有向圖及自然語言處理上,GAN也有諸多應用,結合貝葉斯網路,GAN還可以應用在因果推理,參考文獻【7】。
參考文獻
【1】https://github.com/hezhangsprinter/ID-CGAN
【2】 https://arxiv.org/pdf/1611.06355.pdf
【3】 https://arxiv.org/ftp/arxiv/papers/1707/1707.01613.pdf
【4】 https://arxiv.org/pdf/1612.07828.pdf
【5】 https://arxiv.org/pdf/1701.01081.pdf
【6】 https://github.com/maxorange/pix2vox
【7】 https://arxiv.org/pdf/1810.07406.pdf