神經網絡
神經網路也被稱為人工神經網路 (ANN),是機器學習的子集,也是深度學習演算法的核心。其名稱和結構靈感來自人腦,模仿生物神經元彼此之間發送訊號的方式。人工神經網路 (ANN) 由一個節點層組成,包含一個輸入層、一個或多個隱藏層,以及一個輸出層。 每一個節點或人工神經元會連接到另一個,而且具有相關加權和臨界值。 如果任何個別節點的輸出高於指定臨界值,隨即啟動該節點,並將資料傳送至網路的下一層。 低於指定臨界值,則不會將資料傳遞至下一層。
神經元
單個感知器(perceptron)可以視作基本的神經元(neuron)。
激勵函數通常只在輸出層使用,主要的個作用是將神經元的加總值對應適合的限制輸出值域中,簡言之,既:把神經元的加總值轉換成需要的輸出結果,如:是非、分類的類別…等結果。激勵函數都是非線性對應函數,實務上有許多不同的函數可供選擇,常見的有:sigmoid、tanh函數等。
神經網絡
大多數的神經網路模型都是各種神經元的連接模式,而全連接神經網路是其中最常見簡單的一種,如下圖所示。全連接神經網路的特色是,上一層的神經元與下一層所有的神經元相接。我們將帶有數值的輸入,當成一個獨立的神經元,構成圖中藍色處,神經網路的輸入層(input layer)然後圖右邊深綠框為會輸出結果的輸出層(output layer),中間紫色框是神經網路的主體,稱為隱藏層(hidden layer)
自組織特徵映射(self-organizing feature maps, SOM)網路是基於「競爭式學習」的一種網路,輸出層的類神經元們彼此競爭,爭取被活化的機會。這種競爭靠輸出層類神經元間的「側向聯結」來實現,側向聯結以一種貌似「墨西哥帽」的函數為學習方式,讓不只獲勝神經元得到學習演化,它鄰近的神經元也能夠學習。因此,自我組織特徵映射在競爭之外,也有「有福同享」的合作機制。

【Wiki】自組織對映的訓練例項。藍色斑點是訓練資料的分布,而小白斑點是從該分布走出的目前的訓練資料。起初(左圖)SOM節點處在資料空間的任意位置。選擇離訓練資料最近的(用黃色高亮的)節點。它會向著訓練資料移動,網格上它的鄰居節點也會(在較小程度上)如此移動。經過多次疊代後的網格會趨於近似的資料分布(右圖)。
在自組織特徵映射中,輸出層的類神經元是以矩陣方式排列於一維或二維的空間中,並且根據目前的輸入向量彼此競爭以爭取得到調整鏈結值向量的機會,而最後輸出層的類神經元會根據輸入向量的「特徵」以有意義的「拓樸結構(topological structure)展現在輸出空間中。而這種陣列的拓樸關係,簡單地來說,就是神經元之間的鄰居關係。由於所產生的拓樸結構圖可以反應出輸入向量本身的特徵,因此我們將此種網路稱為自我組織特徵映射網路,如圖2.1所示。
圖2. 自組織特徵映射網路典型架構
自組織特徵映射網路架構
Self-Organization Map 是由輸入層及輸出層所組成的網路架構。在輸入層中每一個神經元代表著輸入資料之屬性,並且每一個神經元皆互相獨立且擁有互相獨立的權值。對於輸出層而言,常用二維格子網狀之架構,並且輸出層神經元與輸入層神經元有相互連接的網路關係,其方式是以權值向量來表示。
輸入層:用以表現網路的輸入變數,也就是用來訓練網路的資料向量(Data vector),而輸入資料的數目是依照問題而訂,以 V1, V2, V3 ... Vn 表示之。
輸出層:用以表現網路的輸出變數,利用拓撲結構以呈現輸入資料的分佈狀況。
權值向量:每個輸出層神經元與輸入層相互連結關係所構成的權值向量(Weight Vector) wj,當網路訓練完後,其輸出神經元相鄰近者會具有相似的權值向量。Wj 所代表的向量通常和輸入層的的像量唯度一樣。
根據上述架構可以得知,映射網路的輸出層會依據輸入資料的特性以有意義的拓撲結構展現,所顯示的拓撲結構可以反映出輸入資料的分佈。在網路學習過程中,輸出層的神經元會因輸入資料的分佈情形自我組織成相似的對應分佈,也就是會自動調整輸出層神經元之間的鄰近關係。
鄰近函數的概念,在生物腦中被稱之為 “側向聯接”。 在許多生物的腦部組織中會有大量的神經元,彼此之 間有側向聯接,側向聯結的回饋量,通常是以「墨西 哥帽函數」來代表 。 此鄰近關係是指輸出層神經元間相互連接的情形,因此,在網路學習的過程中鄰近關係會依據輸入資料特性調整其鄰近距離,而使得網路能夠反映輸入資料之特徵。其中,鄰近關係的定義為當網路訓練過程中,某一個神經元被激發時,其鄰近的神經元亦需一同被強化。
在網路的學習過程中,鄰近關係將逐步的縮小,係為了使得整個網路訓練能夠達到一個穩定的狀態 (收斂的狀態)。通常在網路中採用墨西哥帽函式(Mexican-hat Function)做為神經元刺激強度的標準(Kohonen,T., 1995),如圖3所示。此一標準是用來規範神經元的神經鍵在被訓練時所應加強的強度。
The neighbourhood size refers to the region covered by the activated neighbouring neurons in relation to the winner neuron in each iteration of learning.
愈接近函式中心所得到的刺激強度愈大,而遠離中心所得到的刺激強度則隨之變小。換句話說,在神經元訓練的過程中,鄰近關係最近的神經元所得到的刺激強度也最大,其它神經元所得到的刺激則隨著鄰近關係由遠而減弱,如圖2.3所示。

圖3 墨西哥帽函式

圖2.3 網路的學習過程中之鄰近關係(Size of the neighborhood around the BMU shrinks)
Size of the neighborhood around the BMU(Best Matching Unit) shrinks.
The size of the neighborhood around the BMU is decreasing with an exponential decay function. It shrinks on each iteration until reaching just the BMU. The exponential decay function of Size of the neighborhood around the BMU is ststed as:
where the sigma, σ0, denotes the width of the lattice at time t 0 , and the lambda, λ, denotes a time constant. t is the current time-step (iteration of the loop).
網路演算法則
自我組織映射圖網路演算法則所採用的方式乃藉由特徵映射將高維度的輸入資料映射至低維度的特徵空間上。此種非線性投影的方式是透過權值向量的學習,而使得輸出神經元能夠保有輸入資料之間的鄰近關係,並以二維或低維的拓蹼網路表示其資料之分佈。
自我組織網路的訓練流程可分為以下六個步驟:
步驟一:
輸入訓練資料向量(Data vector):輸入訓練資料向量以 V1, V2, V3 ... Vn 表示之,依序將訓練資料輸入至自我組織映射圖網路中以訓練整個網路。
步驟二:
設定參數:設定網路所需的學習參數,隨機設定初始權值Wj 、鄰近函數Θ(t) 學習速率α(t) 與執行次數T 等。
步驟三:
分別計算輸入資料向量 Vi 與權值向量 Wi 間的歐幾里德距離,再藉由所計算的距離找出其間之最短距離,篩選優勝單元:亦即當輸入資料向量為 Vi 時,具有最強輸出的神經元 i,即
|| V – Wi || = min { || V – Wj || } 對於所有的 j。
其中 || ● || 表示歐幾里得(Euclidean)距離,其中Wi 代表的是和輸入的的資料誤差最小的,也就是最接近輸入的資料,換言之和輸入的資料中最有關係的,一般稱 Wi 為優勝單元 (Best Matching Unit, BMU)乃是這個階段的優勝者。但是假若只調 Wi (BMU)(這個階段的 Winner)的權值向量,則無法表現資料的拓撲關係,故自我組織映射圖網路的演算法則是以鄰近區域的概念,調整其相對應的權值向量。
步驟四:
找出鄰近神經元:經由步驟三找到優勝單元 c ,再利用鄰近函數找出與優勝單元相鄰近的神經元。
步驟五:
更新權值向量:更新輸入資料 Vi 到輸出神經元 c 及其鄰近區域的權值向量,亦即更新與神經元 c 相鄰近的權值向量。權值向量的更新法則是以優勝單元與相鄰近之神經元依輸入資料分佈,調整相互之間的鄰近關係,其權值修正法則如下式所示,
Wi(t + 1) = Wi(t) +Θ(t)‧α(t)‧(V(t) - WV(t))
其中Θ(t)與α(t)分別為鄰近半徑與學習率。
步驟六:
增加 t=t+1,假若t > T* 時則停止運算(其中T* 為最大學習次數),否則回到步驟三繼續執行映射網路之訓練。
在整個演算過程中,學習速率α(t) 與鄰近半徑 Θ(t) 應隨著學習過程而逐漸遞減,換言之自我組織映射圖網路演算過程中每一個神經元都受到鄰近函數的連接與規範而產生相互的鄰近關係。此外,自我組織映射圖網路的學習狀況與學習次數有關,更明確地說,就是和自我組織映射圖網路的參數設定有著密切的關係,例如學習速率α(t)、鄰近函數Θ(t) 及初始權值Wi(t) 等。因此,如何選擇適當的學習參數更顯重要,再透過不斷的循環學習與修正,方能達到最佳分群。
將訓練資料 V(t) 輸入至網路,經由網路學習的過程可將多維度的輸入資料映射至低維度的特徵空間上,並藉由輸出結果以反映輸入資料的機率分佈,將有利於實施資料的聚類分析。
------------------【SOM範例】--------------------------------
【範例】競爭式學習法則
假設學習率,網路由兩個類神經元所組成,
類神經元的鍵結值初始值分別為:
以及![]()
。如下圖:

歐幾里得競爭式學習法則


【範例】
1) 有10組訓練範例,每一組訓練範例均為一二維的特徵向量
|
|
x1 |
x2 |
|
1 |
-0.9 |
-0.8 |
|
2 |
-0.8 |
0.6 |
|
3 |
0.9 |
0.6 |
|
4 |
0.7 |
-0.4 |
|
5 |
-0.2 |
0.2 |
|
6 |
-0.7 |
-0.6 |
|
7 |
-0.9 |
0.8 |
|
8 |
0.7 |
0.6 |
|
9 |
0.8 |
-0.8 |
|
10 |
0.1 |
-0.2 |

2) 採用3×3=9個輸出層單元
初始連結加權值如下,初始聚類群形心點
|
j |
w1j |
w2j |
|
1 |
-0.2 |
-0.8 |
|
2 |
0.2 |
-0.4 |
|
3 |
0.3 |
0.6 |
|
4 |
-0.4 |
0.6 |
|
5 |
-0.3 |
0.2 |
|
6 |
-0.6 |
-0.2 |
|
7 |
0.7 |
0.2 |
|
8 |
0.8 |
-0.6 |
|
9 |
-0.8 |
-0.6 |

3)假設拓樸座標如下

4) 臨近函數值
R_factorj = e(-rj/R)
臨近半徑R取2
5) 學習速率取h=1.0
6) 第一組範例
x1=-0.9 x2=-0.8
a) 計算Euclidean距離di
即輸入樣本與每個輸出神經元j之間的Euclidean距離
d1=0.7

d2=1.17
餘此類推
d3=1.84
d4=1.49
d5=1.17
d6=0.67
d7=1.89
d8=1.71
d9=0.22
b) 找出優勝單元 Þ 單元9
c) 計算連結的權值的改變量
第1個輸出單元的連結單元的連線加權值改變量

R_factor1 = e-2.828/2=0.243
△w11 = +η.(x1-w11).R_factor1
= 1.0.(-0.9+0.2).0.243
= -0.170
△w21 =η.(x2-w21).R_factor1
=1.0.(-0.8+0.8).0.243
=0.0
d) 其餘8個輸出單元的連結加數值改變量同法可求得
e) 調整輸入層與輸出層間的連結加權值
wij=wij+△wij
7) 其它9組範例的學習過程如上所述
8) 可重複上述步驟約10個學習循環 Þ 會收斂
【應用】於外匯交易的操作優化
瞭解Kohonen神經網路,並實作MT4交易優化
https://www.mql5.com/en/articles/1562
https://www.mql5.com/en/forum/39534




