1. 程式人生 > >深度學習的下一個熱點:生成對抗網路(GANs)將改變世界

深度學習的下一個熱點:生成對抗網路(GANs)將改變世界

本文作者 Nikolai Yakovenko 畢業於哥倫比亞大學,目前是 Google 的工程師,致力於構建人工智慧系統,專注於語言處理、文字分類、解析與生成。

生成式對抗網路—簡稱GANs—將成為深度學習的下一個熱點,它將改變我們認知世界的方式。

準確來講,對抗式訓練為指導人工智慧完成複雜任務提供了一個全新的思路,某種意義上他們(人工智慧)將學習如何成為一個專家。

舉個對抗式訓練的例子,當你試圖通過模仿別人完成某項工作時,如果專家都無法分辨這項工作是你完成的還是你的模仿物件完成的,說明你已經完全掌握了該工作的所需的技巧。對於像寫論文這樣複雜的工作,這個例子可能不適用,畢竟每個人的最終成果多少有些不同,但對於中等難度的任務,比如造句或寫一段話,對抗式訓練大有用武之地,事實上它現在已經是計算機生成真實影象的關鍵所在了。

GANs解決問題的方式是用不同的目標分別訓練兩種不同的網路。

  • 一種網路創造答案(生成方)
  • 另一種網路分辨前者創造的答案與真實答案的區別(對抗方)

GANs的訣竅是這樣的:訓練兩種網路進行競爭,一段時間後,兩種網路都無法在對抗中取得進步,或者生成方變得非常厲害以至於即使給定足夠的線索和時間,其對抗網路也無法分辨它給的答案是真實的還是合成的。

這其中有很多有趣的細節,但我們暫時先忽略這些細節。GANs 可以在給定繪製圖像類別和隨機種子(random seed)的條件下,自主完成影象的繪製:
“給我畫一隻啄木鳥,並且它不能是我之前給你看過的那些啄木鳥。”

圖片描述

StackGAN繪製的合成鳥

在數學方面, 谷歌研究中心的科學家們用GANs創造了一種編碼協議。GANs的生成方 Alice向Bob傳遞通過卷積神經網路編碼的資訊以及金鑰。Eve則扮演對抗方,即可以拿到編碼的資訊,但沒有金鑰。Eve訓練網路來分辨資訊中的噪音和有價值的部分,然而對抗方失敗了,無法將上述兩個部分割槽分開來。

在這一網路結構興起的早期,以及現在,我還從未聽說哪個基於GAN的公開demo(演示程式)可以在完成某句話這一任務上媲美前饋LSTM。雖然前饋LSTM(比如Karpathy特徵迴圈神經網路)僅僅是一個基準(baseline),但可以想象遲早有一天,有人會創造出一個可以根據亞馬遜購物網站的商品打分來撰寫評論的GAN 來。

人類通過直接反饋來學習

對我來說,相比強化學習(RL)而言,對抗式學習更接近人類的學習方式。也許因為我是一個喜歡自己找自己麻煩的人吧。

RL通過最大化(平均)最終獎勵來達到訓練目的。當前的狀態也許與獎勵無關,但最終的結局一定會由“獎勵函式”給出。我已經做過RL領域的一些工作,並且它也極大地促進了我們研究領域的發展,但是除非你是在玩遊戲,否則很難寫出一個獎勵函式來精確衡量來自周邊環境的反饋。

二十世紀90年代,強化學習在十五子棋遊戲中取得巨大突破,它是DeepMind創造的AlphaGo的一個重要組成部分,DeepMind團隊甚至用RL來節省谷歌的資料中心的冷卻費用。

可以想象RL能在谷歌資料中心這一環境中,算得到一個最優結果,因為獎勵函式(在防止溫度高於限定值的條件下儘可能省錢)可以很好地定義。這是真實世界可以像遊戲一樣被引數化的例子,這樣的例子通常只能在好萊塢電影中見到。

對於那些更實際的問題,獎勵函式是什麼呢?即使是類似遊戲中的任務如駕駛,其目標既不是儘快達到目的地,也並非始終待在道路邊界線內。我們可以很容易地找到一個負獎勵(比如撞壞車輛,使乘客受傷,不合理地加速)但卻很難找到一個可以規範駕駛行為的正獎勵。

邊觀察,邊學習

我們是如何學習寫字的?除非你念的是要求很嚴格的小學,否則學習寫字的過程很難說是最大化某個與書寫字母有關的函式。最可能的情況是你模仿老師在黑板上的書寫筆順,然後內化這一過程 。

你的生成網路書寫字母,而你的識別網路(對抗方)觀察你的字型和教科書中理想字型的區別。

圖片描述

針對三年級學生的對抗式訓練

屬於你的最嚴厲的批評家

五年前,我在哥倫比亞大學舉行的一場橄欖球比賽中傷到了自己的頭部,導致我右半身腰部以上癱瘓。受傷兩週後我出了重症監護病房,開始教自己學習如何寫字。那時我住在布魯克林的公寓裡。

圖片描述

再次學習如何寫字, 五月

我的左腦受到了嚴重的創傷,因此我失去了控制我右胳膊的能力。然而,我大腦的其餘部分完好無損,因此我仍能夠識別正確的書寫方式。換句話說,我的文字生成網路壞了,而識別網路功能正常。

說句玩笑話,我很有可能因為這一過程學會一種新的(或更好的)書寫方式。然而結果是雖然我很快地教會了我自己如何書寫,但書寫筆跡和我受傷前的沒什麼兩樣

我不知道我們的大腦是如何使用“行為人-批評家”的模式來學習的,我也不知道這種說法是事實還是僅僅是一個生動的比喻,但是可以確定的是在有一個專家即時反饋的條件下,我們可以更有效率地學習新東西。

當學習程式設計或攀巖時,如果你一直接收某個專家的“beta(反饋建議)”,則可以進步得更快。在你獲得足夠的經驗能夠自我反饋批評之前,有一個外部的批評家來糾正你每一小步的錯誤可以更容易訓練你大腦的生成網路。即使有一個內部批評家在監督你,學習一個有效的生成網路仍然需要認真的練習。我們總不能把我們大腦的生成器換成亞馬遜推出的GPU例項吧。

圖片描述

擺脫糾結,勇往直前?

實際中,GANs 被用於解決這樣一些問題:為生成器生成的圖片新增一些真實的效果如銳化邊緣。儘管在這樣的圖片中,不一定每個動物都只有一個腦袋。

讓生成網路與合適的對抗方競爭能迫使其做出取捨。正如我的一位同事所說,你面臨一個選擇,既可以畫一隻綠色的鸚鵡,也可以畫一隻藍色的鸚鵡,但是你畫的必須是其中之一。一個沒有對抗方的監督網路接受了真實鸚鵡的識別訓練,會傾向於畫出某種摻雜藍色或綠色的平均色,導致其線條模糊不清。而一個對抗式網路則可以畫出藍色或綠色的鸚鵡,也可以在利用鸚鵡的{藍,綠}概率分佈隨機地選擇一種顏色。但它絕不會畫出某種自然鸚鵡不存在的中間色,當然這種顏色也可能存在於已經滅絕的鸚鵡上。

我的同事最近理清了關於GANs的思路,其中包括對GANs的收斂性和可推廣性的悲觀態度。

某種程度上,這是由於這種蹺蹺板式的訓練方法——一會兒訓練生成方,一會兒訓練識別方,如此反覆——並不能保證收斂於一個穩定解,更別提一個最優解了。如下圖Alex J Champandard的一則Twitter 所示:

圖片描述

圖在twitter上是一個GIF圖片,通常情況生成方和對抗方在玩一個極限博弈遊戲,但只要再走一步,其將陷入震盪

但是讓我們忽略這些細節,做一些美好的想象吧。若LSTM模型能寫出調理清楚的產品評論、圖片標題、或者在唐納德競選總統時代替他在twitter上發聲(反正競選前夜他會保持沉默),那稍微聰明一點的識別器應該都能提高這些任務的表現吧。

假設LSTM是隨機生成這些結果的,我們可以利用既有的生成器生成相應的結果,再讓識別器從生成結果中最好的20箇中選出最合適的。這不正是DeepDrumpf背後的運營團隊所做的事情嗎?

圖片描述

DeepDrumpf:對於facebook和twitter而言,我一直是一個完全的災難,而且現在比以往更加嚴重了

生成器和識別器,誰更聰明?

一個問題自然而然地出現了——到底哪種網路能夠真正理解所面臨問題,是生成器還是識別器?或者說究竟誰更會寫字,是寫字的學生,還是教寫字的老師?

現實世界通常是老師更會寫字,但在之前的例子中,我想應該是學生更會寫字。因為一個用於識別產品評論的識別器只需知道一些常見的語法錯誤,就能投入使用。正如一個人像米開朗基羅一樣畫畫,一個人僅僅是擡頭看看西斯廷大教堂的天花板(上面有米開朗基羅的畫),誰需要更多的技巧呢?

正如我所理解的,手機影象軟體Prisma在有對抗方的框架下,訓練生成網路,進行不同風格的創作。大多數風格正是通過這種方式生成了那些曲折的線條。我希望他們能增加訓練GAN的時間,這樣GAN不僅能認出照片中的陰影,並給其塗上不同的顏色,還可能以一個印象派藝術家的風格完成這些任務。當它偶爾可以正確地區分光線和陰影的時候,那麼它就是令人驚歎的。

圖片描述

順著這條思路想下去可以得出一個很自然的結論,生成式對抗方法,可以讓人工智慧有能力做實驗和A/B測試。一個人工智慧模型給出了一個很好的解決方案,然後它蒐集反饋來了解這個生成方案和標準答案是否相符,或與其他它正在學習或已經內化的人工智慧模型比較,觀察得出的結果是否相符。在這一過程中,你沒必要去設計一個損失函式,因為雖然可能會花上一點時間,但這個人工智慧模型終將找到自己的評判標準。

適可而止,見好就收

我寫了這整篇文章,卻還沒有親身嘗試一下對抗式網路。本著模仿的心態,我期望其他人能夠在GANs上取得進步,最好是在文字生成領域取得突破。我預計很快就會有合適的技術,能夠良好執行並得到令人信服的結果。我們這個領域正是這樣,通過積累前人的經驗而進步的。

與其去預測我沒有參與過的事,我更應該花時間去優化我的“撲克牌卷積神經網路”(PokerCNN)無限額德州撲克AI,為今年的年度計算機撲克大賽作準備。其程式碼將在2017年1月13日前完成。

在明年的比賽中我計劃新增一些對抗式訓練。不難想象對抗式訓練能夠幫助AI學習更好的撲克技巧。特別是當對手也是很強大的黑箱AI時,這個方法更為有用。

既然是科學為目的,並且我的撲克牌AI程式碼已經開源了(在你看到這裡時,我應該已經清理了程式碼倉庫,並且添加了一個的readme幫助文件,所以應該可以更容易著手),所以請隨意拿去嘗試吧。

連結:向後看,向先看

如果沒有點出2016年深度學習領域中我最喜歡的幾大進步,那我就太怠惰了。以下列出了幾個我最愛的進步:

  • 2016年深度學習的主要進步: GANs, 非監督學習領域的進步, 超解析度,以及其他種種突破
  • “我在神經資訊處理大會上學到的50樣東西” 作者Andreas Stuhlmller
  • 以上幾條中我最喜歡的想法是:用不同的時期間隔來訓練LSTM記憶單元,這樣可以迫使某些記憶單元記住長期資訊,而其它的記憶單元可以更加關注短期記憶。這種方法更符合直覺,也避免了過多的超引數調優
  • 大公司和有足夠資金的創業公司是否都在貪婪地尋找優質的深度學習資料?也許有專利的資料庫並不是所有人工智慧的關鍵問題所在。並且維基百科也列出了一大堆免費的資料庫,包括前文提到的亞馬遜的商品評論。隨著很多公司繼續提供其擁有的大部分資料用於研究,以後將會湧現更多的資料。

原文:GANs will change the world
作者:尼古拉 亞科文科(Nikolai Yakovenko
編譯: AI100
責編:何永燦,歡迎人工智慧領域技術投稿、約稿、給文章糾錯,請傳送郵件至[email protected]

【CSDN_AI】熱衷分享 掃碼關注獲得更多業內領先案例
圖片描述

相關推薦

深度學習一個熱點生成對抗網路(GANs)改變世界

本文作者 Nikolai Yakovenko 畢業於哥倫比亞大學,目前是 Google 的工程師,致力於構建人工智慧系統,專注於語言處理、文字分類、解析與生成。 生成式對抗網路—簡稱GANs—將成為深度學習的下一個熱點,它將改變我們認知世界的方式。準確來講

Nikolai Yakovenko大佬深度學習一個熱點生成對抗網路(GANs)改變世界

生成式對抗網路—簡稱GANs—將成為深度學習的下一個熱點,它將改變我們認知世界的方式。準確來講,對抗式訓練為指導人工智慧完成複雜任務提供了一個全新的思路,某種意義上他們(人工智慧)將學習如何成為一個專家。舉個對抗式訓練的例子,當你試圖通過模仿別人完成某項工作時,如果專家都無法

生成對抗網路GANs理解(附程式碼)

from:http://blog.csdn.net/sxf1061926959/article/details/54630462 author:DivinerShi 生成模型和判別模型 理解對抗網路,首先要了解生成模型和判別模型。判別模型比較好理解,就像分類一樣,

ufldl 深度學習入門 第一發基於BP網路實現稀疏自編碼器

目的:打算使用深度學習的方式實現人臉關鍵點的檢測,第一步是要學習深度學習。 步驟:第一步在ufldl上面學習深度學習的演算法基礎知識,然後找部落格上基於python呼叫theano庫實現人臉關鍵點檢測的演算法,看懂後基於C++實現,然後用java實現app,呼叫C++實現的

一文讀懂生成對抗網路GANs(附學習資源)

原文標題:AnIntuitive Introduction to Generative Adve

吳恩達.深度學習系列-C1神經網路深度學習-w4-( 作業建立神經網路

前言 注意:coursera要求不要在網際網路公佈自己的作業。如果你在學習這個課程,建議你進入課程系統自行完成作業。我覺得程式碼有參考和保留的意義。 本週的作業包含兩個部分。Building your Deep Neural Network, De

一文入門人工智慧的掌上明珠生成對抗網路(GAN)

一.簡介 在人工智慧領域內,GAN是目前最為潮流的技術之一,GAN能夠讓人工智慧具備和人類一樣的想象能力。只需要給定計算機一定的資料,它就可以自動聯想出相似的資料。我們學習和使用GAN的原因如下: 1.能夠用GAN進行無監督學習:深度學習需要大量資料的標註才能夠進行監督學習,而使用GAN則不需要使用大量標註的

生成對抗網路GANs(筆記一)主線

生成式對抗網路(Generative Adversarial Nets, GAN) 一、發展歷程: 最開始接觸GANs是因為想了解有關於在少量資料的情況下如何做資料增廣。然後就瞭解到了DCGAN生成手寫數字的案例,簡直是驚為天人,然今才逐漸開始瞭解生成對抗網路的思想。到了

生成對抗網路GANs工作原理

  生成對抗網路是一種基於可微生成器的生成式建模方法。  生成對抗網路基於博弈模型,其中生成器網路(generator network)必須與其對手判別器(discriminator)競爭。生成器直接生成樣本 x = g(z ; θ(g)) 。其對手,判別器網路會嘗試區分生成器生成的樣本和訓練資料中抽取的樣本

掌握生成對抗網路(GANs),召喚專屬二次元老婆(老公)不是夢

全文共6706字,預計學習時長12分鐘或更長 近日,《獅子王》熱映,其逼真的外形,幾乎可以以假亂真,讓觀眾不禁大呼:aw

在瀏覽器中進行深度學習TensorFlow.js (八)生成對抗網路 (GAN

Generative Adversarial Network 是深度學習中非常有趣的一種方法。GAN最早源自Ian Goodfellow的這篇論文。LeCun對GAN給出了極高的評價: “There are many interesting recent development in deep learni

盈利之後特斯拉的一個挑戰對抗全世界

@央廣軍事11月10日訊息,2018中國航展上首次公開展出的“瞭望者Ⅱ”察打一體導彈無人艇,是剛剛成功進行首發導彈飛行試驗命中靶心的實艇,試驗成功後隨即吊裝到展位與公眾見面。據媒體此前報道,該艇是中國第一艘導彈無人艇,也是繼以色列拉斐爾海上騎士後全球第二個成功發射導彈的無人艇,填補了國內導彈無人艇這一技術空白

【GAN ZOO閱讀系列】NONSUPERVISED REPRESENTATION LEARNING WITH DCGAN 使用深度卷積生成對抗網路的無監督的表示學習

Alec Radford & Luke Metz indico Research Boston, MA {alec,luke}@indico.io Soumith Chintala Facebook AI Research New York, NY [e

深度學習】GAN生成對抗網路原理詳解(1)

一個 GAN 框架,最少(但不限於)擁有兩個組成部分,一個是生成模型 G,一個是判別模型 D。在訓練過程中,會把生成模型生成的樣本和真實樣本隨機地傳送一張(或者一個 batch)給判別模型 D。判別模型 D 的目標是儘可能正確地識別出真實樣本(輸出為“真”,或者1),和儘可能

[深度學習]半監督學習、無監督學習之DCGAN深度卷積生成對抗網路(附程式碼)

論文全稱:《Generative Adversarial Nets》 論文地址:https://arxiv.org/pdf/1406.2661.pdf 論文全稱:《UNSUPERVISED REPRESENTATION LEARNING WITH DEEP CONVOLUTIONAL GEN

【GAN ZOO閱讀系列】UNSUPERVISED REPRESENTATION LEARNING WITH DCGAN 使用深度卷積生成對抗網路的無監督的表示學習

Alec Radford & Luke Metz indico Research Boston, MA {alec,luke}@indico.io Soumith Chintala

深度 | 生成對抗網路初學入門一文讀懂GAN的基本原理(附資源)

選自 Sigmoidal 作者:Roman Trusov 機器之心編譯 參與:Panda 生成對抗網路是現在人工智慧領域的當紅技術之一。近日,Sigmoidal.io 的部落格發表了一篇入門級介紹文章,對 GAN 的原理進行了解釋說明。另外,在該文章的最後還附帶了一些能幫助初學者自己

吳恩達.深度學習系列-C1神經網路深度學習-w3-(作業一個隱藏層進行二維資料分類)

前言 **注意:coursera要求不要在網際網路公佈自己的作業。如果你在學習這個課程,建議你進入課程系統自行完成作業。使用邏輯迴歸作為一個最簡單的類似神經網路來進行影象判別。我覺得程式碼有參考和保留的意義。v 使用一個 2×4×1的網路來對資料進

生成對抗網路(CGAN)(37)---《深度學習

在前面我們簡單介紹了生成對抗網路(GAN)的基本結構和其訓練方式,然而這種方式是基於無監督學習的,沒有指定對應的標籤,使用一個分佈直接進行取樣,從而理論上達到可以完全逼近原始資料,因此生成網路G比較自由,而且當圖片的畫素較多的時候,這樣導致訓練好的生成網路G不可

生成對抗網路(GAN)簡單入門(33)---《深度學習

生成對抗網路與2014年被提出,一經提出便引發了深度學習的又一次小高潮,屬於無監督學習,本篇部落格主要介紹***GAN網路的結構以及訓練過程!*** 對抗樣本即對抗網路的發展大家可以參考GANs學習系列(4):對抗樣本和對抗網路,有助於建立一個對對抗樣本的系統認