search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

劉鐵岩:人工智慧的挑戰與機遇 | 對偶學習推動人工智慧的新浪潮

本文轉自:戰略技術前沿

近日,四位來自微軟亞洲研究院的AI大咖在科技大學進行了一場以「開啟智能計算的研究之門」為主題的前沿分享。

今天,我們與大家分享的是劉鐵岩博士的演講——人工智慧的挑戰與機遇,全文如下(文字內容略有精簡)。

今天我要講的內容主要是一些對人工智慧這個領域的看法。說到智能計算,我們就不能不提人工智慧,人工智慧從 1956 年的達特茅斯會議開始,到現在 61 年的歷史,發展過程中風風雨雨,可以看到幾起幾落,至少我們經歷過兩個所謂人工智慧的冬天。

每一次人工智慧的崛起都是因為某種先進的技術發明,而每一次人工智慧遇到了它的瓶頸,也都是因為人們對於人工智慧技術的期望太高,超出了它技術能達到的水準。所以政府、基金會等撤資,導致了研究人員沒有足夠的資金去從事研究。

那麼今天我們處在一個什麼階段呢?有人說現在是人工智慧的春天,有人說是夏天,還有人悲觀一點,說是秋天,秋天的意思就是冬天馬上就來了。作為人工智慧的學者,我們該怎麼看待這件事情,我們能做些什麼?不管大家怎麼預測,至少今天還是一個人工智慧的黃金時代。

為什麼這麼講呢?接下來先給大家展示一些最近人工智慧取得的成果,確實是之前十幾年我們完全想不到的。

首先,我們講人工智慧在語音方面的突破,人工智慧在語音識別、語音合成上面最近都取得了非常矚目的結果。2016 年 10 月份由微軟研究院發布的一個語音識別的最新結果實現了錯誤率為 5.9% 的新突破,這是第一次用人工智慧技術取得了跟人類似的語音識別的錯誤率。

其次,在圖像方面,人工智慧也有很多長足的進步,比如圖像識別的 ImageNet 比賽,用計算機去識別數據集中 1000 個類別的圖像。在 2015 年,來自微軟亞洲研究院的技術 —— ResNet,獲得了 2015 年 ImageNet 的冠軍,錯誤率是 3.5%,而人的錯誤率大概是 5.1%。所以可看出在特定領域、特定類別下,其實計算機在圖像識別上的能力已經超過了人的水平。2016 年我們微軟亞洲研究院再接再勵,在比圖像識別更難的一個任務 —— 物體分割上面取得了冠軍。

除了語音和圖像以外,其實人工智慧在自然語言上面也取得了很大的進展。左邊這張圖描述了各大公司都在不斷地提高各自語音機器翻譯的水準和技術,右邊這張圖展示的是去年 12 月微軟發布了 Microsoft Translator 的一個新功能,它支持 50 多種語言,可以實現多個人多種語言的實時翻譯,比如大家每個人可能來自不同的國家,只要拿著手機用這個 APP 我們就可以互相交流。你說一句話或者輸入文字,對方聽到/看到的就是他的母語。

前面說的這些語音、圖像、語言,聽起來還都是一些感知方面的東西。大家也知道,最近這段時間,人工智慧在一些傳統我們認為可能很難由機器來取得成功的領域也獲得了突破。比如左邊這張圖描述的是用人工智慧技術來打遊戲,大家可以看到這個敲磚塊的遊戲,在 120 分鐘訓練的時候,人工智慧就找到了很有效的得分的途徑。當我們繼續去訓練這個人工智慧的機器人,到了 240 分鐘以後,它又達到了那種所謂骨灰級玩家的水準,它發現了一些平時我們自己都玩不出來的竅門。

右邊展示的是圍棋比賽,大家都知道 AlphaGo 非常火,使用了深度增強學習的技術,經過了非常長的訓練時間,引用了大量數據做 self-play,最終是以壓倒性的優勢,4:1 戰勝了當時的世界冠軍李世石。在去年的 IJCAI 上面,AlphaGo 主要的開發人員做了一個 keynote,說自戰勝了李世石之後,AlphaGo 並沒有停下腳步,因為它是一個 self-play 的 process,可以繼續訓練,只要給它足夠的運算時間和樣例,它就可以不斷地去訓練。所以也能理解為什麼今年年初 Master 重新回到大家視野里,可以對圍棋高手 60 連勝,因為這個差距太大了。

這些事情都是以前人們覺得人工智慧不可以去企及的領域。但正是因為這些計算機科學家、人工智慧科學家不斷地去模仿人的決策過程,比如他們訓練了 value network,訓練了 policy network,就是怎麼樣根據現在的棋局去評估勝率,去決定下一步該走什麼子,而不是走簡單的窮舉,用這些 value network 來對搜索樹進行有效的剪枝,從而在有限的時間內完成一個非常有意義的探索,所有這些都是人工智慧技術取得的本質的進展,讓我們看到了一些不一樣的結果。

說了人工智慧的這些輝煌之後,其實有很多問題是需要我們去冷靜思考和回答的。

我們的主題是開啟智能計算的研究之門,我想從一個研究者的角度跟大家討論一下我們還能做些什麼,甚至是更有意義的是去做些什麼。人工智慧表面看起來很火,其實如果把這張魔術的檯布展開,你就會發現它千瘡百孔,各種各樣非常基礎的問題其實並沒有解決,甚至有很多哲學的方法論的東西從我們的角度來看可能也不準確。

面對這樣的情況,更有意義的事情可能是冷靜下來,去從事一些能夠改變人工智慧現狀以及未來的很本質的基礎研究工作,甚至是去反思人工智慧發展的路線圖,看看我們是不是應該重啟一條道路。這些事情才能使得我們不僅僅是隨波逐流,不僅僅是變點現,騙點錢,而是在人工智慧發展的真正道路上留下我們自己的足跡,過了幾十年當大家回憶的時候,另外一個人站在台上講述人工智慧一百年的時候,他會在那個圖上標著一個星星,那裡面講的是你的故事。

前面這些人工智慧現象的背後是什麼?說到技術層面,現在最火的兩個詞,一個叫 Deep Learning(深度學習),一個叫 Reinforcement Learning(增強學習)。

深度學習是什麼?通俗地講,它就是一個端到端的學習,我們不需要一些 feature engineering,而是用一個非常複雜的、容量很大的模型去直接擬合輸入輸出,讓模型自己探索有意義的中間表達。

什麼是增強學習?通俗地講,就是學習機器不斷地跟環境做自主的互動,在互動的過程中用長遠的收益來指導當下該做什麼決策,通過不斷的跟環境互動去調整決策的最優性。

之所以現在深度學習和增強學習能夠取得很大的成功,背後有一個很大的原因,就是基於巨大的數據和巨大的運算量訓練出的擁有巨大容量的模型,所以它們的成功離不開硬體系統,這也是為什麼現在 GPU 這麼火,包括雲計算、多機協作已經成了我們必不可少的環節。

這是現在人工智慧的現狀。面對這樣的現狀,我們是按照大家指定的這條道路去走,多搞幾個 GPU 去訓練一些模型跟別人 PK,還是反思一下這條路對不對、有沒有什麼問題。接下來我想跟大家討論的就是人工智慧的諸多問題。我只列了一些其中的代表,但其實問題遠遠不止這些。

第一件事,現今的人工智慧技術,尤其是以深度學習為代表的,需要大量的標註數據,來讓我們能夠訓練一個有效的模型,它不太依賴於人的先驗知識,要從零學起。

如果想從零開始學習就需要有大量的樣本提供規律。比如,圖像分類,現在通常會用上千萬張圖像來訓練;語音識別,成千上萬小時的有標註的語音數據;機器翻譯一般都是在千萬量級的雙語語對上去做訓練,這樣的數據之前是不可想象的,但是我們這個時代是大數據時代,所以有了這些數據,就使得深度學習訓練成為了可能。

但這是不是一劑萬能的靈藥呢?其實在很多領域裡是不可能或者是很難獲得類似的數據的。比如醫療上面,很多疑難雜症,全世界也沒有幾例,那怎麼能夠對這個類別搜集大數據。所以從這個意義上講,如果我們能夠找到一種方法克服對大的標註數據的需求,我們才能夠使得現在的人工智慧技術突破目前數據給它劃定的邊界,才能夠深入到更多的領域裡面去。

第二個挑戰是關於模型大小以及模型訓練難度的問題。

前面提到了深度神經網路有很多層,而且一般參數都很大,幾十億的參數是家常便飯。面對這樣的網路,至少有兩個困難,一個是我們經常提到的梯度消減和梯度爆炸的問題,當深層網路有非常多層次的時候,輸出層和標籤之間運算出來的殘差或者是損失函數,是很難有效地傳遞到底層去的。

所以在用這種反向傳播訓練的時候,底層的網路參數通常不太容易被很有效的訓練,表現不好。人們發明了各種各樣的手段來解決它,比如加一些 skip-level connection,像我們微軟亞洲研究院發明的 ResNet 技術就是做這件事情的,還有很多各種各樣的技巧。但這些其實都只是去解決問題的技巧,回過頭來,原來的這個問題本身是不是必要的,是需要我們反思的。

再有就是模型爆炸。

前面說了幾十億的參數是家常便飯,幾十億甚至上百億個參數意味著什麼,意味著模型本身的存儲量是非常大的。

舉一個簡單的例子,如果我們用神經網路來做語言模型,給出的訓練數據集是 Clueweb 整個網路上的網頁,大概有十億個網頁的量級。這樣的一個數據,如果要去用循環神經網路去訓練一個語言模型,簡單計算一下就會知道,它需要用到的模型的大小大概是 80 G 到 100 G 的大小,聽起來好像不太大,但是現在主流的 GPU 板上的存儲 24 G 已經算是高配,換句話說,80 G 到 100 G 的大小已經遠遠超過一個 GPU 卡的容量,那麼就一定要做分散式的運算,還要做模型并行,有很多技術難度在裡面。即便有一個 GPU 卡,能夠放下這 80 G 或 100 G 的模型,如此大的訓練數據過一遍也可能要用上百年的時間,這聽起來也相當不靠譜。

到底需不需要這麼大的模型,有沒有必要我們非要把自己放在一個內存也不夠用、計算時間也非常長、也不能忍受的境地呢,這個是值得思考的問題。

說到大模型,標註數據很大,那必然要提到分散式運算,分散式運算聽起來是一個相對成熟的領域,因為系統領域已經對分散式計算研究了很多年。但是回到我們分散式機器學習這件事情上是有所不同的:這裡我們做分散式運算的目的是為了讓我們能夠用更多的資源來容納更大的模型,使得運算的時間縮短到能接受的程度,但是我們不想丟掉運算的精度。

舉個例子,原來用上百年的時間可以得到一個非常精準的語言模型,現在有 100 台機器,雖然算的很快,但出來的語言模型不能用了,這件得不償失。

說到分散式運算有兩個主流的方式,一個是同步的并行方式,一個是非同步的并行方式。

同步的并行方式是什麼?就是很多機器都分了一個子任務,大家每計算一步之後要互相等待,交換一下計算的結果,然後再往前走。這個過程能夠保證對整個分散式運算的流程是可控的,可以知道發生了什麼,在數學上可以做建模,能夠在理論上有所保證。但它的問題就是所謂的木桶原理,這個集群裡面只要有一台機器很慢,分散式運算就會被這台機器拖垮,就不會得到好的加速比。

所以人們開始做非同步的并行方式,非同步的意思就是每台機器各自做自己的事情,互相不等待,把當前按照各自的數據訓練出來的模型更新推到某一個伺服器上,再更新整體模型。但這時候又出現了一個新的問題,就是亂序更新的問題,這個過程是不能被我們原來的數學模型所描述的,違背了優化技術的一些基本假設。比如當我們使用隨機梯度下降法的時候,可以證明當時用一個不斷減小的學習率時,優化過程是有收斂性的。這是因為我們每一次增加的那個梯度是在上一次計算的模型基礎上算出來的梯度。一旦加上去的梯度可能是舊的,不是依據前一個模型算出來的,到底優化過還能不能收斂,就不那麼清楚了,所以雖然速度快,精度卻可能沒有保證。

第四個,我把它叫做調參黑科技,難言之隱。

這件事情特別有趣,我前一段時間參加過一個論壇,一位嘉賓的一句話給我印象特別深,他說大家知道為什麼現在很多公司都有深度學習實驗室嗎,以前沒聽說過有一個叫支持向量機實驗室的,為什麼?這是因為像 SVM 這樣的技術訓練過程非常簡單,需要調節的超參數很少,基本上只要按部就班去做,得到的結果都差不多。

但深度學習這件事情,如果不來點調參黑科技,就得不到想要的結果。所謂深度學習實驗室,就是一批會調參的人,沒有他們深度學習就沒那麼好用。雖然是句玩笑,但是深度學習力要調的東西確實太多了,比如說訓練數據怎麼來,怎麼選,如果是分散式運算怎麼劃分,神經網路結構怎麼設計,10 層、100 層還是 1000 層,各層之間如何連接,模型更新的規則是什麼,學習率怎麼設,如果是分散式運算各個機器運算出來的結果怎麼聚合,怎麼得到統一的模型,等等,太多需要調的東西,一個地方調不好,結果可能就大相徑庭。這就是為什麼很多論文里的結果是不能重現的,不是說論文一定不對,但至少人家沒有把怎麼調參告訴你,他只告訴了你模型長什麼樣而已。

下一個挑戰,叫做黑箱演算法,不明就裡。

這不僅僅是神經網路的問題,更是統計機器學習多年來一直的頑疾,就是用一個表達能力很強的黑盒子來擬合想要研究的問題,裡面參數很多。這樣一個複雜的黑盒子去做擬合的時候,結果好,皆大歡喜。如果結果不好,出現了反例,該怎麼解決呢,這裡面幾億、幾十億個參數,是誰出了問題呢,其實是非常難排錯的事情。

相反,以前有很多基於邏輯推理的方法,雖然效果沒有神經網路好,但是我們知道每一步是為什麼做了決策,容易分析、排錯。所以最近幾年有一個趨勢,就是把基於統計學習的方法和基於符號計算的方法進行結合,造出一個灰盒子,它既具備很強的學習能力,又能在很大程度上是可理解、可支配、可調整的。

到現在為止,這幾件事都是現在人工智慧技術層面的問題。接下來,談的是更像方法論和哲學的問題,僅為個人的觀點,跟大家一起分享。

其中一條,我叫做蠻力解法,捨本逐末。

這句話什麼意思?剛才我提到過深度學習之所以這麼成功,是因為它有一個特彆強的表達能力,在歷史上人們證明過深層神經網路有 universal approximation theorem,只要隱結點的數目足夠多,任意給一個連續函數,它都可以無限逼近這個函數,換言之,有了很強的表達能力,什麼問題都可以學的很好。

聽起來好像是挺美好的事,但實際上它背後存在一個問題:它擬合的是數據的表象,數據表象可以非常複雜,但是數據背後驅動的規律是不是真的那麼複雜呢,如果我們只看到表象不去研究數據產生的本質,很可能你花了很大的力氣去擬合,但是浪費了很多時間,得到的結果也不魯棒。

舉個例子,我們發現大自然也好,人類社會也好,其實沒有想象的那麼複雜,雖然你看到的很多數據很複雜,它們背後的規律可能非常簡單。像量子力學有薛定諤方程、量子化學、流體力學、生物遺傳學、經濟學、社會學也都有類似的簡單方程,科學家發現那麼紛繁複雜的現象都可以被一個動態系統所刻劃,而動態系統背後的規律可能就是一個最高二階的偏微分方程。

大家可以想象,如果不知道這些機理,不對動態系統做建模,只對動態系統的產出數據做建模,就會覺得這個問題非常複雜,要有一個容量非常大的神經網路去逼近這個數據。但反過來,如果目光焦點在這個動態系統身上,可能就兩三個參數的一個二階微分方程就搞定了。

下面也是一個值得思考的問題——動物智能,南轅北轍。

雖然前面提到人工智慧產生了很多的進步,但其實目前所做的還主要是認知的事情,做一個 Pattern Recognition,聽聽聲音,看看圖像,這是動物也能做的事。今天的人工智慧沒有回答一個關鍵的問題,就是動物和人的區別。可能有人會講,據說猴子的大腦比人的大腦小很多,有可能是體量的不同。但人的祖先跟大猩猩在腦容量上應該沒有本質的區別,那到底為什麼經過漫長的進化,人能成為萬物之靈主宰地球了呢?

我自己的觀點是因為人類發明了很多動物界沒有的機制和規律。比如我們有文字,我們可以把我們對世界的認知,總結出來的規律寫下來,把它變成書,變成資料傳給我們的下一代。當老一輩的人去世之後,孩子們讀讀書,就掌握了之前幾百年幾千年人們對世界的認識。但是老一代大猩猩死掉之後,它的孩子就要從頭學起。

另外,我們人類有強大的教育體系,人從幼稚園開始,國小,中學,一直進入大學,用了十幾年的時間,就把幾百年、幾千年的知識都掌握在身上了,可以站在巨人的肩膀上繼續往前走,這非常了不起。好的老師,會教出好的學生,教學相長,薪火相傳。

這些人類的精髓在今天的人工智慧技術裡面是並沒有充分體現,而沒有它們我們怎麼能指望深度神經網路達到人的智商呢?

前面列了很多方面,是我們對人工智慧領域的一些看法,不管是從技術層面,還是方法論層面,都有很多值得進一步挖掘的點,只有這些問題真正解決了,人工智慧才可能穩穩妥妥的往前走,而不只是曇花一現。

基於這些考慮,我所在的微軟亞洲研究院機器學習組,對研究方向做了一個相應的布局,比如對偶學習,它解決的就是沒有大規模標註數據的時候,該怎麼訓練一個神經網路、怎麼訓練一個增強學習模型。該論文發表在去年的 NIPS 大會上,獲得了很大的反響。

還有,我們叫精深學習(Light Learning),為什麼叫 Light?前面提到很多模型太大,放不到 GPU 里,訓練時間很長,我們這個研究就是去回答是否真的需要那麼大的模型。我們展示了一個很有趣的深度學習演算法,叫 Light RNN,用該技術,只需要用一個非常小的模型在幾天之內就可以把整個 Clueweb 數據學完,而且它得到的結果要比用大模型訓練很長時間得到的結果還要好。

并行學習,之前提到并行學習有很多同步非同步之間的權衡,我們發明了一個技術,它有非同步并行的效率,但是能達到同步并行的精度,中間的技術解決方案其實很簡單,在網上也有論文。我們用了泰勒展開,一個非常簡單的數學工具,把這兩者給結合在一起。

符號學習,就是想去解決黑白之間的那個灰盒子問題。

自主學習,是想去解決深度學習調參的黑科技,既然調參這麼複雜,能不能用另外一個人工智慧演算法來調呢,能不能用增強學習的方法來調呢,所以我們做了一系列的工作來解決怎麼去調各種各樣的參數,怎麼用另外一個機器學習來做這個機器學習。

最後一個方向,我們叫做超人類學習,我們想受大自然的啟發,受人類社會發展的啟發,去使得我們的人工智慧技術接近人類,甚至超過人類,這背後是整個人工智慧方法論的變化。

劉鐵岩:對偶學習推動人工智慧的新浪潮

12 月 17 日,人工智慧學會、工程院戰略諮詢中心主辦,今日頭條、IEEE《計算科學評論》協辦的2016機器智能前沿論壇暨2016 BYTE CUP 國際機器學習競賽頒獎儀式在工程院舉辦,論壇邀請到今日頭條、微軟、IBM 等業界科學家以及清華大學、北京大學、Santa Fe 研究所、Georgia Institute of Technology(喬治亞理工)等國內外知名院校學者共同探討了機器學習的研究現狀、前沿創新及應用發展等問題。微軟亞洲研究院首席研究員劉鐵岩博士受邀發表演講。本文由機器之心授權轉載。

對偶學習推動人工智慧的新浪潮

劉鐵岩

謝謝大家,感謝組委會的邀請,讓我有這個機會與大家分享我們的研究工作。我剛才坐在台下聆聽了孫茂松老師和 David 的報告,都獲益匪淺。首先,老師非常全面的回顧了機器翻譯的歷史,又有高屋建瓴的討論,讓我們從中學到了很多的東西。其次,很榮幸我的報告排在 David 之後,做優化和機器學習的同事們應該都非常熟悉 David 的 No Free Lunch Theory,尤其在今天全世界都希望用神經網路這「一招鮮」來解決所有問題的時候,更應該仔細琢磨一下這個定理,對大家會有很大的啟示。

今天我分享的主題是對偶學習。在對這個主題進行深入討論之前,我想同大家一起回顧一下最近這段時間人工智慧領域的一些飛速發展。我舉幾個例子,首先是語音識別。

可能很多同學都看到過這則新聞,微軟研究院在語音識別方面取得了重大突破,第一次機器學習演算法在日常對話場景下取得了和人一樣好的語音識別能力,詞錯誤率降低至 5.9%。

第二個例子是有關圖像識別和物體分割,在這方面微軟研究院同樣也有世界領先的研究成果。

2015 年,我們研究院發明的 ResNet 演算法在 ImageNet 比賽中力拔頭籌,超過了人類的識別水平。人眼辨識圖像的錯誤率大概為 5.1%,而 ResNet 的錯誤率低至 3.5%。今年,在 COCO 物體分割競賽中,我們研究院同樣獲得了第一名,和第二名拉開了很大的差距。物體分割比圖像分類更難,不但要識別出圖片里有什麼,還要能夠把它的輪廓勾勒出來。

第三個例子是機器翻譯,最近相關產業界的發展突飛猛進。這一方向微軟同樣有著世界領先的技術。

比如在微軟的 Skype Translator 軟體里,對話雙方可以用不同語言進行交流,系統實現實時語音翻譯。如果今天會場上大家使用 Skype Translator 的話,可能就不需要聘請同聲傳譯公司了。

第四個例子,最近這段時間人工智慧之所以吸引了那麼多的眼球,一個重要原因就是它在一些需要極高智商的比賽中取得了關鍵性勝利。比如 AlphaGo 4:1 戰勝了圍棋世界冠軍李世石。在這場人機大戰之後,DeepMind 的科學家沒有停止他們的訓練,據說今天的 AlphaGo 已經達到了人類專業圍棋十三段的水平,十三段對決九段那簡直就是秒殺。

人工智慧的這些成果非常令人振奮,那麼這些成果背後又是怎樣的技術呢?這就不得不提到深度學習和增強學習。

深度學習使用的是非常複雜,層次很深,容量很大的非線性模型,如深層神經網路,這樣的模型可以很好的擬合大量的訓練數據,從而在很多識別任務中表現突出。增強學習是一種持續學習技術,它不斷地和環境進行交互,根據環境的反饋更新模型。這兩種技術還可以相互結合,我們稱之為深度增強學習。AlphaGo 背後的核心技術就是深度增強學習。那麼,到底深度學習和增強學習是不是真的已經非常完美,可以解決我們面臨的所有人工智慧問題呢?

其實答案是否定的。仔細分析一下,就會發現這兩項技術都存在本質的弱點。首先,目前深度學習的成功離不開大量的有標籤訓練數據。但是獲得海量有標籤數據的代價是非常高的,在某些特定的鄰域甚至是不可能完成的任務。比如醫療領域的疑難雜症,本身樣本就非常少,有錢也無法取得大量的有標籤數據。正所謂成也蕭何,敗也蕭何,大數據推動了深度學習的成功,但也成為了深度學習進一步發展的瓶頸。其次,增強學習雖然不需要利用傳統意義上的有標籤數據,但是它的學習效率並不高,需要跟環境進行大量交互從而獲得反饋用以更新模型。然而,有時和環境的頻繁交互並不現實。比如,在我們學開車的時候,依賴於頻繁地和環境(周圍的路況,其他的車輛)進行交互是很危險的,可能還沒學會開車就已經發生交通事故了。這就解釋了為什麼增強學習取得成功的領域很多都是模擬環境,比如說打電子遊戲、下圍棋等等,它們規則明確,可以無限次重複。但當把增強學習應用到一些實際場景里,需要和實際用戶進行交互,還可能帶有無法挽回的風險,是不是還能取得同樣的效果呢?目前還沒有被證實。

了解了深度學習和增強學習的弱點以後,我們不禁要問:有沒有一種新的學習範式可以克服他們的弱點?能否可以不依賴於那麼多有標籤的數據,能否不需要跟真實環境做那麼多次交互,就可以學到有效的模型?為了回答這個問題,我們首先來對現有的人工智慧任務做一個仔細的分析。

通過分析,我們發現了一個非常重要的現象:現實中,有意義、有實用價值的人工智慧任務,往往是成對出現的。比如在做機器翻譯的時候,我們關心從英語翻譯到漢語,我們同樣也關心從漢語翻譯回英語。再比如,在語音領域,我們既關心語音識別的問題,也關心語音合成的問題(TTS)。圖像領域,我們既關心圖像識別,也關心圖像生成。類似這樣的對偶任務還有很多,比如在對話引擎、搜索引擎等場景中都有對偶任務。這種現象給了我們什麼啟示呢?

第一點,由於存在特殊的對偶結構,兩個任務可以互相提供反饋信息,而這些反饋信息可以用來訓練深度學習模型。也就是說,即便沒有人為標註的數據,有了對偶結構,我們也可以做深度學習了。第二,這兩個對偶任務,可以互相充當對方的環境,這樣我們就不必跟真實的環境做交互,這兩個對偶任務之間的交互就可以產生有效的反饋信號了。總而言之,如果我們能充分地利用對偶結構,就有望解決剛才提到的深度學習和增強學習的瓶頸——訓練數據從哪裡來、和環境的交互怎麼持續進行下去。

基於以上的思考,我們提出了一個新的學習範式,叫做對偶學習。它的思路非常簡單。我們假設學習過程中有兩個智能體,其中一個智能體從事的是原任務,就是從 X 到 Y 的學習任務;而另外一個智能體從事的是對偶任務,也就是從 Y 到 X 的學習任務。假如我們把 X 用第一個智能體的模型 F 映射成 Y,再利用第二個智能體的模型 G 把它反映射成 X』。通過比較 X 和 X'我們其實就可以獲得非常有用的反饋信號。

其實這個做法在剛才孫茂松老師的演講中已經提到過,有人曾經用這種翻過去再翻回來的方式判斷機器翻譯模型的好壞。如果 X 和 X'的差異很大,就說明這個翻譯系統不靠譜,說明模型 F 和 G 至少有一個不好;如果 X 和 X'很接近,就給了我們一個利好的消息,就是這兩個模型都不錯。除了比較 X 和 X'的差異,其實還有很多其他的反饋信息可以被利用。下面我們以機器翻譯為例,做個詳細的說明。

假設我們有一個英文的句子 X,通過翻譯模型 F 的作用,得到一個中文句子 Y。那麼 Y 作為一個中文句子是不是符合語法,是不是順暢,X 到 Y 之間的關係是否和英漢詞典一致等等,都可以作為反饋信息。同樣,當我們用模型 G 把 Y 再變成英文句子 X'以後,也可以去衡量 X'是不是符合語法,是否順暢、X'與 Y 的關係是否與英漢詞典一致,以及 X'和 X 是否相似等等,都可以作為反饋信息。利用這些反饋信息,我們可以使用包括 Policy Gradient 在內的方法,來一輪一輪地更新我們的模型,直到最終得到兩個滿意的模型。

上面的這個過程可以無限循環下去,每次隨機地抽選一個單語語句,做對偶學習,更新模型,然後再抽選下一個單語語句,進行對偶學習。那麼這個過程會不會收斂呢?其答案是肯定的,以機器翻譯為例,我們可以證明,只要機器翻譯模型 F 和 G 的解碼部分都使用的是隨機演算法,比如 beam search,這個對偶學習過程就一定是收斂的,也就是說你最終會學到兩個穩定的模型 F 和 G。

那麼接下來,我們就來看看這樣的穩定模型是否有效。我們對比的演算法是一個非常經典的神經機器翻譯方法,而且用的是他們自己開源的代碼。為了訓練這個對比演算法,我們使用了全部的雙語標註數據。而我們自己提出的對偶學習演算法並不需要雙語標註數據,用單語數據就可以進行學習和迭代了。不過萬事開頭難,我們還是要給這個學習過程一個初始化。在初始化過程中,我們使用了 10% 的雙語語料訓練了一個相對比較弱的模型,然後用對偶學習的迭代過程不斷提高它。也就是說,在初始化完成之後,我們就不再使用任何雙語的標註語料了,而是靠兩個對偶任務互相提供反饋信息進行模型訓練。好,那我們來看看實驗結果如何。

這兩張圖展示了法英和英法翻譯的實驗結果。以第一張圖為例,最左邊這根柱子對應的是用 10% 雙語語料訓練的初始模型;最右邊這根柱子對應的是用 100% 雙語語料訓練的翻譯模型。可以看出,初始模型確實比較弱。當我們使用對偶學習的方法,雖然不再利用任何有標註的雙語數據,我們仍可以很快的接近甚至超過用百分之百的雙語語料訓練出來的模型。這個結果非常令人振奮。不僅如此,我們的實驗發現,對偶學習更不容易飽和,因為無標籤的單語數據非常豐富、非常多樣化,因此通過不斷調節單語數據源和調整反饋信息,可以持續提高模型的有效性。相反,使用雙語語料比較容易飽和,過幾遍數據以後,當信息被挖掘得足夠充分,想要再提升模型精度就變得非常困難了。

如上這種振奮人心的結果是否只局限在機器翻譯領域呢?其他領域是否也可以使用類似的方法得到提升呢?答案是肯定的,前面我提到的很多人工智慧的任務都具有對偶結構,因此都可以用對偶學習來解決。

這張 PPT 展示了在語音識別和語音合成方面如何定義反饋信號,從而進行對偶學習。

同樣,這張 PPT 展示了在圖像識別和圖像生成方面如何定義反饋信號,從而進行對偶學習。

而這張 PPT 則展示了在對話引擎方面如何定義反饋信號,從而進行對偶學習。

說到這裡,可能很多人會有疑問,雖然我們說對偶學習應用很寬泛,但是我們舉的例子都有一個共同特點,就是真實的物理世界里確實存在兩個對偶的任務。那麼,如果我們要解決的問題並不存在一個天然的對偶任務怎麼辦?其實這個也沒關係,即使沒有物理上的對偶性,也可以通過虛擬的對偶性來完成對偶學習。我舉兩個例子。第一個是在深度神經網路領域常用的 Auto Encoder,仔細分析一下,它其實是對偶學習的一個特例。

Auto Encoder 原本的任務是要學習從輸入層到隱層的一個映射(即編碼),為了有效地學習這種映射,我們人為添加了一個虛擬任務:就是從隱層到輸入層的逆映射(即解碼,請注意圖中的輸出跟輸入是一樣的數據),這樣就形成了機器學習的閉環。如果用對偶學習的語言描述一下,就是這張圖:通過人為增加解碼迴路,使虛擬的對偶性得以成立,從而實現對偶學習。不過需要指出的是,Auto Encoder 和對偶學習有一些小差別,Auto Encoder 只關心單邊任務的模型(也就是編碼器),而在標準的對偶學習中,我們同時關心兩個模型,想把它們都學好。

另一個例子是最近這兩年特別火的——Generative Adversarial Nets(GAN)。它的目標是學習一個圖像生成器,為此通過一個鑒別器不斷給生成器提供反饋信息(也就是判別生成器生成的東西是真是假)。這樣的博弈過程可以獲得一個非常有效的圖像生成器,用它可以自動製造訓練樣本來進行深度學習。很顯然,GAN 也可以用對偶學習的語言進行描述,並且它也只是對偶學習的一個特例:它只關心單邊生成器的有效性,而標準的對偶學習會同時關心生成器和鑒別器的有效性。

到此為止,無論是天然的對偶學習,還是虛擬的對偶學習,都是用來解決無監督學習問題的。那麼,如果實際中我們的訓練數據已經非常多了,對偶學習的思想還有用嗎?我們的答案是:有用,而且非常有用。

讓我們來看一下監督學習的例子。我們有一個樣本 X,原任務是要預測它的標籤 Y。為此,我們可以使用已有的很多監督學習技術加以實現。但如果我們再給它人為增加一條對偶迴路會怎樣呢?假設存在一個對偶任務,是從標籤 Y 到 X 的預測。那麼原任務和對偶任務其實存在著非常內在的聯繫。利用全概率公式和貝葉斯公式我們可以很容易知道,這兩個任務背後的條件概率是互相約束的,利用這一點可以構造一個非常強的正則項來提高模型的學習效率。我們在機器翻譯上的實驗表明,加入這個對偶正則項,翻譯模型的 BLEU score 有大幅度的提升。

同樣的道理,對偶學習的思想甚至可以提高 inference 的性能。假設我們的模型已經訓練好了,原任務是要用它來做預測。傳統的做法是,給定一個樣本 X,基於已有模型,尋找能夠使其條件概率 P(Y|X) 最大化的 Y 作為 inference 的結果。如果我們運用對偶學習的思想,就會發現問題還可以反過來看。從對偶任務的模型出發,利用貝葉斯公式,同樣也可以導出條件概率 P(Y|X) 來。按理說這兩個條件概率應該是一致的,但是因為原任務和對偶任務是獨立進行的,實際中它們可能並不完全一致,那麼如果綜合考慮這兩個條件概率,我們的置信度會得到提升。相應地,inference 的結果也會得到明顯的提升。

到此為止我們介紹了對偶學習在無監督學習上的應用、在沒有天然對偶結構時如何使用虛擬迴路實現對偶學習、以及如何把對偶學習的思想延展到有監督學習和 inference 之中。

事實上,對偶學習是一個新的學習範式,而不單是一個技巧。它和我們熟知的很多學習範式,如無監督學習、半監督學習、co-training、多任務學習、遷移學習都有聯繫,又有顯著不同。它提供了一個看待這個世界的不同視角,對很多難題提供了新的解題思路。我們非常有信心對偶學習在更多的領域將會取得成功。我們組的同事們正在這個方向上積極探索,也希望在座的各位能夠加入我們,一起去推動對偶學習的發展,掀起人工智慧的新浪潮,謝謝大家!

創客總部

創客總部是北大校友、聯想之星創業聯盟成員企業2013年發起,專註實驗室技術投資和孵化,是科技成果變現第一站,專業投資孵化高校和科研院所的前沿技術與技術精英,提供早期投資、產業鏈業務對接和辦公場地等服務,幫助技術項目和大型企業建立業務合作關係,同時為大型企業引入前沿技術,促進大型企業轉型升級。是中關村創新型孵化器,國家級眾創空間。專註投資孵化領域包括:人工智慧、新材料、醫療健康和消費升級等。截至2017年1月,通過評審入孵的項目有275個,有122個項目獲得投資,共獲得11.3億元人民幣投資,單個項目單次獲得最高融資2.3億元人民幣,其中創客總部投資了50個項目。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦