Deep Learning for Computer Vision: A Brief Review

  • 2019 年 12 月 10 日
  • 筆記

版權聲明:本文為部落客原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。

本文鏈接:https://blog.csdn.net/weixin_36670529/article/details/103393556

摘要

在過去的幾年裡,深度學習方法在幾個領域的表現都超過了以往的機器學習技術,其中最突出的一個例子就是電腦視覺。這篇綜述文章簡要介紹了電腦視覺問題中最重要的一些深度學習方案,即卷積神經網路、深度玻爾茲曼機和深度信念網路,以及疊加去噪自編碼器。簡要介紹了它們的歷史、結構、優點和局限性,然後介紹了它們在各種電腦視覺任務中的應用,如對象檢測、人臉識別、動作和活動識別以及人體姿態估計。最後,簡要介紹了未來電腦視覺問題深度學習方案的設計方向和面臨的挑戰。

1、簡介

深度學習允許多個處理層的計算模型學習和表示具有多個抽象級別的數據,模擬大腦如何感知和理解多模態資訊,從而隱式地捕獲大型數據的複雜結構。深度學習是一個豐富的方法家族,包括神經網路、分層概率模型和各種無監督和監督的特徵學習演算法。最近,人們對深度學習方法的興趣激增,這是因為事實證明,深度學習方法在一些任務上的表現要優於之前的先進技術,而且來自不同來源(例如,視覺、聽覺、醫學、社交和感測器)的複雜數據也很豐富。

創建一個模擬人腦的系統的願望推動了神經網路的最初發展。1943年,McCulloch和Pitts[1]試圖了解大腦是如何通過使用相互連接的基本細胞(稱為神經元)產生高度複雜的模式的。神經元的McCulloch和Pitts模型稱為MCP模型,對人工神經網路的發展做出了重要貢獻。表1列出了該領域的一系列主要貢獻,包括LeNet[2]和Long Short-Term Memory[3],導致了今天的「深度學習時代」。深度學習最重大的突破之一出現在2006年,Hinton等人[4]引入了深度信念網路,該網路由多層受限制的玻爾茲曼機器組成,以一種未經觀察的方式貪婪地一次訓練一層。使用無監督學習(在每個級別上本地執行)指導中級表示層的培訓,是過去十年中導致深度架構和深度學習演算法激增的一系列發展背後的主要原則。

最突出的因素,導致了巨大的促進深度學習的大的外觀,高品質、公開可用的標籤數據集,隨著GPU並行計算的賦權,使從CPU-based過渡到基於GPU的培訓從而允許顯著加速'training深度模型。也扮演了一個小的角色會和一些額外因素相關聯,如減輕梯度problemowing消失的脫離fromsaturating activationfunctions(例如雙曲正切和物流功能),新的正則化技術的建議(例如,輟學,批正常化,和數據增大),和強大的框架的外觀像TensorFlow [5], theano[6],和mxnet[7],它允許更快的原型。深度學習已經在各種電腦視覺問題上取得了巨大的進步,如對象檢測(如[8,9])、運動跟蹤(如[10,11])、動作識別(如[8,9])。,[12,13]),人體姿態估計(e.g.,[14,15]),語義分割(e.g.,[16,17])。在這篇概述中,我們將簡要回顧電腦視覺應用的深度學習架構和演算法的主要發展。在這篇文章中,我們將重點討論三種最重要的深度學習模型,它們在視覺理解方面的適用性,即卷積神經網路(CNNs)、「Boltzmann家族」,包括深度信念網路(DBNs)、深度Boltzmann機器(DBMs)和堆疊(去噪)自動編碼器。不用說,目前的報道絕不是詳盡無遺的;例如,長期短期記憶(LSTM)在複發性神經網路的範疇,雖然具有重要意義的深度學習計劃,不是提出了審查,因為它主要是應用於建模問題,如語言,文本分類、手寫識別、機器翻譯、語音/音樂識別,那麼在電腦視覺問題。Te概述的目的是成為有用的電腦視覺和多媒體分析人員,以及通用機器學習研究人員感興趣的藝術深度學習對於電腦視覺任務,如目標檢測和識別,人臉識別,行動/活動識別和人體姿態估計。

本文的其餘部分組織如下。在第2節中,我們回顧了前面提到的三組深度學習模型:卷積神經網路、深度信念網路和深度玻爾茲曼機,以及堆疊式自動編碼器。介紹了每一組的基本架構、培訓流程、最新發展、優勢和局限性。在第3節中,我們描述了深度學習演算法對關鍵電腦視覺任務的貢獻,如對象檢測和識別、人臉識別、動作/活動識別和人體姿態估計;我們還提供了一個重要的數據集和資源列表,用於基準測試和驗證深度學習演算法。最後,第四部分對全文進行總結。

2、深度學習方法和發展

2.1、卷積神經網路

卷積神經網路(CNNs)的靈感來自於視覺系統的結構,特別是來自於[18]中提出的模型。第一個計算模型基於這些當地的神經元之間的連接性和分層次組織影像的轉換在Neo識別機[19],它描述了相同的參數,當neuronswith應用修補程式的上一層在不同的位置,獲得一個印鈔機印平移不變性。Yann LeCun及其合作者後來利用誤差梯度設計了卷積神經網路,並在各種模式識別任務中取得了很好的結果[20-22]。CNN包含三種主要類型的神經層,即(i)卷積層、(ii)池化層和(iii)全連接層。每種類型的層扮演不同的角色。圖1顯示了影像任務中對象檢測的CNN架構。CNN的每一層都將輸入量轉換為神經元激活的輸出量,最終形成最終的全連接層,將輸入數據映射到一維特徵向量。CNNs在電腦視覺應用方面非常成功,如人臉識別、目標檢測、機器人視覺驅動和自動駕駛汽車。

(i)卷積層:在卷積層中,CNN利用各種內核對整個影像以及中間的feature map進行卷積,生成各種feature map。由於卷積運算的優點,已有一些著作(如[23,24])提出用卷積代替全連接層,以達到更快的學習時間。

(ii)池層:池化層負責減少下一個卷積層的輸入量的空間維度(寬度×高度)。Te池化層不影響卷的深度維度。該層執行的Te操作也稱為子取樣或下取樣,因為減小尺寸會導致同時丟失資訊。然而,這樣的損失對網路來說是有益的,因為尺寸的減少會減少即將到來的網路層的計算開銷,而且還可以防止過度擬合。平均池和最大池是最常用的策略。在[25]中對max pooling和average pooling性能進行了詳細的理論分析,與在[26]中一樣,max pooling可以更快的收斂,選擇更好的不變特徵,提高概化能力。文獻中還有許多關於池化層的其他變體,每一種都受到不同動機的啟發,服務於不同的需求,例如隨機池化[27]、空間金字塔池化[28,29]和反池化[30]。

(iii)全連接層:在經過幾個卷積和池化層之後,神經網路中的高級推理通過全連接層進行。完全連接層中的神經元與前一層中的所有激活都有完全的連接,就像它們的名字所暗示的那樣。因此,可以通過矩陣乘法和偏置偏移來計算它們的激活。完全連接的層最終將二維特徵映射轉換為一維特徵向量。推導出的向量既可以前饋到一定數量的類別中進行分類[31],也可以作為進一步處理[32]的特徵向量。CNNs的架構採用了三個具體的思想:(a)局部接受域,(b)約束權重,(c)空間子抽樣。基於局部接受域,卷積層中的每個單元接收來自上一層的一組相鄰單元的輸入。通過這種方式,神經元能夠提取基本的視覺特徵,如邊緣或角落。然後,這些特徵被隨後的卷積層合併,以檢測更高階的特徵。此外,基本特徵檢測器對影像的一部分有用,而對整個影像有用,這一思想是通過綁定權值的概念實現的。系權的概念限制了一組具有相同權值的單位。具體來說,卷積層的單位被組織在平面上。一個平面的所有單位都有相同的權值。因此,每個平面負責構造一個特定的特徵。平面的輸出稱為特徵圖。每個卷積層由多個平面組成,因此可以在每個位置構建多個feature map。在構造feature map的過程中,整個影像被一個狀態存儲在feature map中相應位置的單元掃描。這個構造相當於一個卷積運算,後面是一個加性偏置項和一個s型函數:

在?代表卷積層的深度,W是權重矩陣,和b是偏差項。對於全連通神經網路,權值矩陣是滿的,即將每個輸入用不同的權值連接到每個單元。對於CNNs,由於約束權的概念,權矩陣W非常稀疏。因此,W的形式為

其中w是具有與單位接受域相同維數的矩陣。採用稀疏權矩陣減少了網路可調參數的數量,提高了網路的泛化能力。將W與層輸入相乘就像是將輸入與W進行卷積,這可以看作是一個可訓練的濾波器。如果d-1卷積層的輸入為

維數,卷積層d特定平面上單元的感受野為

維,則構建的feature map為一個維數矩陣(N-m+1)×(N-m+1)。具體來說,(i,j)處的feature map元素為:

偏見?是標量。使用(4)和(3)對輸入的所有(i,j)位置依次構造對應平面的特徵映射。訓練CNNs時可能出現的困難之一是需要學習大量的參數,這可能會導致過擬合問題。為此,提出了隨機池、退出和數據擴充等技術。此外,CNNs常常要經過預訓練,即使用預訓練的參數而不是隨機設置的參數來初始化網路。預處理可以加速學習過程,提高網路的泛化能力。總體而言,CNNs在電腦視覺和模式識別任務[33]的廣泛範圍內表現出明顯優於傳統機器學習方法,其示例將在第3節中介紹。他們出色的表現和相對輕鬆的訓練是他們在過去幾年裡人氣飆升的主要原因。

2.2、深度信念網路和深度玻爾茲曼機

深度信念網路和深度玻爾茲曼機器是屬於「玻爾茲曼家族」的深度學習模型,因為它們利用了有限玻爾茲曼機器(RBM)作為學習模組。受限玻爾茲曼機(RBM)是一個生成型隨機神經網路。dbn在頂部兩層有無向連接,它們形成一個RBM,並直接連接到較低的層。DBMs在網路的所有層之間都有無向連接。DBNs和DBMs的圖形描述可以在圖2中找到。在接下來的小節中,我們將描述DBNs和DBMs的基本特徵,然後介紹它們的基本構件RBM。

2.2.1、受限制的玻耳茲曼機

受限制的玻耳茲曼機([34、35])是一個無向的圖形模型與隨機變數k可見∈{0,1}和隨機隱藏變數

,其中每個可見變數連接到每個隱藏變數。RBM是玻爾茲曼機的一個變體,其限制是可見單位和隱藏單位必須構成二部圖。這個限制允許更有效的訓練演算法,特別是基於梯度的對比發散演算法[36]。

模型定義的能量函數為:

其中

是模型的參數,即

為可見單元i與隱藏單元j之間的對稱交互項,

為偏置項。給出了可見單元和隱藏單元的聯合分布

其中

為歸一化常數。隱h和可見v向量上的條件分布可由式(5)和式(6)得到

給定一組觀測值

,對數似然對模型參數的導數可由式(6)得到

數據表示一個期望的數據分布

,

代表經驗分布和繼續,

是一個期望對定義的分布模型,如(6)。詳細說明的描述一個可行的方法來訓練遏制了[37],而[38]討論了訓練RBMs的主要困難及其背後的原因,並提出了一種自適應學習率和增強梯度的新演算法,以解決上述困難。

2.2.2、深度信念網路

深度信念網路是一種概率生成模型,它在可觀測數據和標籤上提供一個聯合的概率分布。它們是通過堆疊RBMs並以貪婪的方式訓練它們而形成的,就像[39]中提出的那樣。DBN最初使用一種高效的逐層貪婪學習策略來初始化深度網路,在後續中,使用期望的輸出來微調所有的權值。DBNs是一種圖形化的模型,它學習提取訓練數據的深層層次表示。他們對觀測向量x與l隱含層aaaa的聯合分布進行如下建模:

其中

為k級可見單位的條件分布,條件為k+1級RBM的隱藏單位,

為頂層RBM的可見隱藏聯合分布。貪心逐層無監督訓練的原理可以應用於以RBMs作為每一層構建塊的DBNs[33, 39]。該過程的簡要描述如下:

(1)將第一層訓練為RBM,將原始輸入

建模為其可見層。

(2)使用第一層來獲得作為第二層數據的輸入的表示。有兩種常見的解決方案。這個表示可以選擇為平均激活AAAA或BBBB的樣本。

(3)將第二層訓練為RBM,將轉換後的數據(樣本或均值激活)作為訓練實例(針對該RBM的可見層)。

(4)迭代步驟((2)和(3))為所需的層數,每次向上傳播的樣本或平均值。

(5)針對DBN對數似然的代理或針對監督訓練標準(在添加額外的學習機制將學習到的表示轉化為監督的預測,例如一個線性分類器),對這個深度結構的所有參數進行微調。

上述dbns的貪婪學習過程有兩個主要優點。首先,它解決了適當選擇參數的挑戰,在某些情況下,這可能導致糟糕的本地優化,從而確保網路得到適當的初始化。其次,由於過程是無監督的,所以不需要標籤數據。然而,DBN也存在一些缺點,例如與DBN訓練相關的計算成本,以及基於最大似然訓練逼近的網路進一步優化的步驟還不清楚。此外,DBNs的一個顯著缺點是沒有考慮到輸入影像的二維結構,這可能會顯著影響DBNs在電腦視覺和多媒體分析問題中的性能和適用性。然而,DBN之後的一個變體Convolutional Deep Belief Network (CDBN)通過引入Convolutional RBMs來利用相鄰像素的空間資訊,從而產生了一個平移不變的生成模型,該模型在處理高維影像時能夠成功地進行縮放,[44]就是一個很好的證明。

2.2.3、深度玻爾茲曼機

Deep Boltzmann Machines (DBMs)[45]是另一種使用RBM作為其構建塊的Deep模型。dbn架構的不同之處在於,在DBM中,上層兩層是無向的圖形模型,下層是有向的生成模型,而DBM中所有的連接都是無向的。DBMs有多層隱藏單元,奇數層中的單元有條件地獨立於偶數層,反之亦然。因此,DBM中的推理通常是難以處理的。儘管如此,在可見單元和隱藏單元之間進行適當的交互選擇可以得到模型的更易於處理的版本。在網路訓練中,DBM聯合訓練一個特定的無監督模型的所有層,DBM不是直接最大化似然,而是使用一個基於SML的[46]演算法來最大化似然的下界。這樣的過程似乎很容易陷入當地的最低[45],導致幾個單位實際上死亡。相反,我們提出了一種貪婪的逐層訓練策略[47],它本質上是對DBM的各層進行預處理,類似於DBN,即通過疊加RBMs,對每一層進行訓練,分別對上一層的輸出進行獨立建模,然後進行最後的聯合細化。關於DBMs的優點,它們可以捕獲輸入數據的許多複雜表示層,並且適合於非監督學習,因為它們可以針對未標記的數據進行訓練,但是它們也可以以監督的方式對特定的任務進行調整。將DBMs與其他深度模型區別開來的一個屬性是,除了通常的自底向上的過程外,DBMs的近似推理過程還包括自頂向下的回饋,從而更有效地綜合了輸入的不確定性。此外,在資料庫管理系統中,通過遵循似然目標上的一個變分下界的近似梯度,可以聯合優化所有層的參數,這是非常有益的,特別是在從來自不同模式的[48]的異構數據學習模型的情況下。就DBMs的缺點而言,最重要的缺點之一是,如上所述,推理的計算成本很高,這在大型數據集中進行聯合優化時幾乎是不可能的。提出了幾種提高資料庫管理系統有效性的方法。這包括通過使用單獨的模型來初始化所有層中隱藏單元的值來加速推斷[47,49],或在訓練前階段[50,51]或在訓練階段[52,53]進行其他改進。

2.3、堆疊(去噪)

Autoencoders。堆疊的自動編碼器使用自動編碼器作為其主要構件,類似於深度信念網路使用受限的玻爾茲曼機作為組件的方式。因此,在描述堆疊(去噪)自動編碼器的深度學習架構之前,簡要介紹自動編碼器的基礎知識及其去噪版本是很重要的。

2.3.1、自編碼器

一個自動編碼器被訓練成以一種可以從r(x)[33]重構輸入的方式將輸入x編碼成一個表示r(x)。因此,自動編碼器的目標輸出就是自動編碼器的輸入本身。因此,輸出向量具有與輸入向量相同的維數。在這個過程中,重構誤差被最小化,相應的程式碼就是學習特徵。如果有一個線性隱藏層和均方誤差準則用於訓練網路,然後隱藏單位學習項目輸入第一個?張成的空間主成分數據[54]。如果隱含層是非線性的,則自動編碼器的行為與PCA不同,能夠捕獲輸入分布[55]的多模態方面。對模型參數進行了優化,使平均重建誤差最小。測量重構誤差的方法有很多,包括傳統的平方誤差:

其中函數f為解碼器,f(r(x))為模型生成的重構。如果將輸入解釋為位向量或位概率向量,則重建的損失函數可表示為交叉熵;也就是說,

目標是使表示(或程式碼)r(x)成為一種分散式表示,它能夠根據數據的主要變化捕獲坐標,類似於主成分分析(PCA)的原理。鑒於r (x)不是無損的,它不可能是一個成功的壓縮所有輸入x。上述優化過程的結果在低重建誤差測試例子從相同的分布訓練例子但一般高重建誤差樣本從輸入空間任意選擇。

2.3.2、去噪自編碼器

去噪自編碼器[56]是一個隨機版本的自編碼器,其中輸入隨機損壞,但未損壞的輸入仍然作為重建的目標。簡單來說,主要有兩個方面的功能去噪自編碼器:首先,它試圖編碼輸入(即保存的資訊輸入),其次它試圖消除腐敗的影響過程隨機應用於輸入自編碼器(參見圖3)。後者只能通過捕獲統計輸入之間的依賴關係。可以看出,去噪的自編碼器最大限度地降低了生成模型的日誌可能性。在[56]中,隨機破壞過程任意地將一些輸入設置為零。然後,去噪自動編碼器試圖從未損壞的值預測損壞的值,為隨機選擇的子集的缺失模式。從本質上講,從剩餘變數中預測變數子集的能力是完全捕獲一組變數之間的聯合分布的充分條件。需要指出的是,在早期的作品(如[57])中已經介紹了使用自動編碼器去噪,但[56]的主要貢獻在於成功地演示了對深層架構進行無監督預訓練的方法,並將去噪的自動編碼器與生成模型聯繫起來。

2.3.3、堆疊自編碼

將去噪自編碼器的潛在表示(輸出碼)作為當前層的輸入,可以將去噪自編碼器的潛在表示(輸出碼)疊加起來,形成一個深度網路。這種體系結構的無監督預培訓一次完成一層。每一層都被訓練成一個去噪的自動編碼器,通過最小化重建其輸入(即前一層的輸出程式碼)的錯誤。當第一個?層訓練,我們可以訓練(?+ 1)屆層,因為它將可能計算的潛在表示層下面。當所有層的預培訓完成後,網路將經歷第二個階段的培訓,稱為微調。這裡,當目標是優化監督任務的預測誤差時,將考慮監督微調。為此,在網路輸出層的輸出程式碼上添加一個邏輯回歸層。然後將導出的網路訓練成多層感知器,此時只考慮每個自動編碼器的編碼部分。這個階段是監督的,因為在訓練中目標班級被考慮在內。正如很容易看到的,訓練堆疊的自動編碼器的原理和之前描述的深度信念網路的原理是一樣的,只是使用自動編碼器而不是受限制的玻爾茲曼機。大量的對比實驗研究表明,深度信念網路的表現往往優於疊加自編碼器([58,59]),但情況並非總是如此,尤其是將DBNs與疊加去噪自編碼器[56]進行比較時。自動編碼器作為深層體系結構的基本無監督組件的一個優點是,與RBMs不同,在訓練標準在參數上連續的條件下,自動編碼器允許幾乎所有層的參數化。相比之下,情景應用程式的缺點之一是與生成模型不對應,當使用RBMs和DBNs等生成模型時,可以繪製樣本來檢查學習過程的輸出。

2.4、討論

所提出的深度學習模型的一些優點和局限性已經在相應的小節中進行了討論。為了比較這些模型(見表2),我們可以說CNNs通常比DBNs在當前基準電腦視覺數據集(如MNIST)上的表現更好。在輸入非可視的情況下,DBN通常比其他模型表現得更好,但是在準確估計聯合概率以及創建DBN的計算成本方面存在困難。CNNs的一個主要的積極方面是「特徵學習」,即繞過手工製作的特徵,這對於其他類型的網路是必要的;然而,在CNNs特徵是自動學習。另一方面,CNNs依賴於ground truth(即標記的訓練數據)的可用性,而DBNs/DBMs和SAs沒有這種限制,可以在無監督的情況下工作。另一方面,自動編碼器的缺點之一在於,如果錯誤出現在第一層,那麼它們就會失效。這些錯誤可能會導致網路學習重構訓練數據的平均值。然而,去噪自動編碼器[56],可以從一個損壞的版本檢索正確的輸入,從而導致網路掌握輸入分布的結構。就培訓過程的效率而言,只有在情景應用程式中才可能進行實時培訓,而CNNs和DBNs/DBMs培訓過程非常耗時。最後,CNNs的優勢之一是,它們可以不受平移、縮放和旋轉等轉換的影響。不變性,平移、旋轉和尺度是cnn的最重要的資產之一,尤其是在電腦視覺問題,如目標檢測,因為它允許抽象對象的身份或類別的具體視覺輸入(例如,相對位置/取向的相機和對象),從而使網路能夠有效地識別一個給定對象的情況下實際像素值影像可以顯著不同。