微分萬物:深度學習的啟示

2021-03-01 中國物理學會期刊網

|作者:王 磊1,2,† 劉金國3

(1 中國科學院物理研究所) 

(2 松山湖材料實驗室) 

(3 哈佛大學物理系) 

本文選自《物理》2021年第2期

摘要   深度學習教會了人們一種新的和計算機打交道的方式:將一些可微分的計算單元組合形成一段程序,再通過梯度優化的方法調整程序參數,使其達成期望的目標。這就是微分編程的思想。深度學習技術的快速發展為微分編程提供了趁手的工具,也為計算物理開闢了一番新天地。文章介紹微分編程的基本概念,並舉例說明它在建模、優化、控制、反向設計等物理問題中的應用。

關鍵詞  微分編程,自動微分,計算物理

深度學習在做什麼?對於這個問題,人們的第一反應往往是「訓練人工神經網絡」。這個解釋讓深度學習聽起來既神奇又神秘,卻沒有正面回答問題。讓我們再追問一句:訓練神經網絡又是在做什麼?純粹從編程的角度看,深度學習將一些可微分的計算單元搭建成為一段程序,再使用梯度優化的方法調節程序參數,使其達成所需的功能。其實,人工神經網絡是一類特別簡單的電腦程式。大多數神經網絡中主要涉及的是張量運算,例如張量收縮和元素非線性變換等。而所謂「深層」的神經網絡,只不過意味著這類張量計算程序比較長而已。在這個意義下,人工神經網絡只是一小類可以被訓練的程序。推而廣之,我們可以對一般的電腦程式求導,利用梯度信息調節程序的行為,這就是微分編程。

以Yann LeCun(Fackbook的首席AI科學家)和 Andrej Karpathy(Tesla的AI部門主管)為代表的一些機器學習專家認為微分編程是深度學習的未來[1]。深度學習中所發明的各式各樣的神經網絡結構,例如卷積、循環、注意力機制等,都是針對特定任務的可微分模塊。設計這類模塊的指導思想是儘可能地利用關於問題本身的先驗知識,例如對稱性、局域性、層級結構等等。微分編程通過學習一般的電腦程式,可以更加充分地利用問題相關的特定領域的先驗知識,同時還能保證模型的可解釋性。另一方面,越來越多其他領域的科學家們也認識到微分編程的價值,認為它是聯繫深度學習與科學計算的一條紐帶。

讓我們通過幾個例子來直觀地認識微分編程。圖1(a)定義了這樣一個問題:如何設計合適的外勢場,使得其中的自由電子的基態密度分布達到期望的形式。這個問題的正向求解是相對容易的,只需要根據外勢場構造哈密頓量,再求解相應的本徵值問題就能得到基態的電子密度。按照微分編程的思路解決反向問題,我們首先定義正向計算的密度與目標密度的差別作為目標函數,再穿過正向計算過程求導得到目標函數對於外勢場的梯度。之後,我們可以利用梯度信息優化外勢場,使其中的電子密度分布逐漸逼近目標分布。這類反向求解自由電子勢函數的問題是密度泛函理論研究中的基本問題[4],也是一個有代表性的哈密頓量反向設計問題。微分編程是解決這類問題簡單而通用的方法。讀者可以參考筆者編寫的演示程序,使用深度學習框架PyTorch解決一維薛丁格方程的逆問題[5]。

圖1 三個微分編程實例 (a)逆薛丁格方程;(b)憤怒的小鳥;(c)圖像識別

圖1(b)示意了「憤怒的小鳥」遊戲的基本設置。我們希望通過調整小紅飛出的初始速度,使得它能夠命中目標。與反覆的試錯相比,一種更加高效的調整方式需要用到和目標的距離對初始速度的導數信息。這要求能夠穿過整個飛行軌跡求導。微分編程可以幫助我們做到這一點。更妙的是,為了對運動方程的積分計算求導,我們只需要沿著時間反向,對另一套運動方程積分[6]。

圖1(c)是一個典型的深度學習任務:圖像識別。我們希望調節神經網絡的參數,使得網絡輸出正確的圖片標籤。基於網絡參數梯度的優化方案是目前最成功的神經網絡訓練方法。關於這點有一個簡單的理解:多元函數的函數值只是一個標量的信息,而梯度是高維的矢量。從信息的角度,越是高維的函數,梯度優化相對於非梯度優化方法的優勢就越明顯。現代的深度學習應用甚至可以訓練含有一千多億個參數的神經網絡。如果不使用梯度的信息,實在難以想像如何處理這麼高維的優化問題。

表1總結了以上三個例子的基本特徵。可以看出,無論是從問題性質、學習對象、計算過程,還是目標函數的角度,這三個問題看起來都毫無關聯。然而,它們其實都是微分編程的特例:我們穿過整個計算過程求導,得到目標函數相對於學習對象的梯度,從而解決問題。

表1 三個微分編程實例的基本特徵

和通常的深度學習問題不同,圖1(a,b)這兩個例子中都包含針對特定物理領域的計算過程(求解薛丁格方程和牛頓方程)。另外,讀者也許注意到了,在這兩個例子中甚至都沒有談到訓練數據。事實上,有不少科學問題都是如此。我們並不能夠、也不需要事先準備大量的訓練數據。對於科學問題,「一個好的模型勝過一千個數據」[7]。而微分編程將模型表達成電腦程式,再利用梯度信息學習其中的未知成分。這背後的關鍵既不是大數據,也不是神經網絡,而是自動微分。

顧名思義,自動微分就是自動化地計算程序的輸出相對於輸入的導數。這項技術的本質是機械地對計算過程使用鏈式法則,從而得到數值精確的導數信息。我們可以用計算圖來形象化地表達程序運行和自動微分的過程。計算圖是一個有向無環圖(directed acyclic graph),其中的節點和箭頭代表程序運行時變量之間的依賴關係。圖2展示了一類典型的計算圖。其中變量 x1 代表程序輸入,x2,x3 是計算中間結果,θ1,θ2 是程序的參數。最後,計算圖末端的節點L 代表程序輸出的標量損失函數。圖1中的三個例子所對應的計算圖都具有這樣的結構[8]。

為了考慮自動微分,我們定義計算圖中某一變量 x 的梯度為其伴隨變量(adjoint variable),記為= ∂L/∂x。自動微分的目的是把計算圖最末端 = 1 的信息反向傳遞迴所有需要計算梯度的節點。這可以使用反向傳播算法實現:中間節點收集下遊節點的伴隨變量信息,根據鏈式法則得到自己的伴隨變量,再往它的上遊節點傳遞這個信息。在反向傳播的每一步,我們只需要計算下遊傳來的伴隨變量與當前計算步驟雅可比矩陣的乘積。遵循這種信息傳遞的方法,計算機可自動地對任意複雜的計算過程微分。理論保證了使用這個辦法求導與程序前向運行的計算複雜度是一樣的。此外,因為梯度的計算過程也可以表達為計算圖,我們甚至可以迭代地使用自動微分方法計算程序的高階導數。

圖2 計算圖表達計算過程中變量之間的依賴關係。自動微分方法回溯計算圖,得到程序輸出相對於所有變量的梯度

自動微分相對於使用數值差分的方法計算梯度有不少優點。首先,它可以保證計算的梯度是數值精確的,而不依賴於額外的差分參數。其次 ,圖2所展示的自動微分方式,僅通過向前和向後遍歷計算圖兩遍,就能高效地計算出所有變量的梯度。這遠比數值差分高效:因為數值差分需要對參數的每一個分量分別做微擾,再反覆地執行前向計算來得到參數在各個分量上的梯度。由於圖2所示的計算方法有一個從後向前回溯計算圖的過程,這被稱為反向模式(reverse mode)的自動微分。實現反向模式的自動微分往往需要付出額外的存儲代價,以記錄前向計算時的中間變量信息。還有一類前向模式(forward mode)的自動微分:通過計算雅可比矩陣和變量梯度的乘積,向前傳遞對於程序輸入或參數的擾動。前向模式求導的方向與程序的運行方向相同,因此不需要付出額外的存儲代價。但是前向模式不如反向模式高效:它的計算複雜度和數值差分是一樣的,因此通常不被用於含有大量參數的優化問題。

值得強調的是,自動微分的對象不見得非要是數學函數。微分編程完全可以應用於包含循環和控制流等指令的一般程序。在程序的運行過程中,取決於不同的輸入數據與分支條件,動態生成的計算圖可以具有完全不同的拓撲結構與深度。一旦確定了計算圖的結構,在自動微分計算的每一步,僅需要關心計算單元局部的信息傳遞。這裡的計算單元可以是基本的四則運算,也可以是一系列基本運算的複合,例如本徵方程、微分方程、自洽方程求解等等。只要我們有辦法指定計算單元的伴隨變量回傳規則,就可不必關心其內部計算的細節,也不需要求導進入計算單元內部。利用這樣的方式控制自動微分的顆粒度,可以保證數值穩定性、提升運行效率、降低反向模式計算的內存消耗。如何針對具體問題設計合適的計算單元,正是微分編程的藝術。模塊化和複合性是深度學習的名片,也是微分編程的關鍵。

微分編程並不是一個從天而降的嶄新方法。科學家早在20世紀50、60年代就開始探索對於電腦程式的自動微分[2,3]。在控制和反向設計等領域,也早已存在與微分編程密切相關的伴隨變量方法。而物理學家熟知的微擾論和線性響應理論,可以說就是穿過物理過程的微分計算。如今,在基於張量運算的自動微分應用——深度學習——成為一門顯學的時代,微分編程獲得了長足的進步和更普遍的關注。它也給物理學中的建模、優化、控制和反向設計問題提供了一個統一而靈活的研究方法。下面我們分別舉例說明。  

建模是指根據觀測數據推斷實際物理過程,從而預測新的情形。建模的目標是能夠舉一反三,亦即從少量的觀測數據出發做出正確的預測。用機器學習的術語來說,就是訓練出具有泛化能力的模型。圖1(c)所示的圖像識別任務就是一個建模問題。然而,不同於常見的圖像識別任務,我們通常難以為待解決的物理問題準備大量準確的訓練數據。僅僅依賴於少量數據建模,容易發生過擬合現象。這就需要精心地設計模型,最好讓它本身就契合待研究的物理過程。微分編程是實現這個目標的一種方式。

蛋白質摺疊是一個公認的難題。從胺基酸序列出發預測蛋白質的結構,中間涉及複雜的物理過程。完全基於第一性原理的計算恐怕是極其困難的。因此,人們寄希望於從已知的序列——蛋白質結構數據中尋找規律,直接預測蛋白質結構。DeepMind的AlphaFold憑著精妙的模型設計與充沛的算力,已在這方面取得了了不起的成果[11]。但這並沒有妨礙人們另闢蹊徑,探索不一樣的技術路線。文獻[9]將胺基酸序列到蛋白質結構的映射建模成一段分子動力學模擬,並從現有的序列——結構數據中學習分子模擬所需的能量函數。利用微分編程技術,可以穿過如圖3(a)所示的整個模擬過程學習模型參數,以預測未知的蛋白質結構。

圖3 微分編程應用於蛋白質摺疊和仿星器設計 (a)從胺基酸序列到蛋白質結構的計算圖;(b)從仿星器的線圈參數到目標函數的計算圖(摘自文獻[9]和[10])

對於量子效應更加顯著的化學分子,預測其結構需要快速準確地求解量子多體問題的基態。Google Research 的李力等[12]根據密度泛函理論建立模型,將 Kohn—Sham 密度泛函計算當作可微分的程序,穿過整個自洽計算過程來學習交換關聯勢。他們僅僅需要非常少的分子基態數據就可以成功地訓練模型,預測一維氫分子隨著原子間距的整條勢能曲線。

以上兩個工作的共同特點是模型中包含了特定的物理計算(分子動力學模擬、Kohn—Sham方程),因此不再需要從零開始學習關於物理問題的基本規律,而只需填補成熟的理論框架中空缺的部分(分子模擬的能量函數、密度泛函理論的交換關聯勢)。這樣的建模方式有利於從小樣本中學習到具有足夠泛化能力的模型。但是由於涉及到比神經網絡複雜得多的計算,這些工作目前還只停留在小規模概念驗證的階段。時間將會告訴我們,基於物理機制的微分編程是否還能帶我們走得更遠。

優化問題在物理學中無處不在。自然界偏愛低能的狀態。更一般地看,甚至可以說最小作用量原理支配了整個物理學。在具體的物理學研究中,可以利用自動微分計算梯度幫助求解優化問題。這是微分編程非常自然的一類應用。

一個有代表性的例子是全變分的Hartree—Fock方法[13]。在傳統的Hartree—Fork計算中,人們通常經驗性地選取一些基函數展開分子的哈密頓量,再通過自洽計算優化這些基函數上的組合係數來近似體系的基態。而在全變分的計算中,可以利用自動微分穿過自洽循環,計算Hartree—Fock能量相對於基函數中經驗參數的導數,從而徹底優化基函數的位置和形狀。因為優化空間變大了,全變分的Hartree—Fock方法可以得到比傳統方法更低的變分能量。

另一個例子是我們與合作者們發展的張量網絡微分編程[14]。張量網絡方法經過多年的發展已經成為經典統計、量子多體物理,乃至機器學習等領域重要的理論和計算工具。然而,針對張量網絡的優化仍是一個長期存在的難點。傳統的優化方法要麼是基於一些近似的方案,要麼依賴於繁瑣的人工解析推導梯度。這限制了張量網絡方法在複雜問題中的廣泛應用。採用微分編程的方法穿過整個張量網絡重正化計算進行優化,不僅大大降低了程序實現的門檻,還更加高效和可靠。例如,作者對於二維無窮大方格子上的反鐵磁海森伯模型得到了最低的變分能量。對於更有挑戰的阻挫磁性問題[15](如籠目格(Kagome)格子上的反鐵磁海森伯模型等)張量網絡微分編程也都給出比之前更低的變分能量。特別的,對於六角格子上的Kitaev模型,通過對張量網絡進行梯度優化可以直接得到物理上定性正確的非磁性基態。這些結果給了我們更強的信心:假以時日,對張量網絡的微分編程可以帶給我們新的物理!

上面舉的兩個例子涉及到對於Hartree—Fock自洽方程或張量網絡重正化這類迭代計算的求導。可以簡單直接地將迭代過程展開,然後利用現成的自動微分工具穿過整個計算過程求導。除此以外,還可以把達到迭代收斂條件視作基本的計算單元,利用隱函數定理得出伴隨變量的回傳規則[16]。後面這種做法更加契合微分編程的思想,可以讓程序更加高效和省內存。

控制問題是指通過調整體系的初始條件和外場等,以實現對於含時物理過程的調控。圖1(b)所示的憤怒的小鳥遊戲就是一個控制問題。通過對計算機模擬的經典物理過程求導,微分編程已經在計算機圖形學、機器人控制、分子模擬等領域彰顯威力。例如,文獻[17]利用可微分的分子模擬手段調整膠體顆粒的相互作用形式,以控制其自組裝過程中的動力學行為。

量子計算中也有類似的控制問題。例如,如何調控微波或光脈衝以實現特定的量子門?從微分編程的視角審視現有的量子控制方法,會發現它們有的使用了不夠高效的前向微分模式,有的依賴於不夠靈活的離散控制方案。利用圖1(b)中我們見過的穿過微分方程求導的方法[6],可以類似地控制含時薛丁格方程的演化[18]。這類微分編程方法不僅高效,還適用於任意的控制手段、限制條件和目標函數,是研究量子最優控制問題的一般方法。另外,在實際的控制問題中,計算機模擬未必能夠完全精確地描述物理過程。因此還需要將基於微分方程的最優控制和上文提到的建模方法相結合[7]。一方面根據實際觀測的結果對物理過程建立準確的模型,另一方面利用學習到的模型做出正確的控制預測。和徹底黑箱化的控制手段(例如無模型的強化學習方案)相比,微分編程可以充分利用關於控制過程的物理認識,因此優化效率要高很多。

反向設計是指通過設計合適的物理結構以實現特定的力場、光場、電磁場等。圖1(a)所示的逆薛丁格問題就是一個反向設計問題。一個類似的例子是光子晶體的反向設計。光子晶體通過人為加工的微結構來調製光的傳播。因為計算機模擬的光學現象可以幾乎完美地在樣品中實現,這是一個特別適合於反向設計的領域。史丹福大學的Momchil Minkov等人[19]通過對麥克斯韋方程組求解過程求導,以優化光子晶體的色散關係和品質因子。他們體會到,自動微分方法將光子晶體領域裡常用的伴隨變量方法拓展到了任意的計算圖,可以輔助設計更加靈活多樣的光學器件。

另一個值得一提的應用是使用自動微分設計仿星器[10]。仿星器是可控核聚變的途徑之一。如圖3(b)所示,為了實現它,需要設計合適的線圈以產生磁場來約束幾億度的等離子體。這樣的極端條件對於設計提出了極高的要求。微分編程的方法可以統一地考慮產生磁約束的物理過程以及各種現實的工程限制。深度學習專家David Duvenaud讀到這篇文章之後,興奮地在Twitter上發文說:「這增強了我對人類文明的信念。當我聽說仿星器時,我就想『希望他用上了自動微分,但我擔心他們其實還沒有。我希望有人告訴他們怎麼做。』 」。誠然,已經充分享受微分編程成果和樂趣的深度學習專家,自然希望它能夠被更廣泛地應用於各個領域,特別是那些與人類命運休戚相關的問題上。

科幻作家Arthur Clarke有一句名言:「任何充分先進的技術看起來都無異於魔法」。技術進步可以解放人們的思想,去探索更有創意的工作。微分編程的技術與應用都還在快速的發展中。例如,微分編程與可逆計算相結合,可以緩解反向模式自動微分的內存瓶頸[30]。此外,微分編程的應用範圍甚至還逐漸擴展到對於離散參數或是結構信息等「不可微分」對象的學習上。因此,本文所介紹的例子還僅僅是微分編程牛刀小試,希望可以讓更多的讀者了解和喜歡上微分編程,讓它在現實問題中大顯身手。


本文中列舉的應用涉及到對多種複雜運算的求導,例如非線性方程求解、快速傅立葉變換、矩陣分解等等。因為這些應用的推動,人們開發了越來越多的微分編程基本單元和工具。這些進展進一步豐富了微分編程的生態。下方表格介紹了一些微分編程工具。此外,www.autodiff.org網站還列舉了更多的微分編程工具。

基於這些編程工具,科學家們打造了針對具體領域的微分編程軟體。這包括張量網絡[20]、分子模擬[21]、量子線路[22—24]、系外行星[25]等。此外還有面向可微分的科學計算工具:ξ-torch[26]和 ADCME[27]等。SciML[28]和dolfimadjoint[29]對基於微分方程的可微分科學計算有豐富的支持。一般來說,如果程序中主要包含的是線性代數與張量計算,可以直接使用現有的深度學習框架,因為這些框架的本質是支持硬體加速的可微分張量計算庫。而如果程序中主要包含的是微分方程求解、自洽迭代等計算,則需要根據具體情況選用專門的工具以充分發揮微分編程的性能。

致 謝  感謝與謝浩、張潘、李偉、謝志遠、廖海軍和向濤的合作與討論。

[1] 其實,也可以說微分編程是深度學習的過去,見文獻2,3 

[2] Nolan J F. Analytical differentiation on a digital computer. Massachusetts Institute of Technology,1953

[3] Wengert R E. Communications of the ACM,1964,7:463

[4] Jensen D S,Wasserman A. International Journal of Quantum Chemistry,2018,118(1):e25425

[5] https://github.com/QuantumBFS/SSSS/blob/master/1_deep_learning/schrodinger.py

[6] Chen R T Q,Rubanova Y,Bettencourt J et al. 2018,arXiv:1806.07366

[7] Rackauckas C et al. 2020,arXiv:2001.04385

[8] 其實逆薛丁格方程和憤怒的小鳥例子中的計算圖更簡單:它們沒有參數節點,是純鏈狀結構的。 

[9] Ingraham J et al. Learning Protein Structure with a Differentiable Simulator. International Conference on Learning Representations,2019

[10] McGreivy N,Hudson S R,Zhu C X. 2020,arXiv:2009.00196

[11] AlphaFold: a solution to a 50-year-old grand challenge in biology. https://deepmind.com/blog/article/alphafold-a-solution-to-a-50-year-old-grand-challenge-in-biology

[12] Li L et al. Phys. Rev. Lett.,2021,126:036401

[13] Tamayo-Mendoza T et al. ACS Cent. Sci.,2018,4(5):559

[14] Liao H J,Liu J G,Wang L et al. Phys. Rev. X,2019,9:031041

[15] Liao H J. Talk at Computational Approaches to Quantum Many-body Problems. ISSP,2019. https://www.issp.u- tokyo.ac.jp/public/caqmp2019/slides/726S_Liao.pdf

[16] Kolter Z,Duvenaud D,Johnson M. NeurIPS 2020 tutorial,Deep Implicit Layers- Neural ODEs,Deep Equilibirum Models,and Beyond. https://implicit-layers-tutorial.org/

[17] Goodrich C P et al. 2020,arXiv: 2010.15175

[18] Güngördü U,Kestner J P. 2020,arXiv:2011.02512

[19] Minkov M et al. ACS Photonics,2020,7( 7):1729

[20] https://github.com/jurajHasik/peps-torch

[21] https://github.com/google/jax-md

[22] Bergholm V et al. 2018,arXiv:1811.04968

[23] Luo X Z,Liu J G,Zhang P et al. Quantum,2020,4:341

[24] Broughton M et al. 2020,arXiv:2003.02989

[25] Morvan M et al. 2020,arXiv:2011.02030

[26] Kasim M F,Vinko S M. 2020,arXiv:2010.01921

[27] Xu K L. Automatic Differentiation Library for Computational and Mathematical Engineering. https://github.com/kailaix/ADCME.jl

[28] https://sciml.ai/

[29] http://www.dolfin-adjoint.org/en/latest/

[30] Liu J G,Zhao T. 2020,arXiv:2003.04617

相關焦點

  • Yann LeCun:深度學習已死,可微分編程萬歲!
    【新智元導讀】LeCun又發表驚人言論,繼昨天參與深度學習論戰、噴機器人Sophia後,今天他在Facebook主頁發文,稱「深度學習已死,可微分編程萬歲!」深度學習真的死了?而可微分編程又是什麼呢?LeCun又語出驚人了,這次直指深度學習——好,深度學習作為一個流行詞,現在時效已過。
  • 天生一對,硬核微分方程與深度學習的「聯姻」之路
    微分方程真的能結合深度神經網絡?真的能用來理解深度神經網絡、推導神經網絡架構、構建深度生成模型?我們將從鄂維南、董彬和陳天琦等研究者的工作中,窺探微分方程與深度學習聯袂前行的路徑。在論壇中,北京大學董彬副教授、林偉研究院和張志華教授等研究者從基礎出發介紹了「數學」眼中的機器學習是什麼樣的。而這些數理基礎,正好是構建可計算、可泛化、可解釋和穩健 ML 系統所必需的。在眾多演講中,我們發現董彬老師介紹的微分方程非常有吸引力,它對於探索新的深度學習架構、構建更高性能的深度學習模型非常有幫助。
  • 最新研究:新的深度學習技術破解偏微分方程的數學難題
    通過解此偏微分方程,可以得知任何時間點的流體運動,並模擬將如何繼續運動或之前是如何運動的。但這些計算非常複雜且計算量很大,所以常常依賴超級計算機來進行數學運算。這就是人工智慧領域可以發揮作用的地方。通過使用深度學習來加快解決的速度,將對科學探索和工程應用產生很大的好處。
  • 華為深度學習框架MindSpore正式開源:自動微分不止計算圖
    今年的華為開發者大會 HDC 2020 上,除了昇騰、鯤鵬等自研晶片硬體平臺之外,最令人期待的就是深度學習框架 MindSpore 的開源了。今天上午,華為 MindSpore 首席科學家陳雷在活動中宣布這款產品正式開源,我們終於可以在開放平臺上一睹它的真面目。
  • 「神經常微分方程」提出者之一:如何利用深度微分方程模型處理連續...
    David Duvenaud 與微分方程的羈絆David Duvenaud 的主要研究方向是連續時間模型、隱變量模型和深度學習。近年來,他的工作和微分方程產生了緊密聯繫。深度學習能夠與微分方程相結合?是的。
  • LeCun最新演講:深度學習大革命來了,可微分編程潛力巨大
    他強調了可微分編程的潛力,稱未來還會出現更多的有關深度學習的變革,比如說更複雜的架構,同時也會出現更多的新理論。Yann LeCun(楊立昆)首先介紹了今天的基於監督學習的AI系統。今天所有的應用,不管是影像、聲音或者是圖像的識別,或者一種語言翻譯到另外一種語言,以及測試等等,都可以利用AI。
  • 「一生二,二生三,三生萬物」對攝影的啟示
    《道生一,一生二,二生三,三生萬物》出自老子的《道德經》第四十二章,是老子的宇宙生成論。好作品是內容與形式的統一。每位攝影師,都有個成長過程,從無到有,從小到大,從不懂到熟悉,也就是所謂的《道生一,一生二,二生三,三生萬物》。
  • 【深度學習會被可微分編程取代?】展望30年後的神經網絡和函數編程
    」的驚人發言下,可微分編程的概念引發了廣泛關注。機器學習著名博主colah(Christopher Olah)在2015年展望30年後的深度學習,提到了可微分編程。他從深度學習三大觀點之一的表示(representation)角度出發,認為深度學習研究的是優化和函數編程之間的聯繫,而可微分編程則是函數編程和優化的自然交集,十分優雅而簡潔,值得進一步研究。目前,深度學習是一個非常成功的工具。
  • DeepMind提出可微分邏輯編程,結合深度學習與符號程序優點
    這種區別對我們來說很有意思,因為這兩類思維對應著兩種不同的機器學習方法:深度學習和符號程序合成(symbolic program synthesis)。   深度學習專注於直觀的感性思維,而符號程序合成專注於概念性的、基於規則的思考。
  • 「深度學習被可微分編程取代?」展望30年後的神經網絡和函數編程
    【新智元導讀】在Yann LeCun「深度學習已死」的驚人發言下,可微分編程的概念引發了廣泛關注。機器學習著名博主colah(Christopher Olah)在2015年展望30年後的深度學習,提到了可微分編程。
  • 圖神經常微分方程,如何讓 GNN 在連續深度域上大顯身手?
    圖神經網絡(GNN)是圖模型對應的深度學習網絡。GNN 通常會在這兩種情況中使用:一是當目標問題結構可以編碼為圖的形式;二是輸入實體間關係的先驗知識本身可以被描述為一張圖。GNN 在許多應用領域都展示了顯著的效果,例如:節點分類[2]、圖分類、預測[3][4]以及生成任務[5]。
  • 偏微分方程 學習筆記
    有一句話叫做「數學是大自然的語言,而偏微分方程則是大自然的語法」,從此足以看出偏微分方程在自然界中的廣泛應用。無論是工程領域,量子領域,還是金融領域等,都有著偏微分方程的影子。偏微分方程理論研究的發展,更是衍生出了一系列新的研究領域,例如金融工程這一學科,開始獨立於傳統的金融學,就得益於偏微分方程應用到了期權定價當中,從而催生出了現代金融理論。
  • 自動微分技術
    幾乎所有機器學習算法在訓練或預測時都歸結為求解最優化問題,如果目標函數可導,在問題變為訓練函數的駐點。通常情況下無法得到駐點的解析解,因此只能採用數值優化算法,如梯度下降法,牛頓法,擬牛頓法。這些數值優化算法都依賴於函數的一階導數值或二階導數值,包括梯度與Hessian矩陣。因此需要解決如何求一個複雜函數的導數問題,本文講述的自動微分技術是解決此問題的一種通用方法。
  • Lecun說的可微分編程是什麼?
    —— 關注獲取更多科技前沿知識 ——隨著曠視、華為開源其深度學習框架以及各種開源的深度學習算法庫的湧現,可以說目前的深度學習庫正在百花齊放
  • 陶大程院士:深度學習「泛化」理論的回顧與前沿
    在報告中,陶教授回顧了深度學習理論的發展,並介紹了最近在深度學習理論研究方面的進展,具體包括,為什麼深層結構優於淺層結構?為什麼隨即梯度下降算法對於理解深度學習的泛化能力非常重要?以及深度學習模型的損失曲面有什麼樣的幾何性質?
  • 用NumPy寫深度模型,用Julia可微分編程寫函數,這是WAIC開發者日
    機器之心報導機器之心編輯部「DeepNumPy 可以寫深度模型,且與經典 NumPy 100% 兼容」,AWS 副總裁 Smola 說,「深度圖學習本領強大,Transformer 也可以分解為圖」。「Julia 內建可微分編程,定義任何函數,他就會自動算出值以及梯度!」
  • 深度| 理解深度學習中的卷積
    以下是正文:卷積現在可能是深度學習中最重要的概念。正是靠著卷積和卷積神經網絡,深度學習才超越了幾乎其他所有的機器學習手段。但卷積為什麼如此強大?它的原理是什麼?在這篇博客中我將講解卷積及相關概念,幫助你徹底地理解它。網絡上已經有不少博客講解卷積和深度學習中的卷積,但我發現它們都一上來就加入了太多不必要的數學細節,艱深晦澀,不利於理解主旨。
  • 王敏捷 - 深度學習框架這十年!
    強調了深度學習框架的重要性與推動因素,介紹了3位ACM人李沐、陳天奇和他一起將各自的技術Parameter Server、CXXNet、Minerva融合併創造了新的深度學習框架MXNet。敏捷學長也指出了在深度學習新時代,隨著可微分編程、圖神經網絡等新領域的出現以及專用晶片的發展,深度學習框架會迎來更多機遇與挑戰。深度學習的浪潮其實到現在僅僅發展了十幾年的時間。
  • 自動微分到底是什麼?這裡有一份自我簡述
    機器之心整理   參與:思、Jamin       一直以來,自動微分都在
  • 《自然》雜誌:「可微分神經計算機」問世
    英國《自然》雜誌12日發表了一項人工智慧重要成果,描述了一種集神經網絡與計算機優點於一身的混合型學習機器,既能像神經網絡那樣學習,又能像計算機那樣處理複雜數據