自動編碼器是一種無監督的神經網絡模型,它可以學習到輸入數據的隱含特征,這稱為編碼(coding),同時用學習到的新特征可以重構出原始輸入數據,稱之為解碼(decoding)。從直觀上來看,自動編碼器可以用于特征降維,類似主成分分析PCA,但是其相比PCA其性能更強,這是由于神經網絡模型可以提取更有效的新特征。
自編碼器由兩部分組成:
編碼器:這部分能將輸入壓縮成潛在空間表征,可以用編碼函數h=f(x)表示。
解碼器:這部分能重構來自潛在空間表征的輸入,可以用解碼函數r=g(h)表示。
△自編碼器結構
因此,整個自編碼器可以用函數g(f(x)) = r來描述,其中輸出r與原始輸入x相近。
自編碼器用來干什么?
目前,自編碼器的應用主要有兩個方面,第一是數據去噪,第二是為進行可視化而降維。設置合適的維度和稀疏約束,自編碼器可以學習到比PCA等技術更有意思的數據投影。
自編碼器能從數據樣本中進行無監督學習,這意味著可將這個算法應用到某個數據集中,來取得良好的性能,且不需要任何新的特征工程,只需要適當地訓練數據。
但是,自編碼器在圖像壓縮方面表現得不好。由于在某個給定數據集上訓練自編碼器,因此它在處理與訓練集相類似的數據時可達到合理的壓縮結果,但是在壓縮差異較大的其他圖像時效果不佳。這里,像JPEG這樣的壓縮技術在通用圖像壓縮方面會表現得更好。
自動編碼器是神經網絡的一種,經過訓練后能嘗試將輸入復制到輸出,換句話說,就是使輸出的內容和輸入的內容一樣。自動編碼器內部有一個隱含層h,可以產生編碼來表示輸入。該網絡可以看作由兩部分組成:一個編碼器h=f(x)和一個生成重構的解碼器r=g(h)。最后使得x約等于g(f(x))。可不可以通過設計網絡使得x=g(f(x)),理論上可以的,但通常不會這么做。
自動編碼器應該設計成不能學會完美地復制,通過強加一些約束,使自動編碼器只能近似地復制,因些它能學習到數據的有用特性,自編碼器根據不同的約束,有著不同的屬性。
-
編碼器
+關注
關注
45文章
3597瀏覽量
134170
發布評論請先 登錄
相關推薦
評論