2.1.1 簡介
Rn, b ∈ R是該神經元能表現的所有函數。 深層學習的目標是藉由讓神經元在給定 輸入x ∈ Rn、輸出y,學習最合適的w和b當作我們想要表現的函數模型。
層狀結構
單一神經元所表現的函數空間(function space)有限,因此通常會將多個神經元並排 成一層,並將每一層以上一層的訊號做為輸入,形成層狀傳遞的結構,如圖2.1所 示。 透過層狀結構的神經元可以表現的函數變更加豐富。這種結構稱為全連接 層(Fully Connected Layer)。
圖 2.1: 全連接層示意圖
一個深層類神經網路的最開始會直接輸入資料的數值,稱為輸入層(input
layer), 最 後 一 層 則 為 輸 出 層(output layer), 剩 餘 的 中 間 層 稱 為 隱 藏 層(hidden layer)。 以圖2.1為例,第0層為輸入層,中間第1, 2層為隱藏層,第3層為輸出層。
層狀結構還有一個非常重要的好處,是可以將層跟層之間的計算寫成矩陣乘法。
第i層和第i − 1的關係可以寫為:
h(i) = σ(W h(i−1)+ b) (2.3)
其中 W , b 是第i層神經元參數並排成矩陣和向量,而σ以 σ(x)i := σ(xi)的方式擴 展。
由於平行化計算的發展,圖形處理器(Graphics Processing Unit, GPU)可以非常 快速地計算矩陣乘法,加速類神經網路的運算。 離(Euclidean distance),數學表示式分別為式2.4和式2.5,其中ˆy, y ∈ Rn。
d1(ˆy, y) = kˆy, yk1 =
• 分類問題:
目標模型輸出ˆy對於種類預測機率分佈要和真實機率y越接近越好。 真實機 率的表示法為將真實標注的資料以獨一餘領(One-Hot Encoding)表示,也就 是C個類別表示為C維,對應類別機率給定為1,其餘維度給定為0。 此外,
模型輸出結果為了讓所有類別的機率總和為1,輸出前通過軟性最大化函 數(softmax function)來達成。
而當機率分佈越接近時,我們會讓損失函數L(ˆy, y; θ)越小。常見會使用透過
常見的方法會使用梯度下降法(Gradient Descent Algorithm)來解這種優化問題。 梯 度下降法首先需要計算損失函數之於參數的梯度(gradient),接著將模型參數往此 梯度的相反方向做更新,以此來降低損失函數。 藉由不斷迭代更新參數,損失函 數會逐漸接近局部最佳解(local optimal)。
反向傳播演算法(Backpropagation Algorithm)常被用來對類神經網路做更高效 率的參數更新。 此演算法在計算完損失函數後,會利用連鎖率從最後一層神經元 的梯度,往前一層的神經元傳遞,直到算出第一層的神經元參數為止。 整個過程 就好像是將梯度訊號從輸出層反向傳播回輸入層一樣,因此稱之為反向傳播演算 法。
梯度下降法有一些限制,比方說損失函數必須要可微分(differentiable),只能 收斂至局部最佳解,而非極小值,但是梯度下降法因為使用上方便,而且通常只 要選擇合適的學習率(learning rate)就可以有不錯的結果,所以變成現今最常使用 的深層模型的訓練方法。
2.1.3 卷積式類神經網路 (Convolutional Neural Network, CNN)
卷積式類神經網路 [1]是一種深層類神經網路的變形,是設計讓音訊、影像的資料
2.1.4 遞 迴式類神經網路 (Recurrent Neural Network)
遞迴類神經網路的隱藏層具有「記憶」功能,除了考慮當下時間點的資訊外,也 會參考過去所輸入的資訊,因此對於處理文字和聲音訊號這種時間序列經常使用 此類型的類神經網路。 以下我們將分別介紹遞迴式神經網路的基本數學原理。
遞迴式類神經網路 [2]是設計處理序列式資料,且每一個時間點的資料非彼此
獨立。遞迴式類神經網路在輸入第t個時間點的資訊時,前t-1個時間點重要的資訊 也保留在其隱藏狀態(Hidden State)。 可透過數學表示式:
ct= σh(Wcxt+ Ucct−1+ bc) (2.8)
ht= σh(Whct+ bh) (2.9)
圖 2.2: 遞迴式類神經網路
圖2.2為基本的遞迴式類神經網路,圖中的A是指該網路的記憶單元,而此 記憶單元在時間點t有輸入xt,經過一連串的矩陣變換如式2.8, 2.9,爾後產生輸 出ht,如此一來,在輸出ht時,此網路不只會考慮該時間點的輸入xt,更會融合 時間t之前所保留下來的資訊。 因此在訓練類神經網路時,此網路不只會學習到 輸入和輸出之間的對應關係,更會學習到哪些資訊需要保留下來,而哪些資訊可 以捨棄。
變化型
長短期記憶單元LSTM [3]是更加複雜的遞迴式類神經網路的組成單元,其透過 不同的閘門(gate)來控制網路中資訊的流動,而閘門的設計是輸出介於0到1的S函 數,其值代表這個閘的輸出和輸入的比例。 如圖2.3(b),共有三種閘門,分別是 輸入閘門(input gate)、輸出閘門(output gate)和遺忘閘門(forget gate),輸入閘門負 責控制輸入的資訊量有多少需要存入記憶,輸出閘門負責決定多少比例的記憶需
(a) GRU (b) LSTM
圖 2.3: 遞迴式類神經網路變化型
要用來輸出,而遺忘閘門則負責決定多少比例所記憶的資訊可以被拋棄,如此 一來,梯度便只會影響到閘門開啟的時候,而減少梯度消失的問題。 圖2.3(a)中 的GRU [4]則是簡化讓輸入閘門和遺忘閘門連動,藉此降低參數量。