網路上有關自動編碼器的資料參差不齊,許多基本概念及原理沒有講清楚。現在,我來乙個比較系統的講述
一下自動編碼器的一些概念及原理,
在最後,附上python實現**。
自動編碼器是神經網路的一種,經過訓練後能嘗試將輸入複製到輸出,換句話說,就是使輸出的內容和輸入的
內容一樣。自動編碼器內部有乙個隱含層h,可以產生
編碼來表示輸入。該網路可以看作由兩部分組成:乙個編
碼器h=f(x)和乙個生成重構的解碼器r=g(h)。最後使得x約等於g(f(x))。可不可以通過設計網路使得x=g(f(x)),
理論上可以的,但通常不會這麼做。自動編碼器應該設計成不能學會完美地複製,通過強加一些約束,使自動
編碼器只能近似地複製,因些它能學習到資料的有用特性。
從自動編碼器獲得有用特徵的一種方法是限制h的維度比x小,這樣將強制自動編碼器捕捉訓練資料中
最顯著的特徵,這樣的自動編碼器叫稀疏自編碼。
學習過程可以簡單地描述為最小化乙個損失函式
l(x,g(f(x)))+ω(h) , ω(h)是懲罰項
當解碼器是線性的且l是均方誤差,就可以學習出與pca方法相同生成子空間。(pca可以參考以前寫過的一篇部落格)
這個圖就是稀疏自編碼器的樣例,layer l1是輸入層,layer l3是輸出層,layer l2是隱藏層。
下節會講稀疏自編碼的前向傳播和後向傳播,敬請期待。
自動編碼器
自動編碼器基本概念 自動編碼器 autoencoder 是神經網路的一種,一般來講自動編碼器包括兩部分 編碼器和解碼器,編碼器和解碼器相互串聯合作,實現資料的降維或特徵學習,現在也廣泛用於生成模型中.在深度學習中,autoencoder可用於在訓練階段開始前,確定權重矩陣的初始值.左側為encode...
自動編碼器(Autoencoder)
autoencoder是一種無監督的學習演算法,主要用於資料的降維或者特徵的抽取,在深度學習中,autoencoder可用於在訓練階段開始前,確定權重矩陣 w 的初始值。神經網路中的權重矩陣 w可看作是對輸入的資料進行特徵轉換,即先將資料編碼為另一種形式,然後在此基礎上進行一系列學習。然而,在對權重...
自動編碼器(Autoencoder)
autoencoder是一種無監督的學習演算法,主要用於資料的降維或者特徵的抽取,在深度學習中,autoencoder可用於在訓練階段開始前,確定權重矩陣w的初始值。或參考 自動編碼器 autoencoder 對於多層神經網路的引數初始化問題,我們可以依次對每一層進行autoencoder。如下圖所...