1.簡介
?? Autoencoder是一種無監(jiān)督學習過程坷檩,由encode和decode構成管引,給定輸入之后货抄,經過encode將輸入編碼成code漆改,然后在經過decode將code解碼成輸出,通過不斷地訓練满着,使得輸入和輸出盡可能相似谦炒。通過控制encode的輸出維數(shù),可以實現(xiàn)以低維參數(shù)學習高維特征风喇,實現(xiàn)了降維宁改。在訓練的過程中,主要使用反向傳播進行優(yōu)化魂莫,使得輸入和輸出盡可能相似还蹲。
encode和decode兩個過程可以理解成互為反函數(shù),在encode過程不斷降維,在decode過程提高維度谜喊。當AutoEncoder過程中用卷積操作提取特征鲸沮,相當于encode過程為一個深度卷積神經網絡,好多層的卷積池化锅论,那么decode過程就需要進行反卷積和反池化(https://blog.csdn.net/roguesir/article/details/77469665)。
Autoencode并不需要使完全重構輸入楣号,只是需要學習到原始圖像的重要特征最易,實現(xiàn)降維,從而有利于可視化或分類炫狱。下面使李宏毅機器學習可成長的一個利用autoencode進行text retrieval的例子藻懒。
2.應用
2.1文本檢索
將每一個文本提取構建成一個向量,那么就可以輕易的根據余弦相似度等方法得到不同文本之間的相似度视译,找到我們需要的文本嬉荆,那個,這個向量如何構建呢酷含,最直接的方法就是利用詞袋鄙早,若世界上一共有1000個詞,那個這個文本對應的向量的維度是一千維的椅亚,每一個分量的取值為0或1限番,表示對應的單詞在文檔中有沒有出現(xiàn)。但是這種方法構建的向量復雜呀舔,且沒有考慮語義信息弥虐。Autoencode更好的解決了這個問題。
autoencode可以將向量不斷壓縮媚赖,壓縮成一個二維的向量霜瘪,右上角的圖是Hinton在Science上發(fā)表的文章的結果圖,將文章分為了不同的類別惧磺,query對應的類別如圖中紅點所示颖对,描述的是Energy markets。而右下角所示的LSA并不能起到這種良好的分類效果磨隘。
2.2圖像搜索
或許可以通過圖片在像素上的相似程度來找到相似的圖片惜互,但是這樣可能會存在問題。如下圖琳拭,要找到圖一的邁克爾杰克遜训堆,但是直接計算像素上的相似性可能得到的相似性圖片是后面那幾張。
用Autoencode就可以解決這個問題白嘁,將圖片層層編碼成一個code坑鱼,相當于對原圖進行了壓縮和特征提取,最后在code上進行處理來比較相似性。
2.3預訓練深度神經網絡
????在進行神經網絡訓練的時候鲁沥,通常需要初始化一些參數(shù)呼股,如權重等。有一些方法可以實現(xiàn)這些參數(shù)的初始化画恰,即pre-training彭谁,預訓練。那么怎么進行這些參數(shù)的初始化呢允扇?autoencode就可以完成這個工作
假如構建了一個如上圖右邊所示的神經網絡缠局,每一層的輸入維度分別為784/1000/1000/500,那么在訓練第一層的時候可以利用自編碼器考润,如右圖所示狭园,將784維的輸入輸進自編碼器,中間encode一千維糊治,使得輸出的結果和input越接近越好唱矛,這樣就將輸入轉化成了一個一千維的code,就得到了可以用來初始化的第一層的參數(shù)W1.這里要注意,encode的code如果要比輸入還要大井辜,即這里的1000維大于784維绎谦,要小心自編碼器將輸入完全復制成code的情況,使得輸入和輸出是完全identity的粥脚。這一步將第一層的參數(shù)訓練好之后就可以進行下一步
在固定第一層的參數(shù)的之后燥滑,可以得到一個1000維的輸入,在輸入一個自編碼器中阿逃,將輸入轉化為1000維的code,保證輸入和輸出盡可能相似铭拧,此時可以得到第二層的參數(shù)W2,如此下去,將W1和W2固定恃锉,再通過自編碼器可以得到W3搀菩,然后繼續(xù)下圖所示的過程。
????????將前三層參數(shù)預訓練得到以后破托,將輸出的結果進入最后一層肪跋,最后一層的參數(shù)可以隨機初始化,然后根據最后的誤差并利用反向傳播算法進行調整土砂。
4.在CNN上的應用
? ? ? ? 在卷積神經網絡中州既,利用反向傳播算法進行學習時,會有反卷積和反池化萝映,就利用到了autoencode吴叶。
https://blog.csdn.net/sinat_25346307/article/details/79104612
3.幾種自編碼器?
3.1De-noising auto-encode
https://blog.csdn.net/marsjhao/article/details/73480859
本文只是作者的粗淺的理解,想要了解更多內容可以看一下李宏毅老師的課程https://www.bilibili.com/video/av35932863/?p=24