Deep Learning(深度學(xué)習(xí))學(xué)習(xí)筆記整理系列之(四) --AutoEncoder自動(dòng)編碼器

Deep Learning(深度學(xué)習(xí))學(xué)習(xí)筆記整理系列之(四) --AutoEncoder自動(dòng)編碼器


原文地址:http://blog.csdn.net/zouxy09/article/details/8775524

Deep Learning(深度學(xué)習(xí))學(xué)習(xí)筆記整理系列

zouxy09@qq.com

http://blog.csdn.net/zouxy09

作者:Zouxy

version 1.0 2013-04-08

聲明:

1)該Deep Learning的學(xué)習(xí)系列是整理自網(wǎng)上很大牛和機(jī)器學(xué)習(xí)專家所無私奉獻(xiàn)的資料的誓竿。具體引用的資料請(qǐng)看參考文獻(xiàn)客峭。具體的版本聲明也參考原文獻(xiàn)蹲盘。

2)本文僅供學(xué)術(shù)交流凯亮,非商用。所以每一部分具體的參考資料并沒有詳細(xì)對(duì)應(yīng)箱舞。如果某部分不小心侵犯了大家的利益偏友,還望海涵,并聯(lián)系博主刪除忘衍。

3)本人才疏學(xué)淺,整理總結(jié)的時(shí)候難免出錯(cuò)卿城,還望各位前輩不吝指正枚钓,謝謝。

4)閱讀本文需要機(jī)器學(xué)習(xí)瑟押、計(jì)算機(jī)視覺搀捷、神經(jīng)網(wǎng)絡(luò)等等基礎(chǔ)(如果沒有也沒關(guān)系了,沒有就看看多望,能不能看懂嫩舟,呵呵)氢烘。

5)此屬于第一版本,若有錯(cuò)誤家厌,還需繼續(xù)修正與增刪威始。還望大家多多指點(diǎn)。大家都共享一點(diǎn)點(diǎn)像街,一起為祖國(guó)科研的推進(jìn)添磚加瓦(呵呵,好高尚的目標(biāo)敖臁)镰绎。請(qǐng)聯(lián)系:zouxy09@qq.com

目錄:

一、概述

二木西、背景

三畴栖、人腦視覺機(jī)理

四、關(guān)于特征

4.1八千、特征表示的粒度

4.2吗讶、初級(jí)(淺層)特征表示

4.3、結(jié)構(gòu)性特征表示

4.4恋捆、需要有多少個(gè)特征照皆?

五、Deep Learning的基本思想

六沸停、淺層學(xué)習(xí)(Shallow Learning)和深度學(xué)習(xí)(Deep Learning)

七膜毁、Deep learning與Neural Network

八、Deep learning訓(xùn)練過程

8.1愤钾、傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法

8.2瘟滨、deep learning訓(xùn)練過程

九、Deep Learning的常用模型或者方法

9.1能颁、AutoEncoder自動(dòng)編碼器

9.2杂瘸、Sparse Coding稀疏編碼

9.3、Restricted Boltzmann Machine(RBM)限制波爾茲曼機(jī)

9.4伙菊、Deep BeliefNetworks深信度網(wǎng)絡(luò)

9.5败玉、Convolutional Neural Networks卷積神經(jīng)網(wǎng)絡(luò)

十、總結(jié)與展望

十一占业、參考文獻(xiàn)和Deep Learning學(xué)習(xí)資源

接上

九绒怨、Deep Learning的常用模型或者方法

9.1、AutoEncoder自動(dòng)編碼器

Deep Learning最簡(jiǎn)單的一種方法是利用人工神經(jīng)網(wǎng)絡(luò)的特點(diǎn)谦疾,人工神經(jīng)網(wǎng)絡(luò)(ANN)本身就是具有層次結(jié)構(gòu)的系統(tǒng)南蹂,如果給定一個(gè)神經(jīng)網(wǎng)絡(luò),我們假設(shè)其輸出與輸入是相同的念恍,然后訓(xùn)練調(diào)整其參數(shù)六剥,得到每一層中的權(quán)重晚顷。自然地,我們就得到了輸入I的幾種不同表示(每一層代表一種表示)疗疟,這些表示就是特征该默。自動(dòng)編碼器就是一種盡可能復(fù)現(xiàn)輸入信號(hào)的神經(jīng)網(wǎng)絡(luò)。為了實(shí)現(xiàn)這種復(fù)現(xiàn)策彤,自動(dòng)編碼器就必須捕捉可以代表輸入數(shù)據(jù)的最重要的因素栓袖,就像PCA那樣,找到可以代表原信息的主要成分店诗。

具體過程簡(jiǎn)單的說明如下:

1)給定無標(biāo)簽數(shù)據(jù)裹刮,用非監(jiān)督學(xué)習(xí)學(xué)習(xí)特征:

在我們之前的神經(jīng)網(wǎng)絡(luò)中,如第一個(gè)圖庞瘸,我們輸入的樣本是有標(biāo)簽的捧弃,即(input, target),這樣我們根據(jù)當(dāng)前輸出和target(label)之間的差去改變前面各層的參數(shù)擦囊,直到收斂违霞。但現(xiàn)在我們只有無標(biāo)簽數(shù)據(jù),也就是右邊的圖瞬场。那么這個(gè)誤差怎么得到呢买鸽?

如上圖,我們將input輸入一個(gè)encoder編碼器贯被,就會(huì)得到一個(gè)code癞谒,這個(gè)code也就是輸入的一個(gè)表示,那么我們?cè)趺粗肋@個(gè)code表示的就是input呢刃榨?我們加一個(gè)decoder解碼器弹砚,這時(shí)候decoder就會(huì)輸出一個(gè)信息,那么如果輸出的這個(gè)信息和一開始的輸入信號(hào)input是很像的(理想情況下就是一樣的)枢希,那很明顯桌吃,我們就有理由相信這個(gè)code是靠譜的。所以苞轿,我們就通過調(diào)整encoder和decoder的參數(shù)茅诱,使得重構(gòu)誤差最小,這時(shí)候我們就得到了輸入input信號(hào)的第一個(gè)表示了搬卒,也就是編碼code了瑟俭。因?yàn)槭菬o標(biāo)簽數(shù)據(jù),所以誤差的來源就是直接重構(gòu)后與原輸入相比得到契邀。

2)通過編碼器產(chǎn)生特征摆寄,然后訓(xùn)練下一層。這樣逐層訓(xùn)練:

那上面我們就得到第一層的code,我們的重構(gòu)誤差最小讓我們相信這個(gè)code就是原輸入信號(hào)的良好表達(dá)了微饥,或者牽強(qiáng)點(diǎn)說逗扒,它和原信號(hào)是一模一樣的(表達(dá)不一樣,反映的是一個(gè)東西)欠橘。那第二層和第一層的訓(xùn)練方式就沒有差別了矩肩,我們將第一層輸出的code當(dāng)成第二層的輸入信號(hào),同樣最小化重構(gòu)誤差肃续,就會(huì)得到第二層的參數(shù)黍檩,并且得到第二層輸入的code,也就是原輸入信息的第二個(gè)表達(dá)了始锚。其他層就同樣的方法炮制就行了(訓(xùn)練這一層建炫,前面層的參數(shù)都是固定的,并且他們的decoder已經(jīng)沒用了疼蛾,都不需要了)。

3)有監(jiān)督微調(diào):

經(jīng)過上面的方法艺配,我們就可以得到很多層了察郁。至于需要多少層(或者深度需要多少,這個(gè)目前本身就沒有一個(gè)科學(xué)的評(píng)價(jià)方法)需要自己試驗(yàn)調(diào)了转唉。每一層都會(huì)得到原始輸入的不同的表達(dá)皮钠。當(dāng)然了,我們覺得它是越抽象越好了赠法,就像人的視覺系統(tǒng)一樣麦轰。

到這里,這個(gè)AutoEncoder還不能用來分類數(shù)據(jù)砖织,因?yàn)樗€沒有學(xué)習(xí)如何去連結(jié)一個(gè)輸入和一個(gè)類款侵。它只是學(xué)會(huì)了如何去重構(gòu)或者復(fù)現(xiàn)它的輸入而已〔啻浚或者說新锈,它只是學(xué)習(xí)獲得了一個(gè)可以良好代表輸入的特征,這個(gè)特征可以最大程度上代表原輸入信號(hào)眶熬。那么妹笆,為了實(shí)現(xiàn)分類,我們就可以在AutoEncoder的最頂?shù)木幋a層添加一個(gè)分類器(例如羅杰斯特回歸娜氏、SVM等)拳缠,然后通過標(biāo)準(zhǔn)的多層神經(jīng)網(wǎng)絡(luò)的監(jiān)督訓(xùn)練方法(梯度下降法)去訓(xùn)練。

也就是說贸弥,這時(shí)候窟坐,我們需要將最后層的特征code輸入到最后的分類器,通過有標(biāo)簽樣本,通過監(jiān)督學(xué)習(xí)進(jìn)行微調(diào)狸涌,這也分兩種切省,一個(gè)是只調(diào)整分類器(黑色部分):

另一種:通過有標(biāo)簽樣本,微調(diào)整個(gè)系統(tǒng):(如果有足夠多的數(shù)據(jù)帕胆,這個(gè)是最好的朝捆。end-to-end learning端對(duì)端學(xué)習(xí))

一旦監(jiān)督訓(xùn)練完成,這個(gè)網(wǎng)絡(luò)就可以用來分類了懒豹。神經(jīng)網(wǎng)絡(luò)的最頂層可以作為一個(gè)線性分類器芙盘,然后我們可以用一個(gè)更好性能的分類器去取代它。

在研究中可以發(fā)現(xiàn)脸秽,如果在原有的特征中加入這些自動(dòng)學(xué)習(xí)得到的特征可以大大提高精確度儒老,甚至在分類問題中比目前最好的分類算法效果還要好!

AutoEncoder存在一些變體记餐,這里簡(jiǎn)要介紹下兩個(gè):

Sparse AutoEncoder稀疏自動(dòng)編碼器:

當(dāng)然驮樊,我們還可以繼續(xù)加上一些約束條件得到新的Deep Learning方法,如:如果在AutoEncoder的基礎(chǔ)上加上L1的Regularity限制(L1主要是約束每一層中的節(jié)點(diǎn)中大部分都要為0片酝,只有少數(shù)不為0囚衔,這就是Sparse名字的來源),我們就可以得到Sparse AutoEncoder法雕沿。

如上圖练湿,其實(shí)就是限制每次得到的表達(dá)code盡量稀疏。因?yàn)橄∈璧谋磉_(dá)往往比其他的表達(dá)要有效(人腦好像也是這樣的审轮,某個(gè)輸入只是刺激某些神經(jīng)元肥哎,其他的大部分的神經(jīng)元是受到抑制的)。

Denoising AutoEncoders降噪自動(dòng)編碼器:

降噪自動(dòng)編碼器DA是在自動(dòng)編碼器的基礎(chǔ)上疾渣,訓(xùn)練數(shù)據(jù)加入噪聲篡诽,所以自動(dòng)編碼器必須學(xué)習(xí)去去除這種噪聲而獲得真正的沒有被噪聲污染過的輸入。因此榴捡,這就迫使編碼器去學(xué)習(xí)輸入信號(hào)的更加魯棒的表達(dá)霞捡,這也是它的泛化能力比一般編碼器強(qiáng)的原因。DA可以通過梯度下降算法去訓(xùn)練薄疚。

9.2碧信、Sparse Coding稀疏編碼

如果我們把輸出必須和輸入相等的限制放松,同時(shí)利用線性代數(shù)中基的概念街夭,即O = a1*Φ1+ a2*Φ2+….+ an*Φn砰碴, Φi是基,ai是系數(shù)板丽,我們可以得到這樣一個(gè)優(yōu)化問題:

Min |I – O|呈枉,其中I表示輸入趁尼,O表示輸出。

通過求解這個(gè)最優(yōu)化式子猖辫,我們可以求得系數(shù)ai和基Φi酥泞,這些系數(shù)和基就是輸入的另外一種近似表達(dá)。

因此啃憎,它們可以用來表達(dá)輸入I芝囤,這個(gè)過程也是自動(dòng)學(xué)習(xí)得到的。如果我們?cè)谏鲜鍪阶由霞由螸1的Regularity限制辛萍,得到:

Min |I – O| + u*(|a1| + |a2| + … + |an|)

這種方法被稱為Sparse Coding悯姊。通俗的說,就是將一個(gè)信號(hào)表示為一組基的線性組合贩毕,而且要求只需要較少的幾個(gè)基就可以將信號(hào)表示出來悯许。“稀疏性”定義為:只有很少的幾個(gè)非零元素或只有很少的幾個(gè)遠(yuǎn)大于零的元素辉阶。要求系數(shù) ai是稀疏的意思就是說:對(duì)于一組輸入向量先壕,我們只想有盡可能少的幾個(gè)系數(shù)遠(yuǎn)大于零。選擇使用具有稀疏性的分量來表示我們的輸入數(shù)據(jù)是有原因的谆甜,因?yàn)榻^大多數(shù)的感官數(shù)據(jù)垃僚,比如自然圖像,可以被表示成少量基本元素的疊加店印,在圖像中這些基本元素可以是面或者線。同時(shí)倒慧,比如與初級(jí)視覺皮層的類比過程也因此得到了提升(人腦有大量的神經(jīng)元按摘,但對(duì)于某些圖像或者邊緣只有很少的神經(jīng)元興奮,其他都處于抑制狀態(tài))纫谅。

稀疏編碼算法是一種無監(jiān)督學(xué)習(xí)方法炫贤,它用來尋找一組“超完備”基向量來更高效地表示樣本數(shù)據(jù)。雖然形如主成分分析技術(shù)(PCA)能使我們方便地找到一組“完備”基向量付秕,但是這里我們想要做的是找到一組“超完備”基向量來表示輸入向量(也就是說兰珍,基向量的個(gè)數(shù)比輸入向量的維數(shù)要大)。超完備基的好處是它們能更有效地找出隱含在輸入數(shù)據(jù)內(nèi)部的結(jié)構(gòu)與模式询吴。然而掠河,對(duì)于超完備基來說,系數(shù)ai不再由輸入向量唯一確定猛计。因此唠摹,在稀疏編碼算法中,我們另加了一個(gè)評(píng)判標(biāo)準(zhǔn)“稀疏性”來解決因超完備而導(dǎo)致的退化(degeneracy)問題奉瘤。(詳細(xì)過程請(qǐng)參考:UFLDL Tutorial稀疏編碼

比如在圖像的Feature Extraction的最底層要做Edge Detector的生成勾拉,那么這里的工作就是從Natural Images中randomly選取一些小patch,通過這些patch生成能夠描述他們的“基”,也就是右邊的8*8=64個(gè)basis組成的basis藕赞,然后給定一個(gè)test patch, 我們可以按照上面的式子通過basis的線性組合得到成肘,而sparse matrix就是a,下圖中的a中有64個(gè)維度斧蜕,其中非零項(xiàng)只有3個(gè)双霍,故稱“sparse”。

這里可能大家會(huì)有疑問惩激,為什么把底層作為Edge Detector呢店煞?上層又是什么呢?這里做個(gè)簡(jiǎn)單解釋大家就會(huì)明白风钻,之所以是Edge Detector是因?yàn)椴煌较虻腅dge就能夠描述出整幅圖像顷蟀,所以不同方向的Edge自然就是圖像的basis了……而上一層的basis組合的結(jié)果,上上層又是上一層的組合basis……(就是上面第四部分的時(shí)候咱們說的那樣)

Sparse coding分為兩個(gè)部分:

1)Training階段:給定一系列的樣本圖片[x1, x 2, …]骡技,我們需要學(xué)習(xí)得到一組基[Φ1, Φ2, …]鸣个,也就是字典。

稀疏編碼是k-means算法的變體布朦,其訓(xùn)練過程也差不多(EM算法的思想:如果要優(yōu)化的目標(biāo)函數(shù)包含兩個(gè)變量囤萤,如L(W, B),那么我們可以先固定W是趴,調(diào)整B使得L最小涛舍,然后再固定B,調(diào)整W使L最小唆途,這樣迭代交替富雅,不斷將L推向最小值。EM算法可以見我的博客:“從最大似然到EM算法淺解”)肛搬。

訓(xùn)練過程就是一個(gè)重復(fù)迭代的過程没佑,按上面所說,我們交替的更改a和Φ使得下面這個(gè)目標(biāo)函數(shù)最小温赔。

每次迭代分兩步:

a)固定字典Φ[k]蛤奢,然后調(diào)整a[k],使得上式陶贼,即目標(biāo)函數(shù)最衅》贰(即解LASSO問題)。

b)然后固定住a [k]拜秧,調(diào)整Φ [k]瓜晤,使得上式,即目標(biāo)函數(shù)最懈鼓伞(即解凸QP問題)痢掠。

不斷迭代驱犹,直至收斂。這樣就可以得到一組可以良好表示這一系列x的基足画,也就是字典雄驹。

2)Coding階段:給定一個(gè)新的圖片x,由上面得到的字典淹辞,通過解一個(gè)LASSO問題得到稀疏向量a医舆。這個(gè)稀疏向量就是這個(gè)輸入向量x的一個(gè)稀疏表達(dá)了。

例如:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末象缀,一起剝皮案震驚了整個(gè)濱河市蔬将,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌央星,老刑警劉巖霞怀,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異莉给,居然都是意外死亡毙石,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門颓遏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來徐矩,“玉大人,你說我怎么就攤上這事叁幢÷说疲” “怎么了?”我有些...
    開封第一講書人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵曼玩,是天一觀的道長(zhǎng)鳞骤。 經(jīng)常有香客問我,道長(zhǎng)演训,這世上最難降的妖魔是什么弟孟? 我笑而不...
    開封第一講書人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任贝咙,我火速辦了婚禮样悟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘庭猩。我一直安慰自己窟她,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開白布蔼水。 她就那樣靜靜地躺著震糖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪趴腋。 梳的紋絲不亂的頭發(fā)上吊说,一...
    開封第一講書人閱讀 51,245評(píng)論 1 299
  • 那天论咏,我揣著相機(jī)與錄音,去河邊找鬼颁井。 笑死厅贪,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的雅宾。 我是一名探鬼主播养涮,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼眉抬!你這毒婦竟也來了贯吓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤蜀变,失蹤者是張志新(化名)和其女友劉穎悄谐,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體昏苏,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡尊沸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了贤惯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片洼专。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖孵构,靈堂內(nèi)的尸體忽然破棺而出屁商,到底是詐尸還是另有隱情,我是刑警寧澤颈墅,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布蜡镶,位于F島的核電站,受9級(jí)特大地震影響恤筛,放射性物質(zhì)發(fā)生泄漏官还。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一毒坛、第九天 我趴在偏房一處隱蔽的房頂上張望望伦。 院中可真熱鬧,春花似錦煎殷、人聲如沸屯伞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)劣摇。三九已至,卻和暖如春弓乙,著一層夾襖步出監(jiān)牢的瞬間末融,已是汗流浹背钧惧。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留勾习,地道東北人垢乙。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像语卤,于是被迫代替她去往敵國(guó)和親追逮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容