(本文由科學大院根據鄂維南院士在第204次科學與技術前沿論壇上的報告《The Science of AI》整理而成,首發于科學大院。)
![]()
鄂維南院士做報告
(圖片來源:中國科學院理論物理研究所)
今天我報告的主題不是 AI for Science,而是Science of AI。AI for Science,是利用人工智能來攻克科研中依賴經驗和試錯的問題;而Science of AI,則是以科學的方法體系來推動人工智能自身的發展。如果人工智能本身也依靠經驗和試錯作為主要發展模式,這將構成一個根本性的問題。所以,我們需要思考如何推動人工智能從工程化走向科學化。
人工智能的研究先驅
先回顧人工智能發展歷史上的先驅者。在達特茅斯會議之前,人工智能的研究者以數學家為主,比如圖靈(Alan Mathison Turing)、馮·諾伊曼(Von Neumann)、維納(Norbert Wiener)、香農(Claude Elwood Shannon)等人,他們的工作集中于構建人工智能的理論與概念基礎。會議之后,明斯基(Marvin Minsky)、麥卡錫(John McCarthy)、西蒙(Herbert Simon)和紐厄爾(Allen Newell)等人對人工智能的進一步發展起到了關鍵作用。
![]()
![]()
![]()
人工智能的研究先驅。從左到右:
上:圖靈、馮·諾伊曼、維納、香農
下:明斯基、麥卡錫、西蒙、紐厄爾
達特茅斯會議之后,人工智能主要遵循一條工程化的路線發展,并且取得了巨大的成就,誕生了如 Lisp 語言、IBM “深藍” (Deep Blue)、AlexNet、AlphaGo 等里程碑式的工程項目。相對而言,AI的基礎理論研究是比較滯后的。這并不是因為沒有人研究人工智能的基礎理論,而是相關研究沒有跟上人工智能發展的步伐。這里舉兩個例子:
一個例子是明斯基和派珀特(Seymour Papert)在1969年所寫的一本書《感知器》(Perceptrons)。他們的出發點是探究人工智能的理論基礎,但這本書的結論具有嚴重的誤導性,對人工智能的后續研究方向造成了負面影響。
另一個例子是瓦普尼克 (Vladimir Naumovich Vapnik)的經典著作《統計學習理論》(The Nature of Statistical Learning Theory)。盡管這本書在統計學習領域影響深遠,但沒有涉及深度學習,還停留在機器學習的早期研究框架上。
![]()
左:《感知器》右:《統計學習理論》
基礎理論缺失造成的后果是人工智能的發展經歷了幾次大起大落;幾乎沒有哪個學科像人工智能一樣,發展歷程一會迎來熱潮,一會跌到低谷。同樣,理論研究的缺失也直接導致了當下的大模型開發依然高度依賴經驗與試錯,門檻高、成本高、資源浪費的情況很嚴重。
人工智能的主要方法
從數據使用量的角度來看,人工智能的主要技術可以分為四類:0數據、小數據、大數據、全數據。
一、0數據
0數據,即不依賴數據,而依賴人工定義的規則與邏輯,主要技術路徑是符號表示、邏輯推理、機器證明、專家系統等。0數據的一個典型例子是專家系統,它最具代表性的成就是1997年IBM的“深藍”擊敗國際象棋冠軍卡斯帕羅夫。
但是,專家系統的難題在于組合爆炸。盡管它可以處理8x8的國際象棋棋盤邏輯,但面對19x19的圍棋棋盤,組合選擇呈指數級增長,就會出現組合爆炸問題。哈薩比斯(Demis Hassabis)正是意識到專家系統的局限性,因此在深度學習出現之后看到了新的可能的路徑,最終攻克了圍棋難題。
![]()
二、小數據
小數據以經典的統計學習方法為代表,其特點是模型結構相對簡單、樣本量有限。這種技術主要面臨的困難是維數災難和組合爆炸。
維數災難是指隨著系統復雜性(例如自由度個數,或維數)增加,計算量呈指數級增長。眾多學科領域中都存在維數災難的問題。為此,科學家們不得不發明一些簡單粗暴的近似方法來解決現實問題,如量子化學中的Hartree近似。為什么早期的人工智能領軍人物(如西蒙和明斯基)對于人工智能的發展曾做出過于樂觀的預測,主要原因之一是他們沒有認識到,將解決簡單問題的經驗應用到復雜問題時,會碰到維數災難之類的問題。
三、大數據
大數據最典型的例子就是深度學習。2012年,杰弗里·辛頓(Geoffrey Hinton)帶領的團隊憑借AlexNet贏得ImageNet競賽,將錯誤率大幅降低了十幾個百分點,這是深度學習崛起的標志性事件。盡管多層神經網絡等算法早已存在,但只有在海量的高質量數據(例如 ImageNet)與算力資源(GPU)的共同支撐下,它的潛力才完全發揮出來。
![]()
辛頓對深度學習做出了巨大貢獻。他早在博士論文期間就開始神經網絡領域的研究,在無人看好的領域堅持數十年,最終引領了深度學習的爆發式發展。
四、全數據
當下的大模型都在強調“大”。其實“大”是次要的,最重要的是實現全量數據的有效利用。例如,GPT-3在發布時號稱使用了當時互聯網上所有文本數據。而要處理全量數據,模型就必須足夠大。這需要解決兩個技術問題:
1.預訓練。核心目標在于如何高效利用無標注數據。
2.通用性。既然使用了全量數據,就必須具備解決所有下游任務的能力。
此前業界存在兩條主流的大模型路徑:谷歌的 BERT(基于掩碼的填空式學習)和OpenAI的GPT(預測下一個詞)。最初谷歌的方法因為訓練效率高而更受歡迎,但兩者有一個本質區別:預測下一個詞能以通用的表達方式解決翻譯、對話、推理等各種語言任務,而“填空”模式并不能實現這一點。這也是為什么當時OpenAI在大模型競爭中占據了領先地位。
深度學習的基礎理論
盡管深度學習在實踐中取得了巨大的成功,但仍然存在許多基礎理論問題尚未解決,充滿了各種各樣的未解之謎和“黑魔法”。例如:
- 為什么深度學習的效果優于其他機器學習方法?
- 為什么多層神經網絡的訓練如此困難?
- 為什么隨機梯度下降(Stochastic Gradient Descent, SGD)的效果往往好于梯度下降(Gradient Descent,GD)?
- 為什么批標準化(Batch Normalization)能顯著提高神經網絡訓練效果?
- 為什么循環神經網絡難以處理記憶較長的序列?
我們能否對這些問題有基本的認識?這就需要研究深度學習的基礎理論。
一、有監督學習
有監督學習是深度學習中的核心方法之一,其本質上是關于函數逼近的計算數學問題。例如在圖像分類問題中,我們需要構建一個映射函數,圖像是自變量,分類結果作為因變量。我們有有限個樣本點上的函數值。我們的任務是利用這些信息得到一個目標函數的高精度逼近。下圖展示了對CIFAR-10數據集中部分圖像及其分類結果:
![]()
CIFAR-10數據集中的部分圖像示例。
CIFAR-10數據集是一個廣泛用于機器學習和計算機視覺算法的圖像集合。它總共包含60000張32x32像素的彩色圖像,分為10個不同的類別。
神經網絡本質上可視為一類特殊的函數,就像多項式是另外一類特殊函數一樣。從數學的角度來說,我們還可以從動力系統的視角來審視神經網絡,反向傳播算法等優化方法可以很自然地被理解為動力系統的基礎算法。
![]()
二、維數災難
對于函數逼近問題的研究,計算數學和深度學習的一個根本區別在于問題的維數。傳統計算數學側重于處理一維、二維等低維問題,十維就被視為很高的維度;而在圖像分類任務中,每個像素都是一個自由度,一張32×32像素的彩色圖片,自由度是32×32×3=3072,維數是三千多。從計算數學的角度,想處理這么高維數的問題幾乎是無能無力的,但是深度學習卻能較好處理。
為什么高維問題在計算數學中難以處理?根源在于經典逼近理論中的維數災難。比如用分片線性函數逼近目標函數,假設需要m個網格點,每個網格的寬度是h,m和h之間有以下關系(d是維數):
![]()
分片線性函數逼近的誤差是二階的:
![]()
如果想將誤差降低為原先的十分之一,網格點的個數需要增加10d/2倍;如果維數d=3000,那么網格點就要擴大到原先的101500倍,這是一個天文數字。這類維數災難的問題不僅存在于分片線性函數逼近,在幾乎所有的計算數學方法(比如小波方法、三角函數逼近)都普遍存在,所以非常難以解決。
然而,深度學習似乎不存在維數災難的問題。這是為什么?
我們從一個經典的例子,高維積分的計算,來開始探討這個問題。比如對于積分I(g),用Im(g)逼近:
![]()
如果使用傳統的基于網格的方法,如梯形公式,那么誤差的表達和分片線性函數是類似的,存在維數災難:
![]()
但如果采用蒙特卡洛方法,誤差中m的指數就不存在1/d的項,與維數無關,因此能夠計算維數高達數百萬的積分:
![]()
我們再從高維積分的角度出發,再來看函數逼近的問題。假如目標函數能夠被寫成如下形式,其中π是某個概率分布:
![]()
這就將函數逼近問題轉化為積分問題,利用蒙特卡洛方法解決,逼近誤差就不會出現維數災難。
![]()
這里的關鍵是,上述逼近函數恰好是一個兩層的神經網絡,只不過其激活函數是指數函數:
![]()
所以說只要目標函數具有上面的積分表達形式,就可以使用兩層的神經網絡來逼近,同時逼近誤差沒有維數災難。
在這一問題的啟示下,我們可以定義一系列的函數空間,使得函數逼近的誤差沒有維數災難。因為巴倫(Andrew R. Barron)是最早考慮相關思路的,我們把這類函數空間稱為Barron空間。
![]()
當然,逼近誤差只是一個因素。我們還需要考慮泛化誤差、訓練誤差等。總之,這個問題還遠遠沒有完全解決。但從上述分析,我們可以看到,深度學習方法對高維問題的效果的確跟經典方法不一樣。
總結一下,我們應該如何用正確的數學觀點看待神經網絡?
之前提到,明斯基和派珀特在《感知器》中提出了一個誤導性的看法。書中研究的核心是單層感知器,這可以看成是最簡單形式的神經網絡。他們的出發點是問這樣一個問題:單層感知器可以精確表達什么樣的邏輯函數?結果發現連最簡單的邏輯函數都無法被精確表達,由此他們得出了非常悲觀的結論。事實上,他們的出發點就是錯誤的:我們不應該追求精確表達函數,而是應該采用逼近論的觀點來看待這個問題。
從逼近論的角度出發,西本科(George Cybenko)證明了所謂的通用逼近定理(Universal Approximation Theorem),即在閉區間上任何連續函數都可以用神經網絡來逼近到任意精度。這的確是一個重要結果。但是,這一定理不能區別多項式和神經網絡。數學專業的大一學生就學過魏爾施特拉斯逼近定理(Weierstrass Theorem),即在閉區間上任何連續函數都可以用多形式來逼近到任意精度。但是我們知道在高維空間,神經網絡逼近和多項式逼近的表現非常不一樣。正確的出發點應該是探討逼近速度和維數的關系。前面關于Barron空間的結果是這個方向的一個起點。
認識到深度學習可能是解決維數災難的一個有效工具,是一個巨大突破,因為許多問題的核心困難都是維數災難,例如最優控制問題、高維微分方程等。我們推動AI for science最初的出發點也是如此,因為維數災難是許多科學問題的核心困難,比如量子力學、分子動力學、蛋白結構等等。
三、深度災難
深度神經網絡在訓練過程中會產生梯度爆炸或消失的現象,導致很難訓練好比較深的神經網絡。這個問題我們稱為“深度災難”。
大約十年前,訓練多層的神經網絡是一件非常困難的事情。這一難題后來由殘差網絡(ResNet)得以解決。
訓練神經網絡通常使用各種梯度下降的方法,所以避不開計算梯度,而梯度涉及到所有參數矩陣的連乘。由于神經網絡在訓練時一般是隨機賦予初值,數學中著名的乘法遍歷定理(multiplicative ergodic theorem)告訴我們,多個隨機矩陣乘積得到的矩陣隨著個數的增加會呈指數變化,這個指數的基數是一個被稱之為李雅普諾夫指數的數字,通常記為κ。如果李雅普諾夫指數κ大于1,那么隨著深度的增加,梯度是指數爆炸的;如果κ小于1,那么梯度是指數衰減的。兩種情況都不是好結果。
![]()
解決的辦法很簡單:回到神經網絡的動力系統定義,如果我們在右邊加上一個項zk,且在切始化時將參數W取得很小,這個動力系統可以視為一個恒定動力系統加上一個小的擾動。此時,κ就會非常接近1,從而解決了梯度指數爆炸或消失的問題。這就是殘差網絡能夠解決深度災難的本質原因。
![]()
四、梯度下降和隨機梯度下降,哪個更好?
從計算效率來看,隨機梯度下降顯著優于梯度下降,因為后者每次迭代都需要計算整個數據集的梯度,而隨機梯度僅隨機選取幾個數據上的梯度,顯然計算效率更高。那么,兩種方法在測試誤差上的表現如何呢?
十年前,有一個很著名的謎題:隨機梯度下降不僅效率高,準確率也往往比梯度下降更好。這是一個普遍觀察到的現象,尤其是在網絡參數個數大于訓練數據量的過參數化情形下(即變量個數大于方程個數),此時可以得到多個訓練誤差為0的解,不同的訓練方法會收斂到不同的解。這自然引出一個問題:給定一個訓練方法,它會選擇哪個解?
我們還是從動力系統的角度來看這個問題。不過現在的動力系統不是神經網絡,而是將訓練方法看作一個動力系統,例如梯度下降、隨機梯度下降。
動力系統中有一個非常基本的概念:動力系統的收斂解必須是線性穩定的。從動力系統穩定性的角度出發,我們可以分析隨機梯度下降的的線性穩定性。我們從一個簡單的一維問題出發。下方表達式是線性化之后的隨機梯度下降的迭代公式,其中Hj是第j個數據的海塞矩陣(Hessian Matrix),η是學習率(Learning Rate),B是批次大小(Batch Size)。集合中批次的選取是隨機的,所以這是一個隨機動力系統。
![]()
分析這個隨機動力系統的穩定性,需要引入兩個量:所有矩陣Hj的平均值,我們稱之為尖銳度(sharpness);還有方差,我們稱之為不均勻度(non-uniformity):
![]()
簡單的分析可以給出穩定性條件:
![]()
在尖銳度和不均勻度組成的空間中,分別固定學習率(下圖左)和批次大小(下圖右),畫出穩定性區域,會發現穩定性隨學習率和批次大小發生變化,而且隨機梯度下降的穩定性區域小于梯度下降的穩定性區域。
![]()
吳磊在實驗中還發現了這樣一個現象:當梯度下降的準確度接近100%時,如果突然把訓練方法更換為隨機梯度下降,那么訓練的軌跡會快速逃逸原來的軌跡,然后再慢慢重新收斂,并收斂到另一個解。這個現象的原因就是梯度下降可以收斂到很多個解,但大多數這些解對于隨機梯度下降都是不穩定的,后者只能在別的地方找到穩定的解。
![]()
再看看實際計算中的情況。我們讓梯度下降在兩個數據集(Fashion-MNIST和CIFAR-10)上使用不同的學習率進行訓練。梯度下降的穩定性要求表明,尖銳度必然小于2/η。從實驗結果我們可以看出這個穩定性條件是滿足的。更為重要的是,我們發現實驗結果離穩定性的邊界靠得很近,梯度下降方法的訓練軌跡實際上是處在穩定區域的邊緣(edge of stability)。隨機梯度下降也有類似的現象。
![]()
5.序列問題與記憶災難
如何基于一個已有序列,預測下一個詞?這是大語言模型的核心問題。這類問題的難點在于記憶:比方說下一個詞與前文多長區間的詞存在依賴性?一個典型困難是“記憶災難”:可以證明,如果關聯的區間(也就是“記憶”)非常長,循環神經網絡(RNN,Recurrent Neural Network)所需的神經元個數會隨記憶區間長度的增加而呈指數級增長。
![]()
同時我們還證明了,Transformer架構在一定條件下不存在記憶災難。事實上,這個理論告訴我們, Transformer架構能夠有效處理復雜但稀疏的長記憶問題。這是大語言模型普遍轉向Transformer架構的一個重要原因。
![]()
![]()
6.MoE(混合專家模型)架構
MoE架構在當下非常熱門,基本原理是通過路由(Router)機制,將不同的任務分配給最擅長的“專家”(expert)。
從流形學習的角度來看,我們可以想象數據是分布在一個高維的“曲面”(即流形)上。由于流形通常沒有統一的全局坐標,只能通過多個局部坐標片(patch)一起拼起來來覆蓋。每一個“專家”本質上就是在負責處理流形上的一個局部切片。
此外,從分片函數的視角來看,MoE架構就像是用許多小網絡去擬合一個復雜的分片函數。其能夠擬合的函數的片數隨著網絡層數的增加呈指數級增長,所以MoE架構是擴展模型容量的有效方法。
![]()
7.大語言模型
最簡單的語言模型是N-gram,即用前N個詞來預測下一個詞。在長文本中,N可能很大,就像一本小說第一頁的故事對于最后一頁的情節可能都有影響。這意味著模型需要處理長程記憶,而這種記憶往往是稀疏的。Transformer架構的成功,恰恰在于它能夠高效處理這種稀疏長程記憶。
然而,語言實際上不能用N-gram來建模,而是需要用“Hidden N-gram”,因為我們不會把所有想到的東西都說出來。例如在推理時,我們并不會寫下所有的推理過程,正如數學家經常用“顯而易見”來省去一些證明。語言的文字表象之下,隱藏著大量未表達的邏輯。
大語言模型推理的難點在于,隨著隱藏的推理步數增加,推理難度(例如需要的數據量)呈超多項式增長 (super-polynomial growth)。我們稱這種現象為推理步數災難。這正是我們需要思維鏈(Chain of Thought, CoT)的原因——通過引導模型補充中間步驟,將隱藏的信息外顯化,從而縮短隱藏步數,降低推理難度。
總體來說,深度學習是一個很清晰的數學問題,核心挑戰在于高維、長程記憶等復雜任務的處理。而大模型更像一個復雜系統問題,需要處理各種復雜行為,所以更接近于統計物理的研究范式。
人工智能的系統論
如上所述,對于深度學習和大模型,我們其實已經積累了許多比較深入的理解。但為什么我們還總是覺得人工智能充滿各種驚奇、奇怪、難以理解的事情?為什么我們對人工智能的發展沒有可靠的預判和把控?這主要有兩個原因:一是理論方面,仍然有許多基本問題沒有解決,還沒有形成一套基本原理可以作為指導原則;二是人工智能系統是一個包括許多核心組分的復雜系統。我們需要從系統的角度看待人工智能。
復雜系統的一個典型案例是飛機。飛機的設計從早期的工程化走向有嚴謹設計體系的科學化,乃至總結出一套基本原理式的指導原則,這中間經過了一個漫長過程,最后形成了一套系統論方法。對于這樣一個復雜系統,我們需要定義系統的每一個部分,定義每個系統的設計目標,并完成整體優化。
![]()
人工智能不只是一個大模型,而是一個復雜系統。它包括:
- 內核:例如大模型;
- 內存:記憶系統;
- 外部接口:AI數據庫等;
- 本體:軟、硬智能體;
- 環境:物理環境、邏輯環境。
比如說,“憶立方”是較早從系統角度來設計的大模型,它最早提出將推理和記憶分離,實現記憶分層。通過將海量知識保存在內置知識庫中,“憶立方”大幅降低了模型讀寫知識的成本。
![]()
從方法論的角度來看,我們還需要將基于數據的深度學習方法與經典的邏輯方法結合起來。AlphaGeometry模型就是一個這樣的例子。在幾何證明中通過大模型建議證明的策略(例如如何添加輔助線),再依據定理庫給出邏輯證明。
總結與展望
總結主要有兩點:
第一點,人工智能在理論層面已經取得了巨大進步,只是這些成果還沒有被普遍了解。相信今天報告中的很多內容,即使是人工智能理論研究領域的從業人員也并不完全熟悉。
我們重點強調了人工智能發展歷程中已經初步解決的幾個“災難”性困難:
- 維數災難:解釋了基于神經網絡的深度學習為什么優于傳統機器學習;
- 深度災難:解釋了殘差網絡為什么優于一般網絡;
- 記憶災難:解釋了Transformer架構為什么優于循環神經網絡;
- 推理步數災難:解釋了為什么需要使用思維鏈。
人工智能仍有許多問題,其解決需要更深入的洞察力:例如如何以最優規則給大模型“喂數據”?生成式人工智能的不同方法如何統一起來?非結構化數據如何建模?預訓練和后訓練之間的關系是什么?這些問題都有待我們的思考。
第二點,我們已經到了可以推動人工智能從工程走向科學化的轉折點。具體包括以下層面:
- 系統層面(系統設計、系統優化、系統理論):內核、自主學習的本體、學習環境等;
- 方法層面(不同方法的深度融合):數據、邏輯、幾何、物理
- 模型層面(架構、訓練方法、數據)
只有推動人工智能從工程化走向科學化,才能避免泡沫和不必要的起伏,保證人工智能的長期穩定發展。
謝謝大家。
作者:鄂維南
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.