作者 Yuanyuan Li:幾次轉行,大學國際貿易,研究所學生轉向統計,畢業後留在比利時,選擇從事農用機械研發工作,主要負責圖像處理,實作計算機視覺算法的落地。欣賞一切簡單、優雅但有效地算法,試圖在深度學習的簇擁者和懷疑者之間找到一個平衡。我追求生活的寬度,這也是為什麼在工作之外,我也是機器之心的一名技術分析師。希望在這裡和大家分享自己對于技術的了解,通過思想的碰撞拓寬思路和眼界。
機器之心個人首頁:
https://www.jiqizhixin.com/users/a761197d-cdb9-4c9a-aa48-7a13fcb71f831. 介紹
選文理由:從統計理論轉向人工智能,過去的教育經曆讓我十分關注深度學習背後的理論支援。相對學界在研究中的大膽探索,工業界一般是更保守的,注重模型的可解釋性。特别是在大型機械的研發過程中,每一個部件的可控性都非常重要,假如算法在不可預料的情況下出現問題,就有可能對作業結果造成影響,甚至造成事故。這樣的損失往往又是以百萬計的。
是以,在我和團隊的工作過程中,模型的訓練結果雖然重要,但更重要的往往是了解模型的結果為何是這樣的, 以便有針對性的對模型測試和明确改進方向。另一方面,産品研發是團隊工作,具有不同背景的人在一起工作時,優秀的可視化結果能夠更直白的說明觀點、提高工作效率。
簡而言之,揭示模型表現及其原因的研究,如超參數對模型的影響或模型的可視化,是我比較關注的方向。今年 NeurIPS 收到和接收的論文達到了驚人的數量,勢必對于參會的學者造成了一定困擾,即如何有針對性地選擇相關論文。在目前釋出的神經網絡的論文之中,有不少研究将目光轉向了對模型穩健性的探索,如超參數設定或模型結構對神經網絡損失函數的空間分布的影響。
這類研究對于我們了解神經網絡黑箱模型背後到底發生了什麼有很大的幫助,也是我今天想要讨論的方向。目前 NeurIPS 官網目前放出的論文僅有标題和摘要,許多還沒有釋出在網上,是以我選取了三篇在網上已經在 ArXiv 上有預印版的文章進行讨論。
2. 論文讨論
1. Visualizing the loss landscape of neural nets
作者 Hao Li 在馬裡蘭大學取得了博士學位,他的研究方向主要是為高性能和資源受限的系統設計高效且可擴充的機器學習算法。目前 Hao Li 已經進入 Amazon Web Services (AWS) 工作。
這是我想讨論的第一篇論文,主要是因為它提供了一個比較概括性的對神經網絡可視化研究。作者主要想研究幾個問題:
- 不同的神經網絡結構如何影響損失函數的分布(Landscape)。這裡作者主要對比了 ResNet 和無快捷連接配接(shortcut connection)的 ResNet(即模型的結構比較像 VGG 這種經典神經網絡結構),其中每個模型又有 20、56、110 層 layer 的不同情況。
- 當損失函數的分布由于神經網絡的結構而發生了改變,不同的損失函數分布又是如何影響模型的可訓練性、穩健性。
作者首先對使用線性插值法(Linear interpolation)的可視化方法進行了抨擊,認為該方法存在幾個缺點。首先,1D 圖很難顯示非凸性;其次,該方法不考慮批量歸一化或網絡中的不變對稱性。作者在這裡提出的方法叫做 Filter Normalization,并用這一方法對上面的問題進行了研究。文章中展示的可視化結果非常清晰,如下圖所示:

圖 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 的模型的二倍。旁邊的百分比數字表示模型的錯誤率。
圖 2:有無 shortcut connection 和不同寬度的神經網絡的損失函數曲面可視化對比
我們首先從上到下兩兩對比地讨論這些結果,可以看到有快捷連接配接(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
本文共同一作中 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 進行的。
表1:模型定義和結構
圖 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》也指出,銳度本身可能并不足以決定泛化能力,即銳度并不是影響泛化能力的唯一原因。是以,研究損失函數在模型收斂點附近的鄰域中的行為将會提供更多資訊。
這也是作者在本篇文章中所做的研究,他們繪制了當模型參數沿主導特征向量擾動時損失如何變化。
圖 4:對 C1 模型沿着 Hessian 的主要特征向量 v1 進行擾動時損失的變化(log-scale)
這裡 epsilon 是一個标量,它擾亂了由 v1 表示的主要特征向量的模型參數,其數值表示擾動的程度。我們首先可以看到随着批量的增加,訓練損失和測試損失的曲度都開始增加,更重要的是,當批量增加,測試損失的曲率開始遠大于訓練。這代表了訓練中的不一緻性,是以即便大批量模型訓練的損失很小,其在測試集上的損失仍然會很大。
文章提出并解答的第二個問題是:
- 穩健優化(robust optimization)和大批量教育訓練之間的聯系是什麼?同樣,批量大小如何影響模型對敵對擾動(adversarial perturbation)的穩健性?
也即是說文章的研究重心從批量大小與模型一般意義下泛化能力的關系,轉移到了批量大小與面對敵對攻擊時的穩健性的關系。作者的實驗結果顯示與小批量訓練的模型相比,以大批量訓練的模型明顯更容易敗于對抗性攻擊。
圖 5:在訓練期間,hessian 的主要特征值的變化和總梯度
我們可以看到随着批量的增加,藍色曲線所代表的主要特征值是被吸引到了更大的值去的。特别值得注意的是,總梯度值和 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。
- Minimal 要求修改後的輸入資料與原輸入資料盡可能的相似,作者借鑒了正則化手段,通過定義一個 L1 範數δ來衡量兩次輸入之間的距離就可以簡單的達到這個目的。這個條件顯然是符合直覺的——我們希望對原資料進行盡可能少的修改就達到一個滿意的結果。
- Stable 則是通過一個超參數 e 來定義的。Stable 的主要目的是保證所提出的修改是有一定自由度的,隻要修改後的輸入資料是在這附近,都應該能夠達到改變分類結果的效果。作者定義其為,假如對任意δ小于 e 的輸入,都能保證其分類結果為 1,則稱δ是 e-stable 的。
- 這兩個定義又可以從單個輸入資料自然的擴充到一片輸入空間,進而符合 symbolic 的定義。三個條件的定義環環相扣,設計的十分巧妙。
文章給出了幾個實驗結果,見圖 6,紅叉表示原始預測結果,藍色三角形表示符号校正(即,該區域内的所有點都能夠改變分類結果)。圖 6(a)是針對預測申請人能否獲得貸款的預測問題,算法生成了一系列符号校正,或者說一種關系,來建議對 DTI 和利率的修改。
圖 6(b)針對預測是否可以通過基于執行個體的靜态和動态特性的求解器有效地求解一階定理的問題。這裡給出的建議非常直覺:要麼減小問題大小(通過減少平均子句長度)或提供部分解決方案(通過添加單元子句)來減小問題的複雜性。最後,圖 6(c)顯示了如何将線條添加到圖形中,以便網絡将其識别為規範的貓圖。紅線表示原始輸入,藍色框表示符号校正,綠線表示其中的一個具體校正。
前兩個例子僅涉及到 2 個特征,第三個例子設計到 8 個特征(每個頂點的坐标),并且屬于計算機視覺的問題,雖然這個任務仍然屬于嘗試性實驗(toy experiments),但展現了算法應用于高維校正的一定可能性。
圖 6:對不同的問題所生成的符号解釋
[圖檔來源:Zhang, X.; Solar-Lezama, A.; Singh, R. (2018). Interpreting Neural Network Judgments via Minimal, Stable, and Symbolic Corrections. NIPS.]
本文随後的大部分研究主要集中在計算算法,從結果來看,該算法的複雜度大緻是線性的,運算速度比較快。筆者認為幾個相對難以實作的設計在于:
- 可以修改的特征需要預先确定,對于圖像資料來說,這一點比較困難。但将所有的特征都設定為可以修改又不現實,我們也許甚至不能得到合理的圖像或過于複雜過于難以了解的修改法則。
- 當訓練資料很少或者不同類别之間重合很嚴重時,e-stable 的條件可能很難滿足。即每個 cluster 的規模可能都很小。
- 算法主要針對的是對決策邊界的探索,回歸模型顯然是不滿足這一點的。當然提出這一點未免有些吹毛求疵。
本篇文章的創新性很強,十分值得一讀,如果能夠在複雜的應用上表現良好,筆者認為在工業界落地的可能性很強。主要是因為對于工業産品來講,産品設計的目的都是更好的性能表現,并且更改産品參數并不困難。舉例來說,假如神經網絡被用于預測一個水站的供水效率,我們總是能夠準确的預測下午五點水站供水不足,從準确率來講神經網絡的表現是優秀的,但從産品角度來講這樣一個模型并不能幫助我們改進供水效率。假如我們知道在下午五點水站供水不足,并且如果增加壓強我們能夠達到滿意的供水效率,那麼這個産品顯然是更成功的。
3. 小結
總的來說,随着學界對神經網絡的研究,我們似乎越來越能夠了解神經網絡的工作原理。以上三篇文章雖然都沒有提出任何确定性結論,但至少給出了我們在設計神經網絡時能夠改進的方向。使用 shortcut connection,使用 robust training,在訓練完成後生成一系列可以改變分類結果的修改規則來了解生成的決策邊界,似乎是我們可以從以上三篇文章中借鑒的做法。
但回頭想想,作為一個從業者,利用自己所掌握的先驗知識來盡可能地簡化問題,然後用一個簡單的神經網絡來解決它,是不是也是一種思路?至少在業界,許多問題是基于特定領域的,我們也不可能擷取像 ImageNet 那樣規模的資料來訓練大規模的神經網絡;但同時也是在業界,對神經網絡的期待是無需對原始資料進行任何處理或隻進行盡可能少的處理,就能夠解決問題。這當然也是合理的——對專家知識(expert knowledge)的依賴不應過度——但或許我們也可以反思一下,在這兩者之間尋找一個平衡。