1. 程式人生 > >一個神經網路學習一切!谷歌又放了個大衛星(附論文)

一個神經網路學習一切!谷歌又放了個大衛星(附論文)

最近,Google又在論文題目上口出狂言:One Model To Learn Them All,一個模型什麼都能學。

非營利研究機構OpenAI的研究員Andrej Karpathy在Twitter上評論說,Google在把自己整個變成一個大神經網路的路上,又前進了一步。

這個題目,可以說繼“Attention Is All You Need”之後,再為標題黨樹立新標杆,量子位作為媒體自愧不如。

這篇最近預發表在Arxiv上的論文說,深度學習挺好,但是每解決一個問題都得建一個模型,還要花好長時間調參、訓練,太討厭了。

於是,他們搞出了一個在各種領域的很多問題上效果都不錯的模型MultiModel。

他們現在在訓練這個神經網路識別ImageNet影象、進行多種語言的翻譯、在COCO資料集上根據圖片生成文字說明、做語音識別、做英文語法分析。

這個德智體美勞全面發展的模型,包含卷積層、注意力機制、稀疏門控層。

上面提到的每個計算模組,都會在某些類任務中發揮著關鍵作用,但有意思的是,就算在那些發揮不了關鍵作用的任務中,這些模組也沒搗亂,大多數時候還稍微有點用……

在資料比較少的任務上,用這個模型和其他任務聯合訓練效果尤其好。雖然有時候大型任務的效能會下降,也只是降了一點點。

摘要就講了這些,接下來我們看看論文的詳細內容:

1. 簡介

多工模型這個問題,並不是谷歌突發奇想開始研究的,以前也有不少相關論文。但是原來的模型都是一個模型訓練一類任務:翻譯的歸翻譯,識圖的歸識圖。

也有那麼一兩篇用一個模型訓練多種不相關任務的,但效果都不怎麼好。

於是,Google Brain的同學們就搞了個MultiModel,用一個模型,可以同時學習不同領域的多個任務。

現在,MultiModel就同時在8個數據集上進行訓練:

(1) 《華爾街日報》語音語料庫

(2) ImageNet資料集

(3) COCO圖片說明資料集

(4) 《華爾街日報》句法分析資料集

(5) WMT英-德翻譯預料庫

(6) WMT德-英翻譯預料庫

(7) WMT英-法翻譯預料庫

(8) WMT法-英翻譯預料庫

論文作者們說,模型在這些任務上的表現都不錯,雖然算不上頂尖水平,但也比最近很多研究強。

下圖舉例展示了MultiModel模型的學習成果:



 從左到右分別是生成圖片說明、影象分類、英譯法、英譯德、句法分析

為了在不同維度、大小、型別的資料上進行訓練,MultiModel由多個特定模式的子網路對這些輸入資料進行轉換,並放進一個共同的表示空間。這些子網路叫做“模式網路(modelity nets)”。

2. MultiModel架構


如上圖所示,MultiModel由幾個模式網路、一個編碼器、I/O混合器、一個自迴歸解碼器構成。

這個模型的主體,包含多個卷積層、注意力機制、和稀疏門控專家混合層(sparsely-gated mixture-of-experts layers),論文中對這三個部分分別做了說明。

2.1 卷積模組

這個模組的作用是發現區域性模式,然後將它泛化到整個空間。

這個卷積模組包含三個元件:線性整流函式(ReLU)、SepConv和歸一層。

如圖所示,這個模型用了四個卷積層,前兩層有3×1個卷積核,後兩層有15×1個卷積核,每層最後加了40%的dropout。

2.2 注意力模組

MultiModel模型中所用注意力機制和谷歌之前釋出的標題黨典範論文Attention Is All You Need中差不多。


如圖所示,注意力層的輸入包括兩個張量,一個來源張量(source)和一個目標張量(target),形式都是[batch size,sequence length, feature channels]。

本文的注意力模組和以前的主要區別在於是定時訊號,定是訊號的加入能讓基於內容的注意力基於所處的位置來進行集中。

2.3 專家混合模組

MultiModel中的稀疏陣列混合專家層,由一些簡單的前饋神經網路(專家)和可訓練的門控網路組成,其選擇稀疏專家組合處理每個輸入。

詳情見這篇論文:

Krzysztof Maziarz, Andy Davis, Quoc Le, Geoffrey Hinton, Jeff Dean, Noam Shazeer, Azalia Mirhoseini. Outrageously large neural networks: The sparsely-gated mixture-of-experts layer. arXiv preprint 1701.06538, 2017.

因為MultiModel裡的專家混合模組基本是完全照搬。

本文的模型在同時訓練8個問題時,用了240個“專家”,訓練單個問題時用了60個“專家”。

2.4 編碼器、混合器、解碼器

MultiModel的主體由3部分組成:僅處理輸入的編碼器、將編碼輸入與先前輸出(自動迴歸部分)混合的混合器、以及處理輸入和混合以產生新輸出的解碼器。

編碼器、混合器和解碼器的結構類似於以前的完全卷積序列到序列模型,如ByteNet或WaveNet,但使用的計算模組不同。


上圖描繪了它們的架構。從圖中可以看出,編碼器由6個重複的卷積模組組成,中間有一個專家混合層。

混合器由注意力模組和2個卷積模組組成。解碼器由四個卷積和注意力模組組成,中間有專家混合層。關鍵的是,混合器和解碼器中的卷積填充在左邊,所以他們將來永遠不會訪問任何資訊。這讓模型是自迴歸的,並且這種卷積自迴歸生成方案在輸入和過去的輸出上提供大的感受野,這能夠建立長期依賴性。

為了讓解碼器即便在相同的模態下,也能為不同任務生成輸出,我們總是使用命令令牌開始解碼,例如To-English或To-Parse-Tree。我們在訓練期間學習一個與每個令牌相對應的嵌入向量。

2.5 模式網路

我們有4種模態網路,分別對應:語言(文字資料)、影象、音訊和分類資料。

2.5.1 語言模式網路

我們將基於語言的資料用和8k subword-units相同的詞彙進行標記化。語言輸入模式是到終止令牌結束的一系列token。在輸出端,語言模式通過解碼器進行輸出,並執行學到的線性對映和Softmax,生成令牌詞彙的概率分佈。

2.5.2 影象模式網路

影象輸入模式類似於Xception進入流。 輸入影象的特徵深度使用殘差卷積塊逐漸加深,我們稱之為ConvRes,並定義如下:

網路深度為d(我們使用了d=1024)的影象模態的輸入流定義為:

2.5.3 分類模式網路

分類輸出模式類似於Xception退出流。 如果網路的輸入是諸如影象或光譜音訊資料的二維資料,則來自模型體的一維輸出首先被重構成二維,然後是逐行下采樣:

2.5.4 音訊模式網路

我們以一維波形或者二維頻譜圖的形式接受音訊輸入,這兩種輸入模式都使用來上面提到的8個ConvRes塊的堆疊。

3. 實驗

我們使用TensorFlow實現了上述MultiModel架構,並在多種配置中對其進行了訓練。

在下面提到的所有訓練中,我們使用了一組相同的超引數和帶有梯度裁剪的Adam優化器。我們會把這個實現以及所有的設定和超引數細節進行開源。我們聚焦於實驗來回答以下問題:

(1) 基於8個任務同時訓練的MultiModel與最先進的結果差距有多大?

(2) 在8個任務上同時訓練,與單個進行訓練有何不同?

(3) 上述不同的計算模組,如何影響不同的任務?

在回答上述問題時,我們並不總是考慮所有8個問題。特別是4個翻譯問題的行為非常相似,所以我們決定不把它們全部包含在每個比較中,但是我們專注於更多樣化的問題。

為了回答問題(1),我們將8個問題的MultiModel的效能與最先進的結果進行了比較,見表1。我們沒有花費太多時間調整MultiModel的超引數,我們認為更多的調教能把二者的差距降低到很小。我們實現的結果類似於沒有進行大量調教的任務特定模型。

為了回答問題(2),在共同對8個任務進行訓練時,我們還用相同的引數在進行了每個任務進行了單獨的訓練。在進行單獨訓練時,我們使用了一個worker來完成相似的步驟。從表2的結果可以看出,8個任務聯合訓練的模型,效能和單獨訓練的模型非常接近,而且有時候效果更好。

考慮到翻譯任務中的大量文字資料,表2中所看到的巨大改進並不令人驚訝。那麼在ImageNet上的表現會怎樣?從表3可以看出,效能的差異比較明顯,由於同時使用了dropout和early stopping,我們推測這與過擬合無關。相反,看起來不同任務之間似乎有著共享的計算原語,即使像ImageNet和句法分析這樣看似無關的任務之間,也可以存在一些遷移學習。

為了回答問題(3),我們比較瞭如果沒有混合專家層或沒有注意力機制的訓練,會如何影響不同問題的表現。由於這兩種機制都是為機器翻譯設計的,所以我們比較了英文 - 法文翻譯。但是我們用了ImageNet進行比較,因為這是從這些塊中獲益最少的問題。實際上,如果這些模組真的沒用,那麼去掉之後也不會影響在ImageNet上的表現。相比之下,我們在表4中看到,這些模組不會影響或稍微提高效能。這導致我們得出結論,混合不同的計算塊實際上是改善各種任務效能的好方法。

4. 結論

我們首次證明,單一的深度學習模式可以從多個領域中共同學習一些大型任務。

成功的關鍵在於設計一種多模式架構,其中共享盡可能多的引數,並將不同領域的計算模組一起使用。

我們相信,這將為未來研究更通用的深度學習架構開闢一條有趣的道路,特別是我們的模型顯示出,基於大量資料訓練而成的任務,可以遷移學習應用在資料有限的任務上。

論文作者:Lukasz Kaiser, Aidan N. Gomez, Noam Shazeer, Ashish Vaswani, Niki Parmar, Llion Jones, Jakob Uszkoreit


【完】

相關推薦

一個神經網路學習一切衛星(論文)

最近,Google又在論文題目上口出狂言:One Model To Learn Them All,一個模型什麼都能學。 非營利研究機構OpenAI的研究員Andrej Karpathy在Twitter上評論說,Google在把自己整個變成一個大神經網路的路上,又前進了一步。 這個題目,可以說繼“

應用到大規模真實工業場景的神經網路控制系統在上線

      即便深度學習和其它機器學習方法近幾年已經取得了不小的發展,但是把它們直接應用在真實工業場景中、讓它們直接控制工業系統還未曾見到。深度學習本身缺乏魯棒性、面對新狀況難以預測行為等一些特性固然是重要的掣肘之處,如何讓演算法逐步提高控制範圍、協調與人類的協作方式也是難題。DeepMind 和谷歌最近就做

開源免費用於訓練AI模型的強化學習框架

強化學習 - 一種人工智慧(AI)技術,使用獎勵(或懲罰)來驅動代理人朝著特定目標前進 - 訓練打敗Alpha Go世界冠軍的系統並掌握Valve的Dota 2.它是Google子公司的核心部分 DeepMind的深度Q-network(DQN),可以在多個工作人員中分配學習,例如,在Atari 2

輕量級深度學習網路(一):詳解輕量級網路MobileNet-v1

目錄 4、小結 0、原文下載 這是谷歌在2017年4月份提出的一個網路, 目的是使得網路小型化,同時計算量得到優化,能夠方便的移植到手機等移動智慧終端。 1、前人的工作和模型簡介 深度學習在影象分類,目標檢

人人都能用Python寫出LSTM-RNN的程式碼[你的神經網路學習最佳起步]

0. 前言 本文翻譯自部落格: iamtrask.github.io ,這次翻譯已經獲得trask本人的同意與支援,在此特別感謝trask。本文屬於作者一邊學習一邊翻譯的作品,所以在用詞、理論方面難免會出現很多錯誤,假如您發現錯誤或者不合適的地方,可以給我留言,謝謝! -

深度學習筆記(五)用Torch實現RNN來製作一個神經網路計時器

本節程式碼地址 現在終於到了激動人心的時刻了。我最初選用Torch的目的就是為了學習RNN。RNN全稱Recurrent Neural Network(遞迴神經網路),是通過在網路中增加回路而使其具有記憶功能。對自然語言處理,影象識別等方面都有深遠影響。 這次我們要用R

人人可以機器學習教你零程式設計基礎玩轉機器學習 ‖ github+教程

谷歌的設計師巴倫·韋伯斯特在谷歌部落格,釋出了這個新的開源機器學習專案。“teachable m

美國STEAM教育頂尖教具,一力作

更多 分享 表示 project shadow pro mar led 制作 近年來,曾一度風靡美國的STEAM教育成為時下大熱,在教育領域的出鏡率居高不下,許多學校、教育機構甚至企業都紛紛加入了這股熱潮。如果你還不知道STEAM,那可真out啦! 美國STEAM教育頂尖教

神經網路學習筆記(1)Image Classification

學習網站: 資料驅動方法 KNN(例如採用L1曼哈頓距離) 程式碼如下: import numpy as np class NearestNeighbor: def train(self,X,y): self.Xtrain=X self

李飛飛確認將離職雲AI總帥換人,卡耐基·梅隆老教授接棒

李飛飛正式迴歸斯坦福,新任谷歌雲AI總帥還是個教授,不過這次是全職。 9月11日凌晨訊息,谷歌雲CEO Diane Greene剛剛在其官方部落格上公佈了一則重磅新聞,確認來自卡內基梅隆大學的電腦科學院院長Andrew Moore教授將在2018年底接任李飛飛的谷歌雲AI負責人職位,而李飛

以太坊已經融入的血液CEO Sundar Pichai和創始人Sergey Brin的兒子都是以太坊礦工

谷歌聯合創始人謝爾蓋•布林(Sergey Brin)和執行長(CEO)桑達爾•皮查伊(Sundar Pichai)的共同點遠不止他們的工作。這兩位技術億萬富翁都有精通加密貨幣的兒子,他們都是以太坊礦工。     據《商業內幕》(Business Insider)報道,

對抗神經網路學習(四)——WGAN+爬蟲生成皮卡丘影象(tensorflow實現)

一、背景 WGAN的全稱為Wasserstein GAN, 是Martin Arjovsky等人於17年1月份提出的一個模型,該文章可以參考[1]。WGAN針對GAN存在的問題進行了有針對性的改進,但WGAN幾乎沒有改變GAN的結構,只是改變了啟用函式和loss函式,以及擷取權重,卻得到了非常好

如何從頭設計一個神經網路

本系列教程分為兩部分 1 設計一個神經網路庫的基本架構設計 2 每個組建的具體實現細節 1 神經網路庫的基本架構設計 為了專案程式碼的可擴充套件性,我們選取面向物件的編碼方式。我們設計的基本架構主要包括幾個主要模組 1.神經網路基本元件(

神經網路學習(4)————自組織特徵對映神經網路(SOM)以及python實現

一、自組織競爭學習神經網路模型(無監督學習) (一)競爭神經網路   在競爭神經網路中,一層是輸入層,一層輸出層,輸出層又稱為競爭層或者核心層。在一次輸入中,權值是隨機給定的,在競爭層每個神經元獲勝的概率相同,但是最後會有一個興奮最強的神經元。興奮最強的神經元戰勝了其他神

神經網路學習(3)————BP神經網路以及python實現

一、BP神經網路結構模型                BP演算法的基本思想是,學習過程由訊號的正向傳播和誤差的反向傳播倆個過程組成,輸入從輸入層輸入,經隱層處理以後,傳向輸出層。如果輸出層的實際輸出和期望輸出不符合

神經網路學習(2)————線性神經網路以及python實現

一、線性神經網路結構模型 在結構上與感知器非常相似,只是神經元啟用函式不同,結構如圖所示: 若網路中包含多個神經元節點,就可形成多個輸出,這種神經網路可以用一種間接的方式解決線性不可分的問題,方法是用多個線性含糊對區域進行劃分,神經結構和解決異或問題如圖所示:  &nbs

一種用迴歸神經網路學習說話人嵌入的無監督神經網路預測框架

An Unsupervised Neural Prediction Framework for Learning Speaker Embeddings using Recurrent Neural Networks 一種用迴歸神經網路學習說話人嵌入的無監督神經網路預測框架 摘要 本文提出

卷積神經網路-學習筆記

1. Edge Detection Vertical Edge Detection: Convolve the image with Matrix

多事之秋雲高層人事頻繁變動,CEO也將離職

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

使用tensorflow搭建一個神經網路,實現一個分類問題

工欲善其事必先利其器,首先,我們來說說關於環境搭建的問題。 安裝的方法有一萬種,但是我還是推薦下面這種安裝方法,簡單方便,不會出現很多莫名其妙的問題。 Anaconda + Jupyter + tensorflow 安裝的具體流程見下面的視訊連結: https://www.youtube.com/watc