• 沒有找到結果。

第二章

基本理論介紹

本章將說明連續手勢辨識領域相關研究,及深度學習模型介紹。2-1 介紹連 續手勢的分類;2-2 說明傳統上是如何處理連續手勢,並且需要克服哪些挑戰;

2-3 介紹深度學習中的模型架構,比較前饋式神經網路和遞迴神經網路兩者的差

異,並且探討這些法則在連續手勢辨識上的可能性。

2-1 連續手勢介紹

語言是人類彼此之間交流的媒介,最主要以說話的方式來進行溝通。相較於 話語有著地域、文化上的限制,肢體語言有著更高的跨國際性,能更直接表達情 緒,甚至是內心中真實的想法,而「手勢」在其中占有中要地位。廣義上的手勢 泛指任何透過手部做出的動作,而狹義上手勢指的是帶有意義的動作,連續手勢 則是組合這些有意義手勢而成。

蒐集手勢資料的方式主要分為兩種—基於視覺(Vision-based)和基於感測器 (Sensor-based)系統,如圖4.所示,使用者透過這兩種不同的介面來輸入手勢,各

自擁有不同面相上的優勢。

圖4. 連續手勢收集方式。左圖為基於視覺系統,右圖為基於感測器系統。

7 accelerometer)、肌電圖 (Electromyography)。

⚫ 根據手部動作產生的數據,不同於影像會有不必要的部分,只會記錄

手勢的資訊。

其中還有一點,也就是若要將連續手勢用於智慧家電的控制上,需要考量到 家庭的隱私問題,或許基於視覺的系統比較容易獲得手勢,但也因此容易對使用 者的隱私造成侵害,例如:24小時不間斷地以數十隻的鏡頭拍攝來得到手勢,這

8 (Hidden Markov Model) [15]、支援向量機 (Support Vector Machine) [21] 來處理。

即便有上述的演算法則,還是會面臨到一些問題:

9 [23] ,根據該資料庫提出的的競賽—ImageNet Large Scale Visual Recognition Competition (ILSVRC) 主導了近年來卷積式神經網路在電腦視覺領域的發展,每

年的第一名都會被公開發表作為新的神經網路架構,歷年得獎者都為深度學習領 域帶來不小的變革,例如:開創了卷積神經網路大時代的AlexNet [24] 就是 2012 年的第一名,本論文中提出的模型是以同樣出自ILSVRC 的 GoogLeNet 與 ResNet 為理論基礎,進化而成的。

10

2-3-1 前饋神經網路與遞迴神經網路

在深度學習當中有許多不同的模型結構,通常是根據資料類型以及任務的目 標來決定,遇到圖片、影片等使用卷積神經網路 (Convolutional Neural Network, CNN),遇到文章、語音等使用遞迴神經網路 (Recurrent Neural Network, RNN),

而本論文中的手勢也是時間序列資料,使用 RNN 能學習到資料上的前後關係,

除了主要使用的資料型態不同外,這兩者在結構上也有很大的不同。

RNN 會將運算完的結果,送到下一個時間點做為輸入,這樣的狀態可在圖 5.

中看到,橘色的隱藏層在每次運算後,不只有綠色的輸出,也會透過虛線傳送特 徵做為接下來的輸入,也就是當前的輸出不只受輸入影響,也受前一個時間點的 輸出影響,在訓練的過程中不單單只有資料本身的特徵,連時間上的先後順序都 是訓練的資料。

圖5. Recurrent Neural Network 結構圖。

11

CNN 主要是透過數個不同的卷積核在資料上擷取特徵,在架構上與 RNN 不

同,隱藏層的輸出不再會到下一個時間點做為輸入,每一層經過運算後的結果,

只會往單一個方向傳遞,也就是輸入與輸出獨立,此模型結構被稱為前饋神經網 路(Feedforward Neural Network, FNN) [25, 26],結構見圖 6.所示。

圖6. Feedforward Neural Network 結構圖。

CNN 在空間上找特徵能力較強,透過滑動視窗 (Sliding Window) 將時間序

列資料轉成「固定時間長度」的資料,這樣就可以用CNN 來做學習及辨識,詳細 方法會在後面章節中說明。

12

2-3-2 長短期記憶網路與雙向長短期記憶網路

RNN 能夠學習時間序列資料中時間的概念,但隨著資料的長度提升,它會在 訓練過程中遇到梯度爆炸(Exploding gradient)或梯度消散(Vanishing gradient)的問 題 [27, 28],導致模型辨識能力驟降。為了解決這個問題科學家對 RNN 的結構進 行調整,使其能夠處理更長的時間序列資料,而產生出長短期記憶網路 (Long-Short Term Memory Network, LSTM) [29, 30]。

圖7. Long-Short Term Memory 結構圖。

LSTM 由三個 Gate 和兩個 State 組成,結構如圖 7.所示,而這些單元扮演著 不同的角色,各自做的運算如下:

Input Gate:it = σ ( xtWxi + ht-1Whi + bi ) Output Gate:ot = σ ( xtWxo + ht-1Who + bo ) Forget Gate:ft = σ ( xtWxf + ht-1Whf + bf )

Cell State:ct = ft * ct-1 + it * tanh ( xtWxc + ht-1Whc + bc ) Hidden State:ht = ot * tanh ( ct )

13

透過Gate 來決定這個時間點的資料與前一刻 Hidden State 的輸出,要保留多 少比例,然後由Cell State 調整要記憶的特徵,接著由 Hidden State 輸出這個時間 點上的資料特徵,透過兩個State 的輸出串起不同時間上特徵的傳輸。

圖8. Bidirectional Long-Short Term Memory 結構圖。

LSTM 會考量在某個時間點與之前資料的關係,然而時間序列資料不單只與

前段時間有關,例如:文章的撰寫上需要承先啟後,除了前面的文字外,也要考 慮到後面的句子想要表達的內容,對原本的遞迴神經網路進行修改,提出了雙向 遞迴神經網路(Bidirectional Recurrent Neural Network) [31],而將此結構套用到長 短期記憶網路上,形成雙向長短期記憶網路(Bidirectional Long-Short Term Memory Network, Bi-LSTM)。

如圖8.中的架構,Forward Layer 就是基本 LSTM 的運算流程,在此之上加入 了兩個步驟-第一,透過Backward Layer 獲得由後往前時間上的順序關係;第二,

將往前和往後兩種順序得到的特徵結合,通常是直接串接在一起,藉由這樣的方 式加強Bi-LSTM 對時間上關係的敏感度。

14

2-3-3 典型卷積神經網路

卷積神經網路 (Convolution Neural Network, CNN) [32] 透過複數個過濾器 (Kernel),在資料上擷取特徵,並且能夠根據輸入資料形態的不同,調整這些過 濾器的維度數,例如:1 維卷積層處理時間序列資料、2 維卷積層處理平面圖 形、3 維卷積層處理 3D 圖形或是影片,這樣的結構使 CNN 有很大的彈性。

從圖 9.能知道,二維 CNN 每層輸出都是二維度的特徵圖,專門學習圖形資 料的特徵,除了圖片中做為目標的物件外,還能夠學習物件在圖片中的位置,甚 至是與其他物件的關聯性。

圖9. 二維 CNN 模型圖。

圖10.則是一維 CNN 結構的視覺化,與圖 9.比較,很明顯能看出在卷積核 及輸入資料上的不同,由於無法像遞迴神經網路直接處理時間序列資料,在使 用上需要先經過Sliding Window 處理,將原本一段時間的資料,轉換成數個相 同時間長度的資料,方能用CNN 來處理,將對空間特徵擷取的能力,應用到連 續手勢辨識上。

15

圖10. 一維 CNN 模型圖。

從運算的角度上,時間序列資料的複雜度比圖形資料低,而一維CNN 的參 數量也比較少,所以在訓練時相對二維的模型更加容易。

2-3-4 PairNet

為了提升一維 CNN 的效能,在傳統的模型上進行修改並加入不同的結構,

產生圖11.中的 PairNet [33] 。

圖11. PairNet 模型架構圖。

16

除了第一層使用 1x3 大小的過濾器,並且步伐設為 1 的交疊式(Overlapping) 卷積層,第二到五層都使用 1x2 大小並且步伐為 2 的非交疊式(Non-overlapping) 卷積運算,透過這樣的結構提高網路層的可見範圍(Receptive Field),當可見範圍

提高時便能使模型在萃取特徵時,能夠接觸到原始特徵圖的範圍越大,這意味著 學習到的權重更加接近圖片特徵的分布。

從圖 11.中可以看到在進到第 7 層的全連接前,產生了 3 顆樹狀結構,為能 夠有效統合不同顆樹狀結構之間的特徵,使用全域平均池化層(Global Average Pooling)取代對同一個特徵圖運算的平均池化層(Average Pooling),在邏輯上形成

類似聚合 3 個不同模型的效果。上述的設計使 PairNet 有著許多優點-第一,使 用非交疊式卷積層降低的模型參數量,因此與交疊式卷積層相比較不會產生過度 擬合(Overfitting)的現象;第二,在相同大小的輸入下,PairNet 能夠使用更少的模 型層數與更低的參數量,減少運算所需的資源;第三,CNN 無法做到像 RNN 結

構中,對時間概念上的記憶,透過 PairNet 的結構越深層能夠擁有更大的可見範 圍,使卷積層能夠學習到不同尺度手勢的特徵。

17

2-3-5 ResNet (Deep Residual Network)

深度學習模型為了能夠解決更複雜的問題,會使用增加深度的方式來讓模型 能夠看更多不同尺度的特徵,但是在加深網路上遇到了瓶頸,這個問題將會嚴重 限制深度學習的發展,因此才會有ResNet [34, 35] 的結構被提出來。

ResNet 論文中提出當他們想要透過提高神經網路深度,來增加模型辨識能力

時,換來的卻是56 層的模型辨識率比 22 層的模型低,而且是在訓練集與測試集 上都發生這樣的現象,說明了問題不是因為參數提高導致的過度擬合(Overfitting),

他們稱此狀況為退化 (Degradation) 問題,也就是辨識率達到飽和,甚至變得比改

變前還要更差。

為解決模型退化問題,Kaiming He 等人提出了圖 12.中的架構,將淺層的特

徵透過Shortcut 的形式直接傳遞到深層的地方,中間不經過任何運算,因此不會 有任何參數最佳化的問題來阻擋特徵傳遞。而這樣的結構在訓練階段能讓特徵更 有效地傳遞,結合不同深度的特徵來學習,另外更重要的是在調整參數階段的反 向傳播運算 (Backpropagation) 上,這樣的設計解決梯度消失與梯度退化的問題,

使得很深的模型能夠更容易地被訓練。

18

圖 12. ResNet 基本單元結構。左圖為典型卷積神經網路層結構,右圖為加入 Residual Learning 後的結構

ResNet 的論文中提出許多不同深度的模型,例如:32 層、56 層、110 層等,

結果證明深度與模型辨識能力終成正比,越深層的模型能夠獲取更高的辨識率,

甚至還提出超過1000 層的模型,但當使用更深的模型 (例如:1202 層) 還是會遇 到相同的問題,不過 ResNet 的殘差式學習 (Residual Learning) 結構確實解決了 深度的限制,使科學家能夠透過調整深度有效解決問題。

19

2-3-6 GoogLeNet (Google Inception Network)

一般的 CNN 是透過縱向堆疊不同卷積核大小及輸出維度的卷積層,藉此讓 模型學習不同尺度大小特徵,但要如何得知現在選擇的卷積核大小就是最佳的呢?

為解決這個問題,Google 在 2014 提出在同一層中整合不同大小卷積核的 GoogLeNet [36],其中核心結構 Inception 結構如圖 13.所示。

圖13. Inception 結構圖。

Inception 採用 1x1、3x3 和 5x5 大小的卷積層,以及 3x3 大小的最大池化層 (Max Pooling),為了整合運算後的結果,加入了 1x1 的卷積層,對輸出的維度進

Inception 採用 1x1、3x3 和 5x5 大小的卷積層,以及 3x3 大小的最大池化層 (Max Pooling),為了整合運算後的結果,加入了 1x1 的卷積層,對輸出的維度進

相關文件