參考:程序員
https://www.jianshu.com/p/8c7a7cb7198c算法
https://blog.csdn.net/gdymind/article/details/82696481網絡
零、前言框架
最近一個叫deepnude的軟件火了,開發它的程序員聲稱這個軟件能夠一鍵「脫掉」照片中女性的衣服(由於AI訓練素材的緣由也只能是女性),deepnude推出了免費版和付費版,免費版中間有一個大大的水印基本啥都遮住了,付費版就只是在照片的左上角註明了「FAKE」。該軟件一經推出就掀起了很大的輿論爭議,最近該軟件的開發者迫於壓力關掉了網站和軟件下載(改善生活的企圖END)並表示該軟件並無使用很高深的技術,只是pix2pix算法的一種應用(基於大量學習)。這裏咱們就簡單介紹下pix2pix這個AI框架,若是你對deepnude自己感興趣的話能夠關注公衆號「程序員防脫髮中心」回覆「deepnude」獲取更多信息。學習
1、逆圖片識別網站
深度學習通過多年發展已經很容易實現AI的萬物識別,之前調侃過的AI民工(數據標註員)主要工做就是對大量圖片或數據進行標註,不斷訓練AI,達到的效果就是「看貓是貓」、「看狗是狗」。啥意思呢,簡單來講就是給一張貓圖能識別出這是個貓,給個狗圖就知道是狗,推而廣之就是人臉識別、車牌識別、場景識別等等、等等。spa
接着咱們天然就會想到說,那能不能把這個過程反過來,給AI一個「貓」讓它返回一個貓圖呢?.net
很遺憾,不行!對於AI來講,知道是貓和畫個貓其難度與人類學畫畫是同樣同樣的。3d
2、生成對抗網絡GANblog
爲了教AI學會畫貓,科學家們整出了GAN,GAN主要包含兩個元素:G和D,G用來生成隨機圖片,D用來判斷這個圖片是否符合要求。好比使用G來不斷生成隨機圖片,D判斷圖片是不是貓圖。GD互相做用相互鍛鍊,若是D足夠聰明的話,在一段時間的學習後G生成的圖片就愈來愈像貓,最終就能夠源源不斷地生產貓圖啦。
前段時間大火的貓圖生成器使用的就是這麼個原理(還有卡通頭像、美女圖片等),不過光生成隨機圖片還不過癮啊,能不能生成用戶須要的圖片呢?好比站着的貓、躺着的貓、睡覺的貓?
3、成對訓練pix2pix
GAN使用的方法是生成隨機圖片,而後判斷是不是貓,這種模式的後果就是你獲得的老是隨機貓圖。科學家們又想了個點子,能不能在判斷以前先給出正確答案,讓G生成的貓圖愈來愈靠近咱們須要的樣子?因而就有了成對訓練pix2pix。
這個算法的核心就是給出AB兩個成對的圖片來進行訓練,以下圖所示。對AI進行大量訓練後,當咱們給出一個X時,AI就能自動將X轉化爲Y。
理論上deepnude就在pix2pix的基礎上對大量女性圖片(X)和大量果體圖片(Y)進行訓練,最後達到的效果就是隨機給出一個X,AI自動生成果體Y,固然具體操做上會比較複雜。
4、總結
這裏只是對pix2pix作了個簡單的介紹,後續還會繼續補充更多學習資料,敬請關注「程序員防脫髮中心」!若是你對deepnude自己感興趣的話能夠關注公衆號「程序員防脫髮中心」回覆「deepnude」獲取更多信息。