收縮自編碼器(contractive autoencoder,CAE)是一種正則自編碼器。它在編碼h=f(x)的基礎上添加了顯示的正則項,鼓勵 f 的導數儘可能小,它的懲罰項Ω(h) 是平方Frobenius範數(元素平方的和),作用於與編碼器的函式相關偏導數的Jacobian矩陣。
基本介紹
- 中文名:收縮自編碼器
- 外文名:contractive autoencoder
- 性質:只在局部收縮
自編碼器,正則自編碼器,表達式,含義,目標,實際問題,
自編碼器
自編碼器(autoencoder)是神經網路的一種,經過訓練後能嘗試將輸入複製到輸出。 自編碼器內部有一個隱藏層 ,可以產生編碼(code)表示輸入。該網路可以看作由兩部分組成:一個由函式 表示的編碼器和一個生成重構的解碼器 。
如圖1,為自編碼器一般結構。通過內部表示或編碼 將輸入 映射到輸出(稱為重構) 。 自編碼器具有兩個組件: 編碼器 (將 映射到 )和解碼器 (將 映射到 )。
如果一個自編碼器只是簡單地學會將處處設定為 ,那么這個自編碼器就沒什麼特別的用處。相反,我們不應該將自編碼器設計成輸入到輸出完全相等。這通常需要向自編碼器強加一些約束,使它只能近似地複製,並只能複製與訓練數據相似的輸入。這些約束強制模型考慮輸入數據的哪些部分需要被優先複製,因此它往往能學習到數據的有用特性。
現代自編碼器將編碼器和解碼器的概念推而廣之,將其中的確定函式推廣為隨機映射 和 。
數十年間, 自編碼器的想法一直是神經網路歷史景象的一部分。傳統自編碼器被用於降維或特徵學習。近年來, 自編碼器與潛變數模型理論的聯繫將自編碼器帶到了生成式建模的前沿,我們將在第二十章揭示更多細節。 自編碼器可以被看作是前饋網路的一個特例,並且可以使用完全相同的技術進行訓練,通常使用小批量梯度下降法(其中梯度基於反向傳播計算)。不同於一般的前饋網路, 自編碼器也可以使用循環(recirculation)訓練,這種學習算法基於比較原始輸入的激活和重構輸入的激活。相比反向傳播算法, 再循環算法更具生物學意義,但很少用於機器學習套用。
正則自編碼器
編碼維數小於輸入維數的欠完備自編碼器可以學習數據分布最顯著的特徵。我們已經知道,如果賦予這類自編碼器過大的容量,它就不能學到任何有用的信息。
如果隱藏編碼的維數允許與輸入相等,或隱藏編碼維數大於輸入的 過完備(overcomplete)情況下,會發生類似的問題。在這些情況下,即使是線性編碼器和線性解碼器也可以學會將輸入複製到輸出,而學不到任何有關數據分布的有用信息。
理想情況下,根據要建模的數據分布的複雜性,選擇合適的編碼維數和編碼器、解碼器容量,就可以成功訓練任意架構的自編碼器。正則自編碼器提供這樣的能力。正則自編碼器使用的損失函式可以鼓勵模型學習其他特性(除了將輸入複製到輸出),而不必限制使用淺層的編碼器和解碼器以及小的編碼維數來限制模型的容量。這些特性包括稀疏表示、 表示的小導數、以及對噪聲或輸入缺失的魯棒性。即使模型容量大到足以學習一個無意義的恆等函式,非線性且過完備的正則自編碼器仍然能夠從數據中學到一些關於數據分布的有用信息。
除了這裡所描述的方法(正則化自編碼器最自然的解釋),幾乎任何帶有潛變數並配有一個推斷過程(計算給定輸入的潛在表示)的生成模型,都可以看作是自編碼器的一種特殊形式。強調與自編碼器聯繫的兩個生成式建模方法是 Helmholtz機的衍生模型,如變分自編碼器和生成隨機網路。這些變種(或衍生) 自編碼器能夠學習出高容量且過完備的模型,進而發現輸入數據中有用的結構信息,並且也無需對模型進行正則化。這些編碼顯然是有用的,因為這些模型被訓練為近似訓練數據的機率分布而不是將輸入複製到輸出。
正在載入展開全文
正在載入載入更多
查看更多
打開百度App閱讀全文