詳解信息瓶頸理論中的信息壓縮


講述信息瓶頸理論的核心:信息壓縮 之前,需要熟悉交互信息與泛化誤差兩個概念,不熟悉的建議回顧一下之前的文章

從信息論的角度分析DNN的工作原理 以及 信息在DNN馬爾科夫鏈結構上的變化

信息壓縮主要是指在DNN的訓練過程中,會在全部特征層,或是一部分特征層,尤其是靠近輸出端的特征層上,在訓練大部分后期I(T;Y)提升緩慢的階段時,可能發生的I(X;T)減少的現象。

信息壓縮為什么會存在?最簡單的解釋如下:

考慮一個對一批28x28像素的二值化圖片進行4分類,描述輸入變量需要的bit數H(X)=784,描述輸出需要的bit數H(Y)=ln(4)=2,這里說的輸出是指softmax輸出之后argmax得到的4種可能one hot。

面對784下降到2,存在782個bit的壓縮。當然這只是簡化之后的二值化結果,真實一般是256值三通道,結果就算是softmax輸出離散化不經過argmax,也可以看出從X轉化到Y,需要舍棄很多信息。

再通俗點講,比如對貓狗豬羊四種動物分類,就可以舍棄所有背景的信息,也可以舍棄“具有四條腿”這個信息。這些信息對於最終結果並沒有影響,他們可能被包含在淺層的交互信息I(X;T)里,但是會在訓練過程中在某一層開始被遺忘。而是否有胡須、是否有毛絨材質這類的信息,就明顯會被包含在輸入與目標的交互信息I(X;Y)里,因為他們對分類結果會產生影響。而我們訓練到收斂之后得到的I(Y;$\hat{\mathrm{Y}}$)希望包含了盡可能多的這樣對分類起決定因素的信息,同時盡量不包含其他不重要的信息。信息壓縮也有利於減少泛化誤差避免過擬合,如果特征層描述了太多貓的細節,而如果這10個細節對於某只不太一樣的狗有8個是吻合的,而關鍵決定性因素恰好是另外兩個細節,那么就無法突出這只狗與貓不同的地方,容易導致過擬合。這只是個概念描述,數學論證下面會展示。

 

那么DNN是怎樣控制訓練過程來完成信息壓縮的呢?

有兩種機制,一是通過網絡結構,比如每層神經元個數、dropout的使用、特征值離散化(argmax)、max pooling、非線性激活函數,等等技巧,降低特征層可以承載的信息量上限。另一方面從神經網絡擬合任意函數的角度考慮,在進行坐標變換時,任意不可逆操作或是降維,都必然導致信息損失,比如PCA的原理就是一個很好的例子。

二是訓練時使用SGD引入噪音,讓噪音的熵來幫助壓縮I(T;X)。這一點的壓縮效果受到了一些人的質疑,取而代之的壓縮原理是tanh激活函數帶來的梯度消失,但理論上SGD是能夠壓縮信息的。實質上無論SGD的噪音還是tanh的梯度消失,都是在降低信噪比。

 

首先來詳細分析一下網絡結構信息壓縮:

從左到右三張圖依次代表輸入層X、隱藏層T以及最終輸出層$\hat{\mathrm{Y}}$的信息量覆蓋圖。

以前面的二值化圖片4分類為例子:

  • 左圖輸入層代表一張28x28的二值化輸入圖片的信息量。灰色面積代表所有2784種可能的圖片輸入包含的信息量,其中只有一部分像素取值排列組合包含了真正有意義的信息(是否有胡須、毛發之類的),其他的像素排列組合都是無關緊要的可以被遺忘的信息。因為是二值化輸入,所以有用信息量等同於中間不規則形狀的面積,完整信息量等於整體大橢圓的面積。一個像素/輸入神經元可以控制的信息量只有ln2=1(因為二值化輸入)。所以一個神經元對應一個激活響應區域,就是左圖中的面積為1的一種顏色的着色區域。顏色太多無法完全畫出,會覆蓋所有灰色面積,實際上應該是一張彩色雪花圖。輸入層的完整信息量是I(X;X)=H(X),需要這些個bit數來描述變量X,而特征層可能的輸入排列組合數|H|=|X|=2H(X),對應的泛化誤差$\epsilon=\sqrt{\frac{ln|H|+ln(2/\delta)}{2m}}$也會非常大。這里注意熵H與特征值排列組合個數|H|並不是同一個東西,只是變量名正好重復了,這里要加以區分。所以暫時把所有的熵都以S代替,H代表隱藏層變量,等同於T。
  • 中圖代表了中間某一個隱藏層的信息覆蓋,這層特征T包含的信息與輸入X包含的信息的公共部分既交互信息I(T; X)=S(X)-S(X|T)被畫出染色了,面積比輸入層的S(X)減少了很多。-S(X|T)代表了從左圖到中圖的信息遺忘量。同時神經元個數減少,所以顏色數量也減少了。一個神經元一種顏色,能夠激活的區域也變大變多變離散了,這是因為從低層抽象到高層抽象的描述中,使用邏輯門排列組合導致了響應區域的分割以及重組,具體參見之前的邏輯門組合內容。這些響應區域仍然會覆蓋一些不重要信息,比如圖中“重要信息”區域之外的一些信息。中圖所有染色面積代表的信息I(T; X)能夠產生的特征值排列組合數是2I(T; X),對比左圖的排列組合個數顯著減少,所以泛化誤差在相同樣本數m的情況下也減小了,模型的泛化能力得到了增強。注意結構推導出的該層的熵S(Nfree_dim)實際上是I(T;X)的上限,I(X;T)=S(T)-S(T|X)=S(X)-S(X|T),而因為訓練時權重W實際上限制了一部分自由度Nfree_dim,一部分排列組合的值是不可能取得的,所以泛化誤差公式$\epsilon=\sqrt{\frac{ln|H|+ln(2/\delta)}{2m}}$里的可取隱藏層值的數量對數ln|H|實際上是小於該層的熵的,而且取決於權重W:I(X;T)=ln|H(W)| <= S(Nfree_dim)。無論是從結構上降低上限S(Nfree_dim),還是更新W降低ln|H(W)|,實際上都降低了I(X;T),從而減小泛化誤差。 
  • 右圖代表最終輸出層,這時候信息壓縮已經將不重要的信息基本都遺忘了,使得在保證I($\hat{\mathrm{Y}}$;Y)不下降的情況下(因為監督loss要求它被最大化),I($\hat{\mathrm{Y}}$;X)被盡量減小。最終輸出的泛化誤差也被|H|=|$\hat{\mathrm{Y}}$|=2I($\hat{\mathrm{Y}}$;X)決定。最終響應區域也變成4個,4種顏色,對應4個分類,瓜分了信息地圖上I(X;Y)區域里所有的有用信息。這里因為softmax的機制,允許I($\hat{\mathrm{Y}}$;X)達到結構上限S(Nfree_dim),輸出層的Nfree_dim=4,這樣每個輸出bit才都具有含義。

 上面針對特征層包含信息的逐層分析,都是基於訓練已經收斂之后,分析每層特征層的信息量得出的。是由網絡結構設計導致的信息壓縮。

可以看出交互信息I(Hi;Y)每一層大致一樣,I(Hi;X)會在中間特征層內逐漸衰減。

I(X;Y) >= I(H1;Y) >= I(H2;Y) ...... >= I(HL;Y) >= I($\hat{\mathrm{Y}}$;Y)

H(X) = I(X; X) >= I(H1;X) >= I(H2;X) ...... >= I(HL;X) >= I($\hat{\mathrm{Y}}$;X)

 

總結一下結構壓縮的原理以及作用:

  • 結構決定了一層神經元能夠承載信息量的上限,但是隨着訓練進行,權重的更改使得一部分特征值的排列組合永遠無法達到,所以通過改變結構,降低2S(Nfree_dim) >= |T|=2I(T; X)的上限熵S(Nfree_dim)達到降低泛化誤差上限的效果。自由度Nfree_dim取決與下面要列出的一串要素。另外要讓低層抽象變成高層抽象概念,也必然需要借助信息壓縮。
  • 通過減少神經元個數、max pooling或是dropout,減少特征層值可能的排列組合個數上限。
  • 通過數據離散化(argmax),減少特征層可能的排列組合數上限。
  • 通過非線性映射,使多個離散化區間被映射到同一個離散化區間,比如范圍(-10 ,+10)區間,離散化采用間隔0.1,如果使用ReLU激活函數映射成(0, +10),則成功地把原本200個區間壓縮到了100個,而如果使用sigmoid映射成(0, 1),則把原本200個壓縮到了10個。由此達成的排列組合個數上限壓縮效果是指數量級的。

注意到有人實驗用ReLU替換tanh之后,觀察到的信息壓縮現象減弱了很多,甚至在前面幾層特征層基本觀察不到信息壓縮,如下圖所示:左圖tanh,右圖ReLU

個人感覺原因就在於Relu只壓縮了一半的離散化區間,量級仍是O(n),而tanh壓縮得更多,固定范圍的壓縮量級是O(1)

每一層特征層的I(X;T)都被網絡結構限定了一個天花板最大值,既該層特征值所有排列組合數的對數,既該層的熵S

在訓練結束之前,I(X;T)就已經觸碰到tanh壓縮后的信息承載天花板了,之后就被SGD引入的噪音導致開始壓縮I(X;T)了。

而使用ReLU+BGD的這組實驗,本身I(X;T)天花板就很高,收斂之前能不能碰到首先是一個問題。如果觸碰到了,也不會被SGD的噪音導致壓縮,只會受限於最終層使用argmax結構降低的天花板,所以壓縮現象只存在於輸出層,而非前面的隱藏層。而且ReLU的天花板看上去也比tanh的高,某種程度證明了壓縮量級不同的理論。

 

前面都有意識地忽略了更改權重W導致的信息壓縮,現在要討論I(X;T(W))是如何隨着訓練,在結構限制的天花板之下變化的。

這里使用了Naftali Tishby教授提出的SGD噪音壓縮的理論:

之前的文章,SGD與收斂速度提到了在收斂的中后期,噪音帶來的熵(不確定性)會隨着時間改變:

$S\propto\exp\left(-\beta\mathbb{E}\left[(\nabla E(W))^{2}\right])t\right)$

其中E(W)代表損失函數,半衰期與當前損失函數平方的預期以及信號/噪音比$\beta$有關。

邊界條件要求t=0時,熵等於初始Loss混亂度S0,所以$S=S_{0}\exp\left(-\beta\mathbb{E}\left[(\nabla E(W))^{2}\right])t\right)$

對時間求導,假設收斂階段$\mathbb{E}\left[(\nabla E(W))^{2}\right]$是短期內比較穩定的值,得到$\frac{\partial S}{\partial t}=-\beta\mathbb{E}\left[(\nabla E(W))^{2}\right]S_{0}\exp\left(-\beta\mathbb{E}\left[(\nabla E(W))^{2}\right])t\right)$

讓新常量k = $\beta\mathbb{E}\left[(\nabla E(W))^{2}\right]$

該公式只在收斂中后期信噪比與Loss的預期值都比較穩定(一步$\Delta t$之內不會改變太多)的時候適用,前期信號與信噪比都很高的時候,該公式的推導假設是有問題的所以不成立。

當完全收斂后,k基本上為0,$\Delta S=\frac{\partial S}{\partial t}\Delta t$也停止引入熵了。

$\Delta S(W)$因為W的改變而產生,而I(X;T(W)) = S(X) - S(X|T(W)),當Ti被上一層的Wi-1改變而改變時,$\Delta S(W_{i-1})=\Delta S(X|T_{i}(W_{i-1}))$

$I(X;T_{i}(W_{i-1}^{(t+1)}))=I(X;T_{i}(W_{i-1}^{(t)}))+\Delta S(W_{i-1})$

而$\Delta S=\frac{\partial S}{\partial t}\Delta t=-\beta\mathbb{E}\left[E(W)^{2}\right]S_{0}\exp\left(-\beta\mathbb{E}\left[E(W)^{2}\right])t\right)\Delta t<0$ 

所以在壓縮階段,也就是收斂的中后期,I(X;T)會逐漸減少,達到噪音壓縮信息的效果,而且噪音壓縮也會隨着訓練接近完結k值趨近於0,效果越來越弱。

 

每一層被SGD更新的權重都會造成信息壓縮,壓縮的速度取決於當前信號噪音比以及梯度平方的預期值。

所以增加神經網絡的層數,也就增加了噪音引入的速度,因為每層在迭代時都會引入一個獨立的$\Delta S$,這樣大大增添加了高層I(TL;Y)的信息壓縮的速度,如下圖所示。

 

 

到此信息瓶頸理論對於DNN的很多原理以及現象都做出了解釋,並且都比較符合實際訓練時的經驗結果。

信息瓶頸理論解釋了以下的問題:

  1. 模型訓練的速度往往是開始收斂得很快,越到后面越慢,因為信息壓縮花費的時間到后期指數增加了。
  2. 在樣本不足的情況下,DNN往往表現出比預期要好一些的泛化能力,因為壓縮I(X;T)使得泛化誤差減小了。每壓縮一半的bit數,維持相同泛化誤差所需的樣本數也減半。
  3. 從低層到高層,使用一些更改結構信息承載能力上限的技巧,可以達到壓縮I(X;T)上限的效果。減少神經元個數(包括max pooling以及降維,還有臨時性的drop out)、減少離散化數據的枚舉數量(包括使用非線性激活函數、歸一化、使用argmax),都在一定程度上減小了泛化誤差。
  4. 無論是SGD還是dropout引入到網絡中的噪音/不確定性,都增加了對應那一層的熵H(X|Ti(Wi-1),導致在訓練過程中,I(X;T)被進一步壓縮。當信號噪聲比變小時,也就是訓練到了中后期,隨機熵導致的壓縮會非常明顯。然后當收斂趨於停止時,壓縮效果也隨之減弱,最終哪怕時間指數增加了,壓縮量也會逐漸減小。
  5. 增加神經網絡層數可以加快收斂速度,因為每一層隨機權重都在進行信息壓縮,相當於對噪音導致的信息壓縮過程開了多線程。
  6. 每上升一層神經網絡特征,因為信息壓縮的現象,所以信息承載上限最好也隨之降低,超出所需的I(X;T)比特數,並不會幫助提升預測效果,只會拖累計算速度。有時候需要借助結構改變來減少信息承載上限,從而強制進行不同層間的信息壓縮。
  7. 當I(Y;X) < H(Y)的時候,Y存在X無法描述的固有隨機性,存在准確率上限,無論任何模型訓練得再完美,都無法讓准確率超過這個上限。
  8. 訓練收斂后,如果是能夠比較好預測的模型,I(Y;Ti)在每一層都會比較接近於H(Y),這樣假設無論從那一層切開,中間重新輸入特征值T代替原本的輸入X,都能夠准確預測出Y。這為逐層解析DNN的特征值含義,提供了一扇分析的窗口。

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM