深度學(xué)習(xí)(1)——sae(稀疏自動(dòng)編碼機(jī))_第1頁(yè)
深度學(xué)習(xí)(1)——sae(稀疏自動(dòng)編碼機(jī))_第2頁(yè)
深度學(xué)習(xí)(1)——sae(稀疏自動(dòng)編碼機(jī))_第3頁(yè)
深度學(xué)習(xí)(1)——sae(稀疏自動(dòng)編碼機(jī))_第4頁(yè)
深度學(xué)習(xí)(1)——sae(稀疏自動(dòng)編碼機(jī))_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、深度學(xué)習(xí)深度學(xué)習(xí)(1)稀疏自動(dòng)編碼機(jī)(稀疏自動(dòng)編碼機(jī)(SAE)網(wǎng)絡(luò))網(wǎng)絡(luò) 廣東工業(yè)大學(xué) 13級(jí)控制工程 傳統(tǒng)神經(jīng)網(wǎng)絡(luò) 1)比較容易過(guò)擬合,參數(shù)比較難調(diào)整; 2)訓(xùn)練速度比較慢,在層次比較少(小于等于3)的情況下效果并不比其它方法更優(yōu);BP算法存在的問(wèn)題:(1)梯度越來(lái)越稀疏:從頂層越往下,誤差校正信號(hào)越來(lái)越??;(2)收斂到局部最小值:尤其是從遠(yuǎn)離最優(yōu)區(qū)域開(kāi)始的時(shí)候(隨機(jī)值初始化會(huì)導(dǎo)致這種情況的發(fā)生);(3)一般,我們只能用有標(biāo)簽的數(shù)據(jù)來(lái)訓(xùn)練:但大部分的數(shù)據(jù)是沒(méi)標(biāo)簽的,而大腦可以從沒(méi)有標(biāo)簽的的數(shù)據(jù)中學(xué)習(xí);一、針對(duì)過(guò)擬合現(xiàn)象的處理1.懲罰項(xiàng)(Penalty,正則化方法,正則化的一般形式是在整個(gè)目標(biāo)

2、函數(shù)后增加一個(gè)正則項(xiàng),以使經(jīng)驗(yàn)風(fēng)險(xiǎn)最小化。把不重要的項(xiàng)的參數(shù)保留,但是令其系數(shù)為零)2.給輸入層a1加噪,以及對(duì)隱含層ai進(jìn)行Dropout (按比例隨機(jī)清零。)二、針對(duì)訓(xùn)練快慢與穩(wěn)定性的矛盾 應(yīng)用權(quán)值動(dòng)量輔助調(diào)整權(quán)值三、針對(duì)以往一個(gè)bp網(wǎng)絡(luò)不能太多層 先逐個(gè)逐個(gè)隱含層進(jìn)行無(wú)監(jiān)督訓(xùn)練(實(shí)際還是用bp),即調(diào)用saesetup.m以及saetrain.m。 然后得到各個(gè)隱含層的參數(shù)才對(duì)完整的網(wǎng)絡(luò)進(jìn)行有監(jiān)督訓(xùn)練。test_example_SAE.m一、訓(xùn)練隱含層(例中為單個(gè)隱含層) 1.調(diào)用saesetup設(shè)置網(wǎng)絡(luò)參數(shù)( 結(jié)構(gòu)為784 100的兩層網(wǎng)絡(luò)) 2.在第1步基礎(chǔ)上修改網(wǎng)絡(luò)參數(shù)(這里是修改

3、第一組的 激活函數(shù)類(lèi)型、學(xué)習(xí)率、輸入加噪率、訓(xùn)練迭代次數(shù)、batchsize) 3.調(diào)用saetrain,讓它對(duì)各個(gè)隱含層進(jìn)行逐層訓(xùn)練(例子中給的隱含層數(shù)為1層,100個(gè)節(jié)點(diǎn),輸入輸出同是train_x。每次進(jìn)行nntrain來(lái)訓(xùn)練隱含層都為三層網(wǎng)絡(luò),輸入層和輸出層一樣) 4.對(duì)第一組權(quán)值進(jìn)行可視化,看看學(xué)習(xí)結(jié)果。(由于例中的網(wǎng)絡(luò)只有一個(gè)100節(jié)點(diǎn)隱含層,故可視化為一張100個(gè)特征塊圖片。第一組權(quán)值W1用于編碼,第二組W2用于解碼)二、初始化網(wǎng)絡(luò)(為第三步初始化) 1.調(diào)用nnsetup,設(shè)置整個(gè)網(wǎng)絡(luò)(結(jié)構(gòu)是784 100 10) 2.設(shè)置網(wǎng)絡(luò)的激活函數(shù)和學(xué)習(xí)率 3.第一步中,把用于編碼的W(

4、實(shí)際包括閾值b和權(quán)值W)賦給此網(wǎng)絡(luò)。三、訓(xùn)練前向網(wǎng)絡(luò)1. 設(shè)置訓(xùn)練次數(shù)、batchsize。2.調(diào)用nntrain訓(xùn)練整個(gè)網(wǎng)絡(luò)(此時(shí)因期望輸出是train_y,為有監(jiān)督的訓(xùn)練)3.調(diào)用nntest測(cè)試整個(gè)網(wǎng)絡(luò)saesetup.m這里sae.setup中的輸入是784 100,令architecture=784 10 784 ,調(diào)用nnsetup進(jìn)行網(wǎng)絡(luò)參數(shù)設(shè)置。xhxW1b1W1b1saetrain.m逐個(gè)隱含層逐個(gè)隱含層進(jìn)行nntrain(sae.aei, x, x, opts)訓(xùn)練更新sae.aei參數(shù),其實(shí)就是更新sae.aei.W1、sae.aei.W2實(shí)驗(yàn)中,這里的i=1,因而就是得

5、到sae.ae1.W1、sae.ae1.W2,而最后只取用sae.ae1.W1784+1100+1784+1+1這里a1=train_xa2=sigm(nn.a1 * nn.W1),作為訓(xùn)練第二個(gè)隱含層的輸入,但是這里只有一個(gè)隱含層,所以a2在這里并沒(méi)用a1a2若是需要訓(xùn)練兩個(gè)隱含層,那么這里的a2則作為下個(gè)三層網(wǎng)絡(luò)的輸入以及輸出a1a2閾值Bnnsetup.mnn.size = architecture; %要設(shè)置的各層節(jié)點(diǎn)結(jié)構(gòu),如784 100 784 nn.n = numel(nn.size); %層數(shù),當(dāng)784 100 784,則為3 nn.activation_function =

6、tanh_opt; %激活函數(shù),或稱(chēng)傳遞函數(shù)nn.learningRate = 2; %學(xué)習(xí)率,或稱(chēng)步長(zhǎng),就是決定每次梯度下降的長(zhǎng)度nn.momentum = 0.5; % 權(quán)值動(dòng)量nn.scaling_learningRate = 1; %在nntrain中出現(xiàn),是每代間,學(xué)習(xí)率的關(guān)系倍數(shù)nn.weightPenaltyL2 = 0; %權(quán)值懲罰(L2正則化),在nnapplygrads中用到nn.nonSparsityPenalty = 0; %稀疏懲罰項(xiàng),在nnbp中用到。nn.sparsityTarget = 0.05; %稀疏目標(biāo),在nnbp中用到。nn.inputZeroMaske

7、dFraction = 0; %用于加噪nn.dropoutFraction = 0; %每一次mini-batch樣本輸入訓(xùn)練時(shí),隨機(jī)扔掉0%的隱含層節(jié)點(diǎn)nn.testing = 0; %設(shè)置此時(shí)網(wǎng)絡(luò)有無(wú)測(cè)試nn.output = sigm; %輸出接什么函數(shù),還有softmax and linear以下i 為從第 2 到最后一層 nn.n nn.Wi - 1 隨機(jī)給出網(wǎng)絡(luò)權(quán)值初始值nn.vWi - 1 讓它初值=0 %用于更新參數(shù)時(shí)的臨時(shí)參數(shù)nn.pi 讓它初值=0 稀疏nntrain(這里無(wú)驗(yàn)證數(shù)據(jù)輸入)大循環(huán)逐numepochs(訓(xùn)練代數(shù))小循環(huán)逐numbatches(每代的樣本批次,

8、每批樣本100個(gè),它們共同決定更新一次權(quán)值。不同代的同個(gè)批次中的樣本不會(huì)相同,因?yàn)楸浑S機(jī)打亂了。)1 故有numepochs* numbatches次執(zhí)行下列(這么多次更新權(quán)值)判斷inputZeroMaskedFraction,看看是否要加噪,是的話(huà),按此比例隨機(jī)把輸入值清零。 nn = nnff(nn, batch_x, batch_y);%前向網(wǎng)絡(luò) nn = nnbp(nn); % 反向傳播網(wǎng)絡(luò)nn = nnapplygrads(nn); %梯度下降L(n)=nn.L;%保存每次訓(xùn)練的誤差,總共訓(xùn)練了10*600次,故有6000個(gè)誤差2 每代更新?lián)p失值和學(xué)習(xí)率loss = nneval(

9、nn, loss, train_x, train_y);%誤差值 nn.learningRate = nn.learningRate * nn.scaling_learningRate;%調(diào)整改變下一次訓(xùn)練的學(xué)習(xí)率nntrain.mxhyW2b2W1b1結(jié)果得到每層的激活值,一、輸入層a1=ones(m,1) x,這里m=size(x,1)=100二、隱含層(這里只考慮s函數(shù))從第2到第n-1層,ai = sigm(nn.ai - 1 * nn.Wi - 1);dropoutFraction用在訓(xùn)練隱含層中,隨機(jī)將激活值按比例清零(為了讓權(quán)值不起作用)dropoutFraction用在測(cè)試中,

10、將激活值nn.ai = nn.ai.*(1 - nn.dropoutFraction)if(nn.nonSparsityPenalty0)% 在nnbp中用到 nn.pi = 0.99 * nn.pi + 0.01 * mean(nn.ai, 1);三、輸出層1。當(dāng)輸出不接softmax時(shí) nn.an = sigm(nn.an - 1 * nn.Wn - 1);2。當(dāng)輸出接分類(lèi)器softmax時(shí)(此次實(shí)驗(yàn)沒(méi)用到它) 得到誤差值e=y-an當(dāng)輸出不接softmax時(shí),平均誤差平方為L(zhǎng) = sum(sum(1/2 * nn.e . 2) / m;nnff.m為了得到n-1組dW,用于調(diào)節(jié)n-1個(gè)W

11、。在求dW過(guò)程中用到了中間變量 di,d_act一、求di 1.輸出層的dn當(dāng) nn.output=sigm時(shí),dn = - nn.e .* (nn.an .* (1 - nn.an); (即1/2 *nn.e2的復(fù)合函數(shù)求導(dǎo),其中變量是nn.an) 2.隱含層的diif(nn.nonSparsityPenalty0) pi = repmat(nn.pi, size(nn.ai, 1), 1); sparsityError = zeros(size(nn.ai,1),1) nn.nonSparsityPenalty * (-nn.sparsityTarget ./ pi + (1 - nn.s

12、parsityTarget) ./ (1 - pi);if i+1=n % 倒數(shù)第二層,即最后一個(gè)隱含層 di = (di + 1 * nn.Wi + sparsityError) .* d_act; % d_act = nn.ai .* (1 - nn.ai);else %此外 di = (di + 1(:,2:end) * nn.Wi + sparsityError) .* d_act; if(nn.dropoutFraction0)% nn.dropOutMaski在nnff中已求得,必須與它相同 di = di .* ones(size(di,1),1) nn.dropOutMaski

13、;(清零)二、求dWiif i+1=n nn.dWi = (di + 1 * nn.ai) / size(di + 1, 1); else nn.dWi = (di + 1(:,2:end) * nn.ai) / size(di + 1, 1); (以往的bp網(wǎng)絡(luò),W=-*de/dw,這里多了稀疏項(xiàng),以及Dropout 的處理,在下一步的nnapplygrads中還多了權(quán)值懲罰以及權(quán)值動(dòng)量)nnbp.m nnapplygrads.m梯度下降法計(jì)算作為更新值的nn.W。當(dāng)當(dāng)設(shè)置nn.weightPenaltyL20,則 dW = nn.dWi + nn.weightPenaltyL2 * zer

14、os(size(nn.Wi,1),1) nn.Wi(:,2:end);當(dāng)當(dāng)設(shè)置nn.weightPenaltyL2=0,則dW = nn.dWi再再讓dW乘以學(xué)習(xí)率(或稱(chēng) 步長(zhǎng))如果如果權(quán)值動(dòng)量momentum0,則 nn.vWi = nn.momentum*nn.vWi + dW; dW = nn.vWi;最后最后nn.Wi = nn.Wi - dW;1。懲罰項(xiàng)方法是一種間接修剪網(wǎng)絡(luò)的辦法,其原理是在傳統(tǒng)的誤差函數(shù)中加入一衡量網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜程度的“復(fù)雜度項(xiàng)”。應(yīng)用到權(quán)值更新規(guī)則后,該項(xiàng)在訓(xùn)練過(guò)程中起到防止權(quán)值增長(zhǎng)太大和驅(qū)使不重要權(quán)值逐漸減小到零的作用防止權(quán)值增長(zhǎng)太大和驅(qū)使不重要權(quán)值逐漸減小到零的作用。盡管那些接近零的連接權(quán)沒(méi)有從網(wǎng)絡(luò)中被刪除。但它們對(duì)網(wǎng)絡(luò)輸出幾乎沒(méi)有影響,已相當(dāng)于從網(wǎng)絡(luò)中被刪除了。這樣一來(lái),訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)實(shí)際上已是被修剪過(guò)的小網(wǎng)絡(luò)了??梢?jiàn),懲罰項(xiàng)法在沒(méi)有破壞網(wǎng)絡(luò)結(jié)構(gòu)的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論