對于那些擅長于用微分方程、概率論解決問題的數學家們來說,素有“黑盒子”之稱機器學習往往是要被踢到鄙視鏈底端的。
但是,在與各行各業中,絕大多數公司(小到初創公司,大到國際巨鱷)都在尋求運用機器學習的方法。隨著企業不斷地將機器學習融入其文化與組織中,這事也變得越來越普遍。
有意思的是,在本科和碩士教育中,數學專業內部居然也都彌漫起了機器學習的熱潮。舉例說,牛津大學的“深度學習理論”碩士課程在其設立的第一年就被超額報名。
更驚人的是,很多數學博士生打算將機器學習嵌入到它們的研究課題中,從而形成將“傳統”(ODE和PDE)和“現代”(深度學習)相結合和新型混合模型。
所以,機器學習是否會最終取代數學建模?
如果數學模型在科研領域無法突破,我們最終是否會使用機器學習的方法來獲得建模上的進展呢?
當然不是!我認為,機器學習和數學模型應當是互補的關系——充分結合二者的力量一定會產生有趣的新模型。
為了說明我的觀點,我構想了一個例子,讓我們開啟一趟科技文明之旅!在這個虛構的文明中,機器學習相當發達,然而這個文明的數學卻糟糕得很,尤其是還不會微積分。
一個虛構的文明
假設我們正處于一個微積分落后但深度學習發達的科技文明中。
和大多數文明一樣,它們都致力于用炮彈攻擊自己的對手。兩位來自同一陣營的科學家在對他們剛發行的大炮的攻擊范圍進行建模。
科學家可以控制下列因素:
大炮里裝載的彈藥總量(例如炮彈的發射速度)
大炮的角度
科學家可以測量下列內容:
彈丸從大炮中射出去的直線距離。
*假設地面完全水平。
從數學的角度上,他們希望找到一個模型/函數F,這個函數能基于所有速度v和角度θ進行預測。
s=F(v,θ)
使得這個結果接近于真實的行進距離。
由于沒有炮彈在空中移動的相關知識儲備,科學家們采用了數據驅動的方式。
數據采集
科學家們用一天的時間來以各種火力及角度進行大炮射擊。每次他們點火發射,他們都會測量發射點和炮彈終點間的距離。但是,他們的測量結果并不完全精確,每次測量都會引入一些誤差。
在那一天的時間中,他們打算發射1000次炮彈,產生1000個三元數組(vi,θi,si),其中θi是弧度制的。
這些數據點分布如下圖所示:
不用模型的方法
解決問題的最簡單方法就是不使用模型,因為數據就能化身為模型!在這種方法中,他們選用那些最接近于他們想預測的情景的歷史數據,使用這些歷史數據當作預測模型(即KNN模型)。例如:
這種純數據驅動的方式有著明顯的缺點。如果他們獲得的數據不能覆蓋所有的輸入可能性,或者數據過于稀疏,這種方式就會產生問題。在這個例子中,如果要預測速度大于10的射擊距離,沒有模型的話他們就無法進行精準預測。
基于線性模型的方法
從數據看來,他們期望的函數是非線性的,而且線性模型不可能將結果預測得很準確。但是,線性模型并非完全沒有價值,在很多應用場景下它是一種基礎模型,所以這兩位科學家決定先用個線性模型試試。
線性模型的數學表達如下:
在表達式中,wi∈R是權重,b∈R是偏移項,這些值都會被確定下來。我們用PyTorch實現線性模型,并使用隨機隨機梯度下降法(當然還有其他更好更簡單的方法)尋找模型參數。
正如預期的那樣,建模結果非常糟糕。
“黑盒”登場——深度神經網絡
科學家們在機器學習研究和計算框架設計方面投入了大量資金,因此他們在面對問題時喜歡以深度神經網絡的方式構想解決方案。說白了就是,他們喜歡使用多層感知器系統,它包含有多個線性層,層與層之間靠非線性激活函數相連。模型可以按如下形式描述:
我們用Adam optimizer對模型進行訓練,結果如下:
對于在這方面沒有經驗的人,在看到神經網絡的預測結果的時候,基本都會感到驚嘆!至今為止,這也是深度學習流傳盛廣的主要原因——它不但有用,且效果顯著。只是我們并不知道為什么。
用數學語言刻畫“準線性方法”
在上述的黑匣子模型中,科學家們有一個能夠準確預測大炮射擊距離的模型,但顧名思義,他們對模型的形式沒有直觀理解。科學家們熱衷于在使用機器學習方法的同時恢復這種直觀理解,并重新使用線性模型。
我們高中的時候都學過三角函數,科學家們認為這個問題可能會涉及一些三角函數與速度的乘積。于是他們把模型寫成非線性基函數的線性組合:
把非線性嵌入到線性模型之后,模型可以像線性模型一樣計算參數。優化后,模型為:
在這種情況下,除了sin(2θ)的參數,優化將其他所有參數歸零。
將F與數據進行比較,他們發現模型非常具有預測性。不僅如此,模型的公式短小精練!當然,他們能選中三角函數也是非常“幸運”了。
數學方法——無數據模型
很多年后,微積分終于被發現了!于是,兩位老科學家開始重新審視這個問題。
1.假設方程
低速炮彈的物理模型非常簡單。炮彈有垂直向下的重力加速度,恒定為-g。由于在x方向上沒有作用在射彈上的力,它始終保持其初始速度。該模型可以寫成二階微分方程組:
初值條件為:
后兩個方程式描述了炮彈最初發射時的速度的水平和垂直分量。這些方程描述了系統,但如何解決這些問題呢?
2.數值積分
通常在數學中,寫下微分方程是一個簡單的部分,大部分時間都花在試圖解決它們上面!
他們寫出了該問題的一階常微分方程(ODE):
初值條件為:
易證這兩個方程相同。
積分在數學中無處不在,有多種方法來進行數值積分。最簡單和最直觀的方法是歐拉方程,它從初始點開始,并在該點的梯度方向上走一小步,即:
使用數值積分,可以準確地預測炮彈的整個軌跡。
著陸點的位置是x(t*),它們可以從預測的軌跡中提取。
相比于機器學習模型,這一數學模型的一個明顯優勢是,我們可以很輕易地解決更復雜的問題——例如不平坦的地面,或者從塔上發射炮彈(y(0)≠0)
3.直接求解
最后,兩位科學家使用了積分來求解,事實證明問題并非如此困難。x和y的方程可以獨立求解。通過求解每個方程(并應用初始條件)給出。
他們以x和y坐標作為時間的函數。什么時候射彈擊中了地面呢?當y=0時!即:
求解t*=0(大炮射擊之前),并求解t*=2vsinθg(當它擊中地面時)。將第二個t*值插入到x的等式中,得到最終的行進距離,等于:
那么他們的最終預測模型就是
他們發現這與準線性方法吻合。實際上,準線性方法也給出了他們對引力常數的估計。
神經常微分方程方法-學習動力系統
最后,假設他們不知道物理模型,只有一個常微分方程系統
其中f1和f2是未知的(為簡潔起見省略虛擬變量)。
NIPS最近發表的一篇論文(https://papers.nips.cc/paper/7892-neural-ordinary-differential-equations)提出了一種學習常微分系統的方法。簡而言之,它通過用神經網絡替換f1,f2并數值積分神經網絡來獲得軌跡來實現這一點。學習可以正常進行,因為數值積分方法具有明確定義的梯度。在他們的例子中,如果科學家可以隨時間跟蹤炮彈的位置,即數據(xi,yi,ti),那么他們原則上可以恢復物理模型并了解物體隨著時間的推移而下降加速。這是一個令人興奮的深度學習新應用,它開啟了學習系統行為的可能性,而不是簡單地學習它們的輸出。
我們學到了什么?
我們生活在一個幸運的年代,可以通過數百種不同的方式解決一個簡單的問題。此外,在上述“黑盒”方法中,我們也可以將神經網絡換成其他模型,并用上其他的優化方法。這突出了機器學習在數學中的作用——它是我們用以理解世界和做出預測的許多強大工具之一。
數學家對數學模型是可解釋的,是直觀的,而深度學習模型正好相反。在我舉的例子中,構建數學模型并用機器學習填補空白(比如估測引力常數)可以帶來更好的準確性和更快的計算。
如果我們能夠盡可能多地融入物理理論,并利用機器學習來填補我們的知識空白,那么我們就有機會解決更復雜的問題。通常機器學習用于參數擬合,但在混合模型中,我們也可以用它來預測更復雜系統中的函數組成部分。
我相信,隨著理論和技術的進步,我們將在未來看到許多混合模型。因此,數學建模和機器學習建模也應當是“合作關系”,而非“競爭關系”。
-
數學模型
+關注
關注
0文章
83瀏覽量
11988 -
機器學習
+關注
關注
66文章
8441瀏覽量
133094
原文標題:機器學習會取代數學建模嗎?讓我們假設一個微積分落后但深度學習發達的文明社會……
文章出處:【微信號:smartman163,微信公眾號:網易智能】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論