第三章 理論概述
3.2 類神經網路
3.2.3 類神經網路優化
ANN 模式需要藉由範本(sample)調整網路神經元參數(parameters),
才能使模式輸出值與目標輸出值一致,此過程稱為優化(optimize)。在 優化開始前會先將可使用的資料如圖 3.2.6(a)分為訓練資料與測試資料 兩組,前者用於 ANN 神經元參數優化,後者用於測試完成優化之 ANN 模式性能。此外,在訓練資料中又會分為訓練範本與驗證範本,分別用 於優化器(optimizer)調整神經元參數與驗證每次調整後的 ANN 模式性 能,以決定是否繼續優化。若可用於優化的資料不足使模式無法有效收 斂,則會採用交叉驗證(cross-validation)的方式進行模式驗證,方法為將 訓練資料分為 k 個資料集,每個資料集輪流做為驗證資料,其餘則用 於模式訓練,共建立 k 個獨立模式,最後以所有模式測試資料評估指 標的平均值來評價整體模式架構之優劣。圖 3.2.6(b)為建立 4 個獨立模 式的交叉驗證範例,該範例中資料集 1 至 4 輪流做為訓練及驗證範本,
資料集 5 固定做為測試範本。
(a)正常分組 (b)交叉驗證分組 圖 3.2.6 類神經網路模式優化資料分組
doi:10.6342/NTU202003855
26
優化過程一般而言可以分成初始化、訓練與驗證三階段,除了初始 化只在最開始進行一次外,優化過程中每次疊代(epoch)都會重複一次 訓練與驗證階段,並根據驗證階段結果決定是否繼續或結束優化過程。
1. 初始化(initialization)
在開始優化 ANN 前須對模式中的連結權重值等參數初始化, distribution)及常態分布(normal distribution)兩種,此初始化法常用 於連結權重初始化;轉移參數法將其他模式相同維度與數量的參數
訓練指的是使用優化器(optimizer)調整已初始化的 ANN 參數,
是整個 ANN 模式優化最關鍵的步驟。一般使用以梯度下降法 (gradient descent)為基礎建立的優化器進行調整,即往該參數對誤差 函數(loss function)梯度下降方向進行修正,如 3-8 式:
doi:10.6342/NTU202003855
27 題,此種訓練方式稱為批次學習(batch learning),一個批次的大小 (batch size)為模式超參數之一,常以經驗或試誤法決定。
3. 驗證
1. 隨機梯度下降(stochastic gradient descent):
在每一次疊代過程中,以隨機方式排序訓練資料中批次的順
28
值𝑣𝑛−1與目前誤差函數於此參數的梯度∇𝐹(𝑥𝑛)分別乘上調整超參 數𝛾及學習速率𝜂之結果,其意義為過去疊代過程中誤差梯度的滑動 平均值(moving average)。其餘符號與 3-8 式相同。當梯度過大時可 能會有不斷跳過最佳解位置而來回震盪問題,透過加入𝑣𝑛−1使參數
根據上述三點,選用 Adam 演算法(Kingma 與 Ba,2014)做為本研 究 SAE 及 RNN 模式優化器。Adam 為適應性矩估計(adaptive moment estimation)之縮寫,適合解決 ANN 中大量參數要調整問題。Adam 屬於 一種隨機梯度下降法的延伸演算法,透過計算每個參數的一階梯度
29
參數過去一階矩與目前梯度的權重參數,介於 0 至 1 之間,文獻建議 𝛽1𝑛與𝛽2𝑛設定為 0.9 與 0.999。接著以 3-14 式及 3-15 式進行初始梯度偏 差校正(bias-corrected of first moment):
𝑚̂𝑛 = 𝑚𝑛 擬合(over fitting),即模式過度描述訓練資料輸入與輸出值間的關係,
使訓練結果理想但驗證結果不如預期的情況。為了避免過度擬合,本研
30
儲存最佳參數,適時提早結束訓練階段,則能避免過度擬合的情況 發生。
2. 使用 Dropout 技術:
Dropout 為 Srivastava 等人(2014)提出的一種避免過度擬合技 術,方法為設定拿掉率(dropout rate),於訓練階段以隨機選取法使 隱藏層中一定數量的神經元暫時被拿掉(drop out),降低網路模型複
3. 加入正則項(regularizer):
於訓練階段神經元參數可調整範圍越大則代表模式擬合訓練
31
堆疊自編碼器(Stacked autoencoder, SAE)是一種改良訓練方式的自 編碼器(autoencoder, AE)模式,亦屬於 ANN 模式的一種,為具有多層 隱藏層及對稱結構的 FFNN 或 DNN,其中堆疊是指 SAE 訓練過程中 隱藏層逐步增加的建構方式。一般而言,SAE 輸入與輸出層維度一致,
模式訓練目的是將輸出值近似於輸入值,因此,SAE 可用監督式學習 的方法達到無監督式學習的效果,又因 SAE 隱藏層維度常小於輸入層 與輸出層,使其具有對輸入資料進行降維之功能。
SAE 屬於編碼器-解碼器框架,具有編碼器(encoder)、編碼(code, C) 與解碼器(decoder)等三個主要部分,架構如圖 3.3.1 所示,可用 3-24 至 3-27 式表示,並以 3-28 式為損失函數(loss function):
𝑒𝑛𝑐𝑜𝑑𝑒𝑟: 𝑅𝑛 → 𝑅𝑑 (3-24)