關於利用 information bottleneck 來解釋深度學習

最近仔細讀了 Prof. Tishby的利用 information bottleneck 來解釋深度學習的文章,「Opening the black box of Deep Neural Networks via Information」 ,可能這篇文章最近很火的主要是 Hinton 在聽完 Tishby 的 talk 之後,給 Tishby 發了email:

「I have to listen to it another 10,000 times to really understand it, but it』s very rare nowadays to hear a talk with a really original idea in it that may be the answer to a really major puzzle.」

必須再聽10000遍才能真正搞懂的,:).

深度學習的理論是目前機器學習領域一個重要的研究方向,大家都好奇為什麼深度學習會如此有效。自己最近這半年也在一直研究深度學習理論相關的內容,個人認為深度學習理論最關鍵的三個方面的內容包括:

  1. 層級結構到底給深度學習帶來了哪些好處?如何能很好的表達什麼類型的函數?方便處理哪種類型的數據?
  2. 為什麼 SGD 在深度學習模型的訓練中如此有效?它本身哪方面的特點契合於深度學習模型?
  3. 深度學習模型的泛化能力為何比其他模型要好很多?因為一般來說 deep learning模型的參數個數要幾倍於訓練數據個數,傳統的統計學習理論(statistical learning theory)很難解釋深度學習模型的泛化能力。

目前很多非常前沿的工作或多或少的在探索這三方面的內容,但不得不說當前的很多研究對真正理解深度學習意義並不大,原因是有些工作只是在證明一些非常 loose 的 bound,比如神經網路逼近函數的能力,考慮與深度、寬度、激活函數或者層級結構的假設以及數據的高斯分布等等,很多假設都不合理;另一方面很多工作只是揭示了一些現象,並不能給出有 insight 的解釋。關於兩方面的工作大家可以關注一下最近兩年的 NIPS、ICML 以及 ICLR 上的一些工作,我這裡就不列舉了。其實深度學習模型理論方面的研究,最關鍵的是對於神經網路的理解能否給實際使用神經網路、觀測某些神經網路的行為有啟發,這才是相對比較有意義的研究。這也是我和組裡學生經常強調的問題,雖然非常難,但仍然要嘗試解決,也歡迎所有感興趣的各位和我交流。

話題轉會到這篇 information bottleneck 這篇文章,他們之前有個前序的工作,也是用信息瓶頸這個工具來嘗試解釋深度學習的層級結構的行為,但做的比較粗糙,幾乎沒什麼實驗佐證。這篇文章在基於信息瓶頸的這個工具的基礎上,觀察到了大量的神經網路在訓練過程中的行為,有一些不錯的 insights,雖然沒有很強的理論證明,但有比較合理的解釋,但某些發現解釋了我上面提出的三個方面的一些問題。 文章的具體發現大家直接讀文章摘要就清楚了,我這裡著重討論幾個方面:

  1. 通過大量實驗佐證了神經網路在用 SGD訓練過程中實現的兩個 phases:一個是 empirical error minimization(ERM),另一個是 information compression with the training error constraints. 其實這個觀察和分類是在大家對 SGD 訓練 NN 熟知的理解,前段中隨機梯度的的均值會 dominate 隨機梯度的 variance, 所以主要在做 ERM,而後段隨著優化的進行,gradient 的均值會逐漸趨近於零,variance 會 dominate, 相當於做 diffusion (這裡可能需要對隨機微分方程比較熟悉才能理解比較透徹),如下圖所示,

作者把 diffusion 這步解釋為在做信息壓縮,因為他們利用信息瓶頸的工具觀測到 SGD 的後段會畫大量時間在壓縮中間層 T 和輸入之間的互信息, I(X; T) ,如下圖所示

2. 採用多層隱層的優勢的討論,這個是比較有意思的。作者的 argument 是增加隱層的個數在某種程度上能夠縮減 training epochs來實現好的泛化能力,如下圖所示。但其實更核心的問題也是更困難的問題是增加層數也就是改變結構使得神經網路具有了哪些好的性質讓泛化能力有所提升。

3. 文章其他方面的討論主要集中在觀察的現象如何 mapping 到 information plane 上, 有些比較顯然的結果,比如隨著 training size 的增加,I(X; T)盡量保持不變,但會逐漸提升generalization 的效果。

總體來說,這篇工作以一個新的視角,資訊理論,來分析神經網路的行為,很 consistent 的解釋神經網路的種種表現。也正如作者提出的 concern

  1. 由於所有的實驗的 setting 都是一個特殊設置下的全連接網路,包括數據,網路結構等,使得互信息能夠比較容易計算。 但是否觀察的現象能推廣到更加一般的神經網路,比如大家廣為使用的 CNN, RNN? 此時的難處自然就是,mutual information 該如何計算來驗證結果。
  2. 利用信息瓶頸解釋到底能給實際中有多大啟發?其實這裡可做的工作很多!

就說到這裡,關於深度學習的理論研究,前路漫漫!

由於時間問題,我很多地方都忽略了細節,大家得仔細看文章才能明白全貌。


推薦閱讀:

一個 MXNet 實現的 Mask R-CNN.
域名關聯模型:讓惡意軟體自我暴露

TAG:深度学习DeepLearning | 机器学习 | 人工智能 |