CNN vs RNN vs ANN——3種神經網絡分析模型,你pick誰?

作者丨ARAVIND PAI

來源 | 大數據與人工智能(ID: ai-big-data)


為什麼選擇深度學習?


這個問題很有意義。機器學習算法並沒有什麼不足之處,那麼為什麼數據科學家要選擇深度學習算法呢?神經網路能夠提供給我們哪些傳統機器學習提供不了的功能呢?


我還常常會見到另一個問題——神經網絡需要強大的計算能力,那麼當問題中只是存在一些細微差別時,使用神經網絡真的值得嗎?問題的答案很簡單——值得!


深度學習中不同的神經網絡(如卷積神經網絡CNN、循環神經網絡RNN、人工神經網絡ANN)正在改變著我們與世界之間的交互方式。這些不同類型的神經網絡是深度學習革命的核心,為無人機、自動駕駛汽車、語音識別等應用提供了推動力。


CNN vs RNN vs ANN——3種神經網絡分析模型,你pick誰?


人們自然會聯想到——機器學習算法難道不能做到嗎?以下是研究人員和專家們傾向於選用深度學習而非機器學習的兩個關鍵原因:

  • 決策邊界
  • 特徵工程


那讓我來解釋一下吧!


  • 機器學習vs.深度學習:決策邊界


每種機器學習算法都會學習從輸入到輸出的映射。換句話說,該算法會學習一個僅有幾組權重的函數:


Input -> f(w1,w2…..wn) -> Output


在分類問題中,算法將學習將兩種類別分開的函數——這被稱為決策邊界(Decision boundary)。決策邊界能夠幫助我們確定給定數據點屬於正向類還是負向類。


例如,在邏輯迴歸的情況下,學習函數就是一個試圖將兩種類別分開的Sigmoid函數。

CNN vs RNN vs ANN——3種神經網絡分析模型,你pick誰?

邏輯迴歸的決策邊界


如上圖所示,邏輯迴歸算法要學習線性決策邊界。它不能學習下圖這種非線性數據的決策邊界:


CNN vs RNN vs ANN——3種神經網絡分析模型,你pick誰?

非線性數據


同樣,一種機器學習算法是無法學習所有函數的。這就限制了算法能夠解決的有關複雜關係的問題。


  • 機器學習vs.深度學習:特徵工程


特徵工程是模型構建過程中的關鍵步驟。此過程分為兩步:


1. 特徵提取(Feature extraction)

2. 特徵選擇(Feature selection)


在特徵提取中,我們提取問題陳述中所需的所有特徵;在特徵選擇中,我們選擇能夠提高機器學習或深度學習模型性能的重要特徵。


想一想圖像分類問題。要從圖像中手動提取特徵的話,就要對該主題和領域有深入的瞭解。這是一個及其耗時的過程。有了深度學習,我們就可以實現特徵工程自動化了!


CNN vs RNN vs ANN——3種神經網絡分析模型,你pick誰?

機器學習和深度學習間的比較


既然我們已經瞭解了深度學習的重要性,以及它為何能超越傳統的機器學習算法,那麼接下來就讓我們進入本文的關鍵部分。我們將討論在解決深度學習問題時會用到的不同類型的神經網絡。


CNN vs RNN vs ANN——3種神經網絡分析模型,你pick誰?

深度學習中不同類型的神經網絡


本文將重點討論3種重要類型的神經網絡,它們構成了深度學習中大多數預訓練模型的基礎:


  • 多層感知器Multi-Layer Perceptron (MLP) / 人工神經網絡Artificial Neural Networks (ANN)
  • 卷積神經網絡Convolution Neural Networks (CNN)
  • 循環神經網絡Recurrent Neural Networks (RNN)

下面讓我們詳細瞭解一下這幾種神經網絡吧!


CNN vs RNN vs ANN——3種神經網絡分析模型,你pick誰?

多層感知器(MLP)


1、什麼是MLP?為什麼要使用MLP?


單個感知器(或神經元)可以被想象成邏輯迴歸。多層感知器(MLP),是每一層上的一組多個感知器。因為輸入僅單方向地向前處理,所以MLP也被稱為前饋神經網絡( Feed-Forward Neural network):


CNN vs RNN vs ANN——3種神經網絡分析模型,你pick誰?

多層感知器


如圖所示,MLP由三層組成——輸入層、隱藏層和輸出層。輸入層僅接收輸入,隱藏層處理輸入,輸出層生成結果。基本上,每一層都要訓練權值。


MLP可用於解決與以下幾點相關的問題:

  • Tabular data 列表數據
  • Image data 圖像數據
  • Text data 文本數據


2、多層感知器的優勢


多層感知器能夠學習任意非線性函數。因此,這些網絡被普遍稱為通用函數逼近器(Universal Function Approximator)。MLP能夠學習將任何輸入映射到輸出的權重。


通用逼近背後的主要原因之一是激活函數(activation function)。激活函數將非線性特徵引入網絡中,有助於網絡學習輸入和輸出之間的複雜關係。


CNN vs RNN vs ANN——3種神經網絡分析模型,你pick誰?

感知器(點擊查看動圖)


如圖所示,每個神經元的輸出都是輸入加權和的激活。但是,如果沒有激活函數會怎樣呢?該網絡僅學習線性函數,但不學習複雜關係,原因是:激活函數是多層感知器的核心!


3、多層感知器面臨的挑戰


  • 在利用MLP解決圖像分類問題時,首先要將二維圖像轉換成一維向量,然後再對模型進行訓練。這樣做有兩個缺點:

(1)隨著圖像尺寸的增大,可訓練參數的數量會急劇增加。


CNN vs RNN vs ANN——3種神經網絡分析模型,你pick誰?

MLP:圖像分類


在上述情況下,如果圖像的大小為224*224,那麼在只有4個神經元的第一個隱藏層中的可訓練參數就是602112,這可不是個小數目!


(2)MLP會丟失圖像的空間特徵。空間特徵指的是圖像中像素的排列。我會在以下幾節中詳細討論這一問題。


  • 在所有這些神經網絡中,存在一個共同問題:梯度消失與爆炸(Vanishing and Exploding Gradient)。此問題與反向傳播(backpropagation)算法有關。反向傳播算法通過尋找梯度來更新神經網絡的權值。

反向傳播


因此,在非常深的神經網絡(具有大量隱藏層的網絡)中,梯度會隨著向後傳播而消失或爆炸,從而導致梯度消失與爆炸(Vanishing and Exploding Gradient)。


  • MLP無法捕獲處理序列數據所需的輸入數據中的順序信息。

現在,讓我們來看看如何通過兩種不同的架構——循環神經網絡(RNN)和卷積神經網絡(CNN)來克服MLP的侷限性。


CNN vs RNN vs ANN——3種神經網絡分析模型,你pick誰?

循環神經網絡(RNN)


1、什麼是RNN?為什麼要使用RNN?


我們先從架構角度瞭解一下RNN和MLP之間的區別:


MLP隱藏層上的環形約束轉向RNN

CNN vs RNN vs ANN——3種神經網絡分析模型,你pick誰?


如上圖所示,RNN在隱藏狀態上有一個循環連接,此循環約束能夠確保在輸入數據中捕捉到順序信息。


循環神經網絡能夠幫助我們解決以下相關問題:

  • 時間序列數據
  • 文本數據
  • 音頻數據


2、循環神經網絡(RNN)的優勢

  • RNN能夠捕捉數據中出現的順序信息,例如,預測時文本中單詞之間的依賴關係:
CNN vs RNN vs ANN——3種神經網絡分析模型,你pick誰?

Many2Many Seq2Seq 模型


如圖所示,每個時間步長的輸出(o1, o2, o3, o4)不僅取決於當前單詞,還取決於先前的單詞。


  • RNN跨不同的時間步長共享參數。這通常被稱為參數共享(Parameter Sharing)。這將減少訓練參數並降低計算成本。
CNN vs RNN vs ANN——3種神經網絡分析模型,你pick誰?

展開的RNN


如上圖所示,U、W、V 這3個權值矩陣是所有時間步長中共享的權值矩陣。


3、循環神經網絡(RNN)面臨的挑戰


深度RNN(具有大量時間步長的RNN)也存在梯度消失和爆炸問題,這是在所有不同類型神經網絡中常見的問題。


CNN vs RNN vs ANN——3種神經網絡分析模型,你pick誰?

梯度消失(RNN)


如圖所示,在最後一個時間步長處計算的梯度在到達初始時間步長時消失。


CNN vs RNN vs ANN——3種神經網絡分析模型,你pick誰?

卷積神經網絡(CNN)


1、什麼是CNN?為什麼要使用CNN?


卷積神經網絡(CNN)目前在深度學習領域非常熱門。這些CNN模型被應用於不同的應用和領域,在圖像和視頻處理項目中尤其普遍。


CNN的構建塊是過濾器,也就是內核。內核的作用是利用卷積運算從輸入中提取相關特徵。我們可以試著瞭解一下使用圖像作為輸入數據的過濾器的重要性。將圖像與過濾器進行卷積會生成一個特徵圖(feature map):


CNN vs RNN vs ANN——3種神經網絡分析模型,你pick誰?

卷積的輸出


儘管引入卷積神經網絡的初衷是要解決與圖像數據相關的問題,但它們在順序輸入上的表現也十分出色。


2、卷積神經網絡(CNN)的優勢

  • CNN能夠自動學習過濾器。這些過濾器有助於從輸入數據中提取正確的相關特徵。


CNN從圖像中捕捉空間特徵(spatial features)。空間特徵指的是像素在圖像中的排列以及它們之間的關係。它們能夠幫助我們準確地識別物體、物體位置、以及它與圖像中其他物體的關係。


CNN vs RNN vs ANN——3種神經網絡分析模型,你pick誰?


在上面的圖像中,我們可以通過查看特定的特徵(例如眼睛、鼻子、嘴巴等)輕鬆識別出圖像是一張人臉。我們還可以看到這些特徵在圖像中的排列方式。這正是CNN能夠捕捉的內容。


3、比較不同類型的神經網絡


下面,我總結了一些不同神經網絡之間的區別:


CNN vs RNN vs ANN——3種神經網絡分析模型,你pick誰?


在本文中,我們討論了深度學習的重要性,並瞭解了不同類型的神經網絡間的差異。我一直相信知識共享才是學習的最終形式,因此我也期待聽到更多來自你們的不同的聲音!歡迎評論區與我們分享你的看法!


https://www.analyticsvidhya.com/blog/2020/02/cnn-vs-rnn-vs-mlp-analyzing-3-types-of-neural-networks-in-deep-learning



分享到:


相關文章: