Top 10 您應該要學會的深度學習演算法 (Fundamental Review Series)

KevinLuo
10 min readDec 1, 2021

--

首先,我們來簡單回想一下…

什麼是深度學習?

深度學習使用人工神經網路對大量數據進行非常複雜的運算。

它是一種基於參考人腦結構和功能的機器學習(它附屬於機器學習的範疇內)。

深度學習演算法通過從示例中學習來訓練機器。醫療保健、電子商務、娛樂和廣告等行業通常使用深度學習。

定義神經網路

神經網路的結構類似於人腦,由人工神經元(也稱為節點)組成。這些節點彼此相鄰地堆疊在三層中:

  • 輸入層次
  • 隱藏層
  • 輸出圖層

數據以輸入的形式為每個節點提供資訊。該節點將輸入與隨機權重相乘,計算它們,並添加偏差。最後,應用非線性函數(也稱為啟動函數)來確定要激發的神經元。

深度學習演算法如何工作?

雖然深度學習演算法具有自學表示功能,但它們依賴於反映大腦計算資訊方式的ANN。在訓練過程中,演算法使用輸入分佈中的未知元素來特徵提取、對對象進行分組並發現有用的數據模式(Data Pattern)。就像訓練機器進行自學一樣,這發生在多個層面,使用演算法來構建模型。

深度學習模型利用了幾種演算法。雖然沒有一個網路被認為是完美的,但某些演算法更適合執行特定任務。要選擇正確的演算法,最好對所有主要演算法有深入的瞭解。

深度學習中使用的演算法類型:

以下是十大最受歡迎的深度學習演算法清單:

  1. 卷積神經網路 (CNN)
  2. 長短期記憶網路(LSTM)
  3. 遞迴神經網路 (RNN)
  4. 生成對抗網路 (GAN)
  5. 徑向基函數網路 (RBFN)
  6. 多層感知器 (MLPs)
  7. 自組織地圖 (SOM)
  8. 深度信念網路 (DBN)
  9. 受限玻爾茲曼機(RBM)
  10. 自動編碼器 (Auto-Encoder)

深度學習演算法幾乎可以處理任何類型的數據,並且需要大量的計算能力和資訊來解決複雜的問題。現在,讓我們深入研究前10種必學的深度學習演算法。

1. 卷積神經網路

Convolutional neural network(CNN),也稱為ConvNets,由多層組成,主要用於圖像處理和物體檢測。Yann LeCun在1988年開發了第一個CNN,當時它被稱為LeNet。它用於識別郵遞郵遞編碼和數位等字元。

CNN被廣泛用於識別衛星圖像,處理醫學圖像,預測時間序列和異常檢測。

CNN 如何工作?

CNN具有很多層,用於處理和提取數據中的特徵:

卷積層

  • CNN 有一個卷積層,該卷積層具有多個篩選器(又稱濾波器)來執行卷積操作。

整流線性單元

  • CNN有一個ReLU層來對元素執行操作。輸出是經過校正的特徵圖。

池化層(pooling)

  • 接下來,校正後的要素圖將饋送到池化層中。池化是一種下採樣操作,可減小特徵圖的尺寸。
  • 然後,池化層通過展平池化將合併特徵圖中生成的二維陣列轉換為單個長而連續的線性向量。

全連接層

  • 當池化層中的拼合矩陣作為輸入饋送時,將形成完全連接的層,該輸入對圖像進行分類和標識。

以下是通過CNN處理的圖像示例。

2. 長短期記憶網路 (LSTM)

LSTM是一種遞迴神經網路(RNN),可以學習和記憶長期依賴關係。長時間回憶過去的資訊是預設行為。

LSTM 會隨時間推移保留資訊。它們在時間序列預測中很有用,因為它們會記住以前的輸入。LSTM具有類似鏈的結構,其中四個相互作用的層以獨特的方式進行通信。除了時間序列預測之外,LSTM 通常用於語音辨識、音樂創作和藥物開發。

LSTM 如何工作?

  • 首先,他們忘記了前一狀態的不相關部分
  • 接下來,他們有選擇地更新儲存格狀態值
  • 最後,輸出單元狀態的某些部分

以下是 LSTM 的工作原理圖:

3. 遞迴神經網路(RNN)

RNN具有形成定向迴圈的連接,允許 LSTM 的輸出作為輸入饋送到當前相位。

LSTM的輸出成為當前相位的輸入,由於其內部記憶體,可以記住以前的輸入。RNN 通常用於圖像字幕、時間序列分析、自然語言處理、手寫識別和機器翻譯。

展開的 RNN 如下所示:

RNN 如何工作?

  • 時間 t-1 時的輸出在時間 t 時饋入輸入。
  • 同樣,時間 t 處的輸出在時間 t+1 時饋入輸入端。
  • RNN 可以處理任何長度的輸入。
  • 計算考慮了歷史資訊,並且模型大小不隨輸入大小而增加。

以下是Google自動完成功能的工作原理示例:

4. 生成對抗網路 (GAN)

GAN 是生成式深度學習演算法,用於創建類似於訓練數據的新資料實例。GAN有兩個元件:一個生成器,它學習生成假數據,另一個鑑別器,它從虛假信息中學習。

GAN的使用在一段時間內有所增加。它們可用於改善天文圖像並類比引力透鏡以進行暗物質研究。電視遊戲開發人員使用 GAN 來升級舊電視遊戲中的低解析度 2D 紋理,方法是通過圖像訓練以 4K 或更高解析度重新創建這些紋理。

GAN 有助於生成逼真的圖像和卡通人物、創建人臉照片以及渲染 3D 物件。

GAN 如何工作?

  • 鑑別器學習區分生成器的假數據和真實的樣本數據。
  • 在初始訓練期間,生成器生成假數據,鑑別器很快學會判斷它是假的。
  • GAN將結果發送到生成器和鑑別器以更新模型。

以下是 GAN 的執行方式圖:

5. 徑向基函數網路 (RBFN)

RBFN 是使用徑向基函數作為啟動函數的特殊類型的前饋神經網路。它們具有輸入層、隱藏層和輸出層,主要用於分類、回歸和時間序列預測。

RBFN 如何工作?

  • RBFN 透過測量輸入與訓練集中的示例的相似性來執行分類。
  • RBFN 具有饋送到輸入層的輸入向量。它們有一層RBF神經元。
  • 該函數查找輸入的加權和,並且輸出層的每個類別或數據類都有一個節點。
  • 隱藏層中的神經元包含高斯傳遞函數,其輸出與與神經元中心的距離成反比。
  • 網路的輸出是輸入的徑向基函數和神經元參數的線性組合。

請參閱此 RBFN 示例:

6. 多層感知器(MLP)

MLP是開始學習深度學習技術的絕佳場所。

MLP屬於具有多層具有啟動函數的感知器的前饋神經網路。MLP 由完全連接的輸入層和輸出層組成。它們具有相同數量的輸入和輸出層,但可能具有多個隱藏層,可用於構建語音辨識、圖像識別和機器翻譯軟體。

MLP如何工作?

  • MLP將數據饋送到網路的輸入層。神經元層在圖形中連接,以便信號沿一個方向傳遞。
  • MLP 使用輸入層和隱藏層之間存在的權重計算輸入。
  • MLP 使用啟動函數來確定要觸發的節點。啟動函數包括 ReLU、sigmoid(易在BackPropagation中產生梯度消失的activation function) 函數和 tanh函數。
  • MLP 訓練模型以瞭解相關性,並從訓練數據集中學習獨立變數和目標變數之間的依賴關係。

下面是一個 MLP 示例。該圖計算權重和偏差,並應用合適的啟動函數對貓和狗的圖像進行分類。

7. 自組織地圖(SOM)

Teuvo Kohonen教授發明瞭SOM,它使數據視覺化能夠通過自組織人工神經網路來減少數據的維度。

數據視覺化試圖解決人類無法輕鬆可視化高維數據的問題。創建 SOM 是為了幫助使用者理解這些高維資訊。

SOM 如何工作?

  • SOM 初始化每個節點的權重,並從訓練數據中隨機選擇一個向量。
  • SOM 檢查每個節點,以找出哪些權重最有可能是輸入向量。獲勝節點稱為最佳匹配單位 (BMU)。
  • SOM會發現BMU的社區,並且鄰居的數量會隨著時間的推移而減少。
  • SOM 授予樣本向量一個獲獎權重。節點離 BMU 越近,其權重變化就越大。
  • 鄰居離BMU越遠,它學到的就越少。SOM 對 N 次反覆運算重複步驟 2。

下圖顯示了不同顏色的輸入向量。此數據饋送到 SOM,然後 SOM 將資料轉換為 2D RGB 值。最後,它對不同的顏色進行分離和分類。

8. 深度信念網路(DeepBeliefNetwork-DBN)

DBN 是由多層隨機潛在變數組成的生成模型。潛在變數具有二進位值,通常稱為隱藏單位。

DBN 是一堆玻茲曼機,在各層之間具有連接,每個 RBM 層都與之前和後續層進行通信。深度信念網路 (DBN) 用於圖像識別、影像識別和動作捕捉數據。

DBN 如何工作?

  • 貪婪的學習演算法訓練DBN。貪婪學習演算法使用逐層方法學習自上而下的生成權重。
  • DBN 在頂部的兩個隱藏層上運行 Gibbs 採樣的步驟。此階段從由前兩個隱藏層定義的 RBM 中抽取樣本。
  • DBN 使用通過模型其餘部分的單一原始採樣從可見單元中抽取樣本。
  • DBN 瞭解到,每一層中潛在變數的值都可以通過一次自下而上的傳遞來推斷。

下面是 DBN 體系結構的範例:

9. 受限玻爾茲曼機

RBM由Geoffrey Hinton開發,是隨機神經網路,可以從一組輸入的機率分佈中學習。

這種深度學習演算法用於降維、分類、回歸、協同過濾、特徵學習和主題建模。RBM 構成了 DBN 的構建塊。

RBM 由兩層組成:

  • 可見單位
  • 隱藏單元

每個可見單元都連接到所有隱藏單元。RBM 有一個偏置單元,該單元連接到所有可見單元和隱藏單元,並且沒有輸出節點。

RBM 如何工作?

RBM 有兩個階段:向前傳遞和向後傳遞。

  • RBM 接受輸入並將其轉換為一組數位,用於對正向傳遞中的輸入進行編碼。
  • RBM將每個輸入與單個權重和一個總體偏差相結合。該演算法將輸出傳遞到隱藏層。
  • 在向後傳遞中,RBM獲取這組數位並將它們轉換以形成重建的輸入。
  • RBM將每個啟動與單個權重和整體偏差相結合,並將輸出傳遞到可見層進行重建。
  • 在可見層,RBM 將重建與原始輸入進行比較,以分析結果的品質。

以下是RBM如何運作的示意圖:

10. 自動編碼器

自動編碼器是一種特定類型的前饋神經網路,其輸入和輸出是相同的。Geoffrey Hinton在20世紀80年代設計了自動編碼器來解決無監督學習問題。它們是經過訓練的神經網路,可將數據從輸入層複製到輸出層。自動編碼器用於藥物發現、流行度預測和圖像處理等目的。

自動編碼器如何工作?

自動編碼器由三個主要元件組成:編碼器、代碼和解碼器。

  • 自動編碼器的結構是接收輸入並將其轉換為不同的表示形式。然後,他們嘗試盡可能準確地重建原始輸入。
  • 當數位的圖像不清晰可見時,它會饋送到自動編碼器神經網路。
  • 自動編碼器首先對圖像進行編碼,然後將輸入的大小減小為較小的表示形式。
  • 最後,自動編碼器解碼圖像以生成重建的圖像。

下圖演示了自動編碼器的工作原理:

--

--

KevinLuo

知曉很多種資料處理,可BI或AI化的軟體和工具。主要用的程式語言是python和R 偶爾用C++ Ig:(可在上面找到我) AIA第九屆經理人班 立志當個厲害的podcaster!