CNN vs RNN:CNN和RNN之間的區別

已發表: 2021-02-25

目錄

介紹

在人工智能領域,受人腦啟發的神經網絡被廣泛用於從各種數據中提取和處理複雜信息,以及卷積神經網絡(CNN)和循環神經網絡(RNN)在此類應用中的應用被證明是有用的。

在本文中,我們將了解卷積神經網絡和循環神經網絡背後的概念,了解它們的應用並區分兩種流行的神經網絡類型之間的差異。

向世界頂尖大學學習機器學習培訓獲得碩士、Executive PGP 或高級證書課程以加快您的職業生涯。

神經網絡和深度學習

在我們進入卷積神經網絡和循環神經網絡的概念之前,讓我們了解神經網絡背後的概念以及它如何與深度學習聯繫起來。

近來,深度學習曾經是一個被廣泛應用於許多領域的概念,因此它是當今的熱門話題。 但它被如此廣泛談論的原因是什麼? 為了回答這個問題,我們將了解神經網絡的概念。

簡而言之,神經網絡是深度學習的支柱。 它們是一組由高度互連的元素組成的層,稱為神經元,它們對數據執行一系列轉換,從而產生對數據的自己的理解,我們稱之為術語特徵。

什麼是神經網絡?

我們需要了解的第一個概念是神經網絡。 我們知道人腦是曾經研究過的複雜結構之一。 由於它的複雜性,很難解開它的內部運作,但目前,正在進行多種研究以揭示它的秘密。 這個人腦是神經網絡模型背後的靈感。

根據定義,神經網絡是深度學習的功能單元,它利用這些神經網絡來模擬大腦活動並解決複雜問題。 當輸入數據被饋送到神經網絡時,它通過感知器層進行處理,最後給出輸出。

神經網絡基本上由 3 層組成——

  • 輸入層
  • 隱藏層
  • 輸出層

輸入層讀取輸入神經網絡系統的輸入數據,以供後續人工神經元層進一步預處理。 輸入層和輸出層之間存在的所有層稱為隱藏層。

正是在這些隱藏層中,其中存在的神經元利用加權輸入和偏差,並利用激活函數產生輸出。 輸出層是為給定程序提供輸出的最後一層神經元。

資源

神經網絡如何工作?

現在我們已經了解了神經網絡的基本結構,我們將繼續了解它們是如何工作的。 要了解它的工作原理,我們必須首先了解神經網絡的基本結構之一,即感知器。

感知器是一種形式上最基本的神經網絡。 它是一個簡單的前饋人工神經網絡,只有一個隱藏層。 在感知器網絡中,每個神經元都在正向連接到每個其他神經元。

這些神經元之間的連接被加權,因為在兩個神經元之間傳遞的信息被這些權重加強或減弱。 在神經網絡的訓練過程中,正是這些權重被調整以獲得正確的值。

感知器使用二進制分類器函數,其中將本質上是二進制的變量向量映射到單個二進制輸出。 這也可以用於監督學習。 感知器學習算法的步驟是——

  1. 將所有輸入乘以它們的權重 w,其中 w 是可以初始固定或隨機化的實數。
  2. 將乘積相加得到加權和,∑ wj xj
  3. 一旦獲得輸入的加權和,就應用激活函數來確定加權和是否大於特定閾值,具體取決於所應用的激活函數。 根據閾值條件,輸出被分配為 1 或 0。 這裡的值“-threshold”也指術語偏差,b。

通過這種方式,感知器學習算法可用於激發(值 =1)存在於當今設計和開發的神經網絡中的神經元。 感知器學習算法的另一種表示是——

f(x) = 1,如果 ∑ wj xj + b ≥ 0

0,如果 ∑ wj xj + b < 0

儘管感知器現在沒有被廣泛使用,但它仍然是神經網絡中的核心概念之一。 在進一步的研究中,可以理解,即使是一個感知器中權重或偏差的微小變化也可能將輸出從 1 極大地改變為 0,反之亦然。 這是感知器的主要缺點之一。 因此,開發了更複雜的激活函數,例如 ReLU、Sigmoid 函數,它們僅在人工神經元的權重和偏差中引入適度的變化。

資源

卷積神經網絡

卷積神經網絡是一種深度學習算法,它將圖像作為輸入,為圖像的各個部分分配各種權重和偏差,使它們彼此可區分。 一旦它們變得可微,使用各種激活函數,卷積神經網絡模型可以在圖像處理領域執行多項任務,包括圖像識別、圖像分類、對象和人臉檢測等。

卷積神經網絡模型的基礎是它接收輸入圖像。 輸入圖像可以被標記(例如貓、狗、獅子等)或未標記。 根據這一點,深度學習算法分為兩種類型,即圖像被標記的有監督算法和圖像沒有被賦予任何特定標籤的無監督算法。

對於計算機來說,輸入圖像被視為像素陣列,更常見的是矩陣形式。 圖像大多采用 hxwxd 形式(其中 h = 高度,w = 寬度,d = 尺寸)。 例如,大小為 16 x 16 x 3 的矩陣數組的圖像表示 RGB 圖像(3 代表 RGB 值)。 另一方面,14 x 14 x 1 矩陣陣列的圖像表示灰度圖像。

資源

卷積神經網絡層

如上述卷積神經網絡的基本架構所示,CNN 模型由若干層組成,輸入圖像通過這些層進行預處理以獲得輸出。 基本上,這些層分為兩部分——

  • 前三層包括輸入層、卷積層和池化層,作為特徵提取工具,從輸入模型的圖像中提取基本特徵。
  • 最後的全連接層和輸出層利用特徵提取層的輸出,並根據提取的特徵預測圖像的類別。

第一層是輸入層,其中圖像以矩陣數組的形式輸入卷積神經網絡模型,即 32 x 32 x 3,其中 3 表示圖像是具有相等高度和寬度的 RGB 圖像32 像素。 然後,這些輸入圖像通過卷積層執行卷積的數學運算。

輸入圖像與另一個稱為內核或濾波器的方陣進行卷積。 通過在輸入圖像的像素上一一滑動內核,我們獲得稱為特徵圖的輸出圖像,它提供有關圖像的基本級別特徵(例如邊緣和線條)的信息。

卷積層之後是池化層,其目的是減小特徵圖的大小以降低計算成本。 這是通過幾種類型的池來完成的,例如 Max Pooling、Average Pooling 和 Sum Pooling。

連接(FC) 層是卷積神經網絡模型的倒數第二層,其中層被展平並饋送到 FC 層。 在這裡,通過使用激活函數,如 Sigmoid、ReLU 和 tanH 函數,標籤預測發生並在最終輸出層中給出

CNN 的不足之處

由於卷積神經網絡在視覺圖像數據中有如此多的有用應用,CNN 有一個小缺點,即它們不能很好地處理一系列圖像(視頻),並且無法解釋時間信息和文本塊。

為了處理諸如句子之類的時間或順序數據,我們需要從過去數據和序列中的未來數據中學習的算法。 幸運的是,循環神經網絡就是這樣做的。

遞歸神經網絡

循環神經網絡是旨在解釋時間或順序信息的網絡。 RNN 使用序列中的其他數據點來做出更好的預測。 他們通過接收輸入並重用序列中先前節點或後續節點的激活來影響輸出來做到這一點。

資源

由於它們的內部記憶,循環神經網絡可以記住重要的細節,例如它們收到的輸入,這使得它們能夠非常精確地預測接下來會發生什麼。 因此,它們是時序數據(如時間序列、語音、文本、音頻、視頻等)的首選算法。 與其他算法相比,循環神經網絡可以對序列及其上下文形成更深入的理解。

循環神經網絡如何工作?

理解循環神經網絡工作的基礎與卷積神經網絡相同,即簡單的前饋神經網絡,也稱為感知器。 此外,在循環神經網絡中,上一步的輸出作為當前步驟的輸入。 在大多數神經網絡中,輸出通常獨立於輸入,反之亦然,這是 RNN 與其他神經網絡的基本區別。

資源

因此,RNN 有兩個輸入:現在和最近的過去。 這很重要,因為數據序列包含有關接下來會發生什麼的關鍵信息,這就是為什麼 RNN 可以做其他算法做不到的事情的原因。 循環神經網絡的主要和最重要的特徵是隱藏狀態,它可以記住有關序列的一些信息。

循環神經網絡有一個內存,可以存儲有關已計算內容的所有信息。 通過對每個輸入使用相同的參數並對所有輸入或隱藏層執行相同的任務,可以降低參數的複雜性。

CNN和RNN之間的區別

卷積神經網絡遞歸神經網絡
在深度學習中,卷積神經網絡(CNN 或 ConvNet)是一類深度神經網絡,最常用於分析視覺圖像。 循環神經網絡 (RNN) 是一類人工神經網絡,其中節點之間的連接沿時間序列形成有向圖。
它適用於像圖像這樣的空間數據。 RNN 用於時間數據,也稱為順序數據。
CNN 是一種前饋人工神經網絡,具有多層感知器的變體,旨在使用最少的預處理。 與前饋神經網絡不同,RNN 可以使用其內部存儲器來處理任意輸入序列。
CNN被認為比RNN更強大。 與 CNN 相比,RNN 包含較少的功能兼容性。
該 CNN 接受固定大小的輸入並生成固定大小的輸出。 RNN 可以處理任意輸入/輸出長度。
CNN 是圖像和視頻處理的理想選擇。 RNN 是文本和語音分析的理想選擇。
應用包括圖像識別、圖像分類、醫學圖像分析、人臉檢測和計算機視覺。 應用包括文本翻譯、自然語言處理、語言翻譯、情感分析和語音分析。

結論

因此,在這篇關於兩種最流行的神經網絡類型——卷積神經網絡和循環神經網絡之間的區別的文章中,我們了解了神經網絡的基本結構,以及 CNN 和 RNN 的基礎知識,最後總結了一個將兩者與它們在現實世界中的應用進行簡要比較。

如果您有興趣了解有關機器學習的更多信息,請查看 IIIT-B 和 upGrad 的機器學習和 AI 執行 PG 計劃,該計劃專為工作專業人士設計,提供 450 多個小時的嚴格培訓、30 多個案例研究和作業、IIIT -B 校友身份,5 個以上實用的實踐頂點項目和頂級公司的工作協助。

為什麼CNN比RNN快?

CNN 比 RNN 更快,因為它們旨在處理圖像,而 RNN 旨在處理文本。 雖然 RNN 可以被訓練來處理圖像,但它們仍然很難將更接近的對比特徵分開。 例如,如果你有一張有眼睛、鼻子和嘴巴的臉,RNN 很難確定首先顯示哪個特徵。 CNN 使用點網格,通過使用算法,可以訓練它們識別形狀和模式。 CNN 在圖像分類方面優於 RNN; 它們比 RNN 更快,因為它們計算簡單,並且更擅長對圖像進行排序。

RNN 是做什麼用的?

循環神經網絡 (RNN) 是一類人工神經網絡,其中單元之間的連接形成有向循環。 一個單元的輸出變成另一個單元的輸入,以此類推,就像一個神經元的輸出變成另一個神經元的輸入一樣。 RNN 已成功用於執行複雜的任務,例如語音識別和機器翻譯,這些任務很難用標準方法執行。

什麼是 RNN,它與前饋神經網絡有何不同?

循環神經網絡 (RNN) 是一種用於處理順序數據的神經網絡。 循環神經網絡由一個輸入層、一個或多個隱藏層和一個輸出層組成。 隱藏層旨在學習輸入數據的內部表示,然後將其作為外部表示呈現給輸出層。 RNN 在反向傳播的幫助下進行訓練。 RNN 經常與前饋神經網絡 (FNN) 進行比較。 雖然 RNN 和 FNN 都可以學習數據的內部表示,但 RNN 能夠學習 FNN 無法做到的長期依賴關係。