技術頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術頻道 > 技術百科 > 深入理解自編碼器(附代碼實現(xiàn))

深入理解自編碼器(附代碼實現(xiàn))

時間:2018-04-28 18:05:11來源:網(wǎng)絡轉(zhuǎn)載

導語:?自編碼器可以認為是一種數(shù)據(jù)壓縮算法,或特征提取算法。本文作者NathanHubens介紹了autoencoders的基本體系結構。首先介紹了編碼器和解碼器的概念,然后就“自編碼器可以做什么?”進行討論,最后分別講解了四種不同類型的自編碼器:普通自編碼器,多層自編碼器,卷積自編碼器和正則化自編碼器。

自編碼器可以認為是一種數(shù)據(jù)壓縮算法,或特征提取算法。本文作者NathanHubens介紹了autoencoders的基本體系結構。首先介紹了編碼器和解碼器的概念,然后就“自編碼器可以做什么?”進行討論,最后分別講解了四種不同類型的自編碼器:普通自編碼器,多層自編碼器,卷積自編碼器和正則化自編碼器。

Deepinside:Autoencoders

自編碼器指的是試圖讓輸出和輸入一樣的神經(jīng)網(wǎng)絡。他們通過將輸入壓縮成一個隱藏空間表示來進行工作,然后通過這種表示重構輸出。這種網(wǎng)絡由兩部分組成:

1.編碼器:這是自編碼網(wǎng)絡的一部分,功能在于把輸入變成一個隱藏的空間表示。它可以用一個編碼函數(shù)h=f(x)表示。

2.解碼器:這部分旨在從隱藏空間的表示重構輸入。它可以用解碼函數(shù)r=g(h)表示。

作為一個整體的自編碼器可以用函數(shù)g(f(x))=r來描述,其中r與原始輸入x相近。

為什么要將輸入復制到輸出中?

如果autoencoders的唯一目的是將輸入復制到輸出中,那么它們將毫無用處。實際上,我們希望通過訓練autoencoder將輸入復制到輸出中,隱藏表示h將具有有用的屬性。

這可以通過在復制任務上添加一些限制條件進行實現(xiàn)。從自編碼器獲得有用特征的一種方法是將h限制為小于x的維度,在這種情況下,自編碼器是不完整的。通過訓練不完整的表示,我們強制自編碼器學習訓練數(shù)據(jù)的最顯著特征。如果自編碼器的容量過大,自編碼器可以出色地完成賦值任務而沒有從數(shù)據(jù)的分布抽取到任何有用的信息。如果隱藏表示的維度與輸入相同,或者隱藏表示維度大于輸入維度的情況下,也會發(fā)生這種情況。在這些情況下,即使線性編碼器和線性解碼器也可以將輸入復制到輸出,而無需了解有關數(shù)據(jù)分配的任何有用信息。理想情況下,自編碼器可以成功地訓練任何體系結構,根據(jù)要分配的復雜度來選擇編碼器和解碼器的代碼維數(shù)和容量。

自編碼器可以用于干什么?

當前,數(shù)據(jù)去噪和數(shù)據(jù)可視化中的降維被認為是自編碼器的兩個主要的實際應用。通過適當?shù)木S度和稀疏性約束,自編碼器可以學習比PCA或其他基本技術更有趣的數(shù)據(jù)投影。

自編碼器通過數(shù)據(jù)樣本自動學習。這意味著很容易訓練特定的算法實例,該算法在特定類型的輸入中表現(xiàn)良好,并且不需要任何新工程,只需要適當?shù)挠柧殧?shù)據(jù)。

但是,自編碼器在圖像壓縮方面做得不好。由于自編碼器是在給定的一組數(shù)據(jù)上進行訓練的,因此它將對類似于所用訓練集中的數(shù)據(jù)實現(xiàn)合理的壓縮結果,但是作為圖像壓縮器效果是不好的。像JPEG這樣的壓縮技術效果比自編碼器效果好很多。

自編碼器經(jīng)過訓練,可以在輸入通過編碼器和解碼器后保留盡可能多的信息,但也會接受訓練以使新的表示具有各種不錯的屬性。不同類型的自編碼器旨在實現(xiàn)不同類型的屬性。我們將關注四種類型的自編碼器。

自編碼器的類型:

在本文中,將介紹以下四種類型的自編碼器:

1.普通自編碼器

2.多層自編碼器

3.卷積自編碼器

4.正則化的自編碼

為了演示不同類型的自編碼器,我使用Keras框架和MNIST數(shù)據(jù)集創(chuàng)建了每個類型自編碼器的示例。

普通自編碼器

普通自編碼器是三層網(wǎng)絡,即具有一個隱藏層的神經(jīng)網(wǎng)絡。輸入和輸出是相同的,我們將學習如何重構輸入,例如使用adam優(yōu)化器和均方誤差損失函數(shù)。

在這里,我們看到我們有一個欠完備自編碼器,因為隱藏層維(64)小于輸入(784)。這個約束將強加我們的神經(jīng)網(wǎng)絡來學習壓縮的數(shù)據(jù)表示。

多層自編碼器

如果一個隱藏層不夠用,我們顯然可以將自編碼器擴展到更多的隱藏層。

現(xiàn)在我們的實現(xiàn)使用3個隱藏層,而不是一個。任何隱藏層都可以作為特征表示,但我們將使網(wǎng)絡結構對稱并使用最中間的隱藏層。

卷積自編碼器

我們也可能會問自己:自編碼器可以用于卷積層而不是全連接層嗎?

答案是肯定的,原理是一樣的,但使用圖像(3D矢量)而不是平坦的1維矢量。對輸入圖像進行下采樣以提供較小尺寸的隱藏表示并強制自編碼器學習圖像的壓縮版本。

正則化的自編碼器

還有其他一些方法可以限制自編碼器的重構,而不是簡單地強加一個維度比輸入小的隱藏層。正規(guī)化自編碼器不是通過調(diào)整編碼器和解碼從而限制模型容量,而是使用損失函數(shù),鼓勵模型學習除了將輸入復制到其輸出之外的其他屬性。在實踐中,我們通常會發(fā)現(xiàn)兩種正規(guī)化自編碼器:稀疏自編碼器和去噪自編碼器。

稀疏自編碼器:稀疏自編碼器通常用于學習分類等其他任務的特征。稀疏自編碼器必須響應數(shù)據(jù)集獨特的統(tǒng)計特征,而不僅僅是作為標識函數(shù)。通過這種方式,用稀疏性懲罰來執(zhí)行復制任務的訓練可以產(chǎn)生有用的特征模型。

我們可以限制自編碼器重構的另一種方式是對損失函數(shù)施加約束。例如,我們可以在損失函數(shù)中添加一個修正術語。這樣做會使我們的自編碼器學習數(shù)據(jù)的稀疏表示

注意在我們的正則項中,我們添加了一個l1激活函數(shù)正則器,它將在優(yōu)化階段對損失函數(shù)應用一個懲罰。在結果上,與正常普通自編碼器相比,該表示現(xiàn)在更稀松。

去噪自編碼器:我們可以獲得一個自編碼器,通過改變損失函數(shù)的重構誤差項來學習一些有用的東西,而不是對損失函數(shù)加以懲罰。這可以通過給輸入圖像添加一些噪聲并使自編碼器學會移除噪聲從而來進行訓練。通過這種方式,編碼器將提取最重要的特征并學習數(shù)據(jù)的更魯棒的表示。

總結

在本文中,我們介紹了autoencoders的基本體系結構。我們還研究了許多不同類型的自編碼器:普通自編碼器,多層自編碼器,卷積自編碼器和正則化自編碼器。根據(jù)約束的不同(縮小隱藏層的尺寸或施加其他類型的懲罰項),可以學到不同屬性的編碼。

標簽:

點贊

分享到:

上一篇:選購工業(yè)機器人力矩傳感器的...

下一篇:什么是機器視覺驗證?

中國傳動網(wǎng)版權與免責聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(wǎng)(www.wangxinlc.cn)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權屬于原版權人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網(wǎng)站簡介|會員服務|聯(lián)系方式|幫助信息|版權信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務平臺

網(wǎng)站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號