Deep Learning深度學(xué)習學(xué)習筆記整理如果對所有層同時(shí)訓練,時(shí)間復雜度會(huì )太高;如果每次訓練一層,偏差就會(huì )逐層傳遞。這會(huì )面臨跟上面監督學(xué)習中相反的問(wèn)題,會(huì )嚴重欠擬合(因為深度網(wǎng)絡(luò )的神經(jīng)元和參數太多了)2006年,hinton提出了在非監督數據上建立多層神經(jīng)網(wǎng)絡(luò )的一個(gè)有效方法,企業(yè)宣傳片制作簡(jiǎn)單的說(shuō),影視視頻制作分為兩步,一是每次訓練一層網(wǎng)絡(luò ),二是調優(yōu),使原始表示x向上生成的高級表示r和該高級表示r向下生成的x盡可能一致。方法是: 2)當所有層訓練完后,Hinton使用wake sleep算法進(jìn)行調優(yōu)將除最頂層的其它層間的權重變?yōu)殡p向的,這樣最頂層仍然是一個(gè)單層神經(jīng)網(wǎng)絡(luò ),而其它層則變?yōu)榱藞D模型。向上的權重用于“認知”,向下的權重用于“生成”。企業(yè)宣傳片制作然后使用Wake Sleep算法調整所有的權重。讓認知和生成達成一致,也就是保證生成的最頂層表示能夠盡可能正確的復原底層的結點(diǎn)。比如頂層的一個(gè)結點(diǎn)表示人臉,那么所有人臉的圖像應該激活這個(gè)結點(diǎn),并且這個(gè)結果向下生成的圖像應該能夠表現為一個(gè)大概的人臉圖像。Wake Sleep算法分為醒(wake)和睡(sleep)兩個(gè)部分1)wake階段:認知過(guò)程,通過(guò)外界的特征和向上的權重(認知權重)產(chǎn)生每一層的抽象表示(結點(diǎn)狀態(tài)),并且使用梯度下降修改層間的下行權重(生成權重)。也就是“如果現實(shí)跟我想象的不一樣,改變我的權重使得我想象的東西就是這樣的”2)sleep階段:生成過(guò)程,通過(guò)頂層表示(醒時(shí)學(xué)得的概念)和向下權重,生成底層的狀態(tài),同時(shí)修改層間向上的權重。也就是“如果夢(mèng)中的景象不是我腦中的相應概念,攝影新手如何選單反。改變我的認知權重使得這種景象在我看來(lái)就是這個(gè)概念”1)使用自下上升非監督學(xué)習(就是從底層開(kāi)始,一層一層的往頂層訓練):采用無(wú)標定數據(有標定數據也可)分層訓練各層參數,這一步可以看作是一個(gè)無(wú)監督訓練過(guò)程,是和傳統神經(jīng)網(wǎng)絡(luò )區別最大的部分(這個(gè)過(guò)程可以看作是feature learning過(guò)程):具體的,挖掘賣(mài)拷貝的幕后大佬 好萊塢,先用無(wú)標定數據訓練第一層,訓練時(shí)先學(xué)習第一層的參數(這一層可以看作是得到一個(gè)使得輸出和輸入差別最小的三層神經(jīng)網(wǎng)絡(luò )的隱層),由于模型capacity的限制以及稀疏性約束,使得得到的模型能夠學(xué)習到數據本身的結構,從而得到比輸入更具有表示能力的特征;在學(xué)習得到第n 1層后,將n 1層的輸出作為第n層的輸入,訓練第n層,由此分別得到各層的參數; 2)自頂向下的監督學(xué)習(就是通過(guò)帶標簽的數據去訓練,誤差自頂向下傳輸,對網(wǎng)絡(luò )進(jìn)行微調):基于第一步得到的各層參數進(jìn)一步fine tune整個(gè)多層模型的參數,這一步是一個(gè)有監督訓練過(guò)程;第一步類(lèi) learning效果好很大程度上歸功于第一步的feature learning過(guò)程經(jīng)過(guò)上面的方法,我們就可以得到很多層了。至于需要多少層(或者深度需要多少,這個(gè)目前本身就沒(méi)有一個(gè)科學(xué)的評價(jià)方法)需要自己試驗調了。每一層都會(huì )得到原始輸入的不同的表達。當然了,我們覺(jué)得它是越抽象越好了,就像人的視覺(jué)系統一樣到這里,這個(gè)AutoEncoder還不能用來(lái)分類(lèi)數據,因為它還沒(méi)有學(xué)習如何去連結一個(gè)輸入和一個(gè)類(lèi)。它只是學(xué)會(huì )了如何去重構或者復現它的輸入而已?;蛘哒f(shuō),它只是學(xué)習獲得了一個(gè)可以良好代表輸入的特征,這個(gè)特征可以最大程度上代表原輸入信號。那么,為了實(shí)現分類(lèi),我們就可以在A(yíng)utoEncoder的最頂的編碼層添加一個(gè)分類(lèi)器(例如羅杰斯特回歸、SVM等),然后通過(guò)標準的多層神經(jīng)網(wǎng)絡(luò )的監督訓練方法(梯度下降法)去訓練也就是說(shuō),這時(shí)候,我們需要將最后層的特征code輸入到最后的分類(lèi)器,通過(guò)有標簽樣本,通過(guò)監督學(xué)習進(jìn)行微調,這也分兩種,一個(gè)是只調整分類(lèi)器(黑色部分):如上圖,其實(shí)就是限制每次得到的表達code盡量稀疏。因為稀疏的表達往往比其他的表達要有效(人腦好像也是這樣的,某個(gè)輸入只是刺激某些神經(jīng)元,其他的大部分的神經(jīng)元是受到抑制的)Denoising AutoEncoders降噪自動(dòng)編碼器:降噪自動(dòng)編碼器DA是在自動(dòng)編碼器的基礎上,訓練數據加入噪聲,所以自動(dòng)編碼器必須學(xué)習去去除這種噪聲而獲得真正的沒(méi)有被噪聲污染過(guò)的輸入。因此,這就迫使編碼器去學(xué)習輸入信號的更加魯棒的表達,這也是它的泛化能力比一般編碼器強的原因。DA可以通過(guò)梯度下降算法去訓練因此,它們可以用來(lái)表達輸入I,這個(gè)過(guò)程也是自動(dòng)學(xué)習得到的。如果我們在上述式子上加上L1的Regularity限制,得到:這種方法被稱(chēng)為Sparse Coding。通俗的說(shuō),就是將一個(gè)信號表示為一組基的線(xiàn)性組合,而且要求只需要較少的幾個(gè)基就可以將信號表示出來(lái)。“稀疏性”定義為:只有很少的幾個(gè)非零元素或只有很少的幾個(gè)遠大于零的元素。要求系數 ai 是稀疏的意思就是說(shuō):對于一組輸入向量,我們只想有盡可能少的幾個(gè)系數遠大于零。選擇使用具有稀疏性的分量來(lái)表示我們的輸入數據是有原因的,因為絕大多數的感官數據,比如自然圖像,徐皓峰放棄刀背藏身導演署名??梢员槐硎境缮倭炕驹氐寞B加,在圖像中這些基本元素可以是面或者線(xiàn)。同時(shí),比如與初級視覺(jué)皮層的類(lèi)比過(guò)程也因此得到了提升(人腦有大量的神經(jīng)元,但對于某些圖像或者邊緣只有很少的神經(jīng)元興奮,其他都處于抑制狀態(tài))稀疏編碼算法是一種無(wú)監督學(xué)習方法,它用來(lái)尋找一組“超完備”基向量來(lái)更高效地表示樣本數據。雖然形如主成分分析技術(shù)(PCA)能使我們方便地找到一組“完備”基向量,但是這里我們想要做的是找到一組“超完備”基向量來(lái)表示輸入向量(也就是說(shuō),基向量的個(gè)數比輸入向量的維數要大)。超完備基的好處是它們能更有效地找出隱含在輸入數據內部的結構與模式。當年干部培訓那點(diǎn)風(fēng)花雪月故事之一嚴建設老照然而,對于超完備基來(lái)說(shuō),系數ai不再由輸入向量唯一確定。因此,在稀疏編碼算法中,我們另加了一個(gè)評判標準“稀疏性”來(lái)解決因超完備而導致的退化(degeneracy)問(wèn)題。(詳細過(guò)程請參考:UFLDL