作者丨ARAVIND PAI
編譯 | 火火醬,責編丨Carol
來源 | 大資料與人工智能(ID: ai-big-data)
為什麼選擇深度學習?
這個問題很有意義。機器學習算法并沒有什麼不足之處,那麼為什麼資料科學家要選擇深度學習算法呢?神經網路能夠提供給我們哪些傳統機器學習提供不了的功能呢?
我還常常會見到另一個問題——神經網絡需要強大的計算能力,那麼當問題中隻是存在一些細微差别時,使用神經網絡真的值得嗎?問題的答案很簡單——值得!
深度學習中不同的神經網絡(如卷積神經網絡CNN、循環神經網絡RNN、人工神經網絡ANN)正在改變着我們與世界之間的互動方式。這些不同類型的神經網絡是深度學習革命的核心,為無人機、自動駕駛汽車、語音識别等應用提供了推動力。

人們自然會聯想到——機器學習算法難道不能做到嗎?以下是研究人員和專家們傾向于選用深度學習而非機器學習的兩個關鍵原因:
- 決策邊界
- 特征工程
那讓我來解釋一下吧!
- 機器學習vs.深度學習:決策邊界
每種機器學習算法都會學習從輸入到輸出的映射。換句話說,該算法會學習一個僅有幾組權重的函數:
Input -> f(w1,w2…..wn) -> Output
在分類問題中,算法将學習将兩種類别分開的函數——這被稱為決策邊界(Decision boundary)。決策邊界能夠幫助我們确定給定資料點屬于正向類還是負向類。
例如,在邏輯回歸的情況下,學習函數就是一個試圖将兩種類别分開的Sigmoid函數。
邏輯回歸的決策邊界
如上圖所示,邏輯回歸算法要學習線性決策邊界。它不能學習下圖這種非線性資料的決策邊界:
非線性資料
同樣,一種機器學習算法是無法學習所有函數的。這就限制了算法能夠解決的有關複雜關系的問題。
- 機器學習vs.深度學習:特征工程
特征工程是模型建構過程中的關鍵步驟。此過程分為兩步:
1. 特征提取(Feature extraction)
2. 特征選擇(Feature selection)
在特征提取中,我們提取問題陳述中所需的所有特征;在特征選擇中,我們選擇能夠提高機器學習或深度學習模型性能的重要特征。
想一想圖像分類問題。要從圖像中手動提取特征的話,就要對該主題和領域有深入的了解。這是一個及其耗時的過程。有了深度學習,我們就可以實作特征工程自動化了!
機器學習和深度學習間的比較
既然我們已經了解了深度學習的重要性,以及它為何能超越傳統的機器學習算法,那麼接下來就讓我們進入本文的關鍵部分。我們将讨論在解決深度學習問題時會用到的不同類型的神經網絡。
深度學習中不同類型的神經網絡
本文将重點讨論3種重要類型的神經網絡,它們構成了深度學習中大多數預訓練模型的基礎:
- 多層感覺器Multi-Layer Perceptron (MLP) / 人工神經網絡Artificial Neural Networks (ANN)
- 卷積神經網絡Convolution Neural Networks (CNN)
- 循環神經網絡Recurrent Neural Networks (RNN)
下面讓我們詳細了解一下這幾種神經網絡吧!
多層感覺器(MLP)
1、什麼是MLP?為什麼要使用MLP?
單個感覺器(或神經元)可以被想象成邏輯回歸。多層感覺器(MLP),是每一層上的一組多個感覺器。因為輸入僅單方向地向前處理,是以MLP也被稱為前饋神經網絡( Feed-Forward Neural network):
多層感覺器
如圖所示,MLP由三層組成——輸入層、隐藏層和輸出層。輸入層僅接收輸入,隐藏層處理輸入,輸出層生成結果。基本上,每一層都要訓練權值。
MLP可用于解決與以下幾點相關的問題:
- Tabular data 清單資料
- Image data 圖像資料
- Text data 文本資料
2、多層感覺器的優勢
多層感覺器能夠學習任意非線性函數。是以,這些網絡被普遍稱為通用函數逼近器(Universal Function Approximator)。MLP能夠學習将任何輸入映射到輸出的權重。
通用逼近背後的主要原因之一是激活函數(activation function)。激活函數将非線性特征引入網絡中,有助于網絡學習輸入和輸出之間的複雜關系。
感覺器(點選檢視動圖)
如圖所示,每個神經元的輸出都是輸入權重和的激活。但是,如果沒有激活函數會怎樣呢?該網絡僅學習線性函數,但不學習複雜關系,原因是:激活函數是多層感覺器的核心!
3、多層感覺器面臨的挑戰
- 在利用MLP解決圖像分類問題時,首先要将二維圖像轉換成一維向量,然後再對模型進行訓練。這樣做有兩個缺點:
(1)随着圖像尺寸的增大,可訓練參數的數量會急劇增加。
MLP:圖像分類
在上述情況下,如果圖像的大小為224*224,那麼在隻有4個神經元的第一個隐藏層中的可訓練參數就是602112,這可不是個小數目!
(2)MLP會丢失圖像的空間特征。空間特征指的是圖像中像素的排列。我會在以下幾節中詳細讨論這一問題。
- 在所有這些神經網絡中,存在一個共同問題:梯度消失與爆炸(Vanishing and Exploding Gradient)。此問題與反向傳播(backpropagation)算法有關。反向傳播算法通過尋找梯度來更新神經網絡的權值。
反向傳播
是以,在非常深的神經網絡(具有大量隐藏層的網絡)中,梯度會随着向後傳播而消失或爆炸,進而導緻梯度消失與爆炸(Vanishing and Exploding Gradient)。
- MLP無法捕獲處理序列資料所需的輸入資料中的順序資訊。
現在,讓我們來看看如何通過兩種不同的架構——循環神經網絡(RNN)和卷積神經網絡(CNN)來克服MLP的局限性。
循環神經網絡(RNN)
1、什麼是RNN?為什麼要使用RNN?
我們先從架構角度了解一下RNN和MLP之間的差別:
MLP隐藏層上的環形限制轉向RNN
如上圖所示,RNN在隐藏狀态上有一個循環連接配接,此循環限制能夠確定在輸入資料中捕捉到順序資訊。
循環神經網絡能夠幫助我們解決以下相關問題:
- 時間序列資料
- 文本資料
- 音頻資料
2、循環神經網絡(RNN)的優勢
- RNN能夠捕捉資料中出現的順序資訊,例如,預測時文本中單詞之間的依賴關系:
Many2Many Seq2Seq 模型
如圖所示,每個時間步長的輸出(o1, o2, o3, o4)不僅取決于目前單詞,還取決于先前的單詞。
- RNN跨不同的時間步長共享參數。這通常被稱為參數共享(Parameter Sharing)。這将減少訓練參數并降低計算成本。
展開的RNN
如上圖所示,U、W、V 這3個權值矩陣是所有時間步長中共享的權值矩陣。
3、循環神經網絡(RNN)面臨的挑戰
深度RNN(具有大量時間步長的RNN)也存在梯度消失和爆炸問題,這是在所有不同類型神經網絡中常見的問題。
梯度消失(RNN)
如圖所示,在最後一個時間步長處計算的梯度在到達初始時間步長時消失。
卷積神經網絡(CNN)
1、什麼是CNN?為什麼要使用CNN?
卷積神經網絡(CNN)目前在深度學習領域非常熱門。這些CNN模型被應用于不同的應用和領域,在圖像和視訊處理項目中尤其普遍。
CNN的建構塊是過濾器,也就是核心。核心的作用是利用卷積運算從輸入中提取相關特征。我們可以試着了解一下使用圖像作為輸入資料的過濾器的重要性。将圖像與過濾器進行卷積會生成一個特征圖(feature map):
卷積的輸出
盡管引入卷積神經網絡的初衷是要解決與圖像資料相關的問題,但它們在順序輸入上的表現也十分出色。
2、卷積神經網絡(CNN)的優勢
- CNN能夠自動學習過濾器。這些過濾器有助于從輸入資料中提取正确的相關特征。
CNN從圖像中捕捉空間特征(spatial features)。空間特征指的是像素在圖像中的排列以及它們之間的關系。它們能夠幫助我們準确地識别物體、物體位置、以及它與圖像中其他物體的關系。
在上面的圖像中,我們可以通過檢視特定的特征(例如眼睛、鼻子、嘴巴等)輕松識别出圖像是一張人臉。我們還可以看到這些特征在圖像中的排列方式。這正是CNN能夠捕捉的内容。
3、比較不同類型的神經網絡
下面,我總結了一些不同神經網絡之間的差別:
在本文中,我們讨論了深度學習的重要性,并了解了不同類型的神經網絡間的差異。我一直相信知識共享才是學習的最終形式,是以我也期待聽到更多來自你們的不同的聲音!歡迎評論區與我們分享你的看法!
原文:
https://www.analyticsvidhya.com/blog/2020/02/cnn-vs-rnn-vs-mlp-analyzing-3-types-of-neural-networks-in-deep-learning
(*本文由 AI 科技大學營編譯,轉載請聯系微信1092722531)