[魔法陣系列] Artificial Neural Network (ANN) 之術式解析
第一個魔法陣:Artificial Neural Network (ANN, 1943)
首先先來看看 ANN 的結構:

ANN 的設計思想是基於模擬生物神經傳導的機制,由許多層的 神經元(Neuron) 互相連結而形成神經網路。我們知道在人類大腦中,神經元是處理和傳遞訊息的細胞。在 ANN 裡,每一層的神經元擁有 輸入(input) 和 輸出(output) ,透過 啟用函式(Activation Function) 來衡量對神經元輸出的重要性。
謎之小矮人:「wait~wait~不對喔,你剛才說的神經元我知道,但什麼是 Activation Function 啊?:confused:」
我自己在學習時是把 啟用函式(Activation Function) 想像成神經元的閘門,換言之它代表神經元的忍受門檻,若超過/觸發神經元時則傳送值出去,例如簡單的 Step Function:當函式收到的值大於 0 則回傳 1,否則皆回傳 0。

順帶一提,step function 的方法只單純的傳回 0 或 1,用在機器學習上會因為它無法微分而無法進行 gradient descent 等運算,所以大部份的 NN 不是使用這個函式。在這裡是希望透過這個很簡單的例子幫助各位見習魔法使理解啟用函式的原理。
實際上啟用函式在神經網路中扮演重要角色,它的關鍵作用在於 將線性轉成非線性 (不理解這部分的同學推薦可以看莫煩先生的這篇「 激勵函式 (Activation Function) 」精彩的解說),資料從神經元進入,經過非線性的啟用函式下輸出,傳入下一層神經元,如此往下傳遞直到最後的輸出層。而正是這些啟用函式的作用,讓神經網路有足夠的能力去抓取複雜的特徵(features),從而提高模型的效能。
文章尾聲來回顧 ANN 的魔法陣結構組成:

- 輸入層(Input layer) :接受訊息的神經元,稱為輸入向量。
- 隱藏層(Hidden layer) :輸入層和輸出層之間眾多神經元和連結組成的各個層面,可以有多層。
- 輸出層(Output layer) :訊息在神經元連結中傳輸、分析、權衡後所形成的輸出結果(稱為輸出向量)。
ANN 一般稱為感知器(perceptron)或多層感知器(Multi-layer perceptron),目前神經網路有許多變形,在未來的魔法陣系列中會一一介紹。