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