深度學習是近十年來人工智能領域取得的重要突破。它在語音識別、自然語言處理、計算機視覺、圖像與視頻分析、多媒體等諸多領域的應用取得了巨大成功。現有的深度學習模型屬于神經網絡。神經網絡的起源可追溯到20世紀40年代,曾經在八九十年代流行。神經網絡試圖通過模擬大腦認知的機理解決各種機器學習問題。1986年,魯梅爾哈特(Rumelhart)、欣頓(Hinton)和威廉姆斯(Williams)在《自然》雜志發表了的反向傳播算法用于訓練神經網絡,該算法直到今天仍被廣泛應用。
深度學習有何與眾不同?
深度學習和其他機器學習方法相比有哪些關鍵的不同點,它為何能在許多領域取得成功?
特征
深度學習與傳統模式識別方法的zui大不同在于它所采用的特征是從大數據中自動學習得到,而非采用手工設計。好的特征可以提高模式識別系統的性能。過去幾十年,在模式識別的各種應用中,手工設計的特征一直處于統治地位。手工設計主要依靠設計者的先驗知識,很難利用大數據的優勢。由于依賴手工調參數,因此特征的設計中所允許出現的參數數量十分有限。深度學習可以從大數據中自動學習特征的表示,可以包含成千上萬的參數。
采用手工設計出有效的特征往往需要五到十年時間,而深度學習可以針對新的應用從訓練數據中很快學習到新的有效的特征表示。
一個模式識別系統包括特征和分類器兩部分。在傳統方法中,特征和分類器的優化是分開的。而在神經網絡的框架下,特征表示和分類器是聯合優化的,可以zui大程度地發揮二者聯合協作的性能。
2012年欣頓參加ImageNet比賽所采用的卷積網絡模型的特征表示包含了從上百萬樣本中學習得到的6000萬個參數。從ImageNet上學習得到的特征表示具有非常強的泛化能力,可以成功應用到其他數據集和任務中,例如物體的檢測、跟蹤和檢索等。在計算機視覺領域另外一個的競賽是PSACAL VOC。但是它的訓練集規模較小,不適合訓練深度學習模型。有學者將ImageNet上學習得到的特征表示用于PSACAL VOC上的物體檢測,檢測率提高了20%。
既然特征學習如此重要,那么,什么是好的特征呢?一幅圖像中,各種復雜的因素往往以非線性的方式結合在一起。例如人臉圖像中就包含了身份、姿態、年齡、表情、光線等各種信息。深度學習的關鍵就是通過多層非線性映射將這些因素成功分開,例如在深度模型的zui后一個隱含層,不同神經元代表了不同因素。如果將這個隱含層當作特征表示,人臉識別、姿態估計、表情識別、年齡估計就會變得非常簡單,因為各個因素之間變成了簡單的線性關系,不再彼此干擾。
深層結構的優勢
深度學習模型的“深”字意味著神經網絡的結構深,由很多層組成。而支持向量機和Boosting等其他常用的機器學習模型都是淺層結構。三層神經網絡模型(包括輸入層、輸出層和一個隱含層)可以近似任何分類函數。既然如此,為什么需要深層模型呢?
研究表明,針對特定的任務,如果模型的深度不夠,其所需要的計算單元會呈指數增加。這意味著雖然淺層模型可以表達相同的分類函數,但其需要的參數和訓練樣本要多得多。淺層模型提供的是局部表達。它將高維圖像空間分成若干個局部區域,每個局部區域至少存儲一個從訓練數據中獲得的模板。淺層模型將一個測試樣本和這些模板逐一匹配,根據匹配的結果預測其類別。例如,在支持向量機模型中,模板是支持向量;在zui近鄰分類器中,模板是所有的訓練樣本。隨著分類問題復雜度的增加,需要將圖像空間劃分成越來越多的局部區域,因而需要越來越多的參數和訓練樣本。盡管目前許多深度模型的參數量已經相當巨大,但如果換成淺層神經網絡,其所需要的參數量要大出多個數量級才能達到相同的數據擬合效果,以至于很難實現。
深度模型之所以能減少參數的關鍵在于重復利用中間層的計算單元。以人臉識別為例,深度學習可以針對人臉圖像的分層特征表達進行:zui底層從原始像素開始學習濾波器,刻畫局部的邊緣和紋理特征;中層濾波器通過將各種邊緣濾波器進行組合,描述不同類型的人臉器官;zui高層描述的是整個人臉的全局特征。
深度學習提供的是分布式的特征表示。在zui高的隱含層,每個神經元代表一個屬性分類器,例如性別、人種和頭發顏色等。每個神經元將圖像空間一分為二,N個神經元的組合就可以表達2N個局部區域,而用淺層模型表達這些區域的劃分至少需要2N個模板。由此可以看出,深度模型的表達能力更強,效率更高。
提取全局特征和上下文信息的能力
深度模型具有強大的學習能力和的特征表達能力,更重要的優點是從像素級原始數據到抽象的語義概念逐層提取信息,這使得它在提取圖像的全局特征和上下文信息方面具有突出的優勢,為解決傳統的計算機視覺問題(如圖像分割和關鍵點檢測)帶來了新的思路。
以人臉的圖像分割為例,為了預測每個像素屬于哪個臉部器官(眼睛、鼻子、嘴),通常的做法是在該像素周圍取一個小區域,提取紋理特征(例如局部二值模式),再基于該特征利用支持向量機等淺層模型分類。因為局部區域包含的信息量有限,往往產生分類錯誤,因此要對分割后的圖像加入平滑和形狀先驗等約束。
人眼即使在存在局部遮擋的情況下也可以根據臉部其他區域的信息估計被遮擋部分的標注。由此可知全局和上下文信息對于局部的判斷是非常重要的,而這些信息在基于局部特征的方法中在zui開始階段就丟失了。理想情況下,模型應該將整幅圖像作為輸入,直接預測整幅分割圖。圖像分割可以被看做一個高維數據轉換的問題來解決。這樣不但利用到了上下文信息,模型在高維數據轉換過程中也隱式地加入了形狀先驗。但是由于整幅圖像內容過于復雜,淺層模型很難有效地捕捉全局特征。而深度學習的出現使這一思路成為可能,在人臉分割、人體分割、人臉圖像配準和人體姿態估計等各個方面都取得了成功。
聯合深度學習
一些研究計算機視覺的學者將深度學習模型視為黑盒子,這種看法是不全面的。傳統計算機視覺系統和深度學習模型存在著密切的,利用這種可以提出新的深度模型和訓練方法。用于行人檢測的聯合深度學習就是一個成功的例子。一個計算機視覺系統包含若干個關鍵的組成模塊。例如,一個行人檢測器包括特征提取、部件檢測器、部件幾何形變建模、部件遮擋推理、分類器等模塊。在聯合深度學習中,深度模型的各個層和視覺系統的各個模塊可以建立對應關系。如果視覺系統中的關鍵模塊在現有深度學習的模型中沒有與之對應的層,則它們可以啟發我們提出新的深度模型。例如,大量物體檢測的研究工作表明,對物體部件的幾何形變建模可以有效提高檢測率,但是在常用的深度模型中沒有與之相對應的層,因此聯合深度學習及其后續的工作都提出了新的形變層和形變池化層來實現這一功能。
從訓練方式上看,計算機視覺系統的各個模塊是逐一訓練或手工設計的。在深度模型的預訓練階段,各個層也是逐一訓練的。如果我們能夠建立計算機視覺系統和深度模型之間的對應關系,那么在視覺研究中積累的經驗就可以對深度模型的預訓練提供指導。這樣預訓練后得到的模型就可以達到與傳統計算機視覺系統可比的結果。在此基礎上,深度學習還會利用反向傳播對所有層進行聯合優化,使它們之間的相互協作達到*,從而使整個網絡的性能得到重大提升。