當前位置:
首頁 > 知識 > 神經網路中的造物者-GANs

神經網路中的造物者-GANs

當一個小孩畫一隻貓的時候,你會更加了解這個孩子,而不是了解畫出來的貓。同理,我們使用神經網路生成圖像能幫助我們理解神經網路是如何對輸入的信息進行處理的。通常,人們很難以直觀的方式解釋神經網路的功能,但是生成演算法提供了一種使神經網路解釋自己的方法。

神經網路常被用作實現一個圖像分類器,能夠用它來區分圖像中是貓還是狗,或者識別消防標誌等。不過,在過去的三年中,研究人員從本質上對這些神經網路進行逆轉,並且取得了驚人的進展。只需要使用簡單的生成演算法,就可以通過大量的圖像數據進行訓練,然後生成類似於訓練圖像的全新圖像。具有創造力的AI已經證明:表面上看,它們在模仿人類的創造力方面已經做的非常出色。

目前的生成AI研究浪潮建立在生成對抗網路(GAN)的基礎上,GAN是一種由Ian Goodfellow和他的同事在2014年提出的一種神經網路結構。隨著Ian Goodfellow論文的發表,一系列的發明應用隨之而來。研究人員使用GAN網路可以生成從人臉到卧室的一切圖像。通過一項基於GAN叫做pix2pix的技術,可以直接通過衛星圖像生成地圖,可以為黑白照片自動填色,可以將手繪的草圖渲染成逼真的實景。增強低解析度而且模糊的監控圖像只是一個非常模糊的幻想,不過現在已經通過使用GANs成為現實,現在GANs已經可以對低解析度照片中可能的結構做出複雜的設想了。

神經網路中的造物者-GANs

圖1 由神經網路生成的雜誌封面

一個生成對抗網路由兩個神經網路組成:一個學習產生某種數據(如圖像)的生成器,一個學習判斷生成器產生的數據與現實世界數據相比是真還是假的判決器。生成器和判決器具有相反的訓練目標:判決器的目標為區分「真實」數據和假數據,而生成器的目標是生成判決器無法判定為假數據的假數據。是不是感覺非常有意思?

Jon Bruner 和 Adit Deshpande 基於TensorFlow演示了一個非常簡單的生成對抗網路,這個網路創造出了逼真的手寫數字圖像。圖2為該網路的學習過程,從隨機雜訊開始,出現了一種原始智慧:首先神經網路反覆產生相同的通用偽數字,然後領會不同數字之前的差異,最終可以創造每一個數字。

神經網路中的造物者-GANs

圖2 生成器經過訓練後生成手寫數字的過程動畫演示

神經網路善於通過豐富的數據進行簡單的推斷,神經網路通過多層神經元能夠自我組織並在多層次檢測從紋理片段到基本結構的模式,並且它能夠挖掘到人們可能會錯過的模式。這就是神經網路的優勢,不過也是解釋它比較困難的根源。神經網路雖然能夠注意到人們無法注意到的模式,但是如果的網路結構過於簡單或者訓練數據不足以表示真實世界的變化,他們也會像人一樣進行不合理的探索。

像多元線性回歸這種簡單的統計模型,是很容易解釋它的原理的,這種函數足夠直觀,大家可以一目了然的掌握它的原理。但是對於具有多層神經網路就沒有這麼直觀了,多層神經網路通過訓練集進行自由的自我組織,並且不同層次神經元之間相互關聯,這種連接方式導致每一層神經元的功能變得模糊,我們就不得而知每層神經元究竟對應什麼功能。

這個簡單的生成對抗網路確實像人類一樣進行推理。當你看一張貓的照片時,你能明確地識別出你認為這是一隻貓的每一個證據嗎?你通過快速的觀察得到各種特徵:貓的耳朵,貓的鬍鬚,貓的毛髮樣式等,總的來說,通過這些特徵你最終得到這是一隻貓的結論,神經網路亦是如此。

正是因為GAN中的生成器具有多層次處理信息的能力,所以該網路重構信息後輸出的結果比較真實。圖3是通過GAN生成的卧室圖片,不得不說效果相當棒。不僅床單,地毯和窗戶看著很真實,而且他們的位置也是正確的,床單放在床上,地毯鋪在地上,窗戶開在牆上。

神經網路中的造物者-GANs

圖3 GAN生成的卧室圖像

如果你接觸過圖像識別,你可能會對卷積神經元比較熟悉,卷積神經元可以跨圖像掃描並過濾像素進行模式檢測。卷積層通常將圖像縮小,但是在GAN的生成器中,卷積層的功能被逆轉,以便按比例擴大數據。

生成器不是用來檢測模式和匹配圖像中的特徵的,而是使用反卷積的方式生成基本圖像構建塊,並且再將這些基本構建塊組裝融合成「真實的圖像」。比如,這個簡單的GAN生成了一個非常「真實的」數字9,如圖4所示。

神經網路中的造物者-GANs

圖4 GAN生成非常「真實」的手寫數字9

通過觀察反卷積濾波器和其對應的輸出,可以發現這些由最後一層反卷積層生成的構建塊來自圖4中的手寫數字9。

神經網路中的造物者-GANs

圖5 第2、3層反卷積濾波器及其輸出(生成數字9時)

GANs才三歲而已,顯而易見,GANs在不久的將來會被用作生成各種內容,甚至可能在每個用戶訪問網站的過程中為其定製圖片或者視頻。當GANs作為一種創造性力量出現時,去細細體會它的推理方式吧。

還在等什麼?快快動手去嘗試建立你自己的GANs吧!

作者介紹:Jon Bruner, 程序員,記者。曾任福布斯雜誌數據編輯,專註於研究軟體世界與物理世界之間的共同點。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雲棲社區 的精彩文章:

Python高性能計算庫——Numba
阿里雲PCDN新亮點 自動調用HTTPDNS 解決域名劫持困擾
互聯網+時代,500強上市公司玩轉新研發模式
「漫畫」看黑科技如何助白娘子逃出雷鋒塔!
專訪阿里雲易立:從實踐積累到需求沉澱,容器技術必將引領主流

TAG:雲棲社區 |