【譯】何時使用MLP,CNN和RNN神經網絡

該篇博客譯自Jason大神的https://machinelearningmastery.com/when-to-use-mlp-cnn-and-rnn-neural-networks/,正好我最近用到如何初步設計神經網絡結構的問題,這篇博客正好給了我一定的參考,分享給大家看一下。


                            什麼神經網絡適合你的預測建模問題?

對於深層學習領域的初學者來說,知道使用哪種類型的網絡可能是困難的。每天都有那麼多類型的網絡可供選擇,並且有新的方法被公佈和討論。更糟糕的是,大多數神經網絡足夠靈活,即使用於錯誤的數據類型或預測問題,它們也能夠工作(進行預測)。
在這篇文章中,你將發現三種主要人工神經網絡的建議用途。
讀完這篇文章,你會知道:

  1. 在處理預測建模問題時,需要關注哪種類型的神經網絡。
  2. 何時使用、不使用,以及可能的嘗試在項目中使用MLP、CNN和RNN。
  3. 在選擇模型之前,要考慮使用混合模型,並清楚地瞭解項目目標。

我們開始吧。


概述


這篇文章分爲五個部分,它們是:

  1. 要關注什麼神經網絡?
  2. 何時使用多層感知器?
  3. 何時使用卷積神經網絡?
  4. 何時使用遞歸神經網絡?
  5. 混合網絡模型

要關注什麼神經網絡?

深度學習是使用現代硬件的人工神經網絡的應用。
它允許開發、訓練和使用比先前認爲可能更大(更多層)的神經網絡。
研究人員提出了成千上萬種特定的神經網絡作爲對現有模型的修改或調整。有時完全是新的方法。
作爲一名實踐者,我建議等到模型變得普遍適用時再進行操作。從每天或每週發佈的大量出版物的噪音中,很難弄清楚什麼工作正常。
一般來說,我建議您關注三類人工神經網絡。他們是:

多層感知器(MLP)
卷積神經網絡(CNN)
遞歸神經網絡(RNN)
這三類網絡提供了很大的靈活性,並且經過幾十年的實踐證明,它們在廣泛的問題中是有用的和可靠的。它們也有許多子類型來幫助專門針對預測問題的不同框架和不同數據集的特性。
現在我們已經知道了應該關注哪些網絡,讓我們看看何時可以使用每類神經網絡。

何時使用多層感知器?


多層感知器,簡稱MLP,是神經網絡的經典類型。
它們由一層或多層神經元組成。數據被饋送到輸入層,可能存在一個或多個提供抽象級別的隱藏層,並且在輸出層(也稱爲可見層)上進行預測。
有關MLP的更多細節,請參閱帖子:

MLP適用於分類預測問題,其中輸入被分配一個類或標籤。
它們也適用於迴歸預測問題,其中給定一組輸入對實值量進行預測。數據通常以表格格式提供,如您在CSV文件或電子表格中看到的那樣。

使用MLP用於:
表格式數據集
分類預測問題
迴歸預測問題

它們非常靈活,通常可用於學習從輸入到輸出的映射。
這種靈活性允許將它們應用於其他類型的數據。例如,可以將圖像的像素減少到一長行數據,並將其輸入給MLP。文檔的單詞也可以減少爲一長行數據,並輸入給MLP。即使時間序列預測問題的滯後觀測值也可以減少爲長數據行並輸入給MLP。
因此,如果您的數據不是表格式數據集,例如圖像、文檔或時間序列,那麼我建議至少測試一個MLP。這些結果可以用作比較基準點,以確認其他可能看起來更適合增值的模型。

嘗試MLPs 在:
圖像數據
文本數據
時間序列數據
其他類型的數據

何時使用卷積神經網絡?


卷積神經網絡(CNN)被設計成將圖像數據映射到輸出變量。
它們被證明是如此的有效,以至於對於涉及圖像數據作爲輸入的任何類型的預測問題,它們都是可行的方法。
有關CNN的更多詳細信息,請參閱帖子:

使用CNN的好處是它們開發二維圖像的內部表示的能力。這允許模型學習數據中不同結構中的位置和比例,這對於處理圖像非常重要。

使用CNN用於:
圖像數據
分類預測問題
迴歸預測問題


更一般地,CNN能夠很好地處理具有空間關係的數據。
CNN輸入傳統上是二維的,字段或矩陣,但也可以改變爲一維,允許它開發一維序列的內部表示。
這允許CNN更一般地用於具有空間關係的其他類型的數據。例如,文本文檔中的單詞之間存在順序關係。時間序列的時間步長是有序的關係。
儘管沒有專門針對非圖像數據開發,CNN在諸如情感分析中使用的文檔分類和相關問題方面取得了最先進的結果。

試試CNN:
文本數據
時間序列數據
序列輸入數據

何時使用遞歸神經網絡?


遞歸神經網絡(RNNs)被設計成處理序列預測問題。
序列預測問題有多種形式,最好用所支持的輸入和輸出類型來描述。
序列預測問題的一些示例包括:
一對多:作爲輸入的觀察映射到多個步驟的輸出序列。(也就是用一步觀測值往後預測多步)
多對一:作爲輸入映射到類或數量預測的多個步驟的序列。(多步觀測值預測一個類別或一步)
多對多:作爲輸入的多個步驟的序列,映射到具有多個步驟作爲輸出的序列。(多步觀測值預測多步)
多對多問題通常被稱爲序列對序列,或簡稱seq2seq。
有關序列預測問題類型的詳細信息,請參閱後文:

傳統上,遞歸神經網絡很難訓練。
長短期記憶網絡,或者LSTM,網絡可能是最成功的RNN,因爲它克服了訓練循環網絡的問題,並且反過來已經在廣泛的應用中使用。
有關RNN的詳細信息,請參閱帖子:

一般來說,RNN和LSTM在處理單詞和段落序列(通常稱爲自然語言處理)時獲得了最大的成功。
這包括文本序列和以時間序列表示的口語序列。它們也被用作需要序列輸出的生成模型,不僅用於文本,還用於生成手寫等應用程序。

使用RNN用於:
文本數據
語音數據
分類預測問題
迴歸預測問題
生成模型
如您在CSV文件或電子表格中看到的,遞歸神經網絡不適合於表格式數據集。它們也不適合於圖像數據輸入。
不要使用RNN用於:
表格數據
圖像數據
RNN和LSTM已經在時間序列預測問題上進行了測試,但至少可以說結果很差。自迴歸方法,甚至線性方法通常表現得更好。LSTM常常被應用於相同數據的簡單MLP所超越。
有關此主題的更多信息,請參閱帖子:

然而,它仍然是一個活躍的領域。
也許試試RNNs:

時間序列數據

混合網絡模型


CNN或RNN模型很少單獨使用。
這些類型的網絡在更廣泛的模型中用作層,該模型還具有一個或多個MLP層。從技術上講,這是一種混合型的神經網絡結構。
也許最有趣的工作來自於將不同類型的網絡混合到混合模型中。
例如,考慮一個模型,該模型使用一個層堆棧,在輸入端有一個CNN,在中間有一個LSTM,在輸出端有一個MLP。這樣的模型可以讀取圖像輸入序列,例如視頻,並生成預測。這叫做CNN LSTM architecture.

網絡類型還可以堆疊在特定的體系結構中以解鎖新功能,例如使用非常深的CNN和MLP網絡的可重用圖像識別模型,這些網絡可以添加到新的LSTM模型中,並用於照片的標題。此外,編碼器-解碼器LSTM網絡,可用於具有不同長度的輸入和輸出序列。
首先要清楚地考慮您和您的團隊從項目中需要什麼,然後尋找滿足您特定項目需求的網絡體系結構(或開發網絡體系結構)。
要獲得幫助您思考數據和預測問題的良好框架,請參閱帖子:

進一步閱讀


如果您希望深入研究,本節將提供關於這個主題的更多資源。


總結


在這篇文章中,您發現了三種主要人工神經網絡的建議用途。
具體來說,你學到了:
在處理預測建模問題時,需要關注哪種類型的神經網絡。
何時使用、不使用,以及可能的嘗試在項目中使用MLP、CNN和RNN。
在選擇模型之前,要考慮使用混合模型,並清楚地瞭解項目目標。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章