• 沒有找到結果。

2.4.1 類神經網絡

類神經網絡被提出已久,最早的起源是模仿大腦神經的結構。

從數學上的抽象的結果可以參考圖 2.5。其直覺是,用許多簡單的神經元組 成一個龐大的系統以逼近任何的函數。從某一個神經元的監督來看,其輸入的神 經元的值會被加權的傳遞到其所鏈接的神經元上,接著,加權的值會通過一個激 發函數(activation function),常用的激發函數參考表格 2.3。最後輸出,當作這 個神經元所連接的神經元的輸入。

圖2.5 神經元。展現的是單個神經元的 輸入與輸出。𝑓𝑓就是激發函數,而

𝑛𝑛 𝑊𝑊𝑖𝑖𝑋𝑋𝑖𝑖

𝑖𝑖=1 是被加權的綜合。

圖2.6 類神經網絡。由圖 2.5 組成。

傳統的神經網絡分為輸入層、隱藏層以及輸出層,如圖 2.6。現在深度學習 時代一大特徵便是隱藏層越來越深,這得益於 CPU 和 GPU 能力的提升,使得訓 練深的網絡變得可行。

名稱 公式

sigmoid 1

1 + 𝑒𝑒−𝑥𝑥

tanh 𝑒𝑒2𝑥𝑥+ 1 𝑒𝑒2𝑥𝑥− 1

RELU max (0, x)

表格2.3 常見的激發函數。

以上是類神經網絡的概念。接下來我們需要訓練網絡中的參數,最著名的方 法便是使用反向傳播算法(backpropagation)。在常用的深度學習庫中,反向傳 播算法的實作是基於計算圖(computational graph),這使得算法的實作變得簡單 以及維護變得容易。

計算圖的定義如圖 2.7 所示。每一個 node 定義變量的名稱以及計算方式,計 算可以使用的變量只能是被指向的 node 所定義的變量。

在 forward 的階段,計算很直覺,就是將輸入(即圖 2.7 中的 a 和 b)代入,

然後根據拓撲順序去計算即可。

圖2.7 計算圖的 forward 過程。圖片 來源:[17]。

圖2.8 計算圖的 back propagation 過程。圖片來源:[17]。

而在反向傳播算法的過程,首先計算每個 node 中的偏微分,如圖 2.8,接著 用 forward 反方向計算即可,如果一個 node 有多個流入,則將他們的偏微分相 加即可。 可以看到,所謂的反向傳播算法實際上是鏈鎖定則(chain rule)的 一個表現。

2.4.2 長短期記憶模型類神經網路

長短期記憶模型類神經網路(LSTM)是由[18]所提出的。不同與前面所提到的 類神經網絡,LSTM 不光用到了當前的輸入與輸出,LSTM 還用到了前面時刻所 計算的結果,如圖 2.9 所示,其中σ代表的是 sigmoid 函數。

LSTM 的資料流可以參考圖 2.10、圖 2.11、圖 2.12 和圖 2.13。

圖2.10 計算遺忘的比例的示意圖。圖 片來源:[19]。

圖2.11 新的信息的計算示意圖。圖片 來源:[19]。

圖2.12 更新記憶的示意圖。圖片來 源:[19]。

圖2.13 選擇輸出的示意圖。圖片來 源:[19]。

同樣的,在循環神經網絡的訓練部分,同樣是使用反向傳播算法,不過不同 於一般的 back propagation,由於用到了前面的資訊,所以當前面的權重需要訓 練的時候,必須要考慮到後面的結果,這被稱之為 BPTT (back propagation through 圖2.9 LSTM 的結構,圖片來源[19]。可以看到這邊每一期的輸入除了Xt以外,

前面的Xt−1所產生的結果也當做了第t期的輸入。其中每一個圓圈里定義了流 出的資料是如何由流入的資料計算所得的。

time)。具體過程可以參考圖 2.14 和圖 2.15。

圖2.14 循環類神經網絡計算示意圖。

可以看到與一般的類神經網絡不通的 地方在於,node_1 使用了共享的權重

圖2.15 BPTT 示意圖。

相關文件