• 沒有找到結果。

第三章 系統組成與理論介紹

3.4 Deep Learning (深度學習)

3.4.1 人工神經網路

人工神經網路模型藉由不停地改變參數,試圖找到一個複雜的函式來代 表某一功能(分類、回歸…),要實現這個訓練方法,首先我們需要有大量的 輸入資料以及相對應的期望輸出,之後再針對資料特性建立合適的模型架構,

最後進行訓練。典型的人工神經網路由輸入層、輸出層以及隱藏層組成。

圖3-9 為簡單的人工神經網路架構。

圖3 - 9 人工神經網路架構

圖3-9 中的每一個圓都代表一個神經元,線則表示神經元與神經元間的 連結。在人工神經網路中,同一神經層內神經元不會互相連結,只有不同神

29

經層間才會有連結產生,其連接方式十分多樣,圖3-9 中的隱藏層的連接模 式稱為「全連接」,隱藏層中的神經元皆與輸入層中的每一個神經元有所連 接,這代表每個神經元皆可以接收到輸入層傳來的所有資訊。

(1) 模型架構

神經網路中基本單位為神經元,單一神經元由輸入(input, X)、輸出 (output, Y)、權重值(weight, W)、偏移量(bias, b)以及激勵函數(activation function, f(.))所組成。

圖 3 - 10 單一神經元結構

單一神經元運作方式十分簡單,將輸入資料與權重矩陣相乘,加上 偏移量,再經過激勵函數處理,即完成動作。這些神經元構成了上述所 提之輸入層、隱藏層、輸出層,輸入層即為輸入向量,輸出層則為輸出 向量,人工神經網路藉由在這兩者之間加入隱藏層,嘗試建立輸入與輸 出之間的關係式。運算公式如下:

𝑎𝑛𝑚 = ∑ 𝑓(𝑤𝑛𝑘𝑚−1𝑥𝑘 + 𝑏𝑘

𝑙

𝑘=1

) (3. 4)

其中𝑎𝑛𝑚為第m 層之第 n 個神經元的運算結果,f (.)為激勵函數,l 為m-1 層神經元總數,𝑤𝑛𝑘𝑚−1為第m-1 神經層的第 k 個神經元至第 m 神

30

經層的第n 個神經元的權重值,𝑥𝑘為第k 個輸入,𝑏𝑘為第k 個輸入之偏 移值。在此運算模式之下,透過不斷改變𝑤𝑛𝑘𝑚−1與𝑏𝑘的值,就能使得模型 的最終結果產生改變,訓練模型即是運用此機制。

輸出層與輸入層的神經元數量是由資料決定,而隱藏層的神經元數 目則是研究者可以自由變動的,通常隱藏層層數或單層神經元數越多,

模型就會有更好的逼近能力,但訓練時間與記憶體需求也會上升,且在 資料量不足的情況之下,過高的逼近能力會使模型容易過度訓練,使訓 練完成之模型只適用於訓練資料,對於沒有使用來進行訓練的測試資料,

效果不佳,失去其一般性。

(2) 訓練

要開始執行訓練之前,我們需要對模型進行初始化,通常採用隨機 的方式給予模型中所有參數初始值。之後正式開始訓練,訓練過程由有 限個循環組成,每一個循環,稱之為代(epoch),系統經由估算當代模型 的輸出與期望輸出的差距,判斷模型的訓練完成度。

圖3 - 11 訓練流程

31

人工神經網路訓練時多使用反向傳播算法(Backpropagation, BP)[20]

來進行訓練,BP 的運作分為兩個步驟:

Step 1 資料傳遞計算

在此步驟,資料會進入模型進行運算,得到當下模型的輸出。

並將其與理想輸出比對,計算出誤差。

Step2 權重更新

得到誤差之後進行運算得到梯度,再配合優化方法(例如:最大 梯度法)進行權重的更新,即完成一次訓練。

傳統的隱藏層由於演算法與硬體設備的限制,神經層數量受限的問題嚴 重,增加模型之隱藏層數目雖可順利運作,但須耗費大量時間等待才能得到 結果,對於開發研究十分不利,漸漸乏人問津。

相關文件