• 沒有找到結果。

On Hidden Nodes for Neural Nets

2 Neural Networks and Learning

2.3 Multilayer Perceptron with One Hidden Node

2.3.2 On Hidden Nodes for Neural Nets

2.4 Multilayer HONN with One Hidden Layer

兩層的 higher order neural network (HONN) 是將原始的輸入向量擴展至高 階項。圖 2.4 是一個兩層的 HONN,而其網路權重調整的方式與上述的兩層感 知器網路相同。

圖 2.4. 兩層的 HONN。

2.5 Training Process

實驗中,網路的輸入是視導電率 (apparent conductivity, Ca),即視電阻率 (apparent resistivity, Ra) 的倒數,而網路的期望輸出是地層真實導電率 (true formation conductivity, Ct)。圖 2.5 為這些性質的轉換圖。

圖 2.5. 視電阻率、視導電率、真實電阻率與真實導電率之間的轉換圖。

我們一共有三十一組模擬的井測資料,拿第一組到第二十五組的模擬資料 來做網路的訓練,第二十六組到第三十一組來做測試。每一組模擬的資料的油 井深度是從 490 英呎到 589.5 英呎,而取樣區間 (sample interval) 是 0.5 英呎。

所以每一組模擬的井測資料一共有兩百個模擬的視導電率與其對應的地層真 實導電率。

我們將 200 個模擬的視導電率分別分成 1 個、2 個、4 個、5 個、10 個、

20 個、40 個、50 個、100 個、200 個訓練樣本,接著分別將這些訓練樣本正規 化 (normalized) 在 0.1 到 0.9 之間,再將這些訓練樣本當作單層感知器網路與 具有高階特徵向量的高階類神經網路 (HONN) 的輸入。接著再比較每一種網 路在訓練過程的平均絕對值誤差 (mean absolute error, MAE),找出最適合的網 路架構。平均絕對值誤差定義如下:

1 1

MAE= 1

P K

pk pk

p k

d o

PK

∑∑

= = − (2.17)

P 是訓練樣本的總數目,K 是輸出節點的總數目,d 與pk o 分別代表第 ppk 個樣本與第 k 個輸出節點的期望輸出值與實際輸出值。網路的執行步驟設定為 20,000,學習速率為 0.6,動量係數為 0.4,而誤差值的門檻 (error threshold) 則 設定為 0.002。訓練完之後,再分別對第二十六組至第三十一組模擬資料去做 測試,每一個測試的資料都可以得到一組由類神經網路得出來的輸出值。最後 再將這些輸出值經過還原數值 (re-scaled) 的步驟,即可以得到由類神經網路反 推出來的一組真實地層導電率 (true formation conductivity, Ct)。

3. Experimental Results on Well Log Inversion with Neural Networks

感知器網路的實驗分成四個部分,第一部分為利用模擬的井測資料對單層 的感知器網路做訓練。第二部分為利用模擬的井測資料對單層的 HONN 做訓 練。藉由第一部分及第二部分的實驗,找出最適合的單層網路架構。第三部分 為利用模擬的井測資料對兩層的感知器網路做訓練,第四部分為利用模擬的井 測資料對兩層的 HONN 做訓練。藉由第三部分及第四部分的實驗,找出最適合 的兩層 HONN 架構。這篇論文中,我們使用的電腦 CPU 為 Intel Pentium IV 3.0 GHz,作業系統為 Windows Vista。

3.1 Results of Single Layer Neural Networks

在這個實驗中,我們使用了單層的感知器網路來執行模擬的井測資料反 推。單層感知器的網路架構如圖 3.1 所示。網路的輸入節點個數 I 分別為 1、2、

4、5、10、20、40、50、100、與 200。圖 3.2 (a) -(e)為二十五組訓練資料其中 的五個資料,而訓練的結果則記錄在表 3.1 中,圖 3.3 為網路大小為 10-10 時的 訓練過程,圖 3.4 為網路大小為 50-50 時的訓練過程。

圖 3.1. 單層感知器。

(a) 第一組訓練資料。

(b) 第七組訓練資料。

(c) 第十三組訓練資料。

(d) 第十九組訓練資料。

(e) 第二十五組訓練資料。

圖 3.3. 網路為 10-10 時的訓練過程。

圖 3.4. 網路為 50-50 時的訓練過程。

當所有的網路訓練完之後,我們分別將第二十六組到第三十一組模擬資料 當作網路的測試資料。由於單層感知器網路中以 10-10 訓練完可得到最小的絕 對值誤差,我們利用 10-10 網路來進行模擬資料的測試。在這裡我們秀出第二 十六組及第三十一組模擬的井測資料利用 10-10 網路做反推的結果。圖 3.5 為 第二十六組井測資料,圖 3.6 則為第三十一組井測資料。圖 3.7 為第二十六組 井測資料反推後的結果,其反推出來的 Ct 與預期的 Ct 之間的平均絕對值誤差 為 0.021042。圖 3.8 為第三十一組井測資料反推後的結果,其反推出來的 Ct 與預期的 Ct 之間的平均絕對值誤差為 0.015689。

圖 3.5. 第二十六組井測資料的 Ca 與 Ct。

圖 3.6. 第三十一組井測資料的 Ca 與 Ct。

圖 3.7. 第二十六組井測資料利用 10-10 網路反推的 Ct 與期望的 Ct。

圖 3.8. 第三十一組井測資料利用 10-10 網路反推的 Ct 與期望的 Ct。

3.2 Results of Single Layer HONN

表 3.3. 每一種單層三階高階類神經網路的實驗結果。

當所有的網路訓練完之後,我們分別將第二十六組到第三十一組模擬資料 當作網路的測試資料。由於高階單層感知器網路中以 30-10 訓練完可得到最小 的絕對值誤差,我們利用 30-10 網路來進行模擬資料的測試。在這裡我們秀出 第二十六組及第三十一組模擬的井測資料利用 30-10 網路做反推的結果。圖 3.12 為第二十六組井測資料利用 30-10 網路反推後的結果,其反推出來的 Ct 與預期的 Ct 之間的平均絕對值誤差為 0.00894。圖 3.13 為第三十一組井測資料 利用 30-10 網路反推後的結果,其反推出來的 Ct 與預期的 Ct 之間的平均絕對 值誤差為 0.008994。

圖 3.12. 第二十六組井測資料利用 30-10 網路反推的 Ct 與期望的 Ct。

圖 3.13. 第三十一組井測資料利用 30-10 網路反推的 Ct 與期望的 Ct。

3.3 Results of Two Layer Neural Networks

3.3.1 Determination of the number of the hidden nodes

從單層感知器的實驗與單層的高階類神經網路的實驗得知,當網路的輸入 節點數為 10 個的時候,可以得到最好的訓練效果。所以,我們將具有 10 個輸 入節點與 10 個輸出節點的感知器網路另外再加上一層隱藏層,以期能達到更 佳的訓練效果。關於隱藏層的節點個數,就採用定理 2.1 的方式來決定。

因為我們的實驗中,訓練樣本數為 500 (T=500),而網路的輸入節點數為 10 (d=10),根據定理 2.1 及 (2.16) 式,我們可以得到最多分割區域數 M 為:

H= 7, M(7,10) = 27 =128 regions H = 8, M(8,10) = 28 =256 regions H = 9, M(9,10) = 29 =512 regions H = 10, M(10,10) = 210 =1, 024 regions H = 11, M(11,10) = 1024 + 11 1, 035 regions= H = 12, M(12,10) = 1035 + 66=1,101 regions

因為在訓練的時候,每一個區域至少要有一個訓練樣本,區域才能被分割 出來,所以訓練樣本至少要有 M 個。因此我們能推測出網路的隱藏層需要 8 個或 9 個節點才能符合需求。

3.3.2 Experimental results

在這個實驗中,我們採用了兩層的類神經網路來執行模擬的井測資料反 推,而隱藏層的節點分別為 7 個、8 個、9 個、10 個、11 個與 12 個,網路的 架構如圖 3.14。這些網路訓練的實驗結果記錄在表 3.4。當網路的執行步驟設 定為 20,000 時,我們發現 10-8-10 網路可以得到一個比之前利用單層的感知器 網路或是單層的高階類神經網路還要小的絕對值誤差,然而當我們增加隱藏層 的節點為 24 個的時候,網路訓練的誤差並不會就因此而變得更小。圖 3.15 為 10-8-10 網路的訓練過程,而圖 3.16 是利用 10-8-10 網路對第二十六組資料反推 出來的結果,其反推出來的 Ct 與期望的 Ct 之間的平均絕對值誤差為 0.002602。

圖 3.17 是利用 10-8-10 網路來對第三十一組資料反推出來的結果,其反推出來 的 Ct 與期望的 Ct 之間的平均絕對值誤差為 0.002698。

圖 3.14. 兩層的類神經網路。

表 3.4. 不同隱藏節點個數的兩層類神經網路的實驗結果

Network size

Number of training patterns

Error MAE at 20,000 iterations

10-7-10 500 0.002318 10-8-10 500 0.001921

10-9-10 500 0.002155

10-10-10 500 0.001996

10-11-10 500 0.002059

10-12-10 500 0.002141

10-24-10 500 0.002672

圖 3.15. 網路為 10-8-10 時的訓練過程。

圖 3.16. 第二十六組井測資料利用 10-8-10 網路反推的 Ct 與期望的 Ct。

圖 3.17. 第三十一組井測資料利用 10-8-10 網路反推的 Ct 與期望的 Ct。

3.4 Results of Two Layer HONN

Network size Number of training patterns

20-7-10 500 0.002034 Over 20,000

20-8-10 500 0.001598 8,286

20-9-10 500 0.001649 8,880

20-10-10 500 0.001753 9,904

20-11-10 500 0.001994 13,740

20-12-10 500 0.002074 Over 20,000

圖 3.18. 網路為 20-8-10 時的訓練過程。

圖 3.19. 第二十六組井測資料利用 20-8-10 網路反推的 Ct 與期望的 Ct。

圖 3.20. 第三十一組井測資料利用 20-8-10 網路反推的 Ct 與期望的 Ct。

3.4.2 Results of two layer with third order input features

Network size Number of training patterns

30-7-10 500 0.002022 Over 20,000

30-8-10 500 0.001574 3,372

30-9-10 500 0.001719 4,386

30-10-10 500 0.001667 3,444

30-11-10 500 0.001808 11,427

30-12-10 500 0.001736 10,917

圖 3.21. 網路為 30-8-10 時的訓練過程。

圖 3.22. 第二十六組井測資料利用 30-8-10 網路反推的 Ct 與期望的 Ct。

圖 3.23. 第三十一組井測資料利用 30-8-10 網路反推的 Ct 與期望的 Ct。

4. Differential Evolution for Well Log Data

圖 4.1 為 DE 的執行過程的簡易流程圖。

圖 4.1. 差分進化法的流程圖

假設我們有一個 fitness function J,若要以 DE 來對 fitness function J 做最佳 化找尋其最大值,則以下為使用 DE 來做最佳化的步驟及每個步驟的詳細說明:

(1) 產生初始的 population

DE 的群組 (population) X 有多個個體 (individuals),每一個個體包含了 L 個 parameters。表示法如下:

where

其中, 就是一個個體,G 為 DE 中群組的 index value (初始代為 0,接 下來為第一代則 G=1,第二代則 G=2,依此類推)。Np為群組的大小, N 為 parameter 的維度。初始的群組可利用一個-1~1 的 uniform random number 來 產生。

(2) mutant

一個突變體 is generated from:

指的是在第 G 代中的最佳個體,而 則是第 G 代中利用 uniform random number 從 Np中任意選擇的兩個個體。{BEST, m, n}三個數 必須彼此不同 (mutually different),其中參數 是使用者自訂的一個數。

( 的意義類似權重,若 越大代表突變體 受到 的影響越

大;反之 越小,代表 受到 的影響越小)

DE 的初始群組所形成的群組矩陣 X

以下為一個 DE 如何執行突變的例子:

(3) Crossover

一個交配體 is generated from:

(4.1)

其中 Rj為一個 0~1 的 uniform random number,Cc為一個 crossover 常數 (Cc

的意義為決定交配體 中的 element 該從 中的 或是從 中的

來,若 Cc設定相當大,則根據 (4.1) 式, 越容易小於 ,則交配體 的 element 便會由 而來,反之則從 而來),j 為參數的 index。

以下 DE 執行如何 crossover 的一個例子:

假設仍然沿用突變例子的結果,在初始代 (G = 0) 且已經完成突變之 後,對第 1 個個體 來說,可找到與其對應的突變體 ,則 與 如下:

第 0 代的突變體矩陣 V

(4) Selection

根據群組的大小 Np,選擇 Np個合適的個體,讓它們能夠進入下一個世代 (從第 G 代至 G+1 代)。對第 G 代的一個個體 ,選擇的方式如下:

(4.2)

(4.2) 式中, 為 fitness function, 代表將 代入 fitness function 所得到的 fitness value,而 是將 代入 fitness function 所得到的 fitness value,比較兩個個體 、 的 fitness value 的大小。

因為目標是將 fitness function 最大化,則選擇有較大的 fitness value 的個體 (若目標是將 fitness function 最小化,則將 (4.2) 式的大於改成小 於即可)。以下是一個 DE 如何做個體選擇的例子:

假設要從初始代的個體 中選擇能成為第一代的個體 ,在這裡沿用 之前已經產生過的 以及假設一個個體 與同樣以 (4.1) 的方 式所產生的 如下:

第 0 代的交配體矩陣 U

(5) 檢查終止條件

若終止條件是利用 DE 的演化代數 G 做為終止條件,則檢查是否已經 達到設定的最大世代,亦即 DE 的執行次數。若沒有達到,則再重複步驟 (1) 至 (4),直到終止條件滿足為止。

4.2 Encode Weights of Neural Networks

當我們使用差分進化法 (differential evolution, DE) 來對網路做訓練之 前,首先要先將網路的所有權重 (weight) 編碼成 DE 的個體。由於網路中的權 重為實數,所以我們採用由 Montana 與 Davis [10] 所提出的一種實數編碼方式

當我們使用差分進化法 (differential evolution, DE) 來對網路做訓練之 前,首先要先將網路的所有權重 (weight) 編碼成 DE 的個體。由於網路中的權 重為實數,所以我們採用由 Montana 與 Davis [10] 所提出的一種實數編碼方式

相關文件