機器學習能否破解混沌?| PRL論文詳解
來自專欄人工智慧學習筆記111 人贊了文章
1. 導語
前不久,Quanta Magazine 報道了馬里蘭大學的研究者利用機器學習解決混沌系統的預測問題(參見集智俱樂部的譯文下一秒火焰如何燃燒?機器學習成功預測混沌)。其中的一篇研究成果,題為《Model-Free Prediction of Large Spatiotemporally Chaotic Systems from Data: A Reservoir Computing Approach》,發表在了物理學頂級期刊 Physical Review Letters 上,下面是對論文的解讀。
拉普拉斯曾斷言:只要知道宇宙中每個原子確切的位置和動量,便能根據牛頓定律預測任何時刻的情況。這種思想被稱為「決定論」。然而,20 世紀的兩大發現徹底粉碎了這一夢想。海森堡測不準原理指出:一個粒子的位置和動量不可能同時精確確定。而混沌理論則指出了混沌系統的初值敏感性,也就是熟知的「蝴蝶效應」:初值的微小變化,會導致整個系統的長期的巨大的連鎖反應。
這篇論文想解決的問題就是:如何預測大型時空混沌系統的演化?對一個動力學系統建立公式化的描述是困難的,但獲得該系統長時間、高精度的觀測數據卻是容易的。我們自然希望機器能夠從數據中學習到系統的演化規律,方便我們做預測。
一種機器學習預測演算法
2. 方法:Reservoir Computing儲層計算
這篇論文中用到的方法稱為 Reservoir Computing,Goodfellow 的《深度學習》中文版一書中將其翻譯成「儲層計算」。這裡簡單介紹一下 Reservoir Computing 的歷史。
循環神經網路的訓練是困難的,存在著計算量大、收斂慢、梯度消失等難點。為了克服上述難點,一種解決辦法是:可以只初始化隱藏層而不去訓練它,只去學習隱藏層到輸出的權重,這樣,問題就可以簡化成一個回歸問題。
基於上述想法,Jaeger 和 Maass 分別獨立提出了 Echo State Network(回聲狀態網路)和 Liquid State Machine(流體狀態機)。後來,這兩種方法被統稱為 Reservoir Computing。
圖片來源:
https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.120.024102
下面介紹 Reservoir Computing。先介紹接下來需要用到的符號:對於時間序列 u,輸入為 u 在 t 時刻的 Din 維向量 u(t),輸出是 Dout 維向量 v(t),隱藏 層狀態用 Dr 維向量 r(t) 表示。
輸入為 u(t) 時,首先可以得到下一時刻(t + ?t 時刻)隱藏層的狀態:
其中,Win 是一個 Dr × Din 維矩陣(矩陣元素從 [?σ, σ] 的均勻分布抽樣),A 是隱藏層(reservoir)的鄰接矩陣(Dr×Dr 維),且滿足回聲狀態性質(簡單地說, 就是網路當前時刻的狀態 r(t) 由網路從初始到當前的輸入唯一決定;數學上,滿足矩陣 A 的譜半徑 ρ < 1。關於回聲狀態性質的詳細說明,可參考 The「echo state」approach to analysing and training recurrent neural networks –with an Erratum note)。
t + ?t 時刻隱藏層的預測輸出為:
P1、P2 都是 Dout × Dr 維矩陣。由於 t + ?t 時刻的真實值是時間序列中的 u(t + ?t),因此訓練的目標是找到合適的 P1、P2,使得 v(t + ?t) 儘可能接近 u(t + ?t) 。
在訓練階段,將 ?T ≤ t ≤ 0 時間的 u(t) 依次輸入網路,則損失函數可寫作:
等號右邊第一項為正常的損失函數項,第二項為正則項。
在算出 P1、P2 之後,就可以做預測了。在預測階段,每一時刻的輸入都是當前時刻的輸出值,即 u(t) = v(t)。但由於混沌系統的指數分離特性(exponential separation of trajectories),很快 v(t) 就會徹底偏離真實的 u(t)。因此,當預測某一未來時刻 θ > 0 的狀態,需要利用 θ 之前的一小段時間 (θ ? ε ≤ t ≤ θ) 根據公式 (1) 重新初始化 r(θ),再去做預測。
3. 小試牛刀:KS 方程
利用上述方法,文章作者在一個叫做 Kuramoto-Sivashinsky(KS) 方程的時空混沌系統上小試牛刀。KS 方程為:
標準的 KS 方程無最後的空間不均項。方程滿足周期邊界條件 y(x, t) = y(x + L, t),方程的解由系統大小 L 和初始條件 y(x, 0) 決定。關於 KS 方程的詳細介紹,可參考
Kuramoto-Sivashinsky: an investigation of spatiotemporal 「turbulence」。
在一個 L = 22,格點數(輸入向量維度)Q = 64,μ = 0 的系統上的預測結果如圖(3)所示。(a)是真實數據,(b)是預測值,(c)是兩者的誤差。可以看到,在 6 個李雅普諾夫時間內,模型的預測與實際數據符合的相當好。
圖片來源:
https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.120.024102
4. 如何處理大型時空混沌系統?多個 reservoir 並行計算
對於上面 L = 22 的系統,隱藏層(reservoir)的大小已經達到了 Dr = 5000。對於更大空間尺度的系統而言,隱藏層的大小會急劇增加,此時再利用單個 reservoir 進行預測有點不切實際。這篇論文為的亮點便在於:提出了多個reservoir 並行處理的框架。
具體地,我們依然考慮空間格點數(輸入向量維度)為 Q,但是將輸入向 量 u(t) 按照維數平均分成 g 組,每組的維數是 q。
每組向量記為:
這樣就相當於將原來的高維向量平均切分成 g 個低維向量。一個簡單的並行處理的想法是:設置 g 個 reservoir,第 i 個 reservoir 的輸入為:
這樣可以實現 g 個 reservoir 的並行處理。然而,這樣做只是單純把一個大的混沌系統看做 g 個彼此獨立的子系統。論文中的做法是:同樣是設置 g 個 reservoir,輸入不再是 gi(t),而是 gi(t) 加上和它左右相鄰的 l 個點的值,即輸入是一個q + 2l 維向量:
這樣做的目的是為了儘可能利用到混沌系統的局部相互作用特性。
我們寫出第 i 個 reservoir 的所有方程:
下面是 L = 200 的 KS 方程的預測結果。這裡的參數設置為 Dr = 5000,T = 70000,ρ = 0.6,σ = 1.0,l = 6,並將需要預測的未來平均分成 K = 30 個時間間隔 θk ≤ t ≤ θk + τ ,τ = 1000 時間步。
預測階段,在對每個時間間隔 θk ≤t≤θk +τ 的預測開始前,都需要初始化 ri =0,再利用 θk ?ε≤t≤θk,ε = 10 時間步的數據,根據 式(7) 更新 ri 。預測結果如 圖(5) 所示,(a)是真實數據,(b)是預測值,(c)是兩者的誤差,(d)是將 t = 0 時的預測值 y(x, 0) 作為初始條件的數值解和真實數據的誤差。可以看到,圖(c) 的結果只比 圖(d) 差一點點,說明 reservoir computing 的方法能夠很好的學到系統的真實動力學,其效果可以媲美數值方法。
圖片來源:
https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.120.024102
5. 展望
一方面,這篇論文向我們展示了機器學習預測大型時空混沌系統的強大能力;另一方面,為何 Reservoir Computing 的效果如此之好,它的內部學習機制是什麼,仍有待研究。
此外,通過前面的講解不難發現,Reservoir Computing 本質上講依然是傳統的機器學習方法。那麼,當下前沿的深度學習技術能否處理類似的混沌預測也是一個值得研究的問題。
作者:劉晶
編輯:小風論文地址:https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.120.024102
推薦閱讀
下一秒火焰如何燃燒?機器學習成功預測混沌
加入集智,一起複雜!集智俱樂部團隊招新啦!
集智QQ群|292641157
商務合作|zhangqian@swarma.org投稿轉載|wangting@swarma.org◆ ◆ ◆
搜索公眾號:集智俱樂部
加入「沒有圍牆的研究所」
http://campus.swarma.org?src=2 (二維碼自動識別)
推薦閱讀:
※圖解機器學習:如何用learning curve動態識別模型的病症和選擇合適改進措施
※動手實踐神經網路1: 單個神經元
※人人都懂EM演算法
※AI優質乾貨 | 2018第二彈 | 03.05-03.10 | Github項目、課程、數據、報告……
TAG:機器學習 | 神經網路 | 深度學習DeepLearning |