從下往上看--新皮層資料的讀後感 第十三部分 AutoEncoder-信息的轉化
在繼續學習Restricted Boltzmann Machine需要專門來看一下AutoEncoder的使用方式。AutoEncoder開啟了一個新的角度來看待網路對數據的處理。FNN在一切不變的前提下,有時調整一下使用方法和考察角度會呈現出一些特殊的特性。AutoEncoder是FNN的一種特殊應用場景。它使用一個FNN使得輸入和輸出相等。即求解一個網路使得H(x)=x. 這就是AutoEncoder的基本角色。
來看一下典型的AutoEncoder的結構。這個結構是典型的三層FNN,毫無特殊之處。因此在objective function確定的情況下,使用樣本直接就可以用BP方法訓練得到。
對網路的前半部分(input-hidden),考察一個確定輸入X,在Hidden層有一個確定的H與之對應。對後半部分(hidden-output)H對應一個確定的X。 但有意思的是,X=X是「相等」的。這意味著信息在通過整個網路後「無損」的保留了原有的信息。由網路結構可以獲知X的維度和H的維度是不一樣的,這個訓練一旦完成。就意味你找到了一個低維度表徵能完全保留高維度信息的網路結構。這怎麼可能?這好似用一個線段(1維)可以表達了整個平面(2維)的表達關係,這完全違背常識。按照Hilbert空間的邏輯,這不可能做得到。但切切實實的這個網路可以被訓練出來。這裡面我們一定忽略了什麼東西?是的,樣本。
我們能用來訓練樣本是有限的集合。如果在輸入維度上,這個樣本集合的信息只對應輸入的信息空間的一部分,而且這個信息總量不超過hidden層的最大表達能力。就有可能建立輸入到hidden的完備映射。而這些映射的信息由於映射的完備性,則可用在hidden層中的信息來重建output=input。所以如果給一個無限的白雜訊到輸入層,則不可能無損的構建這些信息。
這麼說起來比較繞口, 用上面4-2-4的網路結構來說。如果所有的網路都是二值化的,只能取值[0,1].第一層可能的輸入有2^4=16個可能,hidden的只有2^2=4個可能, 如果樣本總數大於4個,無論怎麼設計網路參數,你都不可能在output上重建這玩意。
所以輸入樣本的分布決定了這個網路最大「無損」的肯能,也就是決定了「損失」信息的程度。在接收這個事實的前提下,AutoEncoder調整了輸入向量的表徵維度-將輸入向量維度降低到了hidden層的維度。由於表徵改變,這個過程就可視作編碼-解碼的過程。
從信息通訊的角度就可以直接用這個過程對數據進行編碼的解碼的處理。上圖就是一個例子,把2000維的信息編碼到30維的例子。降維直接作用是數據的壓縮,這是這個網路的第一個考察角度。從表徵repersentation的角度來看這個「壓縮」又是什麼鬼?每個encoder層由於表達容量的有限,自然的構成了一個"Filter"這個filter「編碼」了一部分信息,「損失」了這個filter 表達能力外的信息。所以encode後的信息,得到的是符合filter要求的"特徵",這就是所謂的feature.
AutoEncoder訓練的過程就是找出最有效能保留樣本"共性"的"filter"的過程。帶著Repersentation這個新的思考角度再來看RBM。
推薦閱讀:
※如何提高信息搜集能力?
※阿里新財報:透露的信息,營造的趨勢
※第一波,來聊聊信息不對稱。
※如何理解和盡量避免「信息不對稱」?
※【學心理,救自己】系列之解讀「人生腳本」十三 | 禁止信息是書寫腳本的主要依據(二)
TAG:神經網路 | 深度學習DeepLearning | 信息 |