部分內容來自:http://ufldl.stanford.edu/wiki/index.php/%E6%A0%88%E5%BC%8F%E8%87%AA%E7%BC%96%E7%A0%81%E7%AE%97%E6%B3%95
棧式自編碼神經網絡是一個由多層稀疏自編碼器組成的神經網絡,其前一層自編碼器的輸出作為其后一層自編碼器的輸入。對於一個 層棧式自編碼的編碼過程就是,按照從前向后的順序執行每一層自編碼器的編碼步驟。
自編碼器的隱含層t會作為t+1層的輸入層,第一個輸入層就是整個神經網絡的輸入層,利用貪心算法訓練每一層的步驟如下:
1)首先采用稀疏自編碼網絡,先訓練從輸入層到H1層的參數:
訓練完畢后,我們去除解碼層,只留下從輸入層到隱藏層的編碼階段。
2)接着我們訓練從H1到H2的參數
我們把無標簽數據的H1層神經元的激活值,作為H2層的輸入層,然后在進行自編碼訓練:
最后訓練完畢后,再去除H2層的解碼層。
3)對所有層重復1)和2),即移除前面自編碼器的輸出層,用另一個自編碼器代替,再用反向傳播進行訓練。
4)以上步驟稱為預訓練,但是通過這個訓練並沒有得到一個從輸入數據到輸出標記的映射,通常的辦法是在網絡的最后一層增加一個或多個連接層,整個網絡可以看做是一個多層感知機,並用反向傳播的方式進行訓練,這一步也被稱為微調。