iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 3
6
AI & Data

英雄集結:深度學習的魔法使們系列 第 3

[魔法陣系列] Artificial Neural Network (ANN) 之術式解析

第一個魔法陣:Artificial Neural Network (ANN, 1943)

首先先來看看 ANN 的結構:

https://ithelp.ithome.com.tw/upload/images/20181016/20112540fLqhoz9Xv8.png

圖片來源:https://hackernoon.com/jump-start-to-artificial-intelligence-f6eb30d624ec

ANN 的設計思想是基於模擬生物神經傳導的機制,由許多層的神經元(Neuron) 互相連結而形成神經網絡。我們知道在人類大腦中,神經元是處理和傳遞訊息的細胞。在 ANN 裡,每一層的神經元擁有輸入(input)輸出(output),透過 激活函數(Activation Function) 來衡量對神經元輸出的重要性。

謎之小矮人:「wait~wait~不對喔,你剛才說的神經元我知道,但什麼是 Activation Function 啊?」

我自己在學習時是把 激活函數(Activation Function) 想像成神經元的閘門,換言之它代表神經元的忍受門檻,若超過/觸發神經元時則發送值出去,例如簡單的 Step Function:當函數收到的值大於 0 則回傳 1,否則皆回傳 0。
https://ithelp.ithome.com.tw/upload/images/20181017/20112540bH8rQxDRub.png

順帶一提,step function 的方法只單純的傳回 0 或 1,用在機器學習上會因為它無法微分而無法進行 gradient descent 等運算,所以大部份的 NN 不是使用這個函數。在這裡是希望透過這個很簡單的例子幫助各位見習魔法使理解激活函數的原理。

實際上激活函數在神經網絡中扮演重要角色,它的關鍵作用在於將線性轉成非線性(不理解這部分的同學推薦可以看莫煩先生的這篇「激励函数 (Activation Function)」精彩的解說),資料從神經元進入,經過非線性的激活函數下輸出,傳入下一層神經元,如此往下傳遞直到最後的輸出層。而正是這些激活函數的作用,讓神經網絡有足夠的能力去抓取複雜的特徵(features),從而提高模型的效能。

文章尾聲來回顧 ANN 的魔法陣結構組成:

  1. 輸入層(Input layer):接受訊息的神經元,稱為輸入向量。
  2. 隱藏層(Hidden layer):輸入層和輸出層之間眾多神經元和連結組成的各個層面,可以有多層。
  3. 輸出層(Output layer):訊息在神經元連結中傳輸、分析、權衡後所形成的輸出結果(稱為輸出向量)。

https://ithelp.ithome.com.tw/upload/images/20181018/20112540Rw00SmyVNQ.png

圖片來源:https://en.wikipedia.org/wiki/Artificial_neural_network

ANN 一般稱為感知器(perceptron)或多層感知器(Multi-layer perceptron),目前神經網路有許多變形,在未來的魔法陣系列中會一一介紹。


上一篇
[地圖] 深度學習世界的魔法陣們
下一篇
[魔法陣系列] Artificial Neural Network (ANN) 之術式啟動
系列文
英雄集結:深度學習的魔法使們31

尚未有邦友留言

立即登入留言