2016年 ,「阿爾法狗(AlphaGo)」與李世石的圍棋對決,讓人工智慧和深度學習進入了福斯的視野。在那場人機大戰中,阿爾法狗以總分4比1獲勝。不僅圍棋,深度學習近些年迅猛發展,在語言、醫療等多種領域展現出了強大的能力。然而這一切是有代價的,為了降低錯誤率,深度學習在完成任務時需要越來越大的計算量,由此產生的經濟成本、耗費的電量、對環境的污染,將超出人類社會的承受能力。人工智慧普及的那一天,或許也將是人類能源被電腦消耗殆盡的那一天?
當下風頭正勁的深度學習領域,起源於真空管電腦的時代。1958年,康乃爾大學的法蘭克·羅森布拉特(Frank Rosenblatt) 受大腦神經元的啟發,設計了第一個人工神經網路,之後被命名為「深度學習」。羅森布拉特知道,這項技術超越了當時的計算能力,他惋惜地表示:「隨著神經網路連接節點的增加……傳統的數位電腦很快就會無法承擔計算量的負荷。」
幸運的是,電腦硬體在幾十年間快速升級,使計算速度提高了大約1000萬倍。因此,21世紀的研究人員得以實現具有更多連接的神經網路,用來模擬更復雜的現象。如今深度學習已經廣泛普及,被應用於下圍棋、翻譯、預測蛋白質折疊、分析醫學影像等多種領域。
深度學習的崛起勢如破竹,但它的未來很可能是坎坷的。羅森布拉特所擔憂的計算量的限制,仍然是籠罩在深度學習領域之上的一片陰雲。如今,深度學習領域的研究人員正在逼近計算工具的極限。
深度學習的工作原理
深度學習是人工智慧領域長期發展的成果。早期的人工智慧系統基於邏輯和人類專家給定的規則,之後漸漸引入了可以透過學習來調節的參數。而今,神經網路可以透過學習,構建可塑性很強的電腦模型。神經網路的輸出不再是單一公式的結果,而是採用了極其復雜的運算。足夠大的神經網路模型可以適應任何類型的數據。
為了理解「專家系統(expert-system approach)」和「靈活系統(flexible-system approach)」的差別,我們考慮這樣一個場景:透過X光片判斷病人是否患有癌症。我們假設X光片中有100個特徵(變量),但我們不知道哪些特徵是重要的。
專家系統解決問題的方法,是讓放射學和腫瘤學領域的專家指定重要的變量,並允許系統只檢查這些變量。這一方法需要的計算量小,因此曾被廣泛採用。但如果專家沒能指出關鍵的變量,系統的學習能力就不如人意。
而靈活系統解決問題的方法,是檢查盡可能多的變量,並由系統自行判斷哪些重要。這需要更多的數據和更高的計算成本,相比專家系統效率更低。但是,只要有足夠的數據和計算量,靈活系統可以比專家系統表現更優。
深度學習模型是過參數化的(overparameterized),即參數比可供訓練的數據點多。比如圖像辨識系統 Noisy Student 的神經網路擁有4.8億個參數,但它在訓練時只使用了120萬個標記的圖像。過參數化通常會導致過擬合(overfitting),也就是模型與訓練的數據集擬合度過高,以至於沒有把握一般趨勢,卻學習了訓練集的特殊性。深度學習透過隨機初始化參數、 「隨機梯度下降(stochastic gradient descent)」 等方法,反復調整參數集,以避免過擬合的問題。
深度學習已經在機器翻譯領域大顯身手。早期,翻譯軟體根據語法專家制定的規則進行翻譯。在翻譯烏爾都語、阿拉伯語、馬來語等語言時,基於規則的方法起先優於基於統計學的深度學習方法。但是隨著文字數據的增加,深度學習全面超越了其他方法。事實證明,深度學習在幾乎所有應用領域都具有優越性。
巨大的運算成本
一個適用於所有統計學模型的規則是:要想使性能提高k倍,至少需要k2倍的數據來訓練模型。又因為深度學習模型的過參數化,使性能提高k倍將需要至少k4倍的計算量。指數中的「4」意味著,增加10 000倍計算量最多能帶來10倍的改進。
顯然,為了提高深度學習模型的性能,科學家需要構建更大的模型,使用更多的數據訓練。但是計算成本會變得多昂貴呢?是否會高到我們無法負擔,並因此阻礙該領域的發展?
為了探究這一問題,麻省理工學院的科學家收集了1000餘篇深度學習研究論文的數據,涉及圖像分類、目標檢測、問答系統、命名實體辨識和機器翻譯等領域。他們的研究警告,深度學習正面臨嚴峻的挑戰。「如果不能在不增加計算負擔的前提下提高性能,計算量的限制就會使深度學習領域停滯不前。」
以圖像分類為例。減少圖像分類錯誤伴隨著巨大的計算負擔。例如,2012年 AlexNet 模型首次展示了在圖形處理器(GPU)上訓練深度學習系統的能力,該模型使用兩個 GPU 進行了5 ~ 6天的訓練。到2018年,另一個模型 NASNet-A 的錯誤率降低到了 AlexNet 的一半,但它使用的計算量是 AlexNet 的1000多倍。
晶片性能的提升是否跟上了深度學習的發展?並沒有。在 NASNet-A 增加的1000多倍的計算量中,只有6倍的提升來自於更好的硬體,其餘都是透過使用更多的處理器或運行更長時間達到的,伴隨著更高的成本。
理論告訴我們,提高k倍的性能需要增加k4倍的計算量,但在實踐中,增加的計算量至少是k4倍。這意味著,要想將錯誤率減半,需要500倍以上的計算資源,成本高昂。不過,實際情況與理論預測的差距,也意味著可能存在改進演算法的空間,有機會提高深度學習的效率。
根據研究人員估計的圖像辨識領域「計算成本—性能」曲線,將錯誤率降到5%,需要進行1028次浮點運算。另一項來自麻薩諸塞大學阿默斯特分校的研究顯示了計算負擔隱含的巨大經濟和環境成本:訓練一個錯誤率小於5%的圖像辨識模型,將花費1000億美元,其消耗的電能產生碳排放與紐約市一個月的碳排放量相當。而想要訓練錯誤率小於1%的圖像辨識模型,成本就更是天價。
計算成本的重負在深度學習的前沿已經變得顯而易見。機器學習智庫 OpenAI 斥資400多萬美元,設計並訓練了深度學習語言系統 GPT-3。盡管研究人員在操作中犯了一個錯誤,但他們並沒有修復它,僅僅在論文附錄中簡要解釋道:「由於高昂的訓練的成本,對模型重新訓練是不現實的。」
企業也開始迴避深度學習的計算成本。歐洲的一家大型連鎖超市最近放棄了一項基於深度學習預測哪些產品將被購買的系統。該公司的高層判斷,訓練和運行該系統的成本過高。
深度學習路在何方
面對不斷上升的經濟和環境成本,深度學習領域迫切地需要在計算量可控的前提下,提高性能的方法。研究人員為此進行了大量研究。
一種策略是,使用為深度學習專門設計的處理器。在過去十年中,CPU 讓位給了 GPU、現場可程式門陣列(field-programmable gate arrays)和應用於特定程式的積體電路(application-specific ICs)。這些方法提高了專業化的效率,但犧牲了通用性,面臨收益遞減。長遠看來,我們可能需要全新的硬體框架。
另一種減少計算負擔的策略是,使用更小的神經網路。這種策略降低了每次的使用成本,但通常會增加訓練成本。二者如何權衡取決於具體情況。比如廣泛應用的模型應當優先考慮巨大的使用成本,而需要不斷訓練的模型應當優先考慮訓練成本。
元學習(meta-learning)有望降低深度學習訓練成本。其理念是,讓一個系統的學習成果應用於多種領域。例如,與其分別建立辨識狗、貓和汽車的系統,不如訓練一個辨識系統並多次使用。但是研究發現,一旦原始數據與實際應用場景有微小的差異,元學習系統的性能就會嚴重降低。因此,全面的元學習系統可能需要巨大的數據量支撐。
一些尚未發現或被低估的機器學習類型也可能降低計算量。比如基於專家見解的機器學習系統更為高效,但如果專家不能辨別所有的影響因素,這樣的系統就無法與深度學習系統相媲美。仍在發展的神經符號(Neuro-symbolic methods)等技術,有望將人類專家的知識和神經網路的推理能力更好地結合。
正如羅森布拉特在神經網路誕生之初所感受到的困境,今天的深度學習研究者也開始面臨計算工具的限制。在經濟和環境的雙重壓力下,如果我們不能改變深度學習的方式,就必須面對這個領域進展緩慢的未來。我們期待一場演算法或硬體的突破,讓靈活而強大的深度學習模型能繼續發展,並為我們所用。
原文連結:
https://spectrum.ieee.org/deep-learning-computational-cost
論文連結:
https://arxiv.org/abs/2007.05558#
參考連結:
https://www.csail.mit.edu/news/computational-limits-deep-learning
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!