深度學習帶動了人工智慧發展的新曆程。2013 年 4 月,《麻省理工學院技術評論》雜誌將深度學習列為 2013 年十大突破性技術之首。一大批初創公司乘著深度學習的風潮湧現,使得人工智慧領域熱鬧非凡。現在,深度學習一時風光無兩。但是,深度學習有沒有它自己的侷限性?它的未來會怎麼樣?
深度學習現在被用於翻譯語言,預測蛋白質如何摺疊,分析醫學掃描,以及玩類似圍棋的複雜遊戲,這些僅僅是這種技術中一些應用,現在已經普及。上述及其他領域的成功,使得這一機器學習技術從 21 世紀初的默默無聞發展到今天的主導地位。
儘管深度學習的成名相對來說比較晚,但它的起源可並不晚。1958 年,當大型計算機擠滿了房間,執行在真空管上時,康奈爾大學的 Frank Rosenblatt 受大腦神經元之間相互連線的知識啟發,設計了第一個人工神經網路,他預見性地將其描述為一個“模式識別裝置”。但 Rosenblatt 的雄心壯志超出了他那個時代的能力——他知道這一點。甚至連他的就職論文也不得不承認神經網路對算力的渴望,他哀嘆道:“隨著網路中連線數量的增加……傳統數字計算機的負擔很快就會變得過重。”
幸運的是,對於這樣的人工神經網路——當它們包含額外的神經元層時,後來被重新命名為“深度學習”——數十年來的摩爾定律,以及計算機硬體的其他改進,使得計算機在一秒鐘內能完成的計算數量增加了大約 1000 萬倍。所以當研究人員在 2000 年代末回到深度學習的時候,他們有了足夠的工具來應對挑戰。
這種功能更強大的計算機使構建更多連線和神經元的網路成為可能,從而提高了對複雜現象建模的能力。研究人員利用這種能力打破了一個又一個記錄,將深度學習應用到新的任務中。
儘管深度學習疾如流星般的迅速崛起,但是它的未來可能會很坎坷。就像之前的 Rosenblatt 一樣,今天的深度學習研究人員正在接近他們的工具能夠達到的前沿。要理解這為什麼重塑機器學習,你必須先理解深度學習為何如此成功,以及保持這種成功所付出的代價。
深度學習是人工智慧長期趨勢的現代化身,這一趨勢已從以專家知識為基礎的流水化系統轉向靈活的統計模型。早期的人工智慧系統是基於規則的,應用邏輯和專家知識來推導結果。後來的系統結合了學習,以設定其可調引數,但這些引數通常數量很少。
今天的神經網路也學習引數值,但是這些引數是非常靈活的計算機模型的一部分,如果它們足夠大,就能近似成通用函式,這意味著它們可以適用於任何型別的資料。這種無限的靈活性正是深度學習能夠應用到如此多不同領域的原因。
神經網路的靈活性來自於對模型的大量輸入,並允許網路以無數種方式將其組合。這就是說,輸出將不是應用簡單公式的結果,而是極其複雜的公式。
舉例來說,當尖端的影象識別系統 Noisy Student 將影象的畫素值轉換為該影象中物體的機率時,使用了一個具有 4.8 億個引數的網路。確定如此多的引數值訓練甚至更了不起,因為它只用了 120 萬張標記的影象——這可能會使我們這些從高中代數中應該記住更多的方程而非未知數的人感到困惑。打破這條規則才是關鍵所在。
深度學習模型過度引數化,即其引數多於可用於訓練的資料點。這常常導致過擬合,即模型不僅能學習總體趨勢,還能學習其訓練的資料的隨機變化。深度學習透過隨機初始化引數,然後迭代調整引數集,這樣就可以使用一種稱為隨機梯度下降的方法更好地對資料進行擬合,從而避免這種陷阱。出人意料的是,這一程式已經被證明可以保證所學模型具有很好的通用性。
在機器翻譯中可以看出靈活的深度學習模型的成功。軟體已經被用於將一種語言的文字翻譯成另一種語言幾十年了。這一問題的早期解決方案是使用語法專家設計的規則。但是,隨著許多特定語言的文字資料的出現,統計方法——那些被稱為最大熵(maximum entropy)、隱馬爾可夫模型(hidden Markov models)和條件隨機域(conditional random fields)的深奧名稱——可以應用。
起初,對每種語言最有效的方式取決於資料的可用性和語法屬性。比如,基於規則的方法翻譯烏爾都語、阿拉伯語和馬來語等語言最初要好於統計方法。如今,所有這些方法都已被深度學習所超越,而深度學習幾乎在它的任何應用領域都顯示出它的優勢。
好訊息是深度學習提供了極大的靈活性。壞訊息是,這種靈活性是以巨大的計算成本為代價的。這個不幸的現實有兩個部分。
從近幾年的研究結果推斷,到 2025 年,設計成用於識別 ImageNet 資料集中物體的最佳深度學習系統,誤差水平應降至只有 5%(頂部)。但是,訓練這樣一個未來系統所需的計算資源和能源將是巨大的,因此產生的二氧化碳排放量相當於紐約市一個月的排放量(底部)。
(來源:N.C.Thompson、K.Greenewald、K.Lee、G.F.Manso)
第一部分對所有統計模型都是正確的。要使效能提高 k 倍,至少需要用超過 k² 個數據點對模型進行訓練。計算成本的第二部分顯然是由超引數化產生的。將這一點考慮在內,我們可以得出,改進的總體計算成本至少為 k⁴。這個指數中的小 4 已經非常昂貴了。例如,10 倍的改進就需要至少 10000 倍的計算量。
想要使靈活性和計算的權衡更清晰,可以考慮一個場景:你嘗試預測病人的 X 射線是否顯示了癌症。進一步假設,如果你測量 X 射線中的 100 個細節(通常稱為變數或特徵),就可以找到真正的答案。挑戰在於,我們不能事先知道哪些變數是重要的,而且可能有非常多的候選變數需要考慮。
針對這一問題,專家系統的解決方法就是讓那些在放射學和腫瘤學方面有研究的人員指定他們認為重要的變數,讓系統只檢查這些變數。靈活系統的方法是測試儘可能多的變數,讓系統自己知道哪些是重要的,在這個過程中需要更多的資料併產生更多的計算成本。
專家已經確定了相關變數的模型可以迅速瞭解哪些數值對這些變數最為有效,並且在有限的計算量下做到這一點——這就是為什麼它們在早期如此受歡迎。但是,如果專家沒有正確指定模型中應包含的所有變數,它們的學習能力就會停滯不前。相比之下,像深度學習這樣的靈活模型效率較低,而且需要大量的計算才能匹配專家模型的效能。然而,如果有足夠的計算(和資料),靈活的模型可以勝過那些專家試圖指定相關變數的模型。
很明顯,如果你使用更多的算力來構建更大的模型,並且在更多的資料上訓練它們,你就能從深度學習中得到更好的效能。但是,這樣的計算負擔到底有多昂貴呢?成本是否會變得太高而阻礙進展?
為明確回答這些問題,我們最近收集了超過 1000 篇深度學習研究論文的資料,包括影象分類、物體檢測、問答、命名實體識別和機器翻譯等領域。在本文中,我們將只詳細討論影象分類,但這些經驗適用範圍很廣。
近年來,影象分類誤差的減少伴隨著計算負擔的急劇增加。舉例來說,在 2012 年,AlexNet 模型首次展示了在圖形處理單元(GPU)上訓練深度學習系統的能力,使用兩個 GPU 進行 5~6 天的訓練。到 2018 年,另一個模型 NASNet-A 將 AlexNet 的錯誤率降低了一半,但是它使用了超過 1000 倍的計算量來達到這一目標。
透過對這一現象的分析,我們還可以把實際發生的事情和理論預期相比較。這一理論告訴我們,計算至少需要四次方的效能改進才能擴充套件。在實踐中,實際的需求至少要用九次方來擴充套件。
這個九次方意味著要將錯誤率降低一半,你可能需要超過 500 倍的計算資源。這一代價實在太貴了。不過,這裡可能還有一些生氣。事實和理論預測之間存在著差距,這可能意味著還有一些尚未發現的演算法改進,可以極大地提高深度學習的效率。
我們已經指出,摩爾定律和其他硬體方面的進步大大提高了晶片的效能。那就意味著計算需求的升級無關緊要嗎?很遺憾,不是的。在 AlexNet 和 NASNet-A 使用的 1000 倍的計算量中,只有 6 倍的改進來自於更好的硬體;其餘的來自於使用更多的處理器或執行更長時間,導致成本增加。
對影象識別的計算成本-效能曲線進行估算後,我們可以利用它來估算將來達到一個更令人印象深刻的效能基準所需要的計算量。例如,要達到 5% 的錯誤率,就需要進行 10¹⁹ 億次浮點運算。
來自馬薩諸塞大學阿默斯特分校的學者們的重要工作使我們得以瞭解這種計算負擔所帶來的經濟成本和碳排放。答案是嚴峻的:訓練這樣一個模型將花費 1000 億美元,產生的碳排放量相當於紐約市一個月的碳排放量。如果我們估計 1% 的錯誤率所帶來的計算負擔,結果會更糟。
推斷出如此多的數量級,這是否合理呢?是,也不是。當然,重要的是要理解這些預測並不精確,儘管在如此令人瞠目結舌的結果中,它們並沒有必要傳達不可持續的整體資訊。如果我們假設研究人員一直沿著這條軌跡走下去,直到這個極端,那麼這種推斷就是不合理的。我們並沒有。面對暴漲的成本,研究人員要麼想出更有效的方法來解決這些問題,要麼就放棄對這些問題的研究,進展將停滯不前。
在另一方面,推斷我們的結果不僅是合理的,也是重要的,因為它表達了未來挑戰的嚴峻性。這一問題的前沿已經開始顯現。谷歌子公司 DeepMind 訓練它的系統下圍棋時,估計花費了 3500 萬美元。DeepMind 的研究人員在設計一個玩《星際爭霸 II》影片遊戲的系統時,由於訓練費用高昂,他們有意識地沒有嘗試多種方法來構建一個重要的元件。
最近,研究人員在一個重要的機器學習智庫 OpenAI 中,設計和訓練了一種廣受讚譽的深度學習語言系統 GPT-3,耗資超過 400 萬美元。雖然他們在實施該系統時犯了一個錯誤,但他們並沒有改正,只是在其學術出版物的補編中解釋說,“由於訓練成本過高,重新訓練該模型不可行。”
甚至科技行業以外的企業現在也開始對深度學習的計算成本望而卻步。最近,歐洲一家大型連鎖超市放棄了一個基於深度學習的系統,該系統可以顯著提高對購買哪種產品的預測能力。這家公司高管放棄了這一嘗試,因為他們認為訓練和執行該系統的成本太高。
面臨著日益增長的經濟和環境代價,深度學習社群需要找到提高效能的方法,同時又不引起計算需求的激增。如果他們不這樣做,進展將會停滯不前。但是不要絕望:為迎接這一挑戰,人們正在做大量的工作。
一種策略就是使用專門為深度學習計算而設計的高效處理器。由於 CPU 讓位給 GPU,在過去十年裡,這種方法被廣泛應用,在某些情況下會讓位給現場可程式設計門陣列和專用積體電路(包括谷歌的張量處理單元)。從根本上說,所有這些方法都犧牲了計算平臺的通用性,從而實現更高效的專業化。但是專業化面臨著收益遞減的問題。所以,長期的收益需要採用完全不同的硬體架構——也許是基於模擬、神經形態、光學或量子系統的硬體。但是,到目前為止,這些完全不同的硬體架構並沒有產生多大影響。
減少計算負擔的另一種方法主要是生成神經網路,在實現時,這類神經網路比較小。這一策略減少了每次使用它們的成本,但它經常增加訓練成本(我們在本文中已詳細說明)。這些成本中哪一項最重要,取決於情況。對被廣泛使用的模型來說,執行成本是投資總額的最大部分。而在其他模型中,比如那些經常需要重新訓練的模型,訓練成本是主要的。無論那種情況,總成本都要大雨訓練本身。所以,如果訓練成本過高,就像我們所顯示的那樣,那麼總成本也會很高。
同時,為了減少實施的規模,這也是各種策略所面臨的挑戰:它們並未完全降低訓練成本。舉例來說,有一種方法可以訓練一個大型網路,但是在訓練過程中對複雜性進行懲罰。另一種方法是訓練一個大型網路,然後“修剪”掉不重要的連線。還有一種方法是透過對許多模型進行最佳化,尋找儘可能有效的架構——即所謂的神經架構搜尋。雖然這些技術中的每一種都能為實現帶來顯著的收益,但是對訓練的影響卻很微弱——當然不足以解決我們在資料中看到的問題。而且很多時候,它們會增加訓練成本高。
一項新出現的技術可以降低訓練成本,這被稱為“元學習”(Meta-learning)。其思想是,系統從各種資料中學習,然後可以應用到很多領域。舉例來說,與其建立單獨的系統來識別影象中的狗、影象中的貓和影象中的汽車,不如使用一個系統訓練所有這些資料並多次使用。
很不幸,麻省理工學院的 Andrei Barbu 最近的研究揭示了元學習有多麼難。他和他的合作者表示,即使是原始資料和你想使用它的地方之間的微小差異都可能嚴重影響效能。他們證明,目前的影象識別系統在很大程度上依賴於拍攝物件是否以特定的角度或特定的姿勢進行拍攝。所以,即使是識別不同姿勢的相同物體的簡單任務,也會導致系統的準確性幾乎減半。
加州大學伯克利分校的 Benjamin Recht 等人更明確地指出了這一點,他們表明,即使有特意構建的模仿原始訓練資料的新資料集,效能也會下降 10% 以上。如果資料的微小變化都會導致效能的大幅下降,那麼一個全面的元學習系統所需要的資料可能是巨大的。因此,元學習的廣闊前景還遠未實現。
另外一種可能的策略是,避開深度學習的計算極限,轉而使用其他可能尚未被發現或未被重視的機器學習型別。正如我們所描述的,基於專家的洞察力而構建的機器學習系統在計算上會更有效率,但如果這些專家不能區分所有的影響因素,那麼它們的效能就無法達到與深度學習系統相同的高度。目前神經符號方法和其他技術正在發展之中,以結合專家知識和推理的力量與神經網路中常有的靈活性。
就像 Rosenblatt 在神經網路誕生之初所面對的情況一樣,今天的深度學習也開始受到現有計算工具的限制。由於計算規模將在經濟上和環境上都被“毀滅”,因此我們必須調整深度學習的方法,或者面對一個發展更緩慢的未來。很明顯,我們需要適應。明智的突破也許能找到一條途徑,讓深度學習更加高效或者計算機硬體更加強大,從而讓我們能夠繼續使用這些特別靈活的模型。否則,鐘擺很可能會重新回到依賴專家來確定需要學習什麼。
作者介紹:
Neil C. Thompson,麻省理工學院計算機科學和人工智慧實驗室的研究科學家。
Kristjan Greenewald,麻省理工學院 IBM Watson 人工智慧實驗室研究人員。
Keeheon Lee,首爾延世大學助理教授。
Gabriel F. Manso,巴西利亞大學學生。
原文連結:
https://spectrum.ieee.org/deep-learning-computational-cost