摘要:分子動力學仿真模擬的重點就在於如何建立模型描述分子間的相互作用。
本文分享自華為雲社區《AI建模-分子動力學仿真》,作者: 木子_007 。
一、背景

分子動力學的仿真模擬廣泛應用於醫葯、化學、生物、材料等領域,研究模擬物質的微觀結構,可以幫助我們理解物質的宏觀性質,甚至對物質的宏觀性質做出預測,物質的微觀結構是由原子間的相互作用決定的,所以分子動力學仿真模擬的重點就在於如何建立模型描述分子間的相互作用。

傳統的建模手段有兩種:DFT(第一性原理)和經驗力場。
DFT
DFT又稱為第一性原理,具體建模和計算的過程非常復雜,需要很高深的數學和領域知識,了解一下即可

DFT構建的模型,可以看做是黑盒,根據輸入,可以計算出下一幀體系內原子的狀態
DFT的計算結果是比較准確的,但是因為計算代價太高,導致計算效率太低,只能夠模擬幾百個原子的物理體系。
經驗力場
經驗力場,是人們在研究某個物理體系時,根據其物理特性和一些實驗結果,再加上一些處理經驗,所構建的一個高階函數,如研究惰性氣體時的勢能函數。

這種構建方式計算效率很高,但是其建模方式本身就決定了其精度不高。所以傳統的分子動力學仿真存在一個困境,即無法效率和精度兼顧,而隨着深度學習的普及使這種困境有了解決的思路。接下來就分子動力學仿真框架DeepMD的建模思想,做一個簡單的介紹。

二、AI建模(water H2O 為例)
微觀粒子上的相互作用

本質上是關於原子空間坐標的一個高維函數,如果能夠計算出這個函數,那么在進行仿真的時候,就可以性能與精度兼顧了,傳統數學工具對高維函數缺乏有效手段,而AI深度學習,本質上就是一個數學工具。為高維函數的逼近提供了有力工具,接下來會介紹一下建模的思想和過程。首先理清楚我們的目的和已具備的條件:
目的:構建一個深度學習網絡,最終可以訓練計算出一個高維函數(訓練出一個模型)來表示這個物理體系,最終計算出來的結果,近似於第一性原理的計算結果。
模型:

訓練及測試數據:
由第一性原理計算出來的體系內不同幀的原子狀態,包括,原子坐標coord,空間尺度坐標box,體系的能量energy,體系中每個原子受到的力force
訓練:
訓練L2級別的loss

2.1 數據處理
通過上面的分析,我們要建立的這個模型,輸入就是體系內原子的坐標,輸出就是體系的勢能和原子受到的力,但是,有一點需要特別注意,對於一個體系如水分子,如果一個水分子發生了旋轉,平移或者它的兩個氫原子發生交換,那么能量是不變的。

這種變化我們從直覺上理解是正常的,但是從模型的角度,這就要求,在坐標發生變化之后,輸出還能保持與變化前一致,這對模型來說,往往是不可能的,所以在真正進入到深度學習DNN網絡之前,需要對原始的原子三維坐標,做一些處理,使其能夠滿足空間中的平移,旋轉和交換不變性。
2.1.1 平移不變性
要保證平移不變性,我們可以把空間中的原子左邊轉為原子間的相對距離,創建一個距離矩陣Ri。

根據原子中心框架,對距離矩陣做平滑處理,將超過截斷半徑外的原子的影響置為0。


2.1.2 交換和旋轉不變性
要滿足空間中的交換和旋轉不變性,需要對距離矩陣做一些變化,這里介紹一下結論
創建矩陣G,將環境描述符D表示為如下的形式,可以滿足空間的交換不變。

同時,因為對距離矩陣做旋轉變化后,仍然是其本身,所以也滿足了旋轉不變。

這樣,空間的坐標就轉為了具備實際物理意義的環境描述D,就可以參與到接下來的DNN網絡訓練中。
2.2 整網訓練
到這里,訓練網絡的構建已經完成,如下圖所示

深度勢能的構造如下:

環境描述

原子的受力根據其平滑勢能計算,得到如下,實際上是對原子勢能面計算梯度得到。

損失函數定義為

那么這個建模就完成了,之后就是具體的實現了。
三、小結
以上只是分享了一些DeepMD-kit框架的構建思想,分子動力學仿真領域還有很多框架和思想值得學習挖掘,比如為了增強模型對物理場景分布的覆蓋,需要在訓練的過程中隨機采樣,生成數據讓模型做出預測,預測的不准,就把數據加入訓練集繼續訓練,這個操作是包裝了DeepMD-kit的另外一個框架DeepGen做的內容,以后有時間再總結一下其中的一些設計思想和算法優化的內容。
