目前學界已關注到深度學習存在的問題,比如 Ali Rahimi 就在 2017 年 NIPS 大會上提到 Deep learning 是 “alchemy”(煉金術)。與此同時, Ali Rahimi 也表示 Being alchemy is certainly not a shame,而 not wanting to work on advancing to chemistry is a shame,意思是說只有提供系統的理論指導,該領域才會從純實驗學科變成有理論體系的學科。我和團隊試圖從應用/計算數學的角度去理解深度學習,以期能為網絡構架設計、相關研究提供一些新的指導思想。第二位主講人是來自北京大學的林偉研究員,他的報告題目是《破解機器學習中的中的維數災難:從可辨識性談起》。
一般來說,數學家都會通過嚴謹的理論分析去證明猜想,而我們采取了另一條思路,先尋找深度學習與數學概念的對應關系,再據此進行分析。比如我們可以把深層網絡理解為微分方程,亦或者是微分方程的一種離散形式。建立起這個聯系后,我們就會清楚該從數學的哪個領域入手去理解深度學習。
DNN 與數值 ODE 之間是一個什么樣的關系呢?如果以數學的形式寫出來,就會認為這是一個動力系統,然而這個很難被分析。有名的殘差網絡從數學形式上來看就比較好理解,其實就是連續的 ODE,對時間做了前項歐拉的離散,只不過在設計網絡時把 Δt 設成了 1。
這是很有意思的觀察,但人們也在懷疑,殘差網絡核與動力系統的聯系是否只是特例?更重要的是,假如 numerical ODE 和網絡構架之間建立了聯系,我們是否能從 numerical ODE 這個相對成熟的研究領域去反推出有用的構架?
后來我們發現,除了殘差網絡,其他網絡如 pulling Net 對應的實際上也是一個解了的反向歐拉,而反向歐拉需要我們對非常大的非線性方程組的逆進行求解,做不了就得利用多項式的逼近。于是我們用 numerical ODE 嘗試設計一些新的網絡構架,主要針對 residue block,至于具體里面的 block 是什么,并不做太大修改。
除了確定性內容,深度學習的訓練還會面臨各種各樣的隨機擾動,按理來說其對應的就是隨機微分方程。我們發現,不管是隨機策略還是網絡自帶的隨機性質,訓練網絡實際上是一個求解隨機控制的問題,因此可以從隨機控制的角度來看待帶有隨機訓練策略的深度學習訓練。我們做了簡單對比,發現在不減少精度情況下,可以把深度減少90%,100層就能達到1200層的效果。
此外,隨著采集數據的手段越來越先進,如今存在大量的三維甚至四維數據,我們是否能將 PDE 與深度學習結合,形成提取規律的高效工具?我們對此也做了初步嘗試,核心思想是對卷積做部分約束,確保學習方程之余,還能保證模型的可預測性。
過去用演化預熱方程做圖像去噪,一旦演化的時間過長,圖像的細節也會隨之丟失,也就是說,停止的時機是個超參數,且與噪聲的水平有關。不同的圖像,不同的噪聲水平,超參數的最佳停止時間是不一樣的,我們除了對網絡的參數進行優化,也將動力系統的停止時間納入到優化范疇內,即是網絡深度可以根據當前數據進行自動調節,最終結果的自動化程度要比以前好很多。
下一步,我們將借助智源的支持去做更多理論分析,比如將數值微分方程或者是反問題里的其他方法視作深度學習網絡構架,接著分析這些網絡構架的泛化水平、壓縮感知等,最終設計出更加緊致的網絡。
所謂高維統計,即是研究所謂的高維數據或者高維模型的統計學。以數據為例,維數指的是變量的個數,比如同時分析幾千個甚至是更多數據,那么維數就會非常高。放在模型維數語境來說,,高維就是俗稱的“過參數化”。第三位主講人是來自北京大學的邵嗣烘副教授,他的報告題目是《面向智能的數學》。
怎么從統計學的角度給人工智能技術建立一個能提高可解釋性的理論學習框架呢?我認為目前存在兩套工具,一套基于隨機矩陣理論,我們可以從這種漸進框架下推導出許多與經典統計學中 N 趨于無窮不同的漸進結果;另一套是我所做的集中不等式,簡單來說,許多結果都是非漸進的,我們可以據此得出推論,令 P 隨著 N 具有某種關系,借此得到一些允許 P 遠大于 n 的漸進結果。
什么是可辨識性?如果數據分布的兩個參數 θ1 和 θ2 對應的數據分布是一樣的,我們就可以借此推導出是同一個參數。這個很關鍵,如果沒法確定真實參數是什么,一旦用算法做優化找參數,結果將極其不穩定。不可辨識的模型有哪些缺點?一個是解釋性差;一個是泛化能力弱。我們可以通過稀疏和低秩來保證可辨識性。需要強調的是,因果推斷理論在很多情況下是不可辨識的,但我們可以為之做出定界,如果上界與下界足夠小,那么還是有作用的。
如果可辨識性無法保證,我們是不是非要達到可辨識性的目標?不可辨識性所導致的誤差,能否反映在我們的結果里?我們的工作給出了答案:前者是no,后者是yes。如果是做生物學習,那么問題一的答案是最好有,但不是非要不可,因為確實存在過稀疏的網路性能更好的例子,但不絕對;至于第二個問題目前還沒有定論。
神經網絡是一種高維或者過參數化的模型,從統計學來說,我們可以如何進行修改?第一、擬合目標函數;二、分析目標的真實函數到底是在什么類別。有了這個東西以后,我們將能得到一些解,比如說兩種稀疏。
我們現在造很多機器,總想弄清楚人類從哪里來,要到哪兒去,以解答所謂的終極問題。那么問題就來了,我們是怎么意識到我們是我們的呢?這就涉及到人腦是怎么形成意識的問題。第四位主講人是來自北京應用物理與計算數學研究所的王涵,他的報告題目是《Deep Learning for Multiscale Molecular Modeling》。
所謂的人工智能,其根本是通過人類能理解的方式去模仿智能或者說探索智能的機理。人的大腦是一個由 1000 億的經元構成的腦神經網絡,無論好的壞的想法都來自這里,這隱含著兩個基本事實:一、構成網絡的物質基礎與自然界中的原子沒有區別,所以我們得用量子力學描述它;二、要基于量子力學的行為去描述神經元突觸量子力學的行為,這對于理解意識的產生非常重要。
這么重要的課題,為何一直都沒太大的進展呢?其一,直到去年我們才成功掌握果蠅的全腦產高清圖像,也是從這個時候開始我們才可以看到所有神經元的空間位置,不過這個活體已經失去生命力了。其二,對量子力學行為進行測量,從物理原理的層面上來說其實特別困難。具體難在什么地方呢?海森堡測不準關系告訴我們,微觀世界的粒子除了是粒子以外,還向著光。
為此,我們利用計算機算解通過經典的量子力學方程給解出來,使用了維格納函數。維格納函數是目前唯一擁有嚴格數學理論知識、可以從量子世界過渡到經典世界的數學表述形式,利用維格納函數做模擬,可以為實驗科學家提供觀測和對比的數據結果。一旦要在實際的腦神經網絡中去跑動力學,肯定會遇到計算規模的問題,因此我們采取了隨機算法模式,通過數學的等價推理,發現它等價于一個更新方程,而方程本身內在存在一個隨機解釋,即是所謂的分枝隨機游走,基于這個過程將可以進行進一步模擬。
我們來看一下果蠅的大腦數據實驗,它的腦神經元是由十萬個神經突觸構成的腦神經網,而人腦則是一千億。從數據模擬的角度來說,規模差距太大,無論對算法設計還是數學理論而言都是極大的挑戰。因此,我們必須研究優化算法,如何在不損害精度的情況下,在誤差允許范圍之內對網絡做分解。
我們在這方面做了很長時間的探索,試圖去探討圖上的數學,結果發現很多問題不是我們所想象的那樣。比如圖上討論某一類問題,你將發現其特征函數或者特征向量非常多,而且可以把它進行局域化。換句話說,給你一個網絡,再給你一把剪刀進行裁剪,我們既可以剪最多的邊,也可以剪最小的邊,但我們最終希望,剪下來的兩塊是比較勻稱的。現實的數學理論會告訴你,不可能在有生之年找到最佳方案。
既然如此,我們如何以最快的代價拿到次優解?我們的思路是把大圖剪成小圖,再用小圖拿來跑維格納量子物理學,從中了解時間之間是否存在量子關聯,再把數據開放做實驗。我們想辦法找到連續優化問題與之進行對應,回到數學分析層面其實很簡單,一個序列的極限是唯一的,但是具體產生同樣極限的序列有多少種,以及具體是哪個序列,則取決于額外約束。
我們希望能把這套理論走通,以便產生的優化問題能有解析表達形式。于是,我們做了所謂的Lovasz擴展,隨便給個組合優化問題,我們都能找到對應的聯系。我們據此設計了一個簡單的算法叫表達式迭代,這些問題雖然不能知道最優值,那我們就把文獻里看到的最佳值做一個解,由此找到這些算法的相對誤差,然后再簡單的跑一下,這樣最終結果與最佳值的誤差能夠控制在1%以內,比原來的快了不只一點點。
這個方向我們已經做了很好的積累,其中包括組合問題,如何解兩個關聯等。這個方向如果要繼續往前走,需要跨好幾個領域,具體究竟需要用到哪些數學工具或者數學理論,目前還不是很清楚,目前只能做各種嘗試。
總而言之,這些事情一下把我們拉回了起點,我們可能真的需要從根子上或者從數學理論上去理解,把連續的東西或者離散的東西放在統一的框架里進行討論。過去,我們做的很多事情都太局限了,而現在你再也躲不開,從這個角度而言,這件事情才剛剛開始。
假設這個世界由原子構成,每個原子我們都看成是一個質點,這個位置是 Ra 。根據中學學過的牛頓第二運動定律,只要給定初值就能把這個方程解出來,這樣我們就能知道所有原子在任意時刻的坐標,這是分子模擬在干的一個事情。如果大家看過三體,就會馬上意識到要精確地解方程,只能對兩原子體系求解,然而任意一個多原子體系,你都無法在無窮長的時間內把它給精確的解出來,由此初始的初值誤差就會變得非常大,造成你的解變得不靠譜。第五位主講人是來自北京大學的張志華教授,他的報告題目是《數學工程——理解機器學習的一種角度》。
然而分子模擬想獲得的結果并不是原子運動的軌道,而是原子運動的軌道在無窮長時間內對相空間的一個分布,這樣就意味著數值誤差對于這個分布的影響實際上是可以被控制的。換句話說,如果離散做得足夠好,我們獲得的平臺分布就能與物理中想要的分布保持一致。分子建模試圖把能量函數的 E 給寫出來,而多尺度分子建模就是對原子坐標做一定的粗粒化,然后再去寫出等價的形式。
多維函數在傳統數學的處理上還是比較困難的,深度學習正好給我們提供了非常有利的工具。我們的目標就是在保證第一性原理計算精度的前提下,能做到計算開銷,并與經典力場盡可能進行合并。
然后對稱性開始成了問題。舉個例子,比如手機是一堆原子,然后這個手機在空間中平移一下,所有原子的坐標一起加一個向量,還能保證這個手機的能量顯示不變,即使是把手機轉一下,能量也同樣不變。 對稱性對于一個生物學模型或者神經網絡來講無法被保證,任意的坐標平移或交換都可能導致網絡的輸出不一樣。
保持模型的對稱性有兩種做法:第一種是在分子體系里固定一個隨體的標件,這樣就能通過排序把交換的對稱性給穩住,這個做法的優點是表示能力強,缺點是會給能量函數造成一定的不連續性。另一種則基于兩個觀察,第一個觀察是以兩個向量做內基,做完內基以后是旋轉不變的,第二個觀察是對 i 原子的坐標的近鄰求和,求完和以后交換就不變。基于這兩點,我們設計了所謂的描述子,然后我們把描述子放到神經網絡前面,再把輸出接到神經網絡里面,以保持整個模型的對稱性。
我們的深度學習模型發表后,別人拿去解決了一些實際問題。比如一位英國皇家科學院院士用來研究硅,他說早先產生的力場很難把硅的固相跟硬相同時描述好,但我們深度學習的模型可以,他用來做了一個硅的熔化,取得了很好的效果。另一個是北師大的教授,他拿來做激發態的反應動力學。在過去傳統的建模里,激發態的動力學的兩個勢能面交接錐的精度總是做不好,是該領域的一個難題,我們的深度學習模型卻很好解決了這個問題。
前面講的都是深度學習對原子間相互作用的表示,實際上卻存在一個很嚴重的問題——數據從哪兒來。我們因此提出主動學習策略,先訓練出一個可進行分子動力學的模型,然后再通過分子動力學去構型更多分子,簡單來說,就是每次改進完模型后,立馬就回產生新的構型,新的構型經過測試,我們把誤差大的挑出來重新打標簽,進而豐富數據庫。
最后,在表示高維空間函數深度學習的技術方面使用主動學習,關鍵之處在于誤差估計,怎么樣能夠把誤差通過第一性原理計算給估計出來,將會是設計的核心。
機器學習與人工智能從本質上來講還是很不一樣的,它并不是模擬人的思維和行為,而是通過經驗和交互的方式去改善性能。實際上它是研究算法的學科,這個算法基于數據型算法,然后再反饋到數據里去。可以按這個思路理解機器學習:我擁有一個數據,如何把它作為一個表示,或者獲得一個特征,再基于這個表示特征達到預測和決策的目的。
當中較有代表性的,毫無疑問是基于規則的學習,該方法的重點是特征工程,這也意味著,需要對領域非常了解,才有可能做成這個東西。這個事情實際存在一些問題,比如一旦做的是個深層次的推理,就會導致維數災難。為了解決這問題,一個簡單的思路是把原來基于規則的方式,環城一個非線性的模型,然后反過來弱化數據到表示的過程,基于這樣的數論發展出了統計機器學習。
統計方法發展到一定的時候,大家認為數據到表示這件事情依然繞不過去,方法再強大,數據到表示如果不行還是會帶來很多麻煩。于是又出現一個簡單的思路,通過學習的方式來求解表示問題,也就是通過機器學習的方法來求解表示問題。
實際上,這個時期的深度學習目的還不純粹是為了表示,關鍵還是為了非線性的擬合。這就導致至今還沒找到有效表示網絡的自然語言處理領域,發展上沒圖像處理領域那么快。深度學習發展到現在,面臨的一個問題是無監督問題遠遠比有監督問題要多,且更復雜。隨后就出現一個思路,把無監督問題形成與有監督類似的學習過程。
換句話說,如果有一個優化過程,是需要用機器學習方法來解決的話,統計學里就會假設這個X要生成它。那么 X 如果是連續的,我可以假設這個 X 是高斯;如果 X 的高斯假設很強,我們可以說 X 是一個高斯混合體。這個時候大家發現, X 是一個抽象的數學意識,并沒有具體的物理意義,那么自然神經網絡技術能不能像圖像進行一樣去生生成語言,而不是對數學意義上的 X 去生成。這時候就發展出類似生成對抗網絡的方法來解決這樣的問題,它的框架實際上就是如何形成一個優化問題。
近期流行還有強化學習,它利用規則與環境交互形成一個學習優化問題。強化學習比有監督學習具備一些先驗,再利用這些先驗知識形成一個優化目的,這是強化學習目前的發展情況。深度學習是在 2006 年被提出來的,直到 2012 年才落地,實際上中間五六年主流的機器學習家都在其中徘徊,很多人都沒真正去跟進,換句話說,這可能是一個機遇期,但是不是一個大的機遇期,就不太好說了。
我們知道機器學習存在三個問題:有監督、無監督和強化學習。那么機器學習跟統計的關系是什么呢?原來我們認為機器學習是統計的分支,現在我們認為機器學習是現代統計學,但是它跟統計還有微妙的關系,機器學習是分類問題,而統計是回歸問題,但是從回歸上來講也沒有太本質的區別。
此外,機器學習往往會形成優化問題,模型你弄得再好,但是新的數據不行,機器學習就沒什么用。從這個角度來理解,就是學習完了以后,還要關注泛化的問題。現代的機器學習的成功之處在于表示,深度學習不是單純的一個非線性模型,而是一個非線性的表示。我們想要用機器學習做預測,而預測是通過計算得來的,所以說一個好的表示要適合最終的預測,而且這個表示也要適合我的計算。
深度學習目前也遇到很多挑戰,第一個是對于大數據的要求,往往會帶來過參數的問題。另外,我做的這個表述是基于多層表述,所以問題是高度的非凸化,這是它的基本問題。機器學習要關注的重點問題有四個:可泛化性、可計算性、穩定性、可解釋性。現在大家都強調可解釋性,但是重點應該是穩定性和泛化性這個層面。多級技術、正則化和規范技術、集成+平均化的技術、自適應方法都可以在客觀上幫助我們解決這些問題。
最后我總結一下,為什么我要提出數學工程的概念。數學里的概率論、隨機分析這些東西是可以來研究AI的數學機理。就算有了模型,最后我們都要通過計算來表示這個結果。這個計算一共可分為三個方面,第一個方面是數據分析,求解連續問題的算法,另外是離散算法,這個可以看作是求解離散結構的算法,還有大規模的集散的構架問題。這些我們可以認為是個工程,這些東西可以通過計算的工程思路把數據問題給實現出來。
應用數學最重要的魅力在于提出問題的思路和途徑,而不僅僅來證明定理,工程即是技術,也是一種藝術,它是算法的必要補充。沒有計算圖、自動微分這樣的工程工具,深度學習根本不可能得到推廣。深度學習里的很多技巧都是工程的,但是它也是數學的東西包含在內。如果強化學習能夠獲得巨大成功,那么我相信數學與工程的發展也將隨之形成一個巔峰。
來源 | 雷鋒網
作者 | 黃善清
上一篇:PyTorch杠上TensorFlow:誰才是增長最快的深度學習框架?
下一篇:中國工程院院士高文:我國人工智能發展需搭建兩大平臺