影象常用的神經網路方法優缺點及應用總結

2021-04-19 07:00:21

1. 人工智慧、機器學習與深度學習

  • 人工智慧:努力將通常由人類完成的智力任務自動化。
  • 機器學習機器學習( machine learning)是人工智慧的一個特殊子領域,其目標是僅靠觀察訓練資料來自動開發程式[即模型( model)]。
  • 深度學習是機器學習的一個分支領域:它是從資料中學習表示的一種新方法,強調從連續的層( layer)中進行學習。「深度學習」中的「深度」指的並不是利用這種方法所獲取的更深層次的理解,而是指一系列連續的表示層。資料模型中包含多少層,這被稱為模型的深度( depth)。

人工智慧、機器學習與深度學習關係如圖 1所示。在深度學習中,這些分層表示幾乎總是通過叫作神經網路 neural network)的模型來學習得到的。以下主要討論神經網路的分類

 

1. 人工智慧、機器學習與深度學習

人工神經網路(Artificial Neural Network,ANN)簡稱神經網路(NN),是基於生物學中神經網路的基本原理,在理解和抽象了人腦結構和外界刺激響應機制後,以網路拓撲知識為理論基礎,模擬人腦的神經系統對複雜資訊的處理機制的一種數學模型。該模型以並行分佈的處理能力、高容錯性、智慧化和自學習等能力為特徵,將資訊的加工和儲存結合在一起,以其獨特的知識表示方式和智慧化的自適應學習能力,引起各學科領域的關注。它實際上是一個有大量簡單元件相互連線而成的複雜網路,具有高度的非線性,能夠進行復雜的邏輯操作和非線性關係實現的系統。

2. 神經網路分類

 

可以從不同的角度對人工神經網路進行分類

  • 從網路效能角度可分為連續型與離散型網路、確定性與隨機性網路。
  • 從網路結構角度可為前向網路與反饋網路。
  • 從學習方式角度可分為有導師學習網路和無導師學習網路。
  • 按連續突觸性質可分為一階線性關聯網路和高階非線性關聯網路。

 

3. BP神經網路(Back Propagation,BP)

BP(Back Propagation,BP)演演算法不僅用於多層前饋神經網路,還可以用於訓練遞迴神經網路。解決了多層神經網路隱含層連線權學習問題,並在數學上給出了完整推導。人們把採用這種演演算法進行誤差校正的多層前饋網路稱為BP神經網路。BP 神經網路模型(反向傳播演演算法)的網路體系結構是多層的,本質上是一種梯度下降區域性優化技術,與網路權重的向後誤差校正相關。具有模型清晰、結構簡單、計算量小等優點。

 

BP神經網路網路主要四個方面的應用:

  1. 函數逼近:用輸入向量和相應的輸出向量訓練一個網路逼近一個函數。
  2. 圖形識別:用一個待定的輸出向量將它與輸入向量聯絡起來。
  3. 分類:把輸入向量所定義的合適方式進行分類。
  4. 資料壓縮:減少輸出向量維數以便於傳輸或儲存。

 

優點:

  1. BP神經網路最主要的優點是具有極強的非線性對映能力。
  2. BP神經網路具有對外界刺激和輸入資訊進行聯想記憶的能力。
  3. BP 神經網路通過預先儲存資訊和學習機制進行自適應訓練,可以從不完整的資訊和噪聲干擾中恢復原始的完整資訊。這種能力使其在影象復原、語言處理、圖形識別等方面具有重要應用。
  4. BP 神經網路對外界輸入樣本有很強的識別與分類能力。

 

侷限性:

  1. 由於BP網路訓練中穩定性要求學習效率很小,所以梯度下降法使得訓練很慢。
  2. 針對非線性可分問題時,使用 BP 神經網路可能出現區域性最小值導致無法找到全域性最優解,並且在面對大樣本資料時均方誤差 MSE 過大導致難以收斂。

4. 折積神經網路(Convolutional Neural Networks, CNN)

折積神經網路(Convolutional Neural Networks, CNN)是一類包含折積計算且具有深度結構的前饋神經網路(Feedforward Neural Networks),是深度學習(deep learning)的代表演演算法之一。CNN是一種帶有折積結構的深度神經網路,統稱至少有兩個非線性可訓練的折積層、兩個非線性的固定折積層(又稱為Pooling Layer)和一個全連線層,一共至少5個隱含層。傳統 CNN 結構包括四種層結構:折積層、池化層、全連線層、輸出層。

 

應用:

  1. 計算機視覺
    1. 影象識別(字元檢測、字元識別)
    2. 物體識別(語意分割、場景分類、影象顯著性檢測)
    3. 行為認知
    4. 姿態估計
  2. 自然語言處理
    1. 句子分類、自動補全
    2. 機器翻譯

 

優點:

  1. CNN中折積層的權值共用使網路中可訓練的引數邊少,降低了網路模型複雜度,較少過擬合,從而獲得一個更好的泛化能力。
  2. CNN結構中使用池化操作使得模型中的神經元個數大大的減少,對輸入空間的平移不變行也更有魯棒性
  3. CNN結構的拓展性很強,它可以採用很深的層數,深度模型具有更強的表達能力,能夠處理更復雜的分類問題
  4. CNN的區域性連線、權值共用和池化操作比傳統的MLP具有更少的連線和引數,更易於訓練。

侷限性:

  1. 深層折積的計算量需求大,輸入圖片大小固定,在嵌入式裝置應用方面具有侷限性。

5. 全連線神經網路(Fully Connected Neural Network)

全連線神經網路(fully connected neural network),顧名思義,就是相鄰兩層之間任意兩個節點之間都有連線。全連線神經網路是最為普通的一種模型(比如和CNN相比),由於是全連線,所以會有更多的權重值和連線,因此也意味著佔用更多的記憶體和計算。如圖 2 FCN的概略圖。

 

主要應用:語意分割

 

優點:FCN 同樣具備傳統折積網路(CNN)的特點,可以接受任意大小的輸入資料,更加高效。

侷限性: FCN 經過上取樣獲得的結果中無法獲取影象的詳細資訊,畫素之間的相關性無法得到利用,並且 FCN 缺乏先驗知識約束。

 

2. FCN的概略圖

6. 遞迴神經網路(Recurrent neural network,RNN)

迴圈神經網路(Recurrent Neural Network)是一類以序列(sequence)資料為輸入,在序列的演進方向進行遞迴(recursion)且所有節點(迴圈單元)按鏈式連線的遞迴神經網路(Recursive Neural Network, RNN)。RNN 是一種基於序列建模的人工神經網路,可以在神經元之間橫向傳輸資料資訊,並且部分表達資料之間的相關性,如圖 3。 RNN也實現了類似於人腦的這一機制,對所處理過的資訊留存有一定的記憶,而不像其他型別的神經網路並不能對處理過的資訊留存記憶。

 

應用:自然語言處理,例如語音識別、語言建模、機器翻譯等領域有應用,也被用於各類時間序列預報。引入了折積神經網路(CNN)構築的迴圈神經網路可以處理包含序列輸入的計算機視覺問題。

 

優點:提取時序特徵能力強、泛化能力相對好

 

侷限性:輸入輸出序列不同、處理長期依賴精度下降

 

3. 迴圈網路:帶有環的網路

7. 總結

幾種常見的神經網路模型對比見表格 1。

表格 1. 神經網路模型對比

名稱

機制

特點

缺陷

適用場景

BP

梯度下降區域性優化

非線性對映、自適應能力

非線性對映、自適應能力

非線性對映、自適應能力

CNN

折積核特徵提取,降取樣保留資訊

稀疏連線、權值共用

算量大,輸入圖片尺寸固 定

適合用於空間資料,應用於影象處理、機器翻 譯、語意分割

FCN

將CNN全連線操作全部用折積操作來替代

可以處理任意大小的影象,處理速度快

無法獲取影象的詳細資訊,畫素之間相關性無法驗證

語意分割、視訊處理等

RNN

隱藏層節點輸出取決於當前節點輸入和上個節點值

提取時序特徵能力強、泛化能力相對好

輸入輸出序列不同、處理長期依賴精度下降

用於處理時序資料,應用於語音識別、自然語言理解等