今年GPT的破圈,讓AI又添了一波熱度,實踐的AI走的非常的穩固。然而回過來看過去十年的機器學習理論的發展,好像沒有對AI的發展帶來任何幫助,所以AI還需要理論嗎?
最近,有幾個朋友以不同的方式跟我表達了同一個意思:過去十年,機器學習理論沒有給AI的發展帶來任何幫助,它只是個理論圈自娛自樂的玩具。
這個說法當然存在夸張成分,但是它背后的含義卻讓人難以辯駁。如果我們把AI頂會過去10年90%以上的機器學習理論論文都刪去,恐怕幾乎不會影響AI過去10年的發展,也幾乎不會影響OpenAI推出ChatGPT。更直白一點說,那些AI大佬們恐怕根本沒有時間去閱讀機器學習理論論文,因為他們要忙著做真正能夠推動AI前進的事情。
AI還需要理論么?
我認為,并不是AI不需要理論,而是我們之前做理論的方式有問題。
AI理論應該長什么樣子?
姚班的學生經常會說,“我不想做工程;我想要做偏理論的研究”。我時常會想,什么是理論,什么是工程?
學生往往是很淳樸的,就像孩子一樣。孩子看見了胡子就以為是老子,而學生則認為一定要有數學符號才是理論。這個想法本來無可厚非,但是在AI頂會內卷的今天,幾乎每篇論文都會絞盡腦汁地加一點裝飾性的數學公式,所以光靠數學符號來做分類,效果就不太好了。
所以進一步的,恐怕理論論文里面不光要有數學符號,還得要有定理和證明。除此之外,最好還有假設,斷言,引理,推論。當然,免不了還要有??等十種希臘符號加上一整頁以上的推導。這些推導可以是優化方面的導數分析,也可以是泛化方面的Rademacher復雜度求界,如果都有的話那就是一盤色香味俱全的菜——很飽滿了。
做完上述步驟,可以說已經登堂入室,距離一篇頂會論文也只有一步之遙。還差什么呢?還差論文的立意和創新點。數學中可以證明的東西很多,倘若沒有和機器學習算法建立起實際聯系,那確實還不能算上乘之作。所以,理論論文的畫龍點睛之筆,就是和機器學習的現象構建起聯系。
這看似畫龍點睛的聯系,卻成了理論論文被人詬病的根源。原因很簡單,讓理論和實際構建起聯系,最后得到的結論大多成了對現象的解釋,而很少能對未來有實質性的預測或指引。當然,我們不能說所有的機器學習理論論文都無法導出新的算法;但是實際上絕大部分的重要AI算法都是實踐派所得,不屬于理論學家的貢獻。
話說回來,這樣的比較也許并不公平:對于一個AI科學家,他提出一個新的算法只需要做一些實驗有效果就可以了;而理論學家的包袱更重,在實驗有效果的同時,他還需要有相應的理論證明。這就相當于栓著鐵球和別人賽跑,難度增加了不少。因此,理論學家追著AI大佬追得很辛苦,對AI大佬提出的新概念如數家珍;但是AI大佬卻可以對理論工作視而不見,直接擺擺手說,那些東西我不太了解。
看到這里,很多朋友可能會說,機器學習理論不就是這樣的么?理論論文不這么寫,還能怎么寫?
登山與鋪路
在機器學習理論圈待過幾年之后,就會發現理論并沒有想象中那么神圣。像Knuth大神當年寫的Toilet paper(https://www.jstor.org/stable/2322567)一樣,只要一個人愿意,他總是可以寫出非常復雜的讓人望而生畏的證明,雖然這些證明未必有太多實際價值和意義。(我對Knuth大神的Toilet paper不了解,可能他這篇論文是個例外)所以說,單純從證明和符號的復雜程度,似乎并不能夠用來判定論文的價值。
我認為,世界上的理論大體可以分為兩種,登山式理論和鋪路式理論。
登山式理論
登山式理論像登山一樣,總是充滿挑戰,讓人熱血沸騰。這一類理論工作特點是目標清晰,就好像珠穆朗瑪峰頂一樣。當我們站在山底,目標很明確,就是要想方設法、不惜一切爬到山頂。不過,到山頂的路有千萬條,我們只需要找到一條最合適的路就可以了。雖然說,我們邁出的每一步都是數學推導,但是當山峰很高很陡的時候,我們也很難快速地找到一條可行之路。這個時候,有兩類工具是比較常用的:
制定規劃。登山之路過于漫長,我們可以找到幾個重要的節點,把登山之路拆分成幾個不同的階段,每次處理其中的一個階段。這樣,把一個復雜的問題拆分成很多簡單的問題,往往就會容易很多。
加假設。一旦制定了明確的登頂目標,理論分析的難度就容易受到影響。很多地方不是靠制定規劃就可以解決的,有的步驟你不得不用一些工具,比如繩索、直升機、木板等等才能過去。這樣的工具在機器學習理論圈就是加假設。比如,我們可以假設輸入x服從高斯分布,可以假設目標函數是光滑的,lipschitz的等等。
在很多機器學習理論的論文中,假設的選取是核心藝術。如果假設太強了,比如我們使用了傳送器直接傳到了山頂,那么整個登山路線顯得索然無味。如果假設太弱了,比如我們連繩索都不準用,那么就會發現爬來爬去爬不到山頂。問題是,這些用于登頂的假設,在實際中往往是不完全成立的;或者說,就算成立,可能也只覆蓋了一個很小的部分,不能夠真正用于解釋和分析實際的AI算法。
舉個例子,我們觀察到了LayerNorm在實際算法中效果很好,于是我們決定把LN的分析當做我們的山頂去攀登。可是,實際的數據分布到底長什么樣子?我們可能不得不假設數據服從高斯分布。損失函數滿足什么性質?我們可能需要假設它是光滑的。網絡結構是什么樣子?我們可能需要假設它是一個兩層或者三層的網絡,因為網絡層數一多分析起來就非常困難。優化算法的步長是多少?我們可能需要假設它非常小,這樣優化的過程在一個小小的鄰域中才便于分析。這些假設就像是登山運動員的工具包里形形色色的工具,要清晰理解它們的用途并不容易,把它們組合起來完成登頂的任務更是一種壯舉。但是,真實的訓練過程往往和這些假設有一定差距:機器學習理論工作所攀登的山峰,更像是作者精心設計的理想山峰,而不是AI科學家日常真正遇到的那些。
過去十年,AI領域蓬勃發展,各種概念層出不窮。理論學家為了理解一個概念或算法,制定了很高的登山目標;但是限于工具的能力,又不得不加上各種假設助力登頂。最后,很多結論南轅北轍,得不到理論圈外部的認可,我認為這和登山式理論的研究范式是脫不開關系的。
鋪路式理論
如果說登山式理論目標明確,一切都是圍繞登頂;那鋪路式理論則更加佛系,完全是好奇心驅動。我把它叫做“鋪路式”,可能會有一些歧義:聽起來這樣的理論仍然有目標要完成,畢竟鋪路也是一項工程。我想澄清的是,使用“鋪路”這個詞,我更想強調它是從某個點出發,向四周蔓延,是一種自然而然的過程。如果我們看到了一個小池塘,就修一條到小池塘的路;如果我們看到了一個小山坡,就修一條繞開它的路。總之,修路的目標就是以修路的方式對這個世界進行四處探索,忠實地、不加假設或粉飾地去理解世界。這樣的路一開始修得很慢,但是會越來越快,因為在數學的世界里,一切已有的結論都可以成為未來結論的基礎;這樣的路也修得很扎實,因為從頭到尾都在描述世界的真實,所以修一步算一步——只要人們對這個世界有興趣,就會想要來看看已經修好的路。
有很多數學大師有過類似的觀點,我不過是拾人牙慧,換了個比方。例如,
柯西:在純數學的領域里,似乎沒有實際的物理現象來印證,也沒有自然界的事物可說明,但那是數學家遙遙望見的應許之地。理論數學家不是一個發現者,而是這個應許之地的報導者。
格羅滕迪克:人們永遠不應該試圖證明那些并非幾乎顯而易見的事情。
格羅滕迪克:我腦海中浮現出的類比就像是把堅果浸入某種軟化液體中。你會不時地擦拭,以便液體更好地滲透進去,其他時候則是讓時間流逝。經過數周甚至數月,外殼變得更加靈活,當時間成熟時,手的力量就足夠了,殼就像完美熟透的牛油果一樣打開!幾周前,我有了另一個形象。未知的事物在我看來就像是一片土地或者堅硬的白堊,抵抗著滲透……海水無聲無息地緩緩推進,似乎沒有什么發生,沒有任何東西移動,水太遠了,你幾乎聽不見它的聲音……但最終,它包圍了那個抵抗的物質。
小平邦彥講的故事則更加引人入勝:
現在數學的研究對象一般都非常抽象,實例也十分抽象,讓人難以理解。所以依靠具體事實歸納來猜想定理的方式,在大多數情況下已經難以適用。目前的情況下,關于發現新定理的思考實驗方式,我本人也是不得而知。如果將精力都花費在思索新的思考方式上,恐怕難有所得。實際上很多時候無論如何思考都得不到相應的結果。這樣看的話,是否可以說數學研究是一份極其困難的工作呢?不過這倒也未必。有時候感覺自己什么也沒做,那些應當思考的事情卻很自然地呈現在眼前,研究工作也得以順利推進。
夏目漱石在《夢十夜》中對運慶(注:日本鐮倉時代的高僧,雕刻技藝十分精湛)雕刻金剛手菩薩像的描述,充分表現了這種感受。這部分內容引用如下:
運慶在金剛手菩薩的粗眉上端一寸處橫向鑿刻,手中的鑿刀忽而豎立,轉而自上而下鑿去。鑿刀被敲入堅硬的木頭中,厚厚的木屑應聲飛落,再仔細一看,金剛手菩薩怒意盈盈的鼻翼輪廓已清晰呈現。運慶的運刀方式無拘無束,雕琢過程中絲毫沒有任何遲疑。
“他的手法真如行云流水,鑿刀所到之處,居然都自然地雕琢出了內心所想的眉毛、鼻子樣子。”我感慨至極,不禁自言自語道。
結果,方才那位年輕男子回應道:
“什么呀,那可不是鑿刻出的眉毛、鼻子,而是眉毛、鼻子本來就埋藏在木頭中,他只是用錘子、鑿子將其呈現出來。就像從泥土中挖出石頭一樣,當然不會出現偏差。”
在這種時刻,我常常感到世間沒有比數學更容易的學科了。如果遇到一些學生在猶豫將來是否從事數學方面的工作,我就會想建議他們“一定要選數學,因為再沒有比數學更容易的學科了”。
這些故事自然有趣,但是如果沒有親身體驗,恐怕云里霧里,不知所云。我想,鋪路式科研最重要的一點就是它沒有預設的目標,不會為了某個目標而強行加入假設;它更在意研究對象的真實性質,以平常心忠實地記錄。現代的純數研究,大多都是遵從這一思想向前推進的。
工程式理論與理論式工程
理解了登山式理論和鋪路式理論,就很難不察覺到這兩者的區別。我認為,登山式理論是一種“披著理論外衣的工程”。雖然整個論文充滿了復雜的數學符號,但是它的推進目標是預先給定的,而在推進的過程中,發揮了工程師“逢山開路,遇河搭橋”的特長,引入各種假設與工具,把最后的目標解決。而鋪路式理論,則是一種“真實的理論”,因為它更在意研究的目標世界的性質,而把解決問題的希望寄托在對目標世界更深刻的理解基礎之上。因此,我姑且把登山式理論稱為“工程式理論”。
既然有工程式理論,自然有理論式工程。理論式工程,顧名思義,就是“披著工程外衣的理論”。它雖然整個過程中都沒有使用數學符號,但是它沒有明確的工程目標,是以“鋪路”的方式推動工程的進展,更強調一個問題“應該”如何解決,而不是一個問題“要”如何解決。
我認為,現在AI領域所采取的研究方式,其實是一種典型的理論式工程。這個判斷有幾個支撐:
Pytorch/Tensorflow作為AI底層框架,把所有的函數都模塊化,做越來越高層次的封裝,使得使用網絡模型變得越來越簡單。這些封裝本身并沒有幫助人們解決某個具體問題;但是長遠來看,封裝可以節約人們的時間,把原來用來寫代碼的精力用于解決更重要的問題上。這其實就是一種鋪路的過程,就好像在數學領域,從最簡單的基本公理開始,得到越來越強大的理論工具,可以用來解決越來越難的問題。
過去十年,人們提出了各種各樣的算法,很多算法通過一些工程上的trick能夠一時霸榜,但最后能真正留下來的往往是簡潔優雅的極少數。這似乎已經成為了AI算法設計的一種哲學:少即是多。算法的成功依靠的是對網絡結構和數據的理解,而不是工程上的技巧。
在預訓練模型領域,像SimCLR, GPT, CLIP等算法的設計理念,均推崇從第一性原理出發、大道至簡。實際上,在已有的Pytorch/Tensorflow平臺提供的高層次封裝基礎之上,給定高質量的數據,這些算法往往只需要至多幾百行代碼就可以實現。因此,它們更像是哲學意義上的水到渠成,而不是工程意義上的翻山越嶺、披荊斬棘。
所以,AI領域的實踐之路走得非常扎實穩健,反而是機器學習理論圈努力了十年,卻沒有形成太多真正穩固的、讓人信服的理論基礎。我想,這就是理論式工程和工程式理論的最大區別。
最后回到題目。既然AI發展得這么好,那它還需要(非工程式的)理論么?我認為它一定還是需要的,只是我們應該反省之前做理論的方式,摒棄登山式/工程式理論的研究范式,探究真正能夠描繪、刻畫人工智能的新理論。
編輯:黃飛
評論
查看更多