編者按:深度學習在計算機視覺領域取得了巨大的成功,有研究者甚至一度期望這種端到端的學習策略可以完全替代傳統模型驅動的算法。然而,大量工作證明:當我們面臨復雜問題的時候,完全拋棄領域知識是非常不明智的策略。因此,如何將領域知識和先驗融合到深度網絡中,成為深度學習領域一個新的研究熱點。其中,Deep Unrolling為我們提供了一種結合知識與數據的有效手段。
本文中,來自大連理工大學的劉日升副教授,將為大家介紹基于Unrolling的深度方法及應用。文末提供文中提到參考文獻的下載鏈接。
本次報告主要向大家匯報一下基于Unrolling的深度學習方法,其在計算機視覺領域的各種應用,以及我們近期針對該類型深度網絡的一些理論分析方面的工作。
近年來,深度學習相關工作大量涌現。在早期階段,研究者們大多基于經驗和對問題的一些理解,啟發式地設計網絡結構,并通過端到端學習的方式得到解決具體問題的深度模型。該類方法在計算機視覺領域的一些問題中已經取得了巨大成功。比如在人臉識別、目標檢測等High-level問題中,各種深度網絡的性能已經遠遠優于傳統方法。但隨著相關研究的逐漸深入,學者們也發現完全啟發式設計的深度網絡并不能在所有視覺問題中都取得令人滿意的結果。特別是在一些底層視覺問題中,直接使用端到端學習策略和經驗設計網絡的性能并不能令人滿意。比如,現有的啟發式深度網絡在圖像盲去模糊問題中的性能仍然無法令人滿意。
為了更深刻理解深度網絡的本質特點,我們首先比較一下傳統模型驅動的思路和端到端學習深度網絡建模方法的區別與聯系。具體來說:模型驅動方法通常首先利用領域知識為問題建立數學模型,進而通過特定的優化算法或求解策略得到模型的最優解。相對應地,端到端學習方法則希望直接建立輸入數據與輸出結果的非線性映射關系,其性能往往與訓練數據的質量和規模有密切關系。總結起來,我們發現以上兩種方法分別主要側重于利用“領域知識”或者基于“數據(及經驗)”來解決計算機視覺問題。很自然的,如果我們可以有效結合這兩種不同的策略,將非常有希望設計出更加強大、且可解釋性更強的深度網絡模型。這也引出了我們后面將向大家介紹的Deep Unrolling技術。
近年來,Unrolling技術為“領域知識”與“數據(“及經驗)”結合提供了一種有效手段。具體來說,所謂Unrolling是指我們將求解一個給定連續模型的迭代優化看成是一個動態系統,進而通過若干可學習模塊來離散化這一系統,得到數據驅動的演化過程(Data-dependent Propagation)的方法。實際上,Unrolling過程與機器學習領域的元學習(Meta Learning)和近期LeCun等人提出的可微分編程(Differentiable Programming)概念也有著非常密切的內在聯系。
在Unrolling方法中,我們首先需要設計一個迭代框架(Schematic Scheme),在此基礎上進一步將可學習模塊嵌入到迭代中。更為重要的是,我們還需要對于所設計的演化過程進行必要的理論分析。
接下來,我們將對計算機視覺領域中使用Unrolling思想的方法進行簡要回顧。需要指出的是,在一些工作中,其原始論文雖然沒有顯式地使用Unrolling的概念,但我們仍然可以通過Unrolling框架對這些方法的原理和有效性進行解釋和分析。
偏微分方程/擴散過程是非常經典的一類圖像處理方法。該類方法實質上可以考慮為求解一個變分能量的梯度流。我們在2010年首先提出基于學習的偏微分方程(Learning-based PDE)解決各種不同的圖像處理(去噪、分割、去馬賽克等)問題。該方法最大的特點是通過學習旋轉與平移不變的基本微分不變量來實現對擴散過程的Unrolling。并通過最優控制技術實現系統參數的端到端學習。值得指出的是,基于學習的偏微分方程實際上就是一種基于微分算子的、結構簡化的深度網絡模型。此外,我們所采用的最優控制框架也與現在被廣泛使用的反向傳播技術有著深刻的本質聯系。隨后,Chen 和Pork的工作則使用更高階的算子來進行擴散學習,解決圖像去噪等問題。
MRF作為一類無向圖上的參數化先驗,也可以被用來刻畫不同類型圖像的潛在分布規律。近年來,通過使用不同的優化策略(如半二次分裂、原始對偶、交替方向等)作為基礎迭代格式,并使用高階濾波器對MRF先驗進行Unrolling,學者們提出了一系列不同的圖像增強算法,并在不同的應用領域取得了較好的效果。
由于CNN實質上也可以看成是一種高階的擴散算子,因此直接使用CNN對優化迭代過程進行Unrolling成為最近一兩年來非常熱門的研究方向。各種不同的CNN結構和Unrolling思路大量涌現。這里需要指出的是,Unrolling方法中CNN不再是一個端到端的回歸器。實質上,我們更傾向于認為其學習的是優化算法在真實數據上每步計算所產生的迭代誤差(或模型誤差)。因此在這類Unrolling方法中,我們往往使用不同強度的高斯噪聲來訓練迭代過程中的CNN模塊。
接下來,我們將進一步使用Unrolling思想對幾類在底層視覺領域取得成功的深度網絡方法進行分析與理解。
VDSR是一種將殘差結構(Residual Structure)應用到圖像處理問題上的深度學習方法,其在超分辨率問題上取得了非常好的效果。我們通過分析發現,VDSR網絡結構實際上可以被理解成為一個一步的梯度下降過程。而CNN則學習了我們從低分辨率輸入到高分辨率輸出的下降方向。 相對于較早期的超分辨率網絡(如SRCNN等,直接學習低分辨率到高分辨率的映射),VDSR通過學習下降方向(即殘差),顯著降低了網絡的學習難度,從而取得了更好的效果。
隨后,DnCNN將類似的思想成功應用到了圖像去噪問題中,再次驗證了使用CNN學習下降方向在底層視覺問題中的有效性。
EDSR作為VDSR的改進,取得了更優于VDSR的超分辨率效果。按照Unrolling的觀點,我們可以非常直觀的發現,在其網絡結構中,作者實際上使用了更多的殘差單元來進行梯度下降,而通過級聯更多的下降模塊,我們實際上得到了一個基于CNN的可學習迭代過程。從優化角度來看,更多的迭代步數往往可以讓我們更容易得到復雜(如非凸)問題的最優解。這也從一個側面給出了EDSR優于VDSR的原因。
在非盲圖像去模糊問題中,IRCNN取得了非常好的性能。而該方法最大的成功就是將CNN網絡結構引入到了圖像復原模型的優化過程中。
在盲圖像復原領域,最近的一些方法將各種不同的CNN模塊集成到優化模型中(如Li et al),或者通過級聯的方式模型構建隱式的梯度流(如Nah et al)。以上方法所提出的網絡結構也均可以被Unrolling思想解釋。
Ledig et al的工作給出了基于感知損失的殘差網絡訓練方法。這一工作實際上表明我們可以使用對抗和感知損失函數來對級聯的梯度下降模塊(殘差單元)進行訓練,從而得到更加真實的圖像增強結果。
以上我們介紹的Unrolling方法均面向Low-level問題(如去噪,去模糊,超分辨等)。實際上,很多High-level問題也可以使用Unrolling方法解決。如LeCun等人提出的LISTA方法,就是將解決稀疏字典學習的一階優化算法(ISTA)使用參數化網絡進行Unrolling。而Xiong和De la Torre則通過將一個非線性回歸模型的每一步梯度下降迭代使用線性回歸進行Unrolling,得到了解決人臉特征點檢測等問題的新方法。最近,研究者還嘗試將強化學習(Li 和Malik)和遞歸網絡結構(Andrychowicz et al)引入到回歸、分類模型的Unrolling過程中。
總結起來,Unrolling主要包括三個核心步驟,即設計迭代格式、嵌入可學習模塊和理論分析。已有工作將注意力主要集中在前兩部分,而由于使用了可學習模塊對迭代格式進行非精確展開和計算,原有數值算法的理論性質(如收斂性等)已經不再被保持。因此我們迫切需要對于Unrolling過程的理論性質給出一些分析。此外,如何從理論上挖掘Unrolling過程的內在屬性和有效性保證也是非常值得研究的內容。以下將簡要介紹一下我們在相關問題上的一些初步嘗試。
我們首先基于一階非光滑優化格式給出了一個通用的迭代框架。在此基礎上,我們進一步使用殘差結構設計了一個可學習網絡結構來進行下降方向估計。我們注意到大多數已有的Unrolling算法往往直接使用網絡結構代替部分迭代計算過程。而我們在使用可學習下降模塊進行Unrolling的基礎上,還引入了一個額外的誤差矯正模塊。這一模塊的最主要作用就是可以及時控制迭代過程中網絡所產生的過大迭代誤差。
具體來說,通過分析基于網絡的Unrolling過程所引入的誤差,并使用臨近迭代輸出來控制網絡的非精確計算,我們得到了一種新的網絡前饋傳播精度控制準則,即所謂的“松弛化最優性準側”。
基于以上的設計,我們可以在理論上證明,在求解一個非凸非光滑模型的最優解的問題中,我們所提出的Unrolling框架,可以產生一個全局收斂的序列(注意,這里的“全局收斂”指的是序列整體上收斂到給定的點,而非收斂到全局最優解)。如果所處理的問題有一個明確的先驗正則化r時,我們可以證明該序列收斂到給定模型的一個Critical Point。此外,即使在不知道先驗r的情況下,我們產生的序列仍然可以全局收斂到一個Fixed Point。我們首先將這里提出的Unrolling方法考慮成是一個非精確的迭代算法,并與標準優化策略進行比較。我們發現通過引入網絡快速估計下降方向,我們的收斂速度(LBS)明顯快于傳統基于數學推導設計的迭代格式(如FBS,FISTA,ADMM等)。右上方的圖示則給出了使用我們的誤差矯正(LBS)和直接進行Unrolling(nLBS)的迭代曲線比較。我們可以看到不考慮誤差控制而直接使用網絡進行Unrolling會產生嚴重的震蕩,甚至得到完全不收斂的迭代序列。而通過使用我們提出的自適應誤差矯正策略,序列的收斂性得到顯著改善。
接下來,我們以盲圖像去模糊(反卷積)為例,展示如何利用我們提出的Unrolling框架解決具體的視覺問題。我們知道,由于盲圖像去模糊問題需要從一個已知觀測同時估計出未知的模糊核和清晰圖像,該問題是一個典型的病態反問題。因此傳統方法往往需要設計復雜的先驗,并根據經驗人為改造迭代過程,來實現對特定類型圖像的去模糊。幸運的是,基于我們的Unrolling框架,我們提出了一種“生成-矯正”式的網絡結構。這里Generator是一個進行圖像生成的殘差網絡模塊(反映數據和經驗),Corrector則是一個基于反卷積模型設計的自適應迭代矯正模塊(反映領域知識)。我們通過級聯這樣兩類模塊并進行協同學習,給出了一種可以在保證理論收斂的前提下,有效恢復各種不同類型模糊圖片的新方法。 這里需要指出的是,我們所提出的這一“生成-矯正”式協同學習結構,實際上是一種比“生成-對抗”網絡更加適合解決那些具有強領域知識的底層視覺問題。
我們在更多的視覺問題中嘗試使用以上的Unrolling策略,并在水下增強,低光圖像增強、去除反射、去除雨層等問題中取得了非常好的效果。
在深度學習的發展過程中,研究者曾經希望端到端學習策略可以完全替代傳統模型驅動的算法。但大量工作已經證明當我們面臨復雜問題的時候,完全拋棄領域知識是非常不明智的策略。這往往意味著我們需要使用更深的網絡結構和更多的訓練數據來學習問題中的潛在復雜回歸關系。在一些情況下我們甚至無法找到合適的網絡或訓練數據。因此如何將領域知識和先驗融合到深度網絡中成為深度學習領域一個新的研究熱點。
Deep Unrolling為我們提供了一種結合知識與數據的有效手段。我們可以通過領域知識建立原始模型并給出基礎迭代格式。在此基礎上通過引入可學習模塊,進而從給定訓練數據中學習該問題的潛在規律和數據分布。最后通過Unrolling實現知識與數據的有效融合。而我們近期的工作則從理論上為Unrolling方法的收斂性和有效性給出分析,在此基礎上設計了一系列基于自適應誤差矯正的Unrolling方法,并成功應用到不同的底層視覺問題中。
我們最后指出,“學習如何學習”(即Learning to Learn或Meta Learning)是人工智能未來發展的重要方向。而我們相信Unrolling將會成為設計Meta Learning算法的一類重要手段。
-
計算機視覺
+關注
關注
8文章
1700瀏覽量
46073 -
深度學習
+關注
關注
73文章
5512瀏覽量
121404
原文標題:Deep Unrolling:深度網絡與傳統模型之間的橋梁
文章出處:【微信號:deeplearningclass,微信公眾號:深度學習大講堂】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論