从信息瓶颈理论一瞥机器学习的“大一统理论”
作者丨哈啾路亞
單位丨順豐科技
研究方向丨NLP,神經網絡
個人主頁丨http://st-time.space
序言
所有機器學習的原理,本質上都是對同一段信息在不同空間內的轉換、過濾、重新表征,最終解碼出一段可讀信息。為了讓最終信息可讀,我們需要給最終輸出的每一個 bit 賦予意義。如果是監督學習,則需要定義一個度量來描述輸出信息與真實信息的距離。?
列舉常見的傳統機器學習,我們可以發現大多數監督學習都遵循著這一機制。?
SVM 使用內核機制重新定義了兩個向量的內積,經過 centering 這樣一個定義原點的操作之后,可以很快看出內核機制實際上重新定義了兩個樣本間的歐式距離。
而任意兩點間的歐式距離被改變,則意味著坐標系的轉換,并且轉換過后的新坐標系基本上不再是直角坐標系了,很可能是一個更高或是更低維度流型上的曲線坐標系。這時優化度量 margin loss 再在新坐標系上嘗試分割出正負樣本的 support vector 的最大間隔,找到線性超平面即可。?
所有回歸,包括線性回歸、回歸樹,以及各種 boosting tree,其坐標轉換部分也非常明顯,從 N 維輸入到 1 維輸出的轉換(不管線性還是非線性),之后接一個優化度量(KL 距離既交叉熵、最小二乘、triplet loss,etc.)。?
貝葉斯流派的最終優化目標:logP(x),其本質還是減少,即增加預測分布與目標分布的互信息。其特征空間的轉換的方法,就比較五花八門了,這里不細分析。?
那么,除了輸入與輸出的表征方法,以及優化度量的選擇之外,是否在各種機器學習包括深度學習方法內,通用的一些規則呢?就如同牛頓三大定律一樣,足以解釋所有經典力學的公式。?
從信息瓶頸方法出發,接下來會嘗試解釋一系列深度學習中出現的知識,并稍作延伸與傳統學習的知識點進行類比,去探索機器學習的最核心思路。
何為信息?
以一個二值編碼的 10 維向量為例,其排列組合個數 2^10=1024,根據香農熵的定義,一個 10 維 binary 向量的最大可承載信息量是 log(1024) = 10 。
同樣是 10 維,假如不是 binary,而是任意連續變量,那么有兩種方法可以用來估算連續變量的熵:分箱法以及基于 knn 的估算,后者本質上是一種不均勻的分箱法,所以就拿分箱法舉例,假如同樣是 0-1 區間被分成 20 個區間,那么該 10 維向量的最大可承載信息量就是。
一個分布 X,如果滿足 10 維隨機均勻分布,那么其混亂度最大,能夠達到最大可承載信息。實際上無論是任何分布,只要出現更粗粒度的離散化操作,其熵 H(X) 必然會不可逆地減少,出現信息損失。?
我們通常定義下的熵是微分熵,與香農熵的關系僅相差了一項與分箱間隔 δx 相關的一項。這項可以被當作常量,比如 float 數據類型的 epsilon error,所以后面的熵統一以 H 代替,不指明是香農還是微分熵了。
輸入分布 X 內包含的所有信息,我們寫作 H(X) ,然而我需要抽取的信號一般要小很多,這樣才方便解讀。我們的優化目標希望預測分布與目標分布 Y 的距離(KL 或 Eucledian)越小越好。目標與輸入的互信息 I(X,Y) 是有用的,而其他信息 H(X|Y) 以及 H(Y|X) 是無用的,因為我們無法解讀它們。
訓練的最終目標是我們的內包含的信息,從最初隨機權重得到的綠色區域信息,逐漸遺忘掉 X 里與 Y 不相關的信息,同時盡量捕捉到 X 里與 Y 相關的信息。
增加的理由非常直觀,因為監督學習時如果不學習目標 Y 的信息,自然無法預測出正確的結果。然而減少的理由就需要用范化誤差來解釋了。
這里泛化誤差上界 generalization error bound 的推導,需要從霍夫丁不等式開始,具體細節就不展開了,感興趣的可以網上搜推導過程。
要以置信度 δ 來確保樣本分布 emp 與真實分布的預測值的差的絕對值不大于一個范化誤差上界,有兩種最有效方法:增加樣本數量 m 或是減少的可取值的數量 |H| 。
注意到信息量與 |H| 不相等,但是是有正相關性的。越有秩序的,其可能的取值個數(分箱過后)|H| 越小,且最大值不可能超過向量的信息承載上限。?
這樣一來,只要減少,我們就能獲得更優的范化誤差表現,避免模型過擬合。不僅是在輸出特征上需要進行壓縮(盡量在保證不減少的情況下),任何中間結果/隱藏層 h 的熵也可以壓縮來改善過擬合。
舉個例子,當我需要判定一輛車是否能在機動車道行駛,我只需要知道車有 4 個輪子還是 2 個輪子就夠了,不需要特征告訴我“有一輛藍色 4 個輪子的車能夠上機動車道”、“有一輛黑色 4 個輪子的車能夠上機動車道”、“有一輛白色 2 個輪子的車不能上機動車道”……我不需要顏色這種不相關的信息,所以讓特征層在進行特征變換時盡早遺忘掉顏色吧,這樣還能節省一些訓練需要的樣本數。
信息瓶頸的實現方法
通過上面的簡單論證,得到了要想用有限的樣本取得更小范化誤差,同時讓預測結果盡量接近真實目標,就需要最大化同時減少或是 |H| ,那么接下來就分析一下哪些操作能夠實現上面兩個目標吧。
假設 t=任意特征值,可以是輸出層,也可以是任何一個傳遞信息的中間層。
考慮上面 KL 距離的預期值:
使用帶入,得到:
X 和 Y 的互信息取決于樣本集,是個常量,所以訓練過程中,逐漸減少:
就可以增加 I(T, Y)。
再次忽略常量 -H(Y|X),可以看到減少交叉熵,就是增加互信息 I(T, Y)。
學習的目標是由優化度量直接決定的,最小二乘的極小值也是類似的情況。
要壓縮 H(T) ,可動用的手段就非常多了。一種方法是對信息的載體——向量,在其上面動手腳。?
drop out按一定比例直接砍;
max pooling可以砍大約一半的 H(T);
離散化大殺器,直接砍 H(T) 上限到一個指定數值,一般用在模型最后 argmax 操作上。?
L2 正則以及 batch normalization 都間接或直接地限制了 t 值的取值范圍,使相同分箱間隔下, |H| 被指數級減少。?
還有一種隱藏比較深但是更加常見的壓縮方法,就是在梯度上增加噪音。梯度上的噪音會通過牛頓下降直接傳到權重更新 Δw 上。?
明明目標是要去除 H(T) 里的無用信息,為何要在權重更新 Δw?上添加噪音呢?這里就需要一些推理思考了。
信噪比:科學訓練的關鍵
首先我們需要定義信號與噪音。
▲?等高線描述了Loss(W, x)在x等于真實分布X時的預期值=const,寫作L(W)=const
梯度下降時,完全無噪音的下降路徑,應該在下降路徑中時刻保持與真實分布X構成的等高線垂直,即上圖中的紅色路徑。藍色是紅線在某一點的切線,也就是梯度下降無噪音信號。藍線的方向是。
假如我們在藍線的基礎上加入垂直于 g0 的隨機噪音,得到的有噪音梯度就可以看作是在一個圓錐的立體角范圍內隨機采樣一個新的梯度 g 。上圖中綠色圓錐比橙色擁有更大噪音,橙色采樣梯度則比綠色采樣梯度擁有更大的信號噪音比。?
理論上只要保證足夠大的訓練集,使 BGD 計算出的梯度無限接近真實分布的梯度,并且讓學習速率趨近于 0,就能保證下降路徑基本上與紅線重疊,收斂到最優解。然而真這樣做的話,訓練所需的時間怕是要等到天荒地老了,這時候我們可以妥協一部分信噪比,以換取每輪更快的計算速度,依靠更多輪迭代縮短訓練所需的總時間。?
然而,大多數人沒意識到的是:添加的噪音,其作用不只是加快訓練,更重要的是它也在幫助壓縮向量 t 的信息 H(T),可以減小范化誤差。?
為了簡化說明問題,這里暫時把 w 和 x 都看作 1 維,高維情況的原理是一樣的。 t=wx ,也暫時省去非線性部分 relu,激活函數的確可以壓縮 H(T),但機制與離散化并沒有本質差別,與梯度噪音是不同的。
假設我們已有一個訓練到一半的神經網絡,下一次更新權重w時我們完全拋棄梯度信號,改用隨機噪音 ζ 代替更新,來分析一下條件熵 H(X|T) 會怎樣改變。以上標 ' 表示下一輪迭代時的值,不帶上標的表示當前值。
噪音更新后目標層的 feature 值 t'=(w+ζ)x=t +ζx。
噪音與信號不相關,所以概率滿足 p(x, t') = p(x, t)q(ζ)。?
p 是數據的概率密度分布,q 是噪音的概率密度分布。同時概率密度 p 和 q 的積分都是 1。
(x, t) 與 ζ 相互獨立,所以第一項很容易簡化得到 H(X, T) + H(ζ)。
使用 Jensen 不等式改寫第二項上的針對 ζ 的積分:
假設噪音的均值為 0,且正負分布對稱(例如高斯噪音或白噪音),正負噪音對 t 的修正預期=0,那么迭代前后的 log(p(t)) 預期值應該是一樣的。
因為概率密度不為負數,所以第二項存在下限:
所以:
我們看到使用噪音更新權重會導致 H(X|T) 增加,因為 H(X) 固定,所以 I(X, T)=H(X) - H(X|T) 必然減少。每一輪更新都參雜一些噪音進去,就能讓 I(X, T) 縮小,同時信號使 I(Y, T) 擴大,但 I(Y, T) 的上限畢竟很低,所以 H(T) 在訓練收斂階段的變化,主要由 I(X, T) 決定,從而導致范化誤差被不斷降低。
上面的推導適用于 t'= t + f(ζ, ▽wL) 迭代更新的模型,相同輸入 x 的情況下特征值 t(x) 的下一輪更新后的值,由噪音以及信號決定其更新量。所以理論上不只是神經網絡,xgboost 這類的傳統算法的迭代收斂過程也是相同的原理。
噪音的添加方法可謂是五花八門,下面隨便列幾條:?
SGD的隨機梯度,信噪比隨著 batch size 的增加而增加;
drop out 的隨機遮蓋也對 t 值添加了噪音;
各種 tree 衍生的算法里的 column drop out 也是同樣道理;
GAN 生成器的白噪音自帶 I(T, X) 初始值基本為 0 的屬性,所以不太擔心范化誤差的問題,只需要提升 I(T, Y) 即可;
VAE 的噪音則是源自于 normal distribution 中的采樣。
總結
信息瓶頸理論的作者 Naftali Tishby 說過“學習的重要一步就是遺忘,對細節的遺忘使得系統能夠形成通用的概念”。這句話非常準確地概括了目前大部分模型在迭代(學習)時正在進行的事情。仔細想想,人腦又何嘗不是這樣的呢??
所有監督學習,都繞不開三件事:?坐標轉換,增加I(T, Y),以及減少I(T, X)。
每件事都要在訓練過程的某一階段被執行,才能保證利用有限的數據集學習到足夠通用的結果。坐標轉換確保可解釋性,后面兩件事負責平衡欠擬合和過擬合。
最后開個腦洞:人腦對于少樣本訓練的范化誤差是遠比機器學習模型的效果要好的,那么對于任何一個新概念 Y,其在各層抽象級的表述分別為,人腦必然有非常高效的計算機制,對于所有之前已經學習到的概念,最大程度利用已有的知識。同時對于同一抽象級的不同概念,盡量讓它們描述不同的信息,即減小,很可能頻繁用到離散化的技巧來實現互信息壓縮。?
程序里評估互信息是一件非常麻煩的事情,所以目前機器學習的 loss 仍是基于 MC 采樣估算 KL 距離和最小二乘的方法,如果能搞清楚人腦評估互信息的方式,或許人工智能的 loss 定制的問題就能很好得到解決,而這樣的 loss 或許才是更貼近“知識”的本質的。
點擊以下標題查看更多往期內容:?
自動機器學習(AutoML)最新綜述
圖神經網絡綜述:模型與應用
近期值得讀的10篇GAN進展論文
自然語言處理中的語言模型預訓練方法
從傅里葉分析角度解讀深度學習的泛化能力
兩行代碼玩轉Google BERT句向量詞向量
近期知識圖譜頂會論文推薦,你都讀過哪幾篇?
TensorSpace:超酷炫3D神經網絡可視化框架
深度長文:NLP的巨人肩膀(上)
NLP的巨人肩膀(下):從CoVe到BERT
#投 稿 通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢??答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得或技術干貨。我們的目的只有一個,讓知識真正流動起來。
??來稿標準:
? 稿件確系個人原創作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?
? 如果文章并非首發,請在投稿時提醒并附上所有已發布鏈接?
? PaperWeekly 默認每篇文章都是首發,均會添加“原創”標志
? 投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨在附件中發送?
? 請留下即時聯系方式(微信或手機),以便我們在編輯發布時和作者溝通
?
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
▽ 點擊 |?閱讀原文?| 獲取最新論文推薦
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的从信息瓶颈理论一瞥机器学习的“大一统理论”的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 近期值得读的10篇GAN进展论文
- 下一篇: 实录分享 | 计算未来轻沙龙:“法律+A