深度學習下一階段:神經架構自學習,帶來優(yōu)秀的計算機視覺模型
深度學習是人工智能模型的先驅。從圖像識別、語音識別,到文字理解,甚至自動駕駛,深度學習的來臨極大地豐富了我們對AI潛力的想象。
那么,深度學習為何如此成功呢?
主流思想認為,一個重要的原因是,深度學習成功的原因是不依靠人類直覺來構建或表示數(shù)據(jù)的特征(視覺,文本,音頻......),而是建立一個神經網絡架構來自發(fā)學習這些特征。
關鍵詞是特征。從特征工程,到特征搜索,到特征學習——每一階段的進步都能帶來巨大的性能提升。
既然“特征”上大有文章可做,那么“網絡結構”是否也可以借鑒同樣的經驗呢?
沒錯,也可以!
這個新穎的觀點已經得到了Allen Institute for AI最新研究的支持。他們的最新研究表明,計算機學習來的神經網絡架構可以比人類設計的更好。
在訓練期間,他們的網絡的可以靈活改變網絡架構——它既學習網絡參數(shù),也學習結構本身。所學習的架構具有高度稀疏的特性,因此就運算運算而言,它將是一個小得多卻可以實現(xiàn)高精度的模型。
在高效稀疏計算硬件大力發(fā)展的環(huán)境下,這可能是深度學習模型下一演變階段的重要觸發(fā)因素。
在了解他們的最新成果前,讓我們先回顧一下,從二十年前到開始進入深度學習時代AI模型在計算機視覺技術領域的關鍵發(fā)展階段。同樣的趨勢在其他深度學習領域也有類似體現(xiàn)。
計算機視覺三個發(fā)展階段
特征工程階段
嘗試人工找到圖像中承載圖像語義的高維向量。成功的例子有:SIFT,HOG,ShapeContext,RBF和Intersection Kernel。這些特征和函數(shù)是基于對人類視覺識別過程的模擬。這是當時計算機視覺技術背后的基礎科學。經過了幾年的直覺驅動研究,計算機視覺技術科學家并未能開發(fā)新的功能,這使得該領域進入了第二階段。
最優(yōu)計算機視覺模型" inline="0">
在深度學習出現(xiàn)之前,特征工程是計算機視覺的基礎科學
特征搜索階段
又叫自動搜索過程,通過組合不同的可能特征或核函數(shù)來提高特定應用程序的準確性(例如,對象分類)。一些成功方法的包括:Feature selection methods 以及 Multiple Kernel Models。這些過程雖然計算量大,但卻能提高計算機視覺模型的準確性。另一個主要局限是搜索空間的構建塊(特征函數(shù))是基于人類對視覺識別的直覺手動設計的。但有一些研究表明,人類可能無法準確說出自己是如何區(qū)分對象類別的。
例如,你能說明自己如何區(qū)分狗與貓的照片嗎?你選擇的任何特征(例如耳朵上的清晰度,或眼睛中的形狀和顏色),都是貓和狗共有的,但是看照片卻能立即說出它是狗或貓。這使得一些科學家放棄用傳統(tǒng)的自下而上的模式設計特征驅動的計算機視覺模型,轉向讓計算機自己設計特征識別的階段。
最優(yōu)計算機視覺模型" inline="0">
特征組合和多核模型(圖片來自Kavak等人ISACS2013)
特征學習階段
這是自動從高維向量空間確定視覺特征的階段,該過程通過釋義圖像的內容來使計算機執(zhí)行特定任務,例如對象分類。深度卷積神經網絡架構(CNN)的發(fā)展使這種能力成為可能。由于在設計特征的過程中沒有人為干預,這種算法也被稱為端到端模型。實際上,由于該過程是高度計算密集型并且需要大量數(shù)據(jù)來訓練底層神經網絡,人類幾乎無法解釋其構造的特征。隨著并行處理器硬件(例如GPU和TPU)的進步以及大規(guī)模數(shù)據(jù)集的可用性使其成為可能并取得成功。
最優(yōu)計算機視覺模型" inline="0">
通過深度神經網絡的特征學習
太贊了!深度學習好像能獨立工作了。既然如此,那么計算機視覺科學家在其中需要扮演什么角色呢?!
展望未來
想象一下,如果我們用“架構”來取代“特征”這個詞,結合上述三個階段,大概可以說明深度學習今后的發(fā)展趨勢。
架構工程
這與“特征學習”階段幾乎完全一樣。需要手動為特定任務設計卷積神經網絡架構。其主要原理是簡單但更深(即更多層)的架構可以獲得更高的準確性。在這個階段,設計架構和訓練(網絡優(yōu)化)技術是計算機視覺(以及許多其他DCNN應用程序)的主要目標。這些網絡設計基于人類自身視覺識別系統(tǒng)的認知。一些成功的架構設計包括:AlexNet,VGGNet,GoogleNet和ResNet。這些模型的主要的局限在于計算的復雜性。他們通常需要運行數(shù)十億次算術運算(浮點運算)來處理單個圖像。在實踐中,為了使模型能夠以足夠快的速度運行,通常需要使用GPU并消耗大量功率。因此,現(xiàn)代AI模型主要通過強大的云服務器來實現(xiàn)。
這促使科學家設計可以運行在邊緣設備上的更高效的AI模型。一些成功的模型包括:Xnor-net,Mobilenet和Shufflenet。類似于“特征工程”階段,幾年后,江郎才盡的研究人員轉向了“搜索”階段。
最優(yōu)計算機視覺模型" inline="0">
深度學習出現(xiàn)后,計算機視覺背后的基礎科學變?yōu)榫W絡架構設計(圖片來自Joseph Cohen)
架構搜索
這是當前最先進的AI模型。主要原理是使用之前成功架構的構建塊并嘗試自動搜索這些塊的組合,以構建新的神經網絡架構。其關鍵目標是建立一個需要少量運算卻高精度的架構。一些成功的神經架構搜索方法包括:NASNet,MNASNe和FBNet。由于其可能的組合的搜索空間非常大,訓練這些模型比標準深度學習模型需要更多的計算量和數(shù)據(jù)。類似于“特征搜索”階段,這些模型也受到基于人類直覺的手動設計其構建塊的約束。根據(jù)以前的經驗,人類對如何設計神經架構的直覺沒有計算機好。最新研究表明,隨機連接的神經網絡完勝幾種人工設計的架構。
綜上所述,顯然深度學習的下一階段是讓計算機自己設計架構。
最優(yōu)計算機視覺模型" inline="0">
搜索CNN不同構建塊的組合以構建更好的CNN模型
架構學習階段
最近我們在Xnor.ai和Allen Institute for AI建立了一個名為Discovering Neural Wirings的新模型,用于直接從數(shù)據(jù)中自動學習神經網絡架構。在該模型中,我們將神經網絡設置為無約束圖并且放寬層的概念,使節(jié)點(例如圖像的通道)能夠彼此形成獨立的連接。這會使得可能的網絡空間會更大。在訓練期間,該網絡的搭建不固定——它既學習網絡參數(shù),也學習結構本身。網絡結構可以包含圖中的循環(huán),即形成了存儲器結構的概念。所學習的架構具有高度稀疏的特性,因此就算術運算而言它將是一個小得多卻可以實現(xiàn)高精度的模型。
代碼:
https://github.com/allenai/dnw
當然,類似于“特征學習”階段,這個深度學習階段需要在訓練中進行大量的計算以處理大圖并且需要大量的數(shù)據(jù)。我們堅信,隨著專門用于稀疏圖形計算的硬件的發(fā)展,自動發(fā)現(xiàn)最佳網絡架構技術會越來越成熟,實現(xiàn)高度精確、高效計算的邊緣AI模型指日可待。
最優(yōu)計算機視覺模型" inline="0">
神經架構學習的過程:從數(shù)據(jù)中發(fā)現(xiàn)完整神經圖中神經元之間的最小連接
鏈接:
https://medium.com/xnor-ai/the-next-phase-of-deep-learning-neural-architecture-learning-automatic-discovering-of-neural-d08fc9a6065d