【AI60問】Q37深度學習有哪些主要的模型?

by 提拔我園丁
緯育TibaMe AI小教室-Q37深度學習有哪些主要的模型?

深度學習創造出各種模型,其中許多人會納悶DNN、CNN、RNN這幾個網路有什麼不同?作用差別為何?彼此之間的關係?

  • 大部分神經網路可以用深度(depth)和連接結構(connection)來定義
  • 神經網路也可以分為有監督的神經網路、無/半監督學習的神經網路

以下將簡單針對網路、應用場景,來介紹主流的4種神經網路。

圖 37-1 深度神經網路與感知機關係

一、類神經網路(Artificial Neural Networks)和深度神經網路(Deep Neural Networks)

從最早的根源來看,神經網路的基礎模型是感知機(Perceptron),因此神經網路ANN也可以稱作多層感知機(Multi-layer Perceptron),簡稱MLP。

*感知機:最簡單、古老的神經元模型。
接收一些輸入,把它們加總,通過激活函數來傳遞到輸出層。

那麽多層感知機,是幾層?

  • 淺層神經網路SNN:1至2個隱藏層
  • 深度學習DNN:5層以上

一般來說,有1至2個隱藏層的神經網路即可以稱作多層,更精準能稱為(淺層)神經網路(Shallow Neural Networks)。而隨著隱藏層的增加,更深層的、超過5層的神經網路就叫做深度學習(DNN)。但深度只是一個商業概念,有些業界也會把3層隱藏層也稱為「深度學習」,在機器學習領域,通常將深度Deep是有超過5-7層的隱藏層。

神經網路的結構指的是「神經元」之間如何連接,它可以是任意深度。如下圖37-2為例,可以看到連接結構很多元。

另外,卷積網路(CNN)和循環網路(RNN)通常不加Deep在名字中的原因,它們的結構一般都較深,因此不需要特別指明深度。想對比的,自編碼器(Auto Encoder)可以很淺也可以很深的網路。所以,目前會看到大家使用Deep Auto Encoder 來特別指明其深度。

圖37-2 神經網路的結構靈活多樣

應用場景

而全聯接的前饋深度神經網路(Fully Connected Feed Forward Neural Networks),也就是DNN,它適用大部分的分類(Classification)任務,如:數字識別。可是在一般的現實場景中,很少有那麽大的數據量來支持DNN,因此,純粹的全連接網路應用性並不強。

二、循環神經網路(Recurrent Neural Networks)和遞歸神經網路(Recursive Neural Networks)

雖然這兩種網路都稱為RNN,但他們的結構是不同的。會將兩者放在一起的原因是,他們都可以處理有序列的問題,如:時間序列。

舉例來說,想預測股票走勢,使用RNN比普通的DNN效果更好,因為股票走勢與時間相關,會牽扯到今天價格、昨天、上週、上個月,而RNN具有「記憶」能力,能夠模擬數據之間的依賴關係(Dependency)。為了加強記憶能力,開發各種變型體,如:著名的Long Short-term Memory(LSTM),是來解決「長期及遠距離的依賴關係」。

因此,另一個循環網路的變種—雙向循環網路(Bi-directional RNN),也是現階段自然語言處理和語音分析中的重要模型。開發它的原因是語言/語音的構成,取決於上下文,就是「現在」仰賴「過去」和「未來」。單向的循環網路則是僅專注從「過去」推出「現在」,但無法對「未來」的依賴性做出有效的建型。

遞歸神經網路(Recursive Neural Networks) 和循環神經網路(Recurrent Neural Networks)不同,主要是它的計算圖結構是「樹狀結構」而非網狀結構。遞歸循環網路的目標和循環網路相似,也是想解決數據間的長期依賴問題。但遞歸神經網路比較好的特點是用樹狀可以降低序列的長度,不過也和其他樹狀數據結構一樣,如何構造最佳的樹狀結構如平衡樹/平衡二叉樹並不簡單。

應用場景

語音分析、文字分析、時間序列分析。主要的重點就是數據間存在前後依賴關係,具有序列關係。
一般首選LSTM,如:預測對象同時取決於過去和未來,可以選擇雙向結構,如雙向LSTM。

三、 卷積神經網路(Convolutional Neural Networks)

卷積網路是很好的計算機科學借鑒神經科學的例子,非常有名、且也為深度學習打下良好口碑。它的精髓其實就是在多個空間位置上共用參數。

卷積運算是一種數學計算,和矩陣相乘不同,卷積運算可以實現稀疏相乘和參數共用,可以壓縮輸入端的維度。和普通DNN不同,CNN並不需要爲每一個神經元所對應的每一個輸入數據提供單獨的權重。與池化(pooling)相結合,CNN能被理解爲一種公共特徵的提取過程,但不只是CNN,大部分神經網路都可以被認爲神經元被用於特徵提取。

*卷積(Convolutional)及池化(Pooling) :
兩層layer,用以維持形狀資訊,且避免參數大幅增加。
圖37-3 SRN與LSTM循環神經網路

以圖 37-3爲例,卷積、池化的過程將一張圖片的維度進行了壓縮。從圖上能看出卷積網路就是適合處理結構化數據,而該數據在跨區域上仍彼此有關。

應用場景

雖然一般都把CNN和圖片串連在一起,但其實CNN能處理大部分格狀結構化數據(Grid-like Data)。再舉個例子,圖片的圖元是二維的格狀數據,時間序列在等時間上抽取相當於一維的的格狀數據。而影片數據可以理解爲對應影片的幀寬度、高度、時間的這三維數據。

四、生成式對抗網路(Generative Adversarial Networks)

生成式對抗網路同時訓練兩個模型,內核哲學取自於博弈論。

簡單來說,GAN訓練兩個網路:

  • 生成網路用於生成圖片使其與訓練數據相似
  • 判別式網路用於判斷生成網路中得到的圖片是否是真的是訓練數據還是僞裝的數據

生成網路一般有逆卷積層(deconvolutional layer),而判別網路一般就是上面介紹的CNN。下圖37-4 左邊是生成網路,右邊則是判別網路,這兩個雙網路,一直互相傷害。

生成網路試著生成一些數據,而判別網路接收樣本數據後,試著分辨出哪些是樣本、哪些是生成。只要能夠保持兩種神經網路訓練間的平衡,在不斷進化,這種神經網路可以生成實際圖像。

圖37-4 常見卷積神經網路架構

GAN的實際表現比我們預期的要好,而且所需的參數,遠比按照正常方法訓練神經網路,可以更有效率的學到數據分佈。另一個常常被放在GAN討論的模型叫做變分自編碼器(Variational Auto-encoder)。

應用場景

現階段的GAN,主要是在圖像領域,但它有很大的潛力推廣到聲音、影片領域。

想成為爬蟲工程師 、資料分析師 、資料工程師 、資料分析領域專家 、人工智慧產品經理嗎?還是你的公司正需要培養此領域人才呢?

點我了解 AI資料科學家-三階段全方位學程班 👉 https://www.tibame.com/eventpage/ai_datascientist 

每日5分鐘, 提拔我園丁陪你快速添補AI/資料科學知識與技能。

若想了解更多AI/資料科學的小知識、及各產業的相關應用,歡迎訂閱TibaMe FB及部落格,或有其他想了解的主題歡迎在下方留言讓我們知道唷!

參考資料

分享這篇文章:
0 留言
1

您也許會喜歡

發佈留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料