關於深度學習中地貌問題的不完整的回顧(一)

關於深度學習中地貌問題的不完整的回顧(一)

來自專欄隨機矩陣不隨機24 人贊了文章

寫在前面

這個系列是三月份(大概是專欄成立之初)和 @廖振宇 博士約好要寫的,然後我們因為一直在趕NIPS加上很嚴重的拖延症...所以到最近才初具雛形。landscape是深度學習領域一個很核心的問題,這個問題也是非常非常大,想要寫的面面俱到是一件非常有難度的事情,所以我們分成了好幾篇來寫,這一篇僅僅是一個引言,後續的文章會對具體的問題展開討論,我們將會附上引用論文的pdf鏈接,有興趣的同學可以根據這些論文對整個research line有一個初步的了解。當然結合專欄主題,我們最後會介紹一下隨機矩陣在研究landscape上的一些成果。下面,我們就開始吧。。。

GitHub鏈接: Zhenyu-LIAO/Deep-Learning-Landscape.

引言: 深度學習中的地貌問題

在新的硬體(GPU)和網路結構(RNN, CNN, ResNet等等)以及不斷提升的各種優化演算法的基礎上, 從事深度學習的科學家和工程師們獲得了前所未有的成功, 從而(再次)迎來了自2010年以來深度學習(深度神經網路)的一波新的發展熱潮: 從計算機視覺到語音識別, 自然語言處理, 一項一項的驚人成就被不斷的突破, 全新的變革好像無時無刻不在發生. 這一波深度學習的浪潮彷彿在這短短十年之間就席捲了千家萬戶, 給人們的工作和生活帶來了無法忽視的重大影響. 這些影響不僅僅局限在科學研究的層面, 藉助科技公司的強大推力, 每個人的生活其實早已發生了變化, 人們甚至已經習慣了相對"機器"來說, 人在某些領域望塵莫及的這一事實: 越來越多的棋手選擇了計算機作為自己的陪練, 越來越多的人們已經對精確的搜索結果和私人化的廣告推送習以為常, 智能助手已經以手機或者音響的形式走進了千家萬戶. 這一切看上去都是一片繁榮景象.

然而, 儘管深度學習在種種應用場景中無一例外取得了驚艷的表現, 我們對於它本身的"科學"的認知, 還彷彿蹣跚學步的孩子, 被這趟風馳電騁的技術的火車遠遠的甩在了身後. 當大眾都沉醉在深度學習的勾勒出的美妙圖景的時候, 很多人工智慧的科研人員已經憂心忡忡的提出了下面這些疑惑:

> 深度神經網路是不是新的"鍊金術"?

> 深度學習真的"學習"到了么?

> 深度學習這個黑盒子裡面裝的到底是什麼?

> 深度神經網路的性能可以得到理論保證嗎?

自2017年LeCun和Ali Rahimi針對"深度學習是不是鍊金術"這一問題引發的辯論以來, 深度學習, 亦或者深度神經網路的理論工作已經吸引了越來越多的學者, 其中不乏各種大神級別的物理學家和數學家, 從各自的專業領域, 給大家帶來對於深度學習的新的認識和理解. 在本系列中, 我們將嘗試梳理這些和深度學習有關的理論結果, 具體來說, 我們將圍繞"深度學習中的地貌(landscape)問題"來展開討論.

深度學習的地貌: 是什麼?

深度學習中的地貌問題, 事實上包含了幾個相互關聯但是又截然不同的研究方向. 事實上, 我們可以將深度學習看做一種廣義的"曲線擬合"的問題: 我們希望, 能夠找到一個好的模型, 儘可能準確的描繪給定的數據和對應目標的關係: 圖像數據和"貓"或者"狗"的概念之間的關係, 股票數據和其漲跌之間的關係, 不同語言之間同義詞或者近義詞之間的聯繫. 而深度學習就給我們指明了這樣一條做好"曲線擬合"的道路: 通過構建足夠的神經網路模型, 藉助海量的數據和基於梯度(gradient-based)的優化方法, 我們往往能夠獲得一個很好的"曲線擬合"模型.

再次審視深度學習的這幾個關鍵點的時候, 下面幾個問題就會自然而然的出現:

  • 表達:深度神經網路是否真的能夠擬合我們需要擬合的數據? 如果是, 我們需要多麼**深**的網路才能做到這一點?
  • 優化:目前被廣泛使用的基於梯度的優化方法是有效的么? 它是不是總能幫我們找到我們渴望的"好的"擬合模型?
  • 泛化:單純的"數據擬合"真的足夠了么? 事實上, 我們期望的是, 通過有限的訓練數據, 獲得一套所謂的"普適規則". 真正的目的是這套獲得的規則也能夠應用於更多更廣的數據(即, 不僅僅局限於用來訓練的那些數據, 因而並不是對訓練數據的單純記憶(memorize)). 我們將模型的這種"能夠推廣到更廣泛數據"的能力稱之為泛化性能(generalization performance). 因此, 我們的問題事實上是: 神經網路的泛化能力到底如何呢?

這些問題, 都可以廣義的被總結為深度學習中的地貌問題. 具體來說, 深度學習中的地貌問題研究的是, 深度神經網路模型以及對應的優化方法和其性能(在訓練集上的表現, 或者其泛化性能)之間的關係. 從某種意義上講, 它幾乎涵蓋了關於神經網路的絕大多數理論研究方向.

基本概念

我們首先介紹一些和地貌問題有關的基本概念:梯度, Hesian矩陣, 損失地貌的全局最小, 局部最小和鞍點(saddle point)

對於一個光滑的損失函數 l:mathbb{R}^n mapsto mathbb{R} , x 是該損失函數的駐點(stationary point)當且僅當對應梯度 
abla{l(x)}=0 . 駐點的類別由 Hessian矩陣 
abla^2 l(x) 來判斷:

* 如果 
abla^2 l(x) 的所有特徵值為正, 駐點 x局部最小點;

* 如果 
abla^2 l(x) 的所有特徵值為負, 駐點 x局部最大點

* 如果 
abla^2 l(x) 的特徵值有正有負, 駐點 x鞍點;

* 如果對於一個鞍點 x
abla^2 l(x) 有零特徵值, 則稱 x退化的鞍點 (degenerate saddle point).

在了解了上面定義的基礎上, 我們正式給出一直談到的地貌問題的定義:

>考慮權重矩陣 W=(W_1,...,W_H) 所構成的空間 Xi , 空間中的每一點和一個(不同的)神經網路模型一一對應, 並且對應一個唯一的損失函數l(W)的值 (反之不然, 同一個損失函數值可能對應多個不同的 W ). 深度學習地貌問題討論的就是該空間中點和對應損失函數之間的關係以及不同的演算法對於該空間的搜索能力(即, 不同的演算法在空間中的運動軌跡).

另外, 對於光滑的損失函數 l , Hessian矩陣是對稱陣, 可以寫成譜分解寫成 USigma{U^T}=sum{u_iu_i^T}sigma_i 其中 (sigma_i,u_i) 為對應的特徵值和特徵向量.

顯然, 在地貌問題中, Hessian矩陣扮演著一個非常重要的角色. 根據上面的定義, 其特徵值直接決定了空間中對應點附近鄰域中的損失函數 l 的值, 即:

  • 如果該點(記為 W )為局部最小值, 則附近鄰域的損失函數值都嚴格大於其對應的損失函數 l(W) . 對應的結果就是, 當演算法在 W 點並嘗試進行下一步移動是, 附近空間的每個方向都一定導致損失函數增大.
  • 如該點為局部最大值, 則附近鄰域的損失函數值都嚴格小於其對應的損失函數 l(W) , 因此, 當演算法在 W 點並嘗試進行下一步移動是, 附近空間的每個方向都一定導致損失函數減小.
  • 如果該點為鞍點, 則附近鄰域的損失函數值都可能大於, 小於或者等於其對應的損失函數 l(W) , 因此, 當演算法在 W 點並嘗試進行下一步移動是, 附近空間的存在一些方向可以使損失函數增大, 另一些方向使其減小, 還有一些方向則不會使之發生變化.

W 為一維時, 圖示如下:

(圖片來源: Ian Goodfellow [Deep Learning](Deep Learning) Section 4)

為什麼Hessian矩陣能夠告訴我們這些信息呢? 下面, 我們再來審視一下Hessian矩陣的特徵值到底意味著什麼:

考慮一個駐點 W^* ,對於該點附近鄰域的另一點 W , 我們對損失函數 l(W) 進行泰勒展開可以得到:

l(W)approx{l(W^*)}+(W-W^*)^T
abla{l(W^{*})}+frac{1}{2}(W-W^*)^T H(W^*)(W-W^*).

其中 
abla{l(W^*)}W^* 對應的梯度, H(W^*) 為對應Hessian矩陣, W-W^* 就是我們從 W^* 移動到 W 的這一步(包含大小和方向).

根據定義我們有 
abla l(W^*)=0 , 因此, WW^* 對應損失函數的差別即為

l(W)-l(W^*)approxfrac{1}{2}(W-W^*)^T H(W^*)(W-W^*).

過對應Hessian矩陣的譜分解, 我們得到

l(W)-l(W^*)approxfrac{1}{2}(W-W^*)^TU_HSigma_HU_H^T(W-W^*)=sumsigma_ifrac{1}{2}(W-W^*)^Tu_iu_i^T(W-W^*).

因此, 如果假設在駐點 W^* 我們有一個非常美好的線性空間(事實情況可能比這複雜的多), 我們可以研究這個線性空間的基(basis)和維度(dimension). 那麼, 如果我們選擇沿著特徵值 sigma_i>0 對應的特徵向量 u_i 的方向移動的話 (其他方向分量為0), 可以得到  l(W)-l(W^*)>0 . 也就是說, 當我們考慮駐點 W^* 附近空間的時候, 正的特徵值對以特徵向量的方向就是上升的方向. 反正, 負特徵值對應的方向就是下降的方向, 而零特徵值對應的方向則無法判斷, 往往需要更加高階的信息(更進一步的泰勒展開).

備註: 那麼在深度學習的問題中, 人們一直在討論訓練深度神經網路中最大的障礙可能是什麼: 在認為局部最大點不存在的情況下(在一些特定的網路結構和損失函數的情形下, 這一點已經被證明了), 需要關注的就是局部最小點和鞍點. 值得注意的是, 局部最小值只描述了對應駐點附近鄰域的局部情況: 我們並不了解更遠的地方發生了什麼, 是否有更小的值. 在所有局部最小值中, 我們將其中對應損失函數值最小的稱之為全局最小值, 這也是我們能到達到的損失函數的最小值, 也是對應地貌的最低點. 下圖形象的展示了這個問題:

(圖片來源: Ian Goodfellow [Deep Learning](Deep Learning) Section 4)

備註2: 一個非常有意思的問題是, 如果演算法並嚴格不沿著對應特徵向量的方向移動的時候, 會發生什麼呢? 換言之, 如果移動方向在不同符號特徵值對應的特徵值向量上都有不為零的分量, 那麼會發生什麼的? 演算法會下降還是上升呢? 為了討論這個問題, 我們考慮對應問題的連續版本: 即, 演算法可以在空間 Xi 中連續的移動, 自變數變為時間 t . 也就是說, 隨著時間變化, 演算法在空間中畫出一條連續的軌跡. 我們知道這樣的連續系統中會出現指數收斂的情況, 舉一個一維情況下的例子, 考慮一個由如下常微分方程(ODE)表述的動力系統: frac{dx}{dt}=alpha{x}, x=0 是該系統的一個平衡點(或者駐點, 由於對應梯度為零), 而這樣的方程的解為 x=x_0exp(alpha{t}) , 其中 x_0 為其初值(初始位置). 因此, 當 alpha>0 時, x 將會隨時間指數增大, 從而遠離對應的駐點(發散). 相反的, 如果 alpha<0 , x 將會隨時間指數減小至零, 從而收斂到對應的駐點(收斂). 事實上, 在上述的梯度系統中, 也有類似的情況發生. 當我們考慮一個對應駐點附近的線性空間的時候, 我們總可以通過線性變化將演算法移動的方向投影在Hessian特徵向量所確定的坐標系中. 那麼, 對應正特徵值方向上的投影的部分就是指數發散, 從而導致我們離開對應的駐點 W^* . 因此, 我們可以總結, 一旦我們移動的方向在對應正特徵值方向上投影不為零, 演算法的運動軌跡就會飛速的遠離對應駐點. 當且僅當移動方向垂直於所有正特徵值對應特徵向量確定的空間的之後, 我們才會靠近對應駐點. 如下圖所示:

基於上面的描述, 我們就有了一種描述演算法在一個對應駐點附近運動情況的方法: 如果依舊在線性空間的基礎上考慮, 我們可以將該駐點鄰域空間劃分成三個子空間: 穩定(stable), 對應Hessian特徵值為負; 不穩定(unstable), 對應特徵值為正數和對應特徵值為零的(center). 根據對應線性子空間的維度來判斷演算法被該駐點吸引的可能性大小(通常稱之為分析basin of attraction). 事實上, (Morse theory - Wikipedia)給出了非退化駐點(non-degenerate critical point, 對應Hessain矩陣不包含零特徵值)的一些很有趣/很強的結果, 然而對應退化的駐點, 更近一步說, 退化的鞍點則需要進一步更加深入的研究.

深度學習的地貌: 為什麼?

深度學習地貌的科研意義是毋庸置疑的, 那麼其如此火熱的今天, 為什麼學界遲遲還沒有拿出一套令人信服的研究方案, 換言之, 這個問題本身難在哪裡?

難點1: 高維(high-dimensional)

深度學習問題的高維特點體現在很多方面, 比如:

  • 高維數據: 在機器視覺, 自然語言處理, 語音識別等等深度學習獲得重大突破的領域, 數據無一例外的有海量高維兩個特點. 海量意味著用以訓練的數據數目非常多, 而高維則代表每個數據"很大": 例如, 知名的計算機視覺數據集 [MNIST](MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burges) 和 [ImageNet](ImageNet) 中圖片數據的維度就分別是28* 28 = 784和256*256= 65536(常用彩色). 事實上, 機器學習中高維問題已經是一個老生常談的話題了: 在傳統統計學習(statistical learning)的框架下, 我們常常稱之為維度災難(curse of dimensionality). 常見的兩種理解如下:
  • 需要指數增長的訓練數據數目: 在機器學習經典教材 Pattern Recognition and Machine Learning(PRML by Bishop) 一書中就提到的是這個角度
  • 高維空間中反直覺(counterintuitive): 例如不同數據點之間的歐氏距離幾乎約等於一個常數, 無論遠近(在分類問題中: 同類還是不同類), 這就導致了, 很多基於低維空間(3D)直覺的演算法在高維數據上行不通(例如最鄰近搜索:nearest neighbor search. 數據之間的距離都差不多, 而不是距離近的同一類, 遠的是不同類). 亦或是高維空間的體積分布和我們熟悉的三維非常不同.
  • 高維(模型)參數: 導致的計算(搜索)量隨維度的指數上升, 需要大量的計算資源.

備註3: 由於深度神經網路的參數遠遠大於數據的維度和數目, 依據統計學習的理論, 這樣的模型應該是沒辦法進行有效的訓練的. 即由於模型複雜度太高, 一定會發生過擬合(overfitting)的現象, 從而導致模型的泛化性能不好. 然而, 現實生活中獲得的深度神經網路模型, 似乎並沒有遇到過擬合的問題. 這也是深度學習理論的一個非常重要的研究方向.

難點2:非凸(non-convex)

具體來說, 對於一個任意的非凸損失函數(loss function), 找到其全局最小值(global minimum)往往是NP-complete的(參考Some NP-complete problems in quadratic and nonlinear programming). 非常不幸的是, 在Training a 3-node neural network is NP-complete已經得到證明, 即使是訓練非常簡單神經網路事實上也是NP-complete的. 因此, 長期以來, 成功訓練一個神經網路一直被認為是非常困難, 甚至不可能的.

然而, 隨著我們對非凸問題的理解的不斷深入, When Are Nonconvex Problems Not Scary?一文的作者指出: 很多常見的非凸優化問題, 例如 phase retrieval, independent component analysis 以及 orthogonal tensor decomposition等等, 都具有以下特點:

  • 所有的局部最小值都是(等價的)全局最小值 (all local minima are also global)
  • 在任何鞍點的"附近", 目標損失函數都具有一個具有負數曲率的(下降)方向(a negative directional curvature), 因此有沿著這個方向繼續下降(使目標損失函數的值繼續減小)的可能, 進一步的, 這提供了一種"有效地尋找到全局最小值"的可能性.

因而是有希望實現有效的優化的. 至此, 我們非常渴望知道, 深度學習是否也具有和上面相同或者相似的性質? 通過怎樣的優化方法我們可以有效的到達(我們"渴望"的)全局最小值.

難點3: 泛化性能

事實上, 問題遠遠比這更加複雜. 在上文中, 我們一直在討論的是深度神經網路中的訓練的問題, 即, 針對於一組給定的訓練數據, 我們如何通過有效的優化手段(演算法)訓練我們的神經網路, 使網路的輸出能夠成功擬合這部分訓練數據, 通常情況下, 找到對應的目標損失函數的全局最小值. 然而, 在機器學習或者深度學習中, 真正的核心問題的是泛化性能(generalization performance),成功擬合了訓練數據並不保證泛化性能. 事實上, 往往訓練集找到的全局最優點在測試集的表現很差。 更令人困惑的是,大量實驗表明,局部最優點甚至鞍點貌似具有相似的泛化性能。遺憾的是, 由於神經網路其複雜的結構, 基於傳統統計學習方法的, 對於泛化性能的估計往往比較悲觀, 事實上, 一批又一批的科研工作者投身理解深度模型泛化的理論工作中.

  • 我們是否需要獲得全局最小值? 是否局部最小值或者鞍點就可以保證很好的泛化性能. 例如: Are Saddles Good Enough for Deep Learning?
  • 如果是的, 具有怎樣特徵(比如, 對應Hessian或者Jacobian矩陣)的局部最小值或者鞍點才能夠獲得良好的泛化性能?

至此,我們比較籠統地介紹了深度學習中的地貌問題,在下一篇文章中我們將回顧從優化角度研究這個問題的一些工作。文章的不足之處,還望各位知乎大神不吝賜教。


推薦閱讀:

C++: const and constexpr
機器學習中的數學(3)
關於GTM⑨的抄書日記-5
2018阿貝爾獎揭曉!
0~6歲小兒數學教育

TAG:深度學習DeepLearning | 自然科學 | 數學 |