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

2021-01-11 AI科技大本營

作者丨ARAVIND PAI

編譯 | 火火醬,責編丨Carol

為什麼選擇深度學習?

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

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

深度學習中不同的神經網絡(如卷積神經網絡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)

相關焦點

  • 理解神經網絡:從神經元到RNN、CNN、深度學習
    雖然是一個近似的形式,但非線性的概念是模型精確的重要本質。2. sigmoid函數在整個過程中是可微的,因此可以與梯度下降和反向傳播方法一起使用,以計算不同層的權重。3. 假設一個因變量服從一個sigmoid函數的固有假設的高斯分布的自變量,這是一個一般分布,我們可以獲得許多隨機發生的事件,這是一個好的的一般分布開始。
  • 入門| CNN也能用於NLP任務,一文簡述文本分類任務的7個模型
    參與:李詩萌、路 本文介紹了用於文本分類任務的 7 個模型,包括傳統的詞袋模型、循環神經網絡,也有常用於計算機視覺任務的卷積神經網絡,以及 RNN + CNN 本文是我之前寫過的一篇基於推特數據進行情感分析的文章(https://ahmedbesbes.com/sentiment-analysis-on-twitter-using-word2vec-and-keras.html)的延伸內容。那時我建立了一個簡單的模型:基於 keras 訓練的兩層前饋神經網絡。
  • 深度學習概述:NLP vs CNN
    最初的人工智慧和深度學習算法比較簡單,就像我們所知的簡單感知器模型和單層神經網絡一樣。隨著時間的推移和更加專注的研究,我們已經擁有了具有多層結構的複雜神經網絡。一些公司在他們的軟體和服務中使用了LSTMs、GANs、變分自編碼器等算法。本文在以下部分列出了人工智慧領域當前最熱門的技術以及正在研究這些熱門技術的公司。
  • 從R-CNN到YOLO,一文帶你了解目標檢測模型(附論文下載)
    主要突破是引入感興趣區域池化(ROI Pooling),以及將所有模型整合到一個網絡中。https://github.com/apple2373/chainer-simple-fast-rnnhttps://github.com/zplizzi/tensorflow-fast-rcnn這裡還有一個利用對抗學習改進目標檢測結果的應用:http://abhinavsh.info/papers/pdfs/adversarial_object_detection.pdf
  • NLP三大特徵提取器全梳理:RNN vs CNN vs Transformer
    RNN(循環神經網絡)RNN 與 CNN(卷積神經網絡)的關鍵區別在於,它是個序列的神經網絡,即前一時刻的輸入和後一時刻的輸入是有關係的。RNN 結構下圖是一個簡單的循環神經網絡,它由輸入層、隱藏層和輸出層組成。RNN 的主要特點在於 w 帶藍色箭頭的部分。
  • 深度學習 vs. 概率圖模型 vs. 邏輯學
    概率,統計和圖模型(「測量」機)概率方法在人工智慧是用來解決問題的不確定性。《人工智慧:一種現代方法》一書的中間章節介紹「不確定知識與推理」,生動地介紹了這些方法。如果你第一次拿起AIMA,我建議你從本節開始閱讀。如果你是一個剛剛接觸AI的學生,不要吝嗇在數學下功夫。
  • 今日Paper|深度循環神經網絡;PoseNet3D;AET vs. AED;光場視差估計等
    目錄使用混合精度的方法在GPU集群上進行深度循環神經網絡的訓練PoseNet3D:無監督的3D人體形狀和姿態估計AET vs.AED:無監督表示學習通過自編碼變換而不是自編碼數據基於注意力的視點選擇網絡用於光場視差估計基於CNN的中文lexicon rethinking NER模型使用混合精度的方法在GPU集群上進行深度循環神經網絡的訓練論文名稱:Training
  • Keras vs PyTorch:誰是第一深度學習框架?
    在 Keras 與 PyTorch 的對比中,作者還給出了相同神經網絡在不同框架中性能的基準測試結果。目前在 GitHub 上,Keras 有超過 31,000 個 Stars,而晚些出現的 PyTorch 已有近 17,000 個 Stars。
  • 用RNN和TensorFlow創作自己的《哈利波特》小說
    嘆氣,你不是一個人。這麼久了,我還是沉迷於哈利波特的魔法世界。最近我開始學習神經網絡,著迷於深度學習的強大創造力。靈光乍現,我為什麼不把它們融合在一起呢?因此,我使用TensorFlow執行了一個簡單的文本生成模型來創作我自己的《哈利·波特》短篇小說。本文將介紹了我為實現它而編寫的完整代碼。
  • 乾貨| 完全圖解RNN、RNN變體、Seq2Seq、Attention機制
    二、經典的RNN結構(N vs N) 在實際應用中,我們還會遇到很多序列形的數據: 如: 序列形的數據就不太好用原始的神經網絡處理了。這就是著名的Char RNN(詳細介紹請參考:The Unreasonable Effectiveness of Recurrent Neural Networks,地址:http://karpathy.github.io/2015/05/21/rnn-effectiveness/。
  • 一圖抵千言:帶你了解最直觀的神經網絡架構可視化
    神經網絡是複雜、多維、非線性的數組運算。如何在避免過於複雜或重複的情況下呈現深度學習模型架構的重要特徵呢?又該以何種方式清晰直觀、啟發性地呈現它們呢?(好看也是加分項!)無論研究還是教學項目對此都沒有固定標準。本文我們就來了解一下可視化整個神經網絡架構和特定模塊的工具和技巧。
  • 人工智慧-深度學習-神經網絡結構MLP,CNN,RNN,LSTM
    卷積神經網絡利用輸入圖片的特點,把神經元設計成三個維度 :width, height, depth(注意這個depth不是神經網絡的深度,而是用來描述神經元的) 。比如輸入的圖片大小是 32 × 32 × 3 (rgb),那麼輸入神經元就也具有 32×32×3 的維度。
  • 神經網絡中避免過擬合5種方法介紹
    本文介紹了5種在訓練神經網絡中避免過擬合的技術。我們可以通過模型在已知的數據(訓練集)中有好的預測結果,但在未知的數據(測試集)中較差的表現來判斷是否存在過擬合。機器學習模型的目的是從訓練集到該問題領域的任何數據集上均有泛化的較好表現,因為我們希望模型能夠預測未知的數據。 在本文中,我將展示5種在訓練神經網絡時避免過擬合的技術。
  • 什麼是人工神經網絡(ANN)?
    當您通過訓練有素的神經網絡運行新圖像時,調整後的神經元權重將能夠提取正確的特徵並準確確定圖像屬於哪個輸出類別。訓練神經網絡的挑戰之一是找到正確數量和質量的訓練示例。而且,訓練大型AI模型需要大量的計算資源。
  • 教程| 如何使用TensorFlow構建、訓練和改進循環神經網絡
    目前有很多人工智慧應用都依賴於循環深度神經網絡,在谷歌(語音搜索)、百度(DeepSpeech)和亞馬遜的產品中都能看到RNN的身影。然而,當我們開始著手構建自己的 RNN 模型時,我們發現在使用神經網絡處理語音識別這樣的任務上,幾乎沒有簡單直接的先例可以遵循。
  • 《GTA5》犀牛套裝vs重甲套裝誰更厲害?它被稱為神奇盔甲
    今天我們就來對比一下這兩套盔甲,看看誰更好。《GTA5》犀牛套裝vs重甲套裝誰更厲害?神器盔甲首先我們來對比一下外觀。犀牛重甲有些風格,普通重甲略顯普通。身體沒有大的變化,手持加特林也是一模一樣,所以傷勢沒有大的變化。如果價格不超過一百萬,我們可以通過掩體研究解鎖這些重型裝甲。不幸的是,這些套裝不能用於任務。《GTA5》犀牛套裝vs重甲套裝誰更厲害?
  • 把CNN裡乘法全部去掉會怎樣?華為提出移動端部署神經網絡新方法
    深度學習模型,尤其是深度卷積神經網絡(DCNN),在多個計算機視覺應用中獲得很高的準確率。但是,在移動環境中部署時,高昂的計算成本和巨大的耗電量成為主要瓶頸。而大量使用乘法的卷積層和全連接層正是計算成本的主要貢獻者。
  • 把CNN裡的乘法全部去掉會怎樣?華為提出移動端部署神經網絡新方法
    深度學習模型,尤其是深度卷積神經網絡(DCNN),在多個計算機視覺應用中獲得很高的準確率。但是,在移動環境中部署時,高昂的計算成本和巨大的耗電量成為主要瓶頸。
  • EEG vs MRI vs fMRI vs fNIRS簡介
    顧名思義,磁鐵是磁共振成像的核心,但強度要高的多-比普通冰箱磁鐵強約1000至3,000倍。MRI產生的磁場與氫原子中的質子相互作用(而我們身體大約有70%的水,這是非常有用的 - 磁體會影響到很多氫原子)。 通常,這些質子的面向是隨機的,但加入磁場後,在磁場的作用下,它們中的很大一部分在同一方向上排列。