如何將全波形反演FWI與人工智慧AI的神經網路做對比?
目錄
全波形反演可以說現在被地球物理界的小夥伴做爛了,一提到全波形反演大家先到的就是高精度...各種優點,可是他卻有著與人工智慧的同樣的缺陷,那就是計算量的限制。但是在當下,隨著計算技術的不但進步,雖然有人說摩爾定律已死,但是現在各種超級計算機橫空出世,我們國家的曙光、天河等位居世界前列,相信,為了得到高精度的結果,這點計算花費是值得的,今天就來簡單對地球物理的全波形反演(Full Waveform Inversion)和神經網路(Neural Network)進行簡單的對比。
1.全波形反演
總所周知,全波形反演其實就是數學方法的堆疊(其實大部分的科學研究最終都要歸功於數學,但是為什麼沒有諾貝爾數學獎呢?這個故事留給大家自己搜尋)。全波形反演的流程其實非常簡單:建立資料和模型的非線性關係是要點。假如資料為D,模型為M,他們之間的關係是A,那麼簡單的關係就是:
A說白了就是人類一直研究的自然規律(突然想起一句話:世間萬物都是由分子構成“來自《大灌籃》”),地球物理學的常用規律是動力學和運動學理論,前者是波動理論,後者是旅行時理論,同時,當引數出現誤差時候,方程就轉變成了:
這裡的就是資料誤差,其實就是波形反演中觀測資料與模擬資料之間的誤差,就是模型誤差,就是我們需要更新的模型引數更新量。通常研究過程中加入修正量,叫做bias(偏置):
這個變數的引入通常會產生一定的修正作用,我們常說到的井約束等資訊等。
人類法則是人類從自然法則中獲取的一個無線接近於自然法則的定律。
2.神經網路
神經網路的原理大同小異,但是他的區別在於“人類法則”未知,需要通過大量的資料進行訓練才能獲取的一種規律。
將其寫成神經網路的通用符形式為:
其中為權重,為偏置。
如何建立這個“人類法則”的初始狀態呢?這裡就引入了一個叫做sigmoid函式和softplus函式的隨機變數,用這個隨機變數建立初始權重和偏置。
給出一個GitHub開源專案中的sigmoid函式的例子,專案名稱mnist-neural-network,請大家自行搜尋:
/*返回一個 正態分佈的隨機數*/
double
random_normal_distribution (void)
{
return sqrt (-2.0 * log (drand ())) * cos (2.0 * M_PI * drand ());
}
/*返回一個此範圍內的偽隨機數*/
int
random_integer (int min, int max)
{
return min + rand () / (RAND_MAX / (max - min + 1) + 1);
}
/*sigmoid函式*/
double
sigmoid_to_number (double number)
{
/*
a sigmoid = 0 i=-9999...99
b = 0.5 i=0
c = 1 i=9999...99
*/
/* exp (double) returns a "double" value, so casting is not required */
return 1.0 / (1.0 + exp (-number));
}
/*sigmoid的導數*/
double
sigmoid_prime_to_number (double number)
{
/* Avoid to call same function 2 times */
double sigmoid_number = sigmoid_to_number (number);
return sigmoid_number * (1.0 - sigmoid_number);
}
建立完整的初始狀態後,就可以根據最速下降法或者其他一些數學方法計算梯度(權重)和修正量(偏置)了,這裡需要一系列的神經網路劃分,不同的神經網路對於訓練結果也會有不同的結果。給出一個簡單的神經網路例項:
這個例子是手寫數字識別的網路劃分,每個手寫字型有28*28=784個畫素,最終的輸出只有0~9數字。
相關文章
- 讀人工智慧全傳09神經網路人工智慧神經網路
- 人工智慧 (11) 神經網路人工智慧神經網路
- 如何應對訓練的神經網路不工作?神經網路
- 全卷積神經網路FCN卷積神經網路
- 神經網路是如何工作的?神經網路
- 【神經網路篇】--RNN遞迴神經網路初始與詳解神經網路RNN遞迴
- AI之(神經網路+深度學習)AI神經網路深度學習
- 與神經網路相比,你對P圖一無所知神經網路
- 人工智慧原理期末速成——消解反演與反演求解人工智慧
- python對BP神經網路實現Python神經網路
- 量子神經網路:人工智慧研究的新正規化神經網路人工智慧
- 人工智慧的神經網路到底是什麼?人工智慧神經網路
- 語言模型與神經網路模型神經網路
- 深度神經網路的壓縮與加速神經網路
- 神經網路:numpy實現神經網路框架神經網路框架
- 圖神經網路版本的Kolmogorov Arnold(KAN)程式碼實現和效果對比神經網路Go
- 如何優化深度神經網路?優化神經網路
- 如何入手卷積神經網路卷積神經網路
- 神經網路神經網路
- 全連線神經網路學習筆記神經網路筆記
- 全連線神經網路的原理及Python實現神經網路Python
- 人工智慧教程 - 1.1.1 什麼是神經網路人工智慧神經網路
- 人工智慧中神經網路發展緩慢的原因人工智慧神經網路
- 【深度學習篇】--神經網路中的卷積神經網路深度學習神經網路卷積
- 再聊神經網路與深度學習神經網路深度學習
- 深度學習與圖神經網路深度學習神經網路
- 一個故事看懂AI神經網路工作原理AI神經網路
- 網際網路揭祕:AI 的神話與現實AI
- 如何用Python和深度神經網路鎖定即將流失的客戶?Python神經網路
- 使用圖神經網路做基於會話的推薦神經網路會話
- 如何除錯神經網路引數除錯神經網路
- LSTM神經網路神經網路
- 8、神經網路神經網路
- 聊聊從腦神經到神經網路神經網路
- 圖神經網路GNN 庫,液體神經網路LNN/LFM神經網路GNN
- AI神經網路可復原古希臘文字AI神經網路
- 吳恩達《神經網路與深度學習》課程筆記(4)– 淺層神經網路吳恩達神經網路深度學習筆記
- 吳恩達《神經網路與深度學習》課程筆記(5)– 深層神經網路吳恩達神經網路深度學習筆記