您的位置:首頁>正文

「圖解」2030年全球深度學習2/3將在中國完成,算力成AI發展最大瓶頸

新智元編譯

(作者/Tim Dettmers) 這篇博客文章討論了長期的 AI 研究方向, 並對目前研究領域存在的短期思維及其陷阱進行了批判性的審視。 在本系列的第一篇博文中, 我首先將通過計算和硬體的使用情況來討論資料和計算能力的長期發展趨勢。 然後我們會提供研究人員的人口統計資料, 以證明, 無法獲得強大的計算資源的研究人員的比例正在快速增長。

隨後, 我們將重點介紹支撐這篇博客的核心論文《重新審視深度學習時代資料的不合理有效性》(Revisiting Unreasonable Effectiveness of Data in Deep Learning Era),

它揭示了雖然更多的資料可以提高預測性能, 但它帶來了相當沉重的計算負擔。 我們還將看到, 與專業化的技術相比, 對更多資料進行預訓練能取得的效果僅僅與預測能力相當。

基於此, 我總結認為, “資料越多越好”這一說法只對那些擁有處理這樣大批量資料的計算能力的大公司有用。 絕大部分的研究者應該瞄準另外一種類型的研究, 在這種研究中, 緊缺的資源不是計算能力而是創造力。 但是, 我也認為, 未來的資料量註定會呈現前所未有的增長, 這將會讓大型的資料集成為一個剛需。 因此, 我們需要一些技術來使處理更多的資料變得可行,

同時我們也需要一些技術讓深度學習對盡可能多的研究人員開放, 其中, 這些研究院很多來自發展中國家。

在完成對核心論文的討論之後, 我們來看看最新的四篇論文中介紹的可能的解決方案。 這些文章旨在通過以下方式克服這些長期趨勢:(1)讓實際操作, 比如卷積, 變得更加高效;(2)通過開發智慧功能, 使我們能夠使用較小, 快速的模型獲得與那些大型的, 臃腫的, 笨拙的模型相似的效果;(3)具有豐富計算資源的公司如何利用這些資源來創建研究, 進而惠及每一個在尋找新框架的人;(4)如何通過資訊檢索的方法預先選擇相關資料, 來解決不斷增長的資料問題。

深度學習研究中“短視”的問題

這一系列的博客旨在促進深度學習研究的批判性思考,

鼓勵深度學習社區追求對該領域進展至關重要的研究。 目前, 在深度學習領域, 不良的炒作和抱團在精神上獲得了強勁的推動力。 但是, 在我看來, 很多研究越來越短視。 短視主要是由於越來越多的新晉力量的競爭壓力, 來自“要麼發表要麼死亡”的壓力, 以及“在arXiv先占坑”的壓力, 這會促成那些可以提供快速收益而不是推動深度學習社區發展的不完整研究。

另一個問題是, 許多研究人員使用 Twitter 作為當前瞭解深度學習研究趨勢的主要來源, 這會加劇“抱團”的群體心態問題:它鼓勵隨大流, 也就是說, 認為這是會流行的所以才做。 其次, 它鼓勵追隨知名的研究者和名氣較高的人, 而非關注多樣化的研究者,

這會導致思維的單一。 Twitter不是一個討論論壇, 可以深入討論想法, 得出結論, 讓大家受益。 Twitter是一個贏者通吃的平臺, 小的玩家會逐漸消失。 如果大玩家犯了錯誤, 深度學習社區的每個人都被誤導了。 而事實是, 大玩家也是會犯錯的。

就像“探索vs利用(explore vs exploit )”問題一樣:如果每個人都只是利用的話, 我們就沒有發現, 只有增量的進步, 其中大多數是同質的。 我更願意相信, 世界是需要突破的。 AI一定可以幫助我們實現繁榮和解決難題, 但前提是, 我們要更多的選擇探索。

這篇博客不是所有這一切的解決方案, 而是旨在讓您輕鬆地以更加批判性的眼光來分析研究方向。 我希望你讀完這篇文章的時候, 可以思考你自己的方向, 以及它與我在這裡畫出的這個長期圖景的關係。

本博文系列討論的研究趨勢旨在(1)突出深度學習領域中重要但被忽視的研究,或(2)提出那些使非常受歡迎的深度學習研究出現明顯短視或不成熟的問題。我並不是在這裡將流氓心態光榮化:為了貶低而貶低是沒有價值的。我也不是說所有的主流研究方向都是垃圾:最受歡迎的研究之所以受歡迎,是因為它很重要。我希望幫助你養成一種批判的心態和長期的思維。

這個博文的主題是第(1)類中的一個話題,它涉及深度學習研究,這很重要,但經常被忽視,那就是——計算效率和資料帶來的問題。我將分析趨勢,以概述為什麼這是每個人都應該關心的一個重要的長期問題。

事實上,如果我們不解決這個問題,深度學習領域可能會停滯不前。在討論了這些趨勢後,我們看到目前的研究揭示了這一研究方向的核心問題。最後,我將討論過去兩個月的四篇研究論文,它們試圖解決上述問題。

長期趨勢:平均每位研究人員可以擁有1到4個GPU嗎?

這篇博文的主要論文涉及到越來越多的資料如何改進預測結果(參見後文的論文)。這項工作的主要問題是,它如果要在2個月內實現這一結果,它需要50個GPU。考慮到GPU處理的速度變化,如果我們要在一個4GPU的電腦上,在兩個月或者兩周的時間內實現這一結果,我們可能要到2025年或者2029年才能擁有這樣的系統。

這一假設的前提是,計算能力翻一倍的時間是2兩年。如果計算能力翻一倍的時間是3年的話,我們要分別到2029或者2035年才能獲得這樣的系統。

絕大多數發展中國家的深度學習研究人員將會發現,很難擁有一塊屬於自己的GPU。通常,這些研究人員也需要與其他研究人員分享資源。如果這些研究人員大部分都要求在兩個月或者兩周的時間段內單獨享有一塊GPU的話,那麼考慮到目前的計算能力增長情況(兩年翻一倍),這位研究人員將能夠分別在2029年或2035年複製這項研究。如果翻倍的時間週期是三年,那麼這些數字分別是2035年和2044年。問題是計算增長預計將進一步下降,所以這些預測數字其實是相對樂觀的。

以下哪一個例子對未來更為現實:平均每位研究人員可以擁有1到4個GPU嗎?如果我們研究這些研究人員的人口統計情況和收入的增長,我們可以找到答案。特別是,我指的是中國深度學習研究的增長以及人均GDP的增長。

研究品質的增長趨勢尚不清楚,但對研究數量而言,中國在快速增長。按照目前的增長速度,美國每年為60%,中國每年為170%(2012-2016年),預計到2030年,全球深度學習研究的98%都將來自中國。當然,這個趨勢是不可持續的。我們有可能看到中國在某一點上會增長停滯(在美國已經出現這一情況,但中國還沒有),但由於中國政府的支持力度很大,在未來十年裡,中國政府對AI的投資將會超過1500億,加上美國政府對科學的不利政策,很有可能中國很快就會在AI研究中取得明確的領先。到2030年,如果全球超過80%的深度學習研究來自中國,我不會感到驚訝。但是保守估計,到2030年,全世界有超過66%的深度學習將會是在中國完成的。

超級電腦的計算能力的翻倍的頻率可能會在1.5-2年之間,同時增長的還有生產所需處理器的工廠的成本。2015年,計算增長翻倍是1倍,但是現在已經過時了。自2017年以來,計算力的翻倍時間可能會是3年一週期,所以,在本世紀內,將不會達到電腦的大腦極限。另外,在此之前,2025年左右,由於物理限制,計算增長可能會停滯。如果我們堅持馮 - 諾依曼式電腦,計算問題是不可避免的。

然而,以目前中國國內生產總值增長率約5%計算,到2030年,中國人均收入仍將只有美國2017年人均收入的80%左右。基於這一資料,平均每位元研究人員可能無法使用多於一個或兩個GPU(或當時的等效物)。如果將這些數位放在一起,就可以得出結論:將來大多數研究將受到計算能力的嚴重限制,進而受到演算法複雜性的限制。

以上所有這些數字都假設目前計算能力的翻倍時間是2年或3年。雖然總體情緒依然樂觀,但在計算能力增長上,我們的步伐確實是越來越放緩,而3年的翻倍似乎對當下更加現實,而對未來則是不現實的。

目前,還沒有技術能大大提升計算能力,超越2019年的預期計算性能。我們以前就達到了這個高度,我們也可以通過創新走出困境,但現在我們已經接近可能性的物理極限,我們不能再創新,因為創造力本身不能超越原子層級,創造力本身並不能抵制量子效應。這方面的計算進度將會很慢,難度很大。

另一個問題就是資料的快速增長。資料的增長現在比計算能力的增長快。這意味著將來再也不會像現在一樣,隨著資料量的變大,深度學習的效果也就會越好。在未來,我們可以運行我們的深度學習演算法的資料將不斷縮小。這意味著將來永遠不會發展到一個點,也就是我們無法全部利用我們擁有的所有資料。

所有這些趨勢使得計算效率對於深度學習的長期進展至關重要。如果我們的演算法不能用更少的計算資源來做到更多的話,那麼這個領域將會很快停滯。如果我們希望AI在未來幾十年內繼續繁榮,我們就需要克服這個問題。解決方案必須是演算法和軟體——我們不能再依賴硬體來實現增長。

每年處理所有上傳到YouTube資料所需GPU的數量(通過ResNet逐幀解決),以及資料和計算增長之間日益增長的差距。假設資料的增長頻率是2年翻一倍,並且從2019年開始計算能力的增長的時間為3年和4年翻一倍。

雖然資料的增長主要來自視頻(例如YouTube視頻),視頻資料相比文本資料(例如維琪百科)具有較小的知識密度,但是可以預期有用資料的總體增長也是指數級的。這意味著如果所有YouTube視頻的1%都包含對廣泛受眾有用的一般資訊,那麼這些資料仍將比我們的計算資源快速增長。長期而言,增長率幾乎是一切,基線並不重要。以1.5年翻一倍的速度計算,1%和100%的基線要獲得相同數量的資訊,也只是落後8年。

為了說明資料的大小,你可參考下面的例子:目前,每分鐘上傳到YouTube的視頻長度是800小時。如果1%的視頻是資訊有用到,那麼到2025年,我們可以預期,每分鐘會有800小時的有用資訊視頻上傳,也就是說,每個視頻的每秒都包含相關資訊。

在一分鐘內從800小時的視頻中提取所有有用的資訊將是一個非常困難的問題。並且,要記住,我們將來再也不會有比現在更小計算與資料比例:計算時間(1分鐘),有用的資訊(800小時的視頻)。資料正在飛奔,我們永遠無法趕上。

自2015年以來,各種平臺每分鐘生成的資料。自此,每分鐘上傳的YouTube視頻的增長已經增加到了800小時。

所以,總的來說:

計算能力的限制將會阻礙在越來越大的資料集上訓練深度學習模型;

到2030年,大多數的深度學習研究者所擁有的平均GPU數量將不會超過1-4顆;

資料的增長要超過計算能力的增長。從現在開始,計算的難題將會持續惡化。我們現在所處的時代,也只是能處理資訊的一小部分,但是未來還會越來越少;

計算性能增長緩慢。我很懷疑它會變得更好,我們受限於物理極限。

核心論文:增加資料並不是一切;對大多數研究人員,計算資源是比想像力和創意更有限制力的因素

【論文】重新審視資料在深度學習時代不合理有效性(Revisiting Unreasonable Effectiveness of Data in Deep Learning Era)

【作者】Chen Sun, Abhinav Shrivastava, Saurabh Singh, Abhinav Gupta(Google Research + CMU)

【連結】https://arxiv.org/abs/1707.02968

想法

在3億規模的圖像資料集JFT-300M上訓練一個大規模卷積網路,作為預訓練步驟。然後,使用這個預訓練好的網路在 ImageNet,PASCAL VOC 2012 和 Microsoft COCO上,進行電腦視覺任務,比如圖像分類、物件檢測、圖像分割和姿態估計。將結果與在ImageNet上預訓練的網路或在JFT-300M子集上訓練的網路進行比較。

執行

在Downpour Gradient下降(這是一種用於訓練的非同步並行梯度下降方法)中,使用50顆GPU和其他參數伺服器,使用分層的標籤訓練標準的ResNets(50層、101層和152層),同時用Faster-RCNN進行物件檢測,全連接層分佈在參數伺服器之間。

結果

JFT-300M(18k)中比ImageNet(1k)多增加的類別的數量似乎不會對性能造成很大的影響。如果使用JFT-300M資料集中所有的ImageNet類別進行預訓練,性能似乎與使用所有類別進行預訓練的結果相似。

較小的網路(特別是ResNet-50)的模型容量不足以捕獲JFT-300M的所有資訊,也就是說,如果使用容量較小的模型在JFT-300M進行預訓練,則性能提升在資料變多的情況下發生了停滯(例如ResNet-152 相比於 ResNet-50),表明需要高的模型容量才能利用所有資料。

當圖像資料量從10M→30M,30M→100M和100M→300M時,在MS COCO上的平均精度性能提高分別為約為3倍、4倍和2倍。相比之下,Faster-RCNN的邊界框細化、上下文和多尺度測試分別提升了2.7倍、0.1倍和2.5倍。這一結果表明,針對深度學習架構的特定部分進行增強,效果可能與使用更多資料一樣有效。

在JFT-300M的子集上進行預訓練並在MS COCO上使用該預訓練模型時,性能提高。左邊是在training+0.8*dev set訓練的結果,右邊是只在 train set上訓練的結果。圖片來自論文:Revisiting Unreasonable Effectiveness of Data in Deep Learning Era

評論

這篇論文在Twitter上廣泛傳播。一直以來人們普遍認為:“訓練深度學習模型時使用的資料越多,模型就越好,所以我們需要更多的資料!”但是,正如我們上面討論的,這並不完全準確, 我們沒有足夠的計算能力來使這樣大的資料集對大多數研究人員都切實有用,而且這種趨勢將在今後愈加惡化(當然絕對值會有所提高)。除了計算能力之外,這項工作的記憶體要求也是一個問題。由於全連接層不適合GPU記憶體,因此它們必須以分層的方式存儲在多顆GPU上。這也意味著,幾乎只有大公司才有能力複現論文結果。

主要的問題是,投入產出比失衡。如果使用針對MS COCO的專門技術(邊界框細化、上下文和多尺度測試),我們甚至能超過在300M圖像上進行預訓練的網路的結果。這種專門技術的另一特點是,開發這些技術不受計算資源的束縛,真要說,是受創造力的束縛。而對於大多數研究人員來說,計算資源是比創造力更為有限制力的因素——我們不缺乏想法,我們只是缺乏運行所有這些想法的GPU。

今後,發展中國家將出現越來越多的深度學習研究人員,這種情況也將變得越來越真實。如果創造力和計算資源都受到限制,我們將無法進行有效的研究。最好的研究應該是具有包容性和可複製的,讓其他研究人員也能參與進來。因此,對於大多數研究人員而言,使用大規模資料並不是最好的研究方向。

不過,雖然現在超大規模的資料量還有些不切實際,但很快這個問題就會被解決。深度學習研究社區應該有足夠多的資料,讓我們的標準硬體不會空閒著。隨著方法和硬體的改進,ImageNet大小的資料集將不再適用,我們將需要繼續使用類似於JFT-300M的更大的資料集。但是,在處理資料和運行模型還是一大挑戰的當下,在工作中使用大規模資料集並不是很能有產出。

對大多數研究人員而言,要做的應該是提出一個好的想法和實現這一想法的演算法。當然,“大資料問題”在工業研究中佔有一席之地。學術研究的工作應該是能被大家所使用的方法,而不僅僅是精英機構和公司。

補充論文:進一步提升深度學習的幾種方向

【論文】ShuffleNet:用於移動設備的超高效卷積神經網路(ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices)

【作者】Xiangyu Zhang, Xinyu Zhou, Mengxiao Lin, Jian Sun(曠視科技Face++)

【連結】https://arxiv.org/abs/1707.01083

簡介

作者提高了卷積網路的效率,模型在使用更少的參數的情況下,實現了相同的分類性能,方法是:(1)group-wise 卷積和(2)通過 channel-shuffle 在這些 group 之間共用特徵。

背景

Group卷積是將輸入通道分成組(高x寬x通道:10x10x9 →(10x10x3,10x10x3,10x10x3)),並計算每組單獨卷積的操作(每個10x10x3特徵圖上一次卷積)。這意味著每個卷積運算在輸入通道的子集上有效地執行卷積。 注意,Group卷積可以在不同的特徵空間中操作,因為它們是被通道分割的,例如,一個組可以會有用於鼻子、眼睛的專門特徵(specialized feature),而另一組具有用於耳朵和頭髮的特徵(正常卷積對所有特徵進行操作:鼻子、眼睛、耳朵、頭髮等等)。這樣會降低預測性能,但可以節省大量的計算和記憶體。Group卷積最早是 Alex Krizshevsky 提出的,他使用這種技術在兩顆GPU上處理ImageNet資料。

貢獻

Channel-shuffle 是一種旨在消除不同組之間特徵特化(specialization)的操作。連續進行group卷積最大的問題是,第二個group卷積只有在從前一層的分佈中學習到更多的專門特徵時才會有效,例如,group卷積1可能具有眼睛和鼻子的輸入特徵,下一個group卷積將進一步將其分解為單獨的眼睛和鼻子特徵,使得每個卷積僅計算一個特徵。通常,卷積會學習每個通道的一個或多個特徵,但是通過連續的group卷積,我們最終將只能在每個卷積中學習1個特徵(實際上更複雜,瞭解更多看新智元以前對 ShuffleNet 的報導:孫劍團隊提出ShuffleNet,由於穀歌MobileNet。

Channel-shuffle 通過在所有group shuffle通道解決了這個問題,這樣隨著時間的推移,每個卷積都有可能學到所有的特徵。

結果

相比其他針對移動設備設計的網路,ShuffleNet的性能有了微小的提升。ShuffleNet在保持性能一致的同時,速度比 vanilla AlexNet 快13倍。在實現與其他參考架構相同性能的同時,顯著減少了參數的數量。

評論

雖然ShuffleNet僅對現有方法產生了微小的改進,但其主要吸引力在於它使用的是任何人都可以在任何深度學習框架中輕鬆實現的簡單、標準的操作(Group卷積+channel shuffling)。這對於許多應用都非常有用。從中我們能得到的啟發是,將普通的卷積換成group卷積,當group卷積不行時再換回普通卷積,這樣將卷積組合起來。這正是我們需要的研究類型——任何人都易於使用、容易實施,能快速改進的性能。這樣的研究將來將變得非常重要。

論文將方法限定在最適用於移動設備的小型和快速網路,但這項研究的意義遠遠超出了這一點。Group卷積+channel shuffle 具有通用性,任何使用卷積的人都應該大膽使用這項技術。

【論文】Natural Language Processing with Small Feed-Forward Networks(使用簡單前饋網路進行自然語言處理)

【作者】Jan A. Botha, Emily Pitler, Ji Ma, … , Slav Petrov; Google;

【連結】 https://arxiv.org/abs/1708.00214

Idea

這個任務很簡單:預定義一個記憶體預算,並嘗試設計多層感知器( multi-layer perceptrons,MLPs),能夠(1)適應這個記憶體預算,(2)在各種NLP任務中實現可能的最佳性能。由於MLP的計算表達能力有限,我們需要為網路提供智慧、有表達力的特徵來完成任務。如果成功了,這一方法將產生適用於資料量大,或計算資源有限的環境(例如手機)的架構。

特徵工程 & 優化

Hashed n-char-grams

1-char gram 嵌入,即將文檔中的每個單獨的character映射到一個唯一的向量,過去已有過成功,特別是使用迴圈神經網路(RNN)。不過,在這項工作中,使用的是n-char grams,特別是2, 3, 和 4 char-grams。但是,如果我們只使用英文字母(26個字元),那麼我們會有 456976 個 4-char grams 的組合,超出了這項工作預先設置好的記憶體限制。為了防止這個參數爆炸,作者將 char grams 散列,並通過modulo運算將它們分組成 buckets。例如,“hash(char gram)mod 1000”將產生0到999之間的index,因此大多數 char gram 與另一個 char gram 共用參數。這個技巧已經被應用於詞彙表之外的詞,以便將不同的詞彙表外詞彙映射到不同的詞彙表外向量[2]。但似乎這個n-gram的散列非常有效,這是為什麼簡單網路的表現如此好的一個原因。

使用這種方法,我們希望網路可以從上下文區分 n-char gram 的含義。這個過程類似我們人類區分詞彙的方法,例如“He hit the ball with his bat” (他用球拍擊球)和“She could see the bat flying in the twilight”(她可以看到蝙蝠在暮色中飛過),這兩句話,對於人類來說很容易區分“bat”的不同含義,然後對於機器來說,似乎也區分得很好。

有趣的是,作者指出,與通常的50-500維度(或對於LSTM來說更高)相比,參數共用還允許將嵌入維度降低到8-16的範圍。

圖:例如,char-gram 的用法對序列“no queue at”起作用。每個token的2-char-grams(藍色)和3-char-grams(綠色)被分別查找,並為每個token求和。

量化

嵌入(embedding)佔用大量記憶體,作者應用 8-bit 量化(quantization)來減少嵌入的記憶體佔用。量化是一種通過用整數近似來表 示浮點數的方法。8-bit 的通用量化是將應該被壓縮的數位歸一化在0到255(8-bit)的範圍內,然後將它們按比例分配到這些“buckets”中。我開發和審查了更複雜的8-bit近似方法,如果要加速GPU集群中的大型深度學習網路,這些也是非常有用的。如果讀者有興趣瞭解更多有關此主題的內容,可以閱讀我的這篇ICLR論文:8-Bit Approximations for Parallelism in Deep Learning(https://arxiv.org/abs/1511.04561),其中總結了8-bit近似方法,以及這些方法如何影響神經網路的訓練和並行化。

就像我的工作也顯示了, 8-bit 嵌入僅用於存儲,因此在計算之前將它們dequantizes 為 32-bit。使用這樣的壓縮,作者證明在預測性能方面沒有損失,同時將記憶體佔用減少了四分之一。

其他技巧

作者還使用其他技巧,如對part-of-speech(POS)分類進行 pre-ordering,但這些技巧更具體,需要更多的背景知識,因此在本文中我省略了這些技巧。

結果

作者在詞類(POS)標籤(名詞,動詞等),語言識別(給定一些文本,判斷是哪種語言) ,分割(給定一串字元,判斷哪裡是單詞的邊界,對許多亞洲語言而言這很重要)等任務上實現了state-of-the-art 或接近 state-of-the-art 的結果。作者的工作還大大減少了所需的操作和網路的規模,同時保持結果穩定。在底線上,所使用的方法一般能將計算預算和記憶體佔用面積減少大約一個數量級,即計算速度加快大約15倍,記憶體減少10倍。

為什麼這樣一個簡單,快速和節省記憶體的網路,結果可以如此強大?這是因為特徵工程(feature engineering):性能的很大一部分是由於word clusters。散列n-grams是性能提升的另一個原因。一般來說,量化或更低的精度可以更有效,這對於預測品質幾乎沒有缺點。這些是這篇論文的主要思想。

評價

作者通過利用新的、或有些被忽視的特徵來展現了一般網路、淺層網路和前饋網路的能力。預測結果和計算以及記憶體佔用的結果都令人印象深刻。隨著資料量的增長,這些方法將變得越來越重要,它證明了特徵工程並沒有死亡,甚至深度學習和NLP的進步需要特徵工程。

如果我們想要在NLP領域取得進步,那麼我不認為用相同的特徵來構建更複雜的模型就是正確的道路。我們需要創新演算法運行的基礎。如果我們給火箭工程師很次的建築材料,那就沒法期望他們搭的火箭能夠到達太空。只有 word embedding 是不夠的。如果我們想到達太空,就需要改進建築材料。

【論文】學習可遷移的架構進行可擴展的圖像識別(Learning Transferable Architectures for Scalable Image Recognition)

【作者】Barret Zoph, Vijay Vasudevan, Jonathon Shlens, Quoc V. Le(Google Brain)

【連結】https://arxiv.org/abs/1707.07012

思路

使用神經架構搜索(neural architecture search,NAS),也即強化學習來找到最好的深度學習架構。由於神經架構搜索在計算上非常昂貴,作者進行了多項簡化:

不使用神經架構搜索去優化參數

不對網路的所有層都進行優化,而是僅搜索兩個不同塊(block)的通用架構:(1)特徵擴展塊和(2)特徵縮減塊。通過反復堆疊這些塊來構建完整的架構

因為在ImageNet資料中找到一個好的架構需要太長時間,所以在較小的資料集(CIFAR10)上執行搜索,然後使用CIFAR10中最好的塊,並在ImageNet上使用

在幾顆GPU上進行搜索仍然很慢,所以使用450顆GPU

背景:神經架構搜索

使用最終是一個softmax層的RNN在架構中選擇單個層或功能。演算法:

預測用作輸入的隱藏層,即在最後一個或最後一個塊中選擇一個隱藏層。使用所選隱藏層的輸出作為輸入A

預測用作輸入的隱藏層,即在最後一個或最後一個塊中選擇一個隱藏層。使用所選隱藏層的輸出作為輸入B

對於要處理輸入A的新隱藏層,預測要進行的運算(卷積、最大池化、可分離卷積等)

對於用於處理輸入B的新隱藏層,預測要進行的運算(卷積、最大池化,可分離卷積等)

選擇合併運算併合並隱藏層A和B

重複K次(本文中K = 5)

將上述所有都連接成一個特徵向量

遵循一個固定的啟發式規則:每當先前隱藏的層操作步幅為2(還原塊)時,將當前隱藏層中的卷積濾波器加倍

找到的架構

通過神經網路搜索(NAS)發現的架構令人印象深刻。最值得注意的是,網路從來沒有選擇使用標準的3×3卷積,雖然它完全可能這樣做。相反,網路總是在常規卷積中選擇可分離的卷積。另一個有趣的是使用平均池化。在這些儲存格(或塊)中,這是一個很常見的操作。還有一個令人震驚的事實,作者嘗試手動添加到殘差連接到最終塊裡,但這些殘差連接降低了性能。

神經網路自己發現的架構讓我們更深地瞭解卷積網路的設計。然而,這也提出了新的問題:為什麼殘差連接沒有用?為什麼在這個架構中的identity connection 就足夠了?

結果

在稍微受限的參數設置中比較預測性能時,該架構實現了幾乎最先進的技術。只有 Shake-Shake 26 在ImageNet上比它表現更好。對於無約束參數,該架構在ImageNet上也得到了最先進的性能,同時還比其他網路有更高的計算效率。因此,該架構同時獲得了最先進的結果和快速訓練的時間。對於小型網路,該架構得出了比ShuffleNet更好的結果,但ShuffleNet的計算效率更高,特別是對於非常小的參數設置而言。

評論

這項工作成果驚人,並帶來了很多啟發。它的出現推翻了以往認為的,ImageNet性能好需要殘差,highway或dense連接的共識。我發現最有趣的是,這個工作發現的框架結構越來越像一個神經元的架構。

這項工作是一個非常奇怪的組合,常規實驗室很難實現這樣的研究(需要450個GPU),但這項工作的成果卻能為普通實驗室帶來福音(發現架構需要更少的計算力,參數利用率也更高)。從普通研究者的角度來看,這是Google可以做的最好的研究。它以實用的方式提升了領域和大家對於深度學習的認識,同時研究本身具有不可估量的計算資源要求,只能由行業巨頭來實現。這種類型的研究可能是行業巨頭可以做貢獻最多的領域。

【論文】Reading Wikipedia to Answer Open-Domain Questions(閱讀維琪百科來回答開放領域問題)

【作者】Danqi Chen, Adam Fisch, Jason Weston & Antoine Bordes (Facebook AI Research + Stanford);

【連結】https://arxiv.org/abs/1704.00051

傳統Q&A的問題

當前的問題-回答任務基本上是包含搜索任務的,需要在給定段落中找到與給定問題相關的文本(SQuAD,CNN + DailyMail,bAbI,WikiReading)。這不是與現實一樣的設置,因為當你有問題是,你通常並沒有得到包含有這個問題的答案的段落。因此,這些在資料集上表現良好的模型無法很好地推廣到其他資料集或任何現實中的問題。另一個問題是,在一些訓練集中,這些模型挑選包含75%的問題的答案的第一個句子來回答[7],這就意味著,(1)如果訓練集中沒有給出答案,(2)如果答案不在第一句話,傳統的模型就不能回答問題。

想法:使用資訊檢索(Information Retrieval)方法

資訊檢索+段落閱讀系統

模型、訓練資料集和結果請查閱論文:Reading Wikipedia to Answer Open-Domain Questions(https://arxiv.org/abs/1704.00051)

評論

這是非常重要的一項工作。正如我們在介紹中所討論的,我們正處於隨著時間推移資料量越來越大的時代,我們將能夠處理的資料是其中越來越小的部分。如果我們想使用計算昂貴的模型,例如深度學習模型,那麼唯一的解決方案是在處理之前檢索相關資訊。我們傳遞給深入學習模型的資訊必須高度凝聚而且高度相關。搜索相關資訊的最佳和最快捷的技術是標準資訊檢索方法。

這項工作表明,深度學習和資訊檢索的結合效果很好,並且能廣泛應用於開放領域的問題。這項工作還表明,這是多工學習的一種可行方法。當然它還有很多問題,預測性能現在也不是最佳的,但這並不重要,因為這項研究的長期重要性是顯而易見的。

深度學習研究方向:大型研究實驗室、初創公司、語言研究人員和視頻、圖像研究人員不同的側重點

從核心論文中,我們已經看到更多的資料改善了模型的預測性能。但是,這些性能提升雖然普遍,但是與通過專門技術所獲得的改進相比,還是微不足道的。我們還看到,對於大多數研究人員而言,大型資料集對計算需求太高,未來的研究人員在使用大規模資料集時,計算需求將更加受到限制。

分析上述核心論文的結果是有意義的,可以看到,目前推動深度學習領域最具成本和時間效益的方法,尚不需要超大規模資料集,幾十顆GPU和幾個月的計算時間。

當然,大規模資料集的時代將會來臨,我們需要確保屆時我們的方法也能夠適用於這些大規模資料集。我們不僅為了研究而進行研究,而且我們中的許多人為了解決明顯的重大問題而從事現在的工作。因此,找到能夠更有效地擴展,進行大規模深度學習的方法至關重要。相關的補充論文則為此提供了一些啟發。

大型實驗室:尋找在計算上高效的架構

上文提到的一些解決方案,比如神經架構搜索(NAS),本身是不切實際的,因為需要數百顆GPU才能有效地進行這項研究。然而,一旦這樣的研究完成,它們將對其他研究人員的工作帶來巨大好處。通過利用從這些研究中獲得的見解,我們可以找出更有效的模型設計。例如,現在人常說的“別再用regular卷積了,換成separable 卷積吧”,這個洞察非常實用,將會給整個研究社區帶來很大的推動力。

如果我們在實用神經網路自己發現架構的過程中,提供新的操作(group卷積+shuffle?),那麼可能會產生新的架構,再從中發現設計模型的更多見解。隨著時間推移,我們可以找到越來越高效的架構,這也將有助於我們處理像JFT-300M這樣的大型怪物資料集。這也將使未來的移動設備深度學習處理能力進一步提高。

我相信我們會看到NAS的改進,使大型實驗室更好地進行相關研究。尋找新的架構是非常重要的研究,但即使如此,這樣的研究方向也只能是大型公司和一些非常大的研究實驗室的首選研究方向,因為需要更多的計算資源,可能不適合小型實驗室。

初創公司和資金不足的實驗室:尋找計算上高效的運算

ShuffleNet告訴我們,運算(operation)的簡單變化可以為整個深度學習社區帶來巨大的效果,並建立一種有用和實用的方法。ShuffleNet是一個非常堅實的貢獻,我認為這個方向對於需要推動他們在移動平臺上表現的AI初創公司而言是最好的。這是朝向在大資料集上進行研究邁出的重要一步。對於所有受計算資源約束的研究實驗室,這一研究方向也是可行的。

同樣屬於這個方向的研究還包括低位計算(low-bit computation),比如 XNOR-Net。這樣的工作將變得越來越重要,因為GPU允許在硬體層面上執行8位操作,或允許特定的16位深度學習操作。

雖然任何一個實驗室都可以進行這樣的研究,但是受計算資源限制的實驗室,或其產品受限於計算成本的實驗室,最能夠從這些方向中獲益。

語言研究人員:通過特徵實現計算高效

我們還看到,有了正確的特徵以後,那麼平淡無味的多層感知器獲得了最先進的結果。自然語言理解(NLU)長期以來都忽視了特徵工程。

在過去,模型並不像特徵那樣重要。人們會仔細地手工設計語言特徵,從而通過簡單的模型獲得良好的效果。隨著詞嵌入和GPU的出現,我們開始專注於模型架構。這樣做也是正確的:憑藉我們現在的計算能力,我們可以讓電腦來學習特徵,幫我們做特徵工程。

問題在於,學習特徵這件事本身就高度依賴於輸入的資料。如果你給一個深度學習的語音辨識網路原始的語音資料,則可能無法訓練;但是,如果你給的是傅立葉轉換資料,同樣的網路就能很好地運行,並且易於訓練。

任何情況下,擁有正確特徵的簡單模型都將勝過擁有錯誤特徵的大型模型。因此,相比設計下一個架構,嘗試設計下一個新特徵可能會更有影響力。特別是在自然語言理解領域,這將是一個很好的研究方向。

有人可能會說,這與以前自然語言處理(NLP)的老路有何不同?這不是倒退一步嗎?

如果做得不好,確實會是倒退。我認為關鍵的因素是利用我們現在擁有的東西:通過深度學習進行特徵學習。我們不再需要讓那些有非常精確的語言動機的特徵去做一切。提出壓縮特定類型的資訊(同時丟棄其他資訊)的表徵就足夠了,深度學習將完成剩下的事情。老派NLP特徵工程可做不到這一點。我們需要結合傳統NLP和深度學習兩者的優勢。

語言和視頻研究者:篩選資料

資料的增長速度超過了計算力增長的速度,這意味著將來我們無法處理所有有用的資料。資料氾濫意味著我們需要從中選擇一些資料來處理——我們無法處理所有資料。但是,我們如何選擇正確的資料?資訊檢索可能是一個很好的答案。

我認為資訊檢索將是一個非常重要的研究方向,不僅因為資料的增長是不可避免的,而且資訊檢索也讓我們不需要去回答一些不必要的問題。很難說當前最先進的演算法是否比“花哨的字串匹配”(fancy string matching)更為重要。

資訊檢索的研究主要與語言研究人員有關,因為資訊檢索系統主要是為文本而構建的,但視覺系統使用資訊檢索也是可以想像的。例如,壓縮YouTube視頻,通過使用小型網路進行標記,並用資訊檢索方法進行索引,然後可以通過:(1)檢索可能的視頻段,以及(2)在這些段上應用視頻識別來搜索資訊。對於視頻的字幕資訊也是一樣的。想要回答一個需要視覺資訊的問題?搜索字幕,然後深入處理相關視頻片段。

原文:http://timdettmers.com/2017/08/31/deep-learning-research-directions

點擊閱讀原文可查看職位詳情,期待你的加入~

以及它與我在這裡畫出的這個長期圖景的關係。

本博文系列討論的研究趨勢旨在(1)突出深度學習領域中重要但被忽視的研究,或(2)提出那些使非常受歡迎的深度學習研究出現明顯短視或不成熟的問題。我並不是在這裡將流氓心態光榮化:為了貶低而貶低是沒有價值的。我也不是說所有的主流研究方向都是垃圾:最受歡迎的研究之所以受歡迎,是因為它很重要。我希望幫助你養成一種批判的心態和長期的思維。

這個博文的主題是第(1)類中的一個話題,它涉及深度學習研究,這很重要,但經常被忽視,那就是——計算效率和資料帶來的問題。我將分析趨勢,以概述為什麼這是每個人都應該關心的一個重要的長期問題。

事實上,如果我們不解決這個問題,深度學習領域可能會停滯不前。在討論了這些趨勢後,我們看到目前的研究揭示了這一研究方向的核心問題。最後,我將討論過去兩個月的四篇研究論文,它們試圖解決上述問題。

長期趨勢:平均每位研究人員可以擁有1到4個GPU嗎?

這篇博文的主要論文涉及到越來越多的資料如何改進預測結果(參見後文的論文)。這項工作的主要問題是,它如果要在2個月內實現這一結果,它需要50個GPU。考慮到GPU處理的速度變化,如果我們要在一個4GPU的電腦上,在兩個月或者兩周的時間內實現這一結果,我們可能要到2025年或者2029年才能擁有這樣的系統。

這一假設的前提是,計算能力翻一倍的時間是2兩年。如果計算能力翻一倍的時間是3年的話,我們要分別到2029或者2035年才能獲得這樣的系統。

絕大多數發展中國家的深度學習研究人員將會發現,很難擁有一塊屬於自己的GPU。通常,這些研究人員也需要與其他研究人員分享資源。如果這些研究人員大部分都要求在兩個月或者兩周的時間段內單獨享有一塊GPU的話,那麼考慮到目前的計算能力增長情況(兩年翻一倍),這位研究人員將能夠分別在2029年或2035年複製這項研究。如果翻倍的時間週期是三年,那麼這些數字分別是2035年和2044年。問題是計算增長預計將進一步下降,所以這些預測數字其實是相對樂觀的。

以下哪一個例子對未來更為現實:平均每位研究人員可以擁有1到4個GPU嗎?如果我們研究這些研究人員的人口統計情況和收入的增長,我們可以找到答案。特別是,我指的是中國深度學習研究的增長以及人均GDP的增長。

研究品質的增長趨勢尚不清楚,但對研究數量而言,中國在快速增長。按照目前的增長速度,美國每年為60%,中國每年為170%(2012-2016年),預計到2030年,全球深度學習研究的98%都將來自中國。當然,這個趨勢是不可持續的。我們有可能看到中國在某一點上會增長停滯(在美國已經出現這一情況,但中國還沒有),但由於中國政府的支持力度很大,在未來十年裡,中國政府對AI的投資將會超過1500億,加上美國政府對科學的不利政策,很有可能中國很快就會在AI研究中取得明確的領先。到2030年,如果全球超過80%的深度學習研究來自中國,我不會感到驚訝。但是保守估計,到2030年,全世界有超過66%的深度學習將會是在中國完成的。

超級電腦的計算能力的翻倍的頻率可能會在1.5-2年之間,同時增長的還有生產所需處理器的工廠的成本。2015年,計算增長翻倍是1倍,但是現在已經過時了。自2017年以來,計算力的翻倍時間可能會是3年一週期,所以,在本世紀內,將不會達到電腦的大腦極限。另外,在此之前,2025年左右,由於物理限制,計算增長可能會停滯。如果我們堅持馮 - 諾依曼式電腦,計算問題是不可避免的。

然而,以目前中國國內生產總值增長率約5%計算,到2030年,中國人均收入仍將只有美國2017年人均收入的80%左右。基於這一資料,平均每位元研究人員可能無法使用多於一個或兩個GPU(或當時的等效物)。如果將這些數位放在一起,就可以得出結論:將來大多數研究將受到計算能力的嚴重限制,進而受到演算法複雜性的限制。

以上所有這些數字都假設目前計算能力的翻倍時間是2年或3年。雖然總體情緒依然樂觀,但在計算能力增長上,我們的步伐確實是越來越放緩,而3年的翻倍似乎對當下更加現實,而對未來則是不現實的。

目前,還沒有技術能大大提升計算能力,超越2019年的預期計算性能。我們以前就達到了這個高度,我們也可以通過創新走出困境,但現在我們已經接近可能性的物理極限,我們不能再創新,因為創造力本身不能超越原子層級,創造力本身並不能抵制量子效應。這方面的計算進度將會很慢,難度很大。

另一個問題就是資料的快速增長。資料的增長現在比計算能力的增長快。這意味著將來再也不會像現在一樣,隨著資料量的變大,深度學習的效果也就會越好。在未來,我們可以運行我們的深度學習演算法的資料將不斷縮小。這意味著將來永遠不會發展到一個點,也就是我們無法全部利用我們擁有的所有資料。

所有這些趨勢使得計算效率對於深度學習的長期進展至關重要。如果我們的演算法不能用更少的計算資源來做到更多的話,那麼這個領域將會很快停滯。如果我們希望AI在未來幾十年內繼續繁榮,我們就需要克服這個問題。解決方案必須是演算法和軟體——我們不能再依賴硬體來實現增長。

每年處理所有上傳到YouTube資料所需GPU的數量(通過ResNet逐幀解決),以及資料和計算增長之間日益增長的差距。假設資料的增長頻率是2年翻一倍,並且從2019年開始計算能力的增長的時間為3年和4年翻一倍。

雖然資料的增長主要來自視頻(例如YouTube視頻),視頻資料相比文本資料(例如維琪百科)具有較小的知識密度,但是可以預期有用資料的總體增長也是指數級的。這意味著如果所有YouTube視頻的1%都包含對廣泛受眾有用的一般資訊,那麼這些資料仍將比我們的計算資源快速增長。長期而言,增長率幾乎是一切,基線並不重要。以1.5年翻一倍的速度計算,1%和100%的基線要獲得相同數量的資訊,也只是落後8年。

為了說明資料的大小,你可參考下面的例子:目前,每分鐘上傳到YouTube的視頻長度是800小時。如果1%的視頻是資訊有用到,那麼到2025年,我們可以預期,每分鐘會有800小時的有用資訊視頻上傳,也就是說,每個視頻的每秒都包含相關資訊。

在一分鐘內從800小時的視頻中提取所有有用的資訊將是一個非常困難的問題。並且,要記住,我們將來再也不會有比現在更小計算與資料比例:計算時間(1分鐘),有用的資訊(800小時的視頻)。資料正在飛奔,我們永遠無法趕上。

自2015年以來,各種平臺每分鐘生成的資料。自此,每分鐘上傳的YouTube視頻的增長已經增加到了800小時。

所以,總的來說:

計算能力的限制將會阻礙在越來越大的資料集上訓練深度學習模型;

到2030年,大多數的深度學習研究者所擁有的平均GPU數量將不會超過1-4顆;

資料的增長要超過計算能力的增長。從現在開始,計算的難題將會持續惡化。我們現在所處的時代,也只是能處理資訊的一小部分,但是未來還會越來越少;

計算性能增長緩慢。我很懷疑它會變得更好,我們受限於物理極限。

核心論文:增加資料並不是一切;對大多數研究人員,計算資源是比想像力和創意更有限制力的因素

【論文】重新審視資料在深度學習時代不合理有效性(Revisiting Unreasonable Effectiveness of Data in Deep Learning Era)

【作者】Chen Sun, Abhinav Shrivastava, Saurabh Singh, Abhinav Gupta(Google Research + CMU)

【連結】https://arxiv.org/abs/1707.02968

想法

在3億規模的圖像資料集JFT-300M上訓練一個大規模卷積網路,作為預訓練步驟。然後,使用這個預訓練好的網路在 ImageNet,PASCAL VOC 2012 和 Microsoft COCO上,進行電腦視覺任務,比如圖像分類、物件檢測、圖像分割和姿態估計。將結果與在ImageNet上預訓練的網路或在JFT-300M子集上訓練的網路進行比較。

執行

在Downpour Gradient下降(這是一種用於訓練的非同步並行梯度下降方法)中,使用50顆GPU和其他參數伺服器,使用分層的標籤訓練標準的ResNets(50層、101層和152層),同時用Faster-RCNN進行物件檢測,全連接層分佈在參數伺服器之間。

結果

JFT-300M(18k)中比ImageNet(1k)多增加的類別的數量似乎不會對性能造成很大的影響。如果使用JFT-300M資料集中所有的ImageNet類別進行預訓練,性能似乎與使用所有類別進行預訓練的結果相似。

較小的網路(特別是ResNet-50)的模型容量不足以捕獲JFT-300M的所有資訊,也就是說,如果使用容量較小的模型在JFT-300M進行預訓練,則性能提升在資料變多的情況下發生了停滯(例如ResNet-152 相比於 ResNet-50),表明需要高的模型容量才能利用所有資料。

當圖像資料量從10M→30M,30M→100M和100M→300M時,在MS COCO上的平均精度性能提高分別為約為3倍、4倍和2倍。相比之下,Faster-RCNN的邊界框細化、上下文和多尺度測試分別提升了2.7倍、0.1倍和2.5倍。這一結果表明,針對深度學習架構的特定部分進行增強,效果可能與使用更多資料一樣有效。

在JFT-300M的子集上進行預訓練並在MS COCO上使用該預訓練模型時,性能提高。左邊是在training+0.8*dev set訓練的結果,右邊是只在 train set上訓練的結果。圖片來自論文:Revisiting Unreasonable Effectiveness of Data in Deep Learning Era

評論

這篇論文在Twitter上廣泛傳播。一直以來人們普遍認為:“訓練深度學習模型時使用的資料越多,模型就越好,所以我們需要更多的資料!”但是,正如我們上面討論的,這並不完全準確, 我們沒有足夠的計算能力來使這樣大的資料集對大多數研究人員都切實有用,而且這種趨勢將在今後愈加惡化(當然絕對值會有所提高)。除了計算能力之外,這項工作的記憶體要求也是一個問題。由於全連接層不適合GPU記憶體,因此它們必須以分層的方式存儲在多顆GPU上。這也意味著,幾乎只有大公司才有能力複現論文結果。

主要的問題是,投入產出比失衡。如果使用針對MS COCO的專門技術(邊界框細化、上下文和多尺度測試),我們甚至能超過在300M圖像上進行預訓練的網路的結果。這種專門技術的另一特點是,開發這些技術不受計算資源的束縛,真要說,是受創造力的束縛。而對於大多數研究人員來說,計算資源是比創造力更為有限制力的因素——我們不缺乏想法,我們只是缺乏運行所有這些想法的GPU。

今後,發展中國家將出現越來越多的深度學習研究人員,這種情況也將變得越來越真實。如果創造力和計算資源都受到限制,我們將無法進行有效的研究。最好的研究應該是具有包容性和可複製的,讓其他研究人員也能參與進來。因此,對於大多數研究人員而言,使用大規模資料並不是最好的研究方向。

不過,雖然現在超大規模的資料量還有些不切實際,但很快這個問題就會被解決。深度學習研究社區應該有足夠多的資料,讓我們的標準硬體不會空閒著。隨著方法和硬體的改進,ImageNet大小的資料集將不再適用,我們將需要繼續使用類似於JFT-300M的更大的資料集。但是,在處理資料和運行模型還是一大挑戰的當下,在工作中使用大規模資料集並不是很能有產出。

對大多數研究人員而言,要做的應該是提出一個好的想法和實現這一想法的演算法。當然,“大資料問題”在工業研究中佔有一席之地。學術研究的工作應該是能被大家所使用的方法,而不僅僅是精英機構和公司。

補充論文:進一步提升深度學習的幾種方向

【論文】ShuffleNet:用於移動設備的超高效卷積神經網路(ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices)

【作者】Xiangyu Zhang, Xinyu Zhou, Mengxiao Lin, Jian Sun(曠視科技Face++)

【連結】https://arxiv.org/abs/1707.01083

簡介

作者提高了卷積網路的效率,模型在使用更少的參數的情況下,實現了相同的分類性能,方法是:(1)group-wise 卷積和(2)通過 channel-shuffle 在這些 group 之間共用特徵。

背景

Group卷積是將輸入通道分成組(高x寬x通道:10x10x9 →(10x10x3,10x10x3,10x10x3)),並計算每組單獨卷積的操作(每個10x10x3特徵圖上一次卷積)。這意味著每個卷積運算在輸入通道的子集上有效地執行卷積。 注意,Group卷積可以在不同的特徵空間中操作,因為它們是被通道分割的,例如,一個組可以會有用於鼻子、眼睛的專門特徵(specialized feature),而另一組具有用於耳朵和頭髮的特徵(正常卷積對所有特徵進行操作:鼻子、眼睛、耳朵、頭髮等等)。這樣會降低預測性能,但可以節省大量的計算和記憶體。Group卷積最早是 Alex Krizshevsky 提出的,他使用這種技術在兩顆GPU上處理ImageNet資料。

貢獻

Channel-shuffle 是一種旨在消除不同組之間特徵特化(specialization)的操作。連續進行group卷積最大的問題是,第二個group卷積只有在從前一層的分佈中學習到更多的專門特徵時才會有效,例如,group卷積1可能具有眼睛和鼻子的輸入特徵,下一個group卷積將進一步將其分解為單獨的眼睛和鼻子特徵,使得每個卷積僅計算一個特徵。通常,卷積會學習每個通道的一個或多個特徵,但是通過連續的group卷積,我們最終將只能在每個卷積中學習1個特徵(實際上更複雜,瞭解更多看新智元以前對 ShuffleNet 的報導:孫劍團隊提出ShuffleNet,由於穀歌MobileNet。

Channel-shuffle 通過在所有group shuffle通道解決了這個問題,這樣隨著時間的推移,每個卷積都有可能學到所有的特徵。

結果

相比其他針對移動設備設計的網路,ShuffleNet的性能有了微小的提升。ShuffleNet在保持性能一致的同時,速度比 vanilla AlexNet 快13倍。在實現與其他參考架構相同性能的同時,顯著減少了參數的數量。

評論

雖然ShuffleNet僅對現有方法產生了微小的改進,但其主要吸引力在於它使用的是任何人都可以在任何深度學習框架中輕鬆實現的簡單、標準的操作(Group卷積+channel shuffling)。這對於許多應用都非常有用。從中我們能得到的啟發是,將普通的卷積換成group卷積,當group卷積不行時再換回普通卷積,這樣將卷積組合起來。這正是我們需要的研究類型——任何人都易於使用、容易實施,能快速改進的性能。這樣的研究將來將變得非常重要。

論文將方法限定在最適用於移動設備的小型和快速網路,但這項研究的意義遠遠超出了這一點。Group卷積+channel shuffle 具有通用性,任何使用卷積的人都應該大膽使用這項技術。

【論文】Natural Language Processing with Small Feed-Forward Networks(使用簡單前饋網路進行自然語言處理)

【作者】Jan A. Botha, Emily Pitler, Ji Ma, … , Slav Petrov; Google;

【連結】 https://arxiv.org/abs/1708.00214

Idea

這個任務很簡單:預定義一個記憶體預算,並嘗試設計多層感知器( multi-layer perceptrons,MLPs),能夠(1)適應這個記憶體預算,(2)在各種NLP任務中實現可能的最佳性能。由於MLP的計算表達能力有限,我們需要為網路提供智慧、有表達力的特徵來完成任務。如果成功了,這一方法將產生適用於資料量大,或計算資源有限的環境(例如手機)的架構。

特徵工程 & 優化

Hashed n-char-grams

1-char gram 嵌入,即將文檔中的每個單獨的character映射到一個唯一的向量,過去已有過成功,特別是使用迴圈神經網路(RNN)。不過,在這項工作中,使用的是n-char grams,特別是2, 3, 和 4 char-grams。但是,如果我們只使用英文字母(26個字元),那麼我們會有 456976 個 4-char grams 的組合,超出了這項工作預先設置好的記憶體限制。為了防止這個參數爆炸,作者將 char grams 散列,並通過modulo運算將它們分組成 buckets。例如,“hash(char gram)mod 1000”將產生0到999之間的index,因此大多數 char gram 與另一個 char gram 共用參數。這個技巧已經被應用於詞彙表之外的詞,以便將不同的詞彙表外詞彙映射到不同的詞彙表外向量[2]。但似乎這個n-gram的散列非常有效,這是為什麼簡單網路的表現如此好的一個原因。

使用這種方法,我們希望網路可以從上下文區分 n-char gram 的含義。這個過程類似我們人類區分詞彙的方法,例如“He hit the ball with his bat” (他用球拍擊球)和“She could see the bat flying in the twilight”(她可以看到蝙蝠在暮色中飛過),這兩句話,對於人類來說很容易區分“bat”的不同含義,然後對於機器來說,似乎也區分得很好。

有趣的是,作者指出,與通常的50-500維度(或對於LSTM來說更高)相比,參數共用還允許將嵌入維度降低到8-16的範圍。

圖:例如,char-gram 的用法對序列“no queue at”起作用。每個token的2-char-grams(藍色)和3-char-grams(綠色)被分別查找,並為每個token求和。

量化

嵌入(embedding)佔用大量記憶體,作者應用 8-bit 量化(quantization)來減少嵌入的記憶體佔用。量化是一種通過用整數近似來表 示浮點數的方法。8-bit 的通用量化是將應該被壓縮的數位歸一化在0到255(8-bit)的範圍內,然後將它們按比例分配到這些“buckets”中。我開發和審查了更複雜的8-bit近似方法,如果要加速GPU集群中的大型深度學習網路,這些也是非常有用的。如果讀者有興趣瞭解更多有關此主題的內容,可以閱讀我的這篇ICLR論文:8-Bit Approximations for Parallelism in Deep Learning(https://arxiv.org/abs/1511.04561),其中總結了8-bit近似方法,以及這些方法如何影響神經網路的訓練和並行化。

就像我的工作也顯示了, 8-bit 嵌入僅用於存儲,因此在計算之前將它們dequantizes 為 32-bit。使用這樣的壓縮,作者證明在預測性能方面沒有損失,同時將記憶體佔用減少了四分之一。

其他技巧

作者還使用其他技巧,如對part-of-speech(POS)分類進行 pre-ordering,但這些技巧更具體,需要更多的背景知識,因此在本文中我省略了這些技巧。

結果

作者在詞類(POS)標籤(名詞,動詞等),語言識別(給定一些文本,判斷是哪種語言) ,分割(給定一串字元,判斷哪裡是單詞的邊界,對許多亞洲語言而言這很重要)等任務上實現了state-of-the-art 或接近 state-of-the-art 的結果。作者的工作還大大減少了所需的操作和網路的規模,同時保持結果穩定。在底線上,所使用的方法一般能將計算預算和記憶體佔用面積減少大約一個數量級,即計算速度加快大約15倍,記憶體減少10倍。

為什麼這樣一個簡單,快速和節省記憶體的網路,結果可以如此強大?這是因為特徵工程(feature engineering):性能的很大一部分是由於word clusters。散列n-grams是性能提升的另一個原因。一般來說,量化或更低的精度可以更有效,這對於預測品質幾乎沒有缺點。這些是這篇論文的主要思想。

評價

作者通過利用新的、或有些被忽視的特徵來展現了一般網路、淺層網路和前饋網路的能力。預測結果和計算以及記憶體佔用的結果都令人印象深刻。隨著資料量的增長,這些方法將變得越來越重要,它證明了特徵工程並沒有死亡,甚至深度學習和NLP的進步需要特徵工程。

如果我們想要在NLP領域取得進步,那麼我不認為用相同的特徵來構建更複雜的模型就是正確的道路。我們需要創新演算法運行的基礎。如果我們給火箭工程師很次的建築材料,那就沒法期望他們搭的火箭能夠到達太空。只有 word embedding 是不夠的。如果我們想到達太空,就需要改進建築材料。

【論文】學習可遷移的架構進行可擴展的圖像識別(Learning Transferable Architectures for Scalable Image Recognition)

【作者】Barret Zoph, Vijay Vasudevan, Jonathon Shlens, Quoc V. Le(Google Brain)

【連結】https://arxiv.org/abs/1707.07012

思路

使用神經架構搜索(neural architecture search,NAS),也即強化學習來找到最好的深度學習架構。由於神經架構搜索在計算上非常昂貴,作者進行了多項簡化:

不使用神經架構搜索去優化參數

不對網路的所有層都進行優化,而是僅搜索兩個不同塊(block)的通用架構:(1)特徵擴展塊和(2)特徵縮減塊。通過反復堆疊這些塊來構建完整的架構

因為在ImageNet資料中找到一個好的架構需要太長時間,所以在較小的資料集(CIFAR10)上執行搜索,然後使用CIFAR10中最好的塊,並在ImageNet上使用

在幾顆GPU上進行搜索仍然很慢,所以使用450顆GPU

背景:神經架構搜索

使用最終是一個softmax層的RNN在架構中選擇單個層或功能。演算法:

預測用作輸入的隱藏層,即在最後一個或最後一個塊中選擇一個隱藏層。使用所選隱藏層的輸出作為輸入A

預測用作輸入的隱藏層,即在最後一個或最後一個塊中選擇一個隱藏層。使用所選隱藏層的輸出作為輸入B

對於要處理輸入A的新隱藏層,預測要進行的運算(卷積、最大池化、可分離卷積等)

對於用於處理輸入B的新隱藏層,預測要進行的運算(卷積、最大池化,可分離卷積等)

選擇合併運算併合並隱藏層A和B

重複K次(本文中K = 5)

將上述所有都連接成一個特徵向量

遵循一個固定的啟發式規則:每當先前隱藏的層操作步幅為2(還原塊)時,將當前隱藏層中的卷積濾波器加倍

找到的架構

通過神經網路搜索(NAS)發現的架構令人印象深刻。最值得注意的是,網路從來沒有選擇使用標準的3×3卷積,雖然它完全可能這樣做。相反,網路總是在常規卷積中選擇可分離的卷積。另一個有趣的是使用平均池化。在這些儲存格(或塊)中,這是一個很常見的操作。還有一個令人震驚的事實,作者嘗試手動添加到殘差連接到最終塊裡,但這些殘差連接降低了性能。

神經網路自己發現的架構讓我們更深地瞭解卷積網路的設計。然而,這也提出了新的問題:為什麼殘差連接沒有用?為什麼在這個架構中的identity connection 就足夠了?

結果

在稍微受限的參數設置中比較預測性能時,該架構實現了幾乎最先進的技術。只有 Shake-Shake 26 在ImageNet上比它表現更好。對於無約束參數,該架構在ImageNet上也得到了最先進的性能,同時還比其他網路有更高的計算效率。因此,該架構同時獲得了最先進的結果和快速訓練的時間。對於小型網路,該架構得出了比ShuffleNet更好的結果,但ShuffleNet的計算效率更高,特別是對於非常小的參數設置而言。

評論

這項工作成果驚人,並帶來了很多啟發。它的出現推翻了以往認為的,ImageNet性能好需要殘差,highway或dense連接的共識。我發現最有趣的是,這個工作發現的框架結構越來越像一個神經元的架構。

這項工作是一個非常奇怪的組合,常規實驗室很難實現這樣的研究(需要450個GPU),但這項工作的成果卻能為普通實驗室帶來福音(發現架構需要更少的計算力,參數利用率也更高)。從普通研究者的角度來看,這是Google可以做的最好的研究。它以實用的方式提升了領域和大家對於深度學習的認識,同時研究本身具有不可估量的計算資源要求,只能由行業巨頭來實現。這種類型的研究可能是行業巨頭可以做貢獻最多的領域。

【論文】Reading Wikipedia to Answer Open-Domain Questions(閱讀維琪百科來回答開放領域問題)

【作者】Danqi Chen, Adam Fisch, Jason Weston & Antoine Bordes (Facebook AI Research + Stanford);

【連結】https://arxiv.org/abs/1704.00051

傳統Q&A的問題

當前的問題-回答任務基本上是包含搜索任務的,需要在給定段落中找到與給定問題相關的文本(SQuAD,CNN + DailyMail,bAbI,WikiReading)。這不是與現實一樣的設置,因為當你有問題是,你通常並沒有得到包含有這個問題的答案的段落。因此,這些在資料集上表現良好的模型無法很好地推廣到其他資料集或任何現實中的問題。另一個問題是,在一些訓練集中,這些模型挑選包含75%的問題的答案的第一個句子來回答[7],這就意味著,(1)如果訓練集中沒有給出答案,(2)如果答案不在第一句話,傳統的模型就不能回答問題。

想法:使用資訊檢索(Information Retrieval)方法

資訊檢索+段落閱讀系統

模型、訓練資料集和結果請查閱論文:Reading Wikipedia to Answer Open-Domain Questions(https://arxiv.org/abs/1704.00051)

評論

這是非常重要的一項工作。正如我們在介紹中所討論的,我們正處於隨著時間推移資料量越來越大的時代,我們將能夠處理的資料是其中越來越小的部分。如果我們想使用計算昂貴的模型,例如深度學習模型,那麼唯一的解決方案是在處理之前檢索相關資訊。我們傳遞給深入學習模型的資訊必須高度凝聚而且高度相關。搜索相關資訊的最佳和最快捷的技術是標準資訊檢索方法。

這項工作表明,深度學習和資訊檢索的結合效果很好,並且能廣泛應用於開放領域的問題。這項工作還表明,這是多工學習的一種可行方法。當然它還有很多問題,預測性能現在也不是最佳的,但這並不重要,因為這項研究的長期重要性是顯而易見的。

深度學習研究方向:大型研究實驗室、初創公司、語言研究人員和視頻、圖像研究人員不同的側重點

從核心論文中,我們已經看到更多的資料改善了模型的預測性能。但是,這些性能提升雖然普遍,但是與通過專門技術所獲得的改進相比,還是微不足道的。我們還看到,對於大多數研究人員而言,大型資料集對計算需求太高,未來的研究人員在使用大規模資料集時,計算需求將更加受到限制。

分析上述核心論文的結果是有意義的,可以看到,目前推動深度學習領域最具成本和時間效益的方法,尚不需要超大規模資料集,幾十顆GPU和幾個月的計算時間。

當然,大規模資料集的時代將會來臨,我們需要確保屆時我們的方法也能夠適用於這些大規模資料集。我們不僅為了研究而進行研究,而且我們中的許多人為了解決明顯的重大問題而從事現在的工作。因此,找到能夠更有效地擴展,進行大規模深度學習的方法至關重要。相關的補充論文則為此提供了一些啟發。

大型實驗室:尋找在計算上高效的架構

上文提到的一些解決方案,比如神經架構搜索(NAS),本身是不切實際的,因為需要數百顆GPU才能有效地進行這項研究。然而,一旦這樣的研究完成,它們將對其他研究人員的工作帶來巨大好處。通過利用從這些研究中獲得的見解,我們可以找出更有效的模型設計。例如,現在人常說的“別再用regular卷積了,換成separable 卷積吧”,這個洞察非常實用,將會給整個研究社區帶來很大的推動力。

如果我們在實用神經網路自己發現架構的過程中,提供新的操作(group卷積+shuffle?),那麼可能會產生新的架構,再從中發現設計模型的更多見解。隨著時間推移,我們可以找到越來越高效的架構,這也將有助於我們處理像JFT-300M這樣的大型怪物資料集。這也將使未來的移動設備深度學習處理能力進一步提高。

我相信我們會看到NAS的改進,使大型實驗室更好地進行相關研究。尋找新的架構是非常重要的研究,但即使如此,這樣的研究方向也只能是大型公司和一些非常大的研究實驗室的首選研究方向,因為需要更多的計算資源,可能不適合小型實驗室。

初創公司和資金不足的實驗室:尋找計算上高效的運算

ShuffleNet告訴我們,運算(operation)的簡單變化可以為整個深度學習社區帶來巨大的效果,並建立一種有用和實用的方法。ShuffleNet是一個非常堅實的貢獻,我認為這個方向對於需要推動他們在移動平臺上表現的AI初創公司而言是最好的。這是朝向在大資料集上進行研究邁出的重要一步。對於所有受計算資源約束的研究實驗室,這一研究方向也是可行的。

同樣屬於這個方向的研究還包括低位計算(low-bit computation),比如 XNOR-Net。這樣的工作將變得越來越重要,因為GPU允許在硬體層面上執行8位操作,或允許特定的16位深度學習操作。

雖然任何一個實驗室都可以進行這樣的研究,但是受計算資源限制的實驗室,或其產品受限於計算成本的實驗室,最能夠從這些方向中獲益。

語言研究人員:通過特徵實現計算高效

我們還看到,有了正確的特徵以後,那麼平淡無味的多層感知器獲得了最先進的結果。自然語言理解(NLU)長期以來都忽視了特徵工程。

在過去,模型並不像特徵那樣重要。人們會仔細地手工設計語言特徵,從而通過簡單的模型獲得良好的效果。隨著詞嵌入和GPU的出現,我們開始專注於模型架構。這樣做也是正確的:憑藉我們現在的計算能力,我們可以讓電腦來學習特徵,幫我們做特徵工程。

問題在於,學習特徵這件事本身就高度依賴於輸入的資料。如果你給一個深度學習的語音辨識網路原始的語音資料,則可能無法訓練;但是,如果你給的是傅立葉轉換資料,同樣的網路就能很好地運行,並且易於訓練。

任何情況下,擁有正確特徵的簡單模型都將勝過擁有錯誤特徵的大型模型。因此,相比設計下一個架構,嘗試設計下一個新特徵可能會更有影響力。特別是在自然語言理解領域,這將是一個很好的研究方向。

有人可能會說,這與以前自然語言處理(NLP)的老路有何不同?這不是倒退一步嗎?

如果做得不好,確實會是倒退。我認為關鍵的因素是利用我們現在擁有的東西:通過深度學習進行特徵學習。我們不再需要讓那些有非常精確的語言動機的特徵去做一切。提出壓縮特定類型的資訊(同時丟棄其他資訊)的表徵就足夠了,深度學習將完成剩下的事情。老派NLP特徵工程可做不到這一點。我們需要結合傳統NLP和深度學習兩者的優勢。

語言和視頻研究者:篩選資料

資料的增長速度超過了計算力增長的速度,這意味著將來我們無法處理所有有用的資料。資料氾濫意味著我們需要從中選擇一些資料來處理——我們無法處理所有資料。但是,我們如何選擇正確的資料?資訊檢索可能是一個很好的答案。

我認為資訊檢索將是一個非常重要的研究方向,不僅因為資料的增長是不可避免的,而且資訊檢索也讓我們不需要去回答一些不必要的問題。很難說當前最先進的演算法是否比“花哨的字串匹配”(fancy string matching)更為重要。

資訊檢索的研究主要與語言研究人員有關,因為資訊檢索系統主要是為文本而構建的,但視覺系統使用資訊檢索也是可以想像的。例如,壓縮YouTube視頻,通過使用小型網路進行標記,並用資訊檢索方法進行索引,然後可以通過:(1)檢索可能的視頻段,以及(2)在這些段上應用視頻識別來搜索資訊。對於視頻的字幕資訊也是一樣的。想要回答一個需要視覺資訊的問題?搜索字幕,然後深入處理相關視頻片段。

原文:http://timdettmers.com/2017/08/31/deep-learning-research-directions

點擊閱讀原文可查看職位詳情,期待你的加入~

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示