自動編碼器(Auto-Encoder,AE)
自編碼器(autoencoder)是神經(jīng)網(wǎng)絡(luò)的一種,經(jīng)過訓(xùn)練后能嘗試將輸入復(fù)制到輸出。自編碼器內(nèi)部有一個隱藏層 h,可以產(chǎn)生編碼(code)表示輸入。該網(wǎng)絡(luò)可以看作由兩部分組成:一個由函數(shù) h = f(x) 表示的編碼器和一個生成重構(gòu)的解碼器 r = g(h)。我們不應(yīng)該將自編碼器設(shè)計成輸入到輸出完全相等。這通常需要向自編碼器強(qiáng)加一些約束,使它只能近似地復(fù)制,并只能復(fù)制與訓(xùn)練數(shù)據(jù)相似的輸入。
自動編碼機(jī)由三層網(wǎng)絡(luò)組成,其中輸入層神經(jīng)元數(shù)量與輸出層神經(jīng)元數(shù)量相等,中間層神經(jīng)元數(shù)量少于輸入層和輸出層。搭建一個自動編碼器需要完成下面三樣工作:搭建編碼器,搭建解碼器,設(shè)定一個損失函數(shù),用以衡量由于壓縮而損失掉的信息(自編碼器是有損的)。編碼器和解碼器一般都是參數(shù)化的方程,并關(guān)于損失函數(shù)可導(dǎo),典型情況是使用神經(jīng)網(wǎng)絡(luò)。編碼器和解碼器的參數(shù)可以通過最小化損失函數(shù)而優(yōu)化。
自動編碼機(jī)(Auto-encoder)是一個自監(jiān)督的算法,并不是一個無監(jiān)督算法,它不需要對訓(xùn)練樣本進(jìn)行標(biāo)記,其標(biāo)簽產(chǎn)生自輸入數(shù)據(jù)。因此自編碼器很容易對指定類的輸入訓(xùn)練出一種特定的編碼器,而不需要完成任何新工作。自動編碼器是數(shù)據(jù)相關(guān)的,只能壓縮那些與訓(xùn)練數(shù)據(jù)類似的數(shù)據(jù)。比如,使用人臉訓(xùn)練出來的自動編碼器在壓縮別的圖片,比如樹木時性能很差,因為它學(xué)習(xí)到的特征是與人臉相關(guān)的。
自動編碼器運(yùn)算過程:原始input(設(shè)為x)經(jīng)過加權(quán)(W、b)、映射(Sigmoid)之后得到y(tǒng),再對y反向加權(quán)映射回來成為z。通過反復(fù)迭代訓(xùn)練兩組(W、b),目的就是使輸出信號與輸入信號盡量相似。訓(xùn)練結(jié)束之后自動編碼器可以由兩部分組成:
1.輸入層和中間層,可以用這個網(wǎng)絡(luò)來對信號進(jìn)行壓縮
2.中間層和輸出層,我們可以將壓縮的信號進(jìn)行還原
降噪自動編碼器(Denoising Auto Encoder,DAE)
降噪自動編碼器就是在自動編碼器的基礎(chǔ)之上,為了防止過擬合問題而對輸入層的輸入數(shù)據(jù)加入噪音,使學(xué)習(xí)得到的編碼器具有魯棒性而改進(jìn)的,是Bengio在08年論文:Extracting and composing robust features with denoising autoencoders提出的。
論文中關(guān)于降噪自動編碼器的示意圖如下,類似于dropout,其中x是原始的輸入數(shù)據(jù),降噪自動編碼器以一定概率(通常使用二項分布)把輸入層節(jié)點(diǎn)的值置為0,從而得到含有噪音的模型輸入x?。
這個破損的數(shù)據(jù)是很有用的,原因有二:
1.通過與非破損數(shù)據(jù)訓(xùn)練的對比,破損數(shù)據(jù)訓(xùn)練出來的Weight噪聲比較小。降噪因此得名。原因不難理解,因為擦除的時候不小心把輸入噪聲給×掉了。
2.破損數(shù)據(jù)一定程度上減輕了訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)的代溝。由于數(shù)據(jù)的部分被×掉了,因而這破損數(shù)據(jù)一定程度上比較接近測試數(shù)據(jù)。訓(xùn)練、測試肯定有同有異,當(dāng)然我們要求同舍異。
堆疊降噪自動編碼器(Stacked Denoising Auto Encoder,SDAE)
SDAE的思想就是將多個DAE堆疊在一起形成一個深度的架構(gòu)。只有在訓(xùn)練的時候才會對輸入進(jìn)行腐蝕(加噪),訓(xùn)練完成就不需要在進(jìn)行腐蝕。結(jié)構(gòu)如下圖所示:
**逐層貪婪訓(xùn)練:**每層自編碼層都單獨(dú)進(jìn)行非監(jiān)督訓(xùn)練,以最小化輸入(輸入為前一層的隱層輸出)與重構(gòu)結(jié)果之間的誤差為訓(xùn)練目標(biāo)。前K層訓(xùn)練好了,就可以訓(xùn)練K+1層,因為已經(jīng)前向傳播求出K層的輸出,再用K層的輸出當(dāng)作K+1的輸入訓(xùn)練K+1層。
一旦SDAE訓(xùn)練完成, 其高層的特征就可以用做傳統(tǒng)的監(jiān)督算法的輸入。當(dāng)然,也可以在最頂層添加一層logistic regression layer(softmax層),然后使用帶label的數(shù)據(jù)來進(jìn)一步對網(wǎng)絡(luò)進(jìn)行 微調(diào)(fine-tuning) ,即用樣本進(jìn)行有監(jiān)督訓(xùn)練。
審核編輯 hhy
-
編碼器
+關(guān)注
關(guān)注
45文章
3638瀏覽量
134426 -
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4771瀏覽量
100715
發(fā)布評論請先 登錄
相關(guān)推薦
評論