用人工神經網路求解微分方程
本文將介紹如何用人工神經網路(ANN)求解偏微分方程,並且Python以及Matlab的代碼已經放在Github上。這篇文章省略了ANN的原理介紹,這裡是一篇介紹ANN的文檔。
求解偏微分方程的原理
我們考慮具有這類形式的偏微分方程(PDE):
根據文獻1 , 我們可以得知這個PDE的探索解(Trial Solution)是
其中 代表了ANN生成的隨機結構,具體的權重將在訓練中確定。
而我們的目的是使以下的式子值最小,也就是一般而言的損失函數:
求解偏微分方程的例子
考慮拉普拉斯方程:
並且具有以下的邊界條件:
代入前一小節的探索解中,可得
根據拉普拉斯方程的相關知識背景,我們得到其解析解為:
用Matlab或Python繪製函數可得:
使用隨機函數生成ANN的權重,我們可以得到:
而經過多次訓練,在參數設定在一定範圍內的時候,我們可以得到接近於解析解的答案:
總結
基本上就是翻譯了參考文獻的內容??:
- ANN算出來的解可微,其形式在後續計算中較容易被使用。
- 本方法需要的參數數量遠小於其他方法,因此本方法空間複雜度很小。
- 常微分方程,偏微分方程皆可用本法計算。
- 本方法適用於並行計算,可以通過優化大幅減少運算時間。
- 理論上,卷積神經網路也可以被用來計算。
參考文獻:
1) Lagaris, Isaac E., Aristidis Likas, and Dimitrios I. Fotiadis. "Artificial neural networks for solving ordinary and partial differential equations." IEEE Transactions on Neural Networks 9.5 (1998): 987-1000.
2) Neural networks for solving differential equations – Becoming Human: Artificial Intelligence Magazine. Retrieved January 17, 2018
推薦閱讀: