天天看點

深度學習之全面了解網絡架構

作者:哥廷根數學學派

來自Johonna Pingel,一個專業且逗比的 MathWorks 部落客。

主要探讨以下四個問題:

1. 要進行圖像分類,我應該使用哪種架構?

2. 在時序應用中,我能否重用基于圖像資料訓練的架構?

3. 對于時序回歸,我該如何選擇合适的方法?

4. 對于小型資料集,我應該使用哪種網絡架構?

引言

網絡架構定義了深度學習模型的建構方式,更重要的是定義了它的功能。架構會決定:

  • 模型準确度(網絡架構是影響準确度的衆多因素之一)
  • 模型能預測什麼
  • 模型期望的輸入和輸出
  • 層的組合以及資料如何流經這些層

大部分人會利用已有的成果,從現成的層組合入手開始訓練。畢竟初次嘗試某件事的話,借鑒前人的工作不失為一個好辦法。

相當一段時間以來,深度學習研究人員都在探索不同的網絡架構和層組合。得益于他們的工作,我們有了 GoogLeNet、ResNet、SqueezeNet 等各種網絡,這些架構都取得了很好的效果。

剛起步時,您可以選擇一個解決類似問題的已有架構,在它的基礎上進行建構,而無需從頭開始。

開始接觸深度學習時,可能會遇到以下常見架構:

  • 卷積神經網絡 (CNN):

CNN 通常用來處理圖像輸入資料,但也可以用于其他輸入資料,我将在問題 1 中詳細說明。

  • 循環神經網絡 (RNN):

RNN 包含連接配接,可跟蹤先前資訊以進行未來預測。CNN 假定每個輸入是獨立事件,而 RNN 則可以處理可能互相影響的資料序列。例如在自然語言進行中,前面的單詞會影響後續單詞出現的可能性。

  • 長短期記憶 (LSTM) 網絡:

LSTM 網絡是針對序列和信号資料的常用 RNN。我将在問題 3 中進行詳細介紹。

  • 生成式對抗網絡 (GAN):

盡管下面的問題不會涉及這類網絡,但是 GAN 最近越來越火了。GAN 可以基于現有資料生成新資料(想像一下并非現實真人的人像)。

那麼,接下來就開始回答問題!

我需要一個圖像分類模型。我應該使用哪種架構?

很好的問題。先說結論,您或許可以使用 CNN 進行圖像分類。

原因如下。

我們首先談談 CNN 和 LSTM 網絡分别是什麼,以及它們的常見用途。

1) CNN

當談到卷積神經網絡時,有些人會說“ConvNet”,但我總覺得我自己這樣說會顯得有點裝。

CNN 由許多層組成,但形式上遵循一種“卷積 | ReLU | 池化”的模式,這會一再重複、反反複複。

這類網絡通常很适合處理圖像分類問題,因為它們非常擅長局部空間模式比對,而且在圖像特征提取方面通常也優于其他方法。

别忘了,CNN 的核心是卷積。使用一系列過濾器對輸入圖像進行卷積可以突出圖像中的特征,而不會丢失相鄰像素之間的空間關系。

CNN 有很多變體,一些常見配置如下:

串聯網絡

深度學習之全面了解網絡架構

DAG 網絡

深度學習之全面了解網絡架構

2) LSTM

長短期記憶網絡主要用于時序和序列資料。LSTM 網絡會記住決策之前的部分資料,進而利用資料的上下文更好地作出關聯。

根據經驗,時序資料通常最适合用 LSTM 網絡處理,而圖像資料适合用 CNN。信号資料則是一個與經驗部分吻合的例外。CNN 和 LSTM 網絡都可以用來處理信号資料。我寫過一篇關于深度學習非圖像應用的文章,其中一個示例就是使用 CNN 進行語音識别。

下圖是一個用于分類的簡單 LSTM 網絡架構:

深度學習之全面了解網絡架構

下圖是一個用于回歸的簡單 LSTM 網絡架構:

深度學習之全面了解網絡架構

在時序應用中,我能否重用基于圖像資料訓練的架構?

可以,隻需要将輸出層從classificationOutputLayer更改為regressionOutputLayer。

實作時序回歸的選擇太多!我該如何選擇合适的架構?

我的第一反應肯定是建議您采用 LSTM 網絡!

但是,其他方法的存在必然有其意義,事實上,某些方法在特定場景下表現會更好。

如果沒有更多背景資訊,我就很難具體回答這個問題,是以讓我們逐一分析幾種可能的場景。

1) 時序回歸場景 #1:

我的輸入是低複雜度的時序資料。我想使用一系列資料點來預測未來的事件。

這種情況最好使用機器學習。

2) 時序回歸場景 #2:

我想使用來自多個傳感器的資料預測機器剩餘使用壽命(即機器在不得不維修或更換之前可以使用的時間)。

這個問題來自我們在工業自動化領域的客戶,他們需要趕在問題變得危險或處理代價高昂之前先找出問題。

對于這個場景,最好選擇 LSTM 網絡而不是機器學習回歸。這種方法不要求手動識别特征,畢竟在多傳感器的情況下,手動識别特征會是相當艱巨的任務。

3) 時序回歸場景 #3:

我想要對音頻資料進行去噪。

這裡可以使用 CNN。這種方法的重點在于,在将信号傳送到網絡之前,先要将信号轉換成圖像。也就是說,您需要通過傅裡葉變換或其他時頻操作,将信号轉換為圖像表示。

借助圖像,您可以看到原始信号中難以可視化的特征。這裡可以使用為圖像任務設計的預訓練網絡,因為傅裡葉變換本質上是圖像。

我想建構一個用來識别圖像的分類器,但是我的資料集有限。有沒有一種網絡架構可以更好地處理小型資料集?

網絡架構和預訓練網絡是密切相關的。預訓練模型是經過訓練的神經網絡。網絡的權重和偏置會根據輸入資料進行調整,是以面對新任務時,可以較快地重新訓練網絡。此過程稱為遷移學習,有時所需的圖像會比較少,适用于小型資料集。另一個可以考慮的方法是通過模拟或資料增強“創造”更多資料。

面包多代碼

https://mbd.pub/o/GeBENHAGEN

此外,知乎付費咨詢:哥廷根數學學派

擅長現代信号處理(改進小波分析系列,改進變分模态分解,改進經驗小波變換,改進辛幾何模态分解等等),改進機器學習,改進深度學習,機械故障診斷,改進時間序列分析(金融信号,心電信号,振動信号等)

繼續閱讀