NeurIPS 2018提前看:視覺化神經網路泛化能力

YuanyuanLi發表於2018-11-28

機器之心個人主頁:https://www.jiqizhixin.com/users/a761197d-cdb9-4c9a-aa48-7a13fcb71f83

1. 介紹

選文理由:從統計理論轉向人工智慧,過去的教育經歷讓我十分關注深度學習背後的理論支援。相對學界在研究中的大膽探索,工業界一般是更保守的,注重模型的可解釋性。特別是在大型機械的研發過程中,每一個部件的可控性都非常重要,假如演算法在不可預料的情況下出現問題,就有可能對作業結果造成影響,甚至造成事故。這樣的損失往往又是以百萬計的。

因此,在我和團隊的工作過程中,模型的訓練結果雖然重要,但更重要的往往是理解模型的結果為何是這樣的, 以便有針對性的對模型測試和明確改進方向。另一方面,產品研發是團隊工作,具有不同背景的人在一起工作時,優秀的視覺化結果能夠更直白的說明觀點、提高工作效率。

簡而言之,揭示模型表現及其原因的研究,如引數對模型的影響或模型的視覺化,是我比較關注的方向。今年 NeurIPS 收到和接收的論文達到了驚人的數量,勢必對於參會的學者造成了一定困擾,即如何有針對性地選擇相關論文。在目前釋出的神經網路的論文之中,有不少研究將目光轉向了對模型穩健性的探索,如引數設定或模型結構對神經網路損失函式的空間分佈的影響。

這類研究對於我們理解神經網路黑箱模型背後到底發生了什麼有很大的幫助,也是我今天想要討論的方向。目前 NeurIPS 官網目前放出的論文僅有標題和摘要,許多還沒有釋出在網上,因此我選取了三篇在網上已經在 ArXiv 上有預印版的文章進行討論。
2. 論文討論

1. Visualizing the loss landscape of neural nets

  • 連結:https://arxiv.org/abs/1712.09913

  • 作者個人主頁:https://www.cs.umd.edu/~haoli/

作者 Hao Li 在馬里蘭大學取得了博士學位,他的研究方向主要是為高效能和資源受限的系統設計高效且可擴充套件的機器學習演算法。目前 Hao Li 已經進入 Amazon Web Services (AWS) 工作。

這是我想討論的第一篇論文,主要是因為它提供了一個比較概括性的對神經網路視覺化研究。作者主要想研究幾個問題:

  1. 不同的神經網路結構如何影響損失函式的分佈(Landscape)。這裡作者主要對比了 ResNet 和無快捷連線(shortcut connection)的 ResNet(即模型的結構比較像 VGG 這種經典神經網路結構),其中每個模型又有 20、56、110 層 layer 的不同情況。

  2. 損失函式的分佈由於神經網路的結構而發生了改變,不同的損失函式分佈又是如何影響模型的可訓練性、穩健性。

作者首先對使用線性插值法(Linear interpolation)的視覺化方法進行了抨擊,認為該方法存在幾個缺點。首先,1D 圖很難顯示非凸性;其次,該方法不考慮批量歸一化或網路中的不變對稱性。作者在這裡提出的方法叫做 Filter Normalization,並用這一方法對上面的問題進行了研究。文章中展示的視覺化結果非常清晰,如下圖所示:

NeurIPS 2018提前看:視覺化神經網路泛化能力

圖 1:有無 shortcut connection 的損失函式曲面視覺化對比。[圖片來源:Hao, L. et al. (2018). Visualizing the loss landscape of neural nets. NIPS.]

上圖中的對比很強烈——當神經網路比較淺時,不使用快捷連線(shortcut connection)對於損失分佈的影響還不算大,即上圖中的(a)和(d)圖。當網路達到了 56 層的深度時,無快捷連線(shortcut connection)的模型的等高線圖中顯示的損失函式基本是混亂的(圖(e))。特別是在一些區域中,沿著梯度的方向運動並不能達到損失更小的區域。

這顯然是很危險的,意味著梯度下降方法的效率被大大損害了;同時也從另一方面解釋了模型的訓練性,即為何有些模型的訓練更容易,或者對於同一模型為何引數的取值不同會對模型表現造成巨大影響。假如模型初始化後落入了一個高度非凸的區域中,在整個訓練過程中演算法可能都無法找到一個比較好的解,因為梯度所指向的方向根本毫無意義。上圖第三欄中,ResNet-110-noshort 顯示了更極端的非凸性,不管向哪一個方向移動梯度都非常大。

我們特別需要注意的是在上圖第一行中——即有快捷連線(shortcut connection)的 ResNet——即使模型的深度大大增加,中心的極小值的深度也並沒有增加多少,即模型收斂的區域仍然是相對平坦的。而第二行中當我們去掉了 ResNet 的快捷連線(shortcut connection)時,影象中心紫線所代表的極小值的深度大大增加了。這樣一個最直接的影響——上文已經提到——就是訓練難度增加了。

另一個比較有意思的發現在於,當神經網路的寬度增加——即每層的神經元個數增加——損失函式的曲面也變得更平滑了,見圖 2。這裡作者使用了 RestNet 56 層的結構,仍然是第一行有快捷連線(shortcut connection),第二行無。其中每個子圖下面的 k 表示隱藏神經元的倍數,即 k=2 為模型的寬度是 k=1 的模型的二倍。旁邊的百分比數字表示模型的錯誤率。

NeurIPS 2018提前看:視覺化神經網路泛化能力

圖 2:有無 shortcut connection 和不同寬度的神經網路損失函式曲面視覺化對比。[圖片來源:Hao, L. et al. (2018). Visualizing the loss landscape of neural nets. NIPS.]

我們首先從上到下兩兩對比地討論這些結果,可以看到有快捷連線(shortcut connection)總是比無快捷連線(shortcut connection)的損失函式曲面更平滑一些,極小值的位置也更淺。不過更重要的是當我們從左到右的進行分析時——隨著模型寬度的增加,模型的損失曲面顯著地變得更平緩了,也就是更淺了。

對於沒有快捷連線(shortcut connection)的模型來說,增加模型寬度也許不能直接解決損失函式的分佈中存在梯度混亂的問題,圖(f)的四角都可以看到有很不平滑的等高線,但由於曲面變得更淺,我們可以側面緩解這個問題。

考慮到此前的許多研究都強調神經網路的深度的重要性,而在這裡我們卻得出更寬的神經網路損失函式曲面更優秀,也許我們應該建立更深更寬的巨型神經網路

這裡作者只是指出了模型的錯誤率是隨著模型的寬度而降低,隨著無快捷連線(shortcut connection)而增加,並沒有解釋損失函式的曲面是如何影響到模型的穩健性。不過在下一篇文章中,我們將會看到對這方面的分析。

對這篇文章的解讀就到這裡,我們可以看到雖然本文使用的 filter normalization 還是大量借鑑了目前的 2d 視覺化方法,創新性有限,但文中給出的視覺化非常直觀、清晰,得出的結論直接,很好的完成了文章的主題。另一個亮點在於文章倒數第二部分對我們所觀察到的凸性進行了驗證,十分嚴謹。

筆者認為文章的不足在於試圖表達的內容太多,在一個版塊中試圖完成從實驗設計、模型結構比較、模型寬度比較、模型初始化討論、凸性驗證等的分析,反而顯得內容擁擠,有些結論給的並不清晰,好在作者的敘述是十分易懂的。此外,筆者對 Inception 模型沒有被納入分析感到一點遺憾,畢竟這是目前最受歡迎的神經網路之一,筆者認為比 ResNet 使用的更多。

我們還需要注意,由於對神經網路的視覺化必須經過降維處理,而這過程中是有丟失重要資訊的風險的,因此,對於依此進行的分析和得出的結論應該始終保持一定的懷疑精神。

目前本文的程式碼已經公佈在 github(https://github.com/tomgoldstein/loss-landscape),有興趣的讀者可以復現一下結果。

2. Hessian-based Analysis of Large Batch Training and Robustness to Adversaries

  • 連結:https://arxiv.org/pdf/1802.08241 

  • 作者個人主頁:http://amirgholami.org/ 

本文共同一作中 Zhewei Yao 的個人主頁沒有找到, Amir Gholami 是在伯克利 BAIR 實驗室工作的一名博士後,於 UT Austin 獲得博士學位,他的博士研究論文被評為 2018 年 UT Austin 最佳博士論文。他同時還獲得 SC'17 最佳學生論文獎,ACM 學生研究比賽金獎,以及入圍 SC'14 最佳學生論文決賽。Amir Gholami 目前的研究包括神經網路的大規模訓練,隨機二階方法和穩健優化。

本文致力於探討表徵神經網路在優化空間中不同點的泛化效能,主要針對不同批量大小的情形。我們在此前的實證研究中都看到大量結果顯示使用小批量訓練的神經網路的穩健性更好,大批量訓練的神經網路更容易泛化失敗。這一點從直覺上有些難以理解,因為使用大批量訓練引數更新的更加不頻繁,而且估計的梯度應該更加平滑和準確。

作者開門見山,在開篇即表述了本文想回答的問題以及他們的回答:

  • 大批量訓練與小批量訓練有何不同?並且使用不同的批量大小,模型收斂的鄰域的區域性幾何之間有什麼區別?

回答這個問題的方法是利用反向傳播二階導數來計算真正的 Hessian 譜(hessian spectrum),避免對 Hessian 譜的估計造成的誤差。結果顯示,此前人們普遍相信的鞍點困擾優化的論據其實並不存在在大批量訓練過程中,真正的原因是大批量訓練的模型會逐漸收斂於具有更大的譜的區域。

由於計算 Hessian 譜 所涉及到的計算量是巨大的,作者使用了 toy dataset CIFAR-10,MNIST 和 CIFAR-100,所使用的模型也比較簡單。下表給出了模型縮寫和對應的模型結構,之後的對比分析主要是針對 C1 和 M1 進行的。

NeurIPS 2018提前看:視覺化神經網路泛化能力

表1:模型定義和結構

NeurIPS 2018提前看:視覺化神經網路泛化能力

圖 3:在 CIFAR-10 上訓練的 C1 的模型(左)和在 MNIST 資料集上訓練的模型 M1(右)的 Hessian 的前 20 個特徵值。[圖片來源:YAO, Z.; GHOLAMI, A.; LEI, Q.; KEUTZER, K.; MAHONEY, M. W. (2018). Hessian-based Analysis of Large Batch Training and Robustness to Adversaries. NIPS.]

圖 3 給出了作者計算出的 Hessian 的 20 個最大的特徵值。hessian 是迭代計算的,直到每個特徵值的相對誤差小於 1e-4。圖上顯示的趨勢很清楚,不管是左圖內還是右圖內,不同顏色的特徵值曲線幾乎是平行的,即隨著批量大小的增加,hessian 的譜也隨之增加,大批量訓練的頂部特徵值比小批量訓練的頂部特徵值相對較大。從較早的 Hochreiter 和 Schmidhuber 等人的論文《FLAT MINIMA》到最近的 Chaudhari《Entropy-SGD: Biasing Gradient Descent Into Wide Valleys》和 Keskar《On Large-Batch Training for Deep Learning: Generalization Gap and Sharp Minima》,我們知道,模型如果收斂到一個比較尖銳的極小值——或者如我們在前一篇文章中看到的,更深的極小值——模型會缺乏泛化能力。

而模型收斂解的銳度就可以由 hessian 的譜得出,這一點從 hessian 的定義就能夠明白。因此,我們在上圖看到的隨著批量增大而增大的 hessian 譜在一定程度上解釋了為什麼大批量訓練的模型泛化能力更差:因為訓練處的模型收斂到了更尖銳的解。這一點與我們在上一篇文章中觀察到的現象相符合,即當等高線圖顯示模型的極小值更深,其對應的誤差率往往也越高。

當然,Neyshabur 等人的文章《Exploring Generalization in Deep Learning》也指出,銳度本身可能並不足以決定泛化能力,即銳度並不是影響泛化能力的唯一原因。因此,研究損失函式在模型收斂點附近的鄰域中的行為將會提供更多資訊。

這也是作者在本篇文章中所做的研究,他們繪製了當模型引數沿主導特徵向量擾動時損失如何變化。

NeurIPS 2018提前看:視覺化神經網路泛化能力

圖 4:對 C1 模型沿著 Hessian 的主要特徵向量 v1 進行擾動時損失的變化(log-scale)。[圖片來源:YAO, Z.; GHOLAMI, A.; LEI, Q.; KEUTZER, K.; MAHONEY, M. W. (2018). Hessian-based Analysis of Large Batch Training and Robustness to Adversaries. NIPS.]

這裡 epsilon 是一個標量,它擾亂了由 v1 表示的主要特徵向量的模型引數,其數值表示擾動的程度。我們首先可以看到隨著批量的增加,訓練損失和測試損失的曲度都開始增加,更重要的是,當批量增加,測試損失的曲率開始遠大於訓練。這代表了訓練中的不一致性,因此即便大批量模型訓練的損失很小,其在測試集上的損失仍然會很大。

文章提出並解答的第二個問題是:

  • 穩健優化(robust optimization)和大批量培訓之間的聯絡是什麼?同樣,批量大小如何影響模型對敵對擾動(adversarial perturbation)的穩健性?

也即是說文章的研究重心從批量大小與模型一般意義下泛化能力的關係,轉移到了批量大小與面對敵對攻擊時的穩健性的關係。作者的實驗結果顯示與小批量訓練的模型相比,以大批量訓練的模型明顯更容易敗於對抗性攻擊。

NeurIPS 2018提前看:視覺化神經網路泛化能力

圖 5:在訓練期間,hessian 的主要特徵值的變化和總梯度。[圖片來源:YAO, Z.; GHOLAMI, A.; LEI, Q.; KEUTZER, K.; MAHONEY, M. W. (2018). Hessian-based Analysis of Large Batch Training and Robustness to Adversaries. NIPS.]

我們可以看到隨著批量的增加,藍色曲線所代表的主要特徵值是被吸引到了更大的值去的。特別值得注意的是,總梯度值和 Hessian 譜表明大批量不會在鞍點處「卡住」,但是它會在求解過程中被高曲率的區域所吸引。作者還對使用穩健優化(robust optimization)訓練方法的模型進行了視覺化,證明對抗性訓練可以導致模型收斂到 Hessian 譜較小的區域。

至於為什麼此前許多學者認為銳度本身不能決定模型泛化能力而我們卻在這裡看到銳度對模型的泛化能力有如此大的影響?作者在下文中有提到他們並沒有證明 hessian 譜與模型的穩健性是有直接聯絡的,筆者認為這兩者並不矛盾,假如 hessian 譜與模型泛化能力有聯絡並且作者同樣進行了對解的尺度(如 norm、margin)的測試分析,我們也許會發現對模型更強的影響。

這裡由於沒有對比研究,我們並不能得出任何這方面的結論。並且本文主要是在 MNIST 等簡單的資料集上使用簡單的神經網路結構進行分析的,也許其他可能的影響相對更穩健,不容易遭到擾動。假如 hessian 譜與模型泛化能力實際上是沒有直接關係的——在許多情況下應該就是這樣的——對於我們觀察到的這種相關現象,作者認為一個可能的解釋是大批量訓練的模型得到的決策邊界不太穩定,因此對於小的對抗擾動,模型會被愚弄。但是這種現象的原因本質上是不確定的,這也許會成為一個新的研究方向。

本篇文章相對來說更晦澀一點,一方面因為這篇文章計算的內容很多,另一方面是因為圖表的位置和其附近的文字關聯不大,讀者往往需要前後翻找,有些混亂。但這篇文章仍然是非常值得一讀的,內容翔實、嚴謹。文章主要計算的是 hessian spectrum,由於這個涉及到二階導數的計算,在實際應用中應該比較難以借鑑,我們主要是參考作者所傳遞的觀點。

3. Interpreting neural network judgments via minimal, stable, and symbolic corrections

  • 連結:https://arxiv.org/abs/1802.07384

  • 作者個人主頁:http://people.csail.mit.edu/xzhang/

  • 作者 Xin Zhang,麻省理工學院 CSAIL 組的博士後研究員。Xin Zhang 在 Georgia Tech 取得了博士學位。他的研究主要與程式語言和軟體工程相關。

本篇文章也跟神經網路視覺化有關,不過卻是從另一個角度:對一個簡單二分類問題來說,如果分類結果是 0,那麼我們對輸入資料做什麼修改,可以讓其分類結果變為 1?這不禁讓人想到神經網路視覺化中,maximize activation 的做法。這篇文章中比較新穎的地方是對這種修改進行的限定,即文章題目中的 minimal,stable,symbolic。

  1. Minimal 要求修改後的輸入資料與原輸入資料儘可能的相似,作者借鑑了正則化手段,通過定義一個 L1 範數δ來衡量兩次輸入之間的距離就可以簡單的達到這個目的。這個條件顯然是符合直覺的——我們希望對原資料進行儘可能少的修改就達到一個滿意的結果。

  2. Stable 則是通過一個引數 e 來定義的。Stable 的主要目的是保證所提出的修改是有一定自由度的,只要修改後的輸入資料是在這附近,都應該能夠達到改變分類結果的效果。作者定義其為,假如對任意δ小於 e 的輸入,都能保證其分類結果為 1,則稱δ是 e-stable 的。

  3. 這兩個定義又可以從單個輸入資料自然的擴充套件到一片輸入空間,從而符合 symbolic 的定義。三個條件的定義環環相扣,設計的十分巧妙。

文章給出了幾個實驗結果,見圖 6,紅叉表示原始預測結果,藍色三角形表示符號校正(即,該區域內的所有點都能夠改變分類結果)。圖 6(a)是針對預測申請人能否獲得貸款的預測問題,演算法生成了一系列符號校正,或者說一種關係,來建議對 DTI 和利率的修改。

圖 6(b)針對預測是否可以通過基於例項的靜態和動態特性的求解器有效地求解一階定理的問題。這裡給出的建議非常直觀:要麼減小問題大小(通過減少平均子句長度)或提供部分解決方案(通過新增單元子句)來減小問題的複雜性。最後,圖 6(c)顯示瞭如何將線條新增到圖形中,以便網路將其識別為規範的貓圖。紅線表示原始輸入,藍色框表示符號校正,綠線表示其中的一個具體校正。

前兩個例子僅涉及到 2 個特徵,第三個例子設計到 8 個特徵(每個頂點的座標),並且屬於計算機視覺的問題,雖然這個任務仍然屬於嘗試性實驗(toy experiments),但展現了演算法應用於高維校正的一定可能性。

NeurIPS 2018提前看:視覺化神經網路泛化能力

圖 6:對不同的問題所生成的符號解釋。[圖片來源:Zhang, X.; Solar-Lezama, A.; Singh, R. (2018). Interpreting Neural Network Judgments via Minimal, Stable, and Symbolic Corrections. NIPS.]

本文隨後的大部分研究主要集中在計算演算法,從結果來看,該演算法的複雜度大致是線性的,運算速度比較快。筆者認為幾個相對難以實現的設計在於:

  1. 可以修改的特徵需要預先確定,對於影象資料來說,這一點比較困難。但將所有的特徵都設定為可以修改又不現實,我們也許甚至不能得到合理的影象或過於複雜過於難以理解的修改法則。

  2. 當訓練資料很少或者不同類別之間重合很嚴重時,e-stable 的條件可能很難滿足。即每個 cluster 的規模可能都很小。

  3. 演算法主要針對的是對決策邊界的探索,迴歸模型顯然是不滿足這一點的。當然提出這一點未免有些吹毛求疵。

本篇文章的創新性很強,十分值得一讀,如果能夠在複雜的應用上表現良好,筆者認為在工業界落地的可能性很強。主要是因為對於工業產品來講,產品設計的目的都是更好的效能表現,並且更改產品引數並不困難。舉例來說,假如神經網路被用於預測一個水站的供水效率,我們總是能夠準確的預測下午五點水站供水不足,從準確率來講神經網路的表現是優秀的,但從產品角度來講這樣一個模型並不能幫助我們改進供水效率。假如我們知道在下午五點水站供水不足,並且如果增加壓強我們能夠達到滿意的供水效率,那麼這個產品顯然是更成功的。

3. 小結

總的來說,隨著學界對神經網路的研究,我們似乎越來越能夠理解神經網路的工作原理。以上三篇文章雖然都沒有提出任何確定性結論,但至少給出了我們在設計神經網路時能夠改進的方向。使用 shortcut connection,使用 robust training,在訓練完成後生成一系列可以改變分類結果的修改規則來理解生成的決策邊界,似乎是我們可以從以上三篇文章中借鑑的做法。

但回頭想想,作為一個從業者,利用自己所掌握的先驗知識來儘可能地簡化問題,然後用一個簡單的神經網路來解決它,是不是也是一種思路?至少在業界,許多問題是基於特定領域的,我們也不可能獲取像 ImageNet 那樣規模的資料來訓練大規模的神經網路;但同時也是在業界,對神經網路的期待是無需對原始資料進行任何處理或只進行儘可能少的處理,就能夠解決問題。這當然也是合理的——對專家知識(expert knowledge)的依賴不應過度——但或許我們也可以反思一下,在這兩者之間尋找一個平衡。

相關文章