成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Matlab編程之——卷積神經(jīng)網(wǎng)絡(luò)CNN代碼解析

senntyou / 2876人閱讀

摘要:是一個(gè)深度學(xué)習(xí)包,里面含有很多機(jī)器學(xué)習(xí)算法,如卷積神經(jīng)網(wǎng)絡(luò),深度信念網(wǎng)絡(luò),自動(dòng)編碼堆棧,卷積的作者是。對(duì)于每個(gè)卷積輸出,表示該層的一個(gè)輸出,所對(duì)應(yīng)的所有卷積核,包含的神經(jīng)元的總數(shù)。

deepLearnToolbox-master是一個(gè)深度學(xué)習(xí)matlab包,里面含有很多機(jī)器學(xué)習(xí)算法,如卷積神經(jīng)網(wǎng)絡(luò)CNN,深度信念網(wǎng)絡(luò)DBN,自動(dòng)編碼AutoEncoder(堆棧SAE,卷積CAE)的作者是 RasmusBerg Palm。

今天給介紹deepLearnToolbox-master中的CNN部分。

DeepLearnToolbox-master中CNN內(nèi)的函數(shù):

調(diào)用關(guān)系為:

該模型使用了mnist的數(shù)字mnist_uint8.mat作為訓(xùn)練樣本,作為cnn的一個(gè)使用樣例,每個(gè)樣本特征為一個(gè)28*28=的向量。

網(wǎng)絡(luò)結(jié)構(gòu)為:

讓我們來分析各個(gè)函數(shù):

一、Test_example_CNN

三、cnntrain.m.

四、cnnff.m.

五、cnnbp.m.

五、cnnapplygrads.m.

六、cnntest.m.

?

一、Test_example_CNN:

1設(shè)置CNN的基本參數(shù)規(guī)格,如卷積、降采樣層的數(shù)量,卷積核的大小、降采樣的降幅

2 cnnsetup函數(shù) 初始化卷積核、偏置等

3 cnntrain函數(shù) 訓(xùn)練cnn,把訓(xùn)練數(shù)據(jù)分成batch,然后調(diào)用

3.1 ?cnnff 完成訓(xùn)練的前向過程,

3.2 ?cnnbp計(jì)算并傳遞神經(jīng)網(wǎng)絡(luò)的error,并計(jì)算梯度(權(quán)重的修改量)

3.3 ?cnnapplygrads 把計(jì)算出來的梯度加到原始模型上去

4 cnntest函數(shù),測試當(dāng)前模型的準(zhǔn)確率

該模型采用的數(shù)據(jù)為mnist_uint8.mat,

含有70000個(gè)手寫數(shù)字樣本其中60000作為訓(xùn)練樣本,10000作為測試樣本。

把數(shù)據(jù)轉(zhuǎn)成相應(yīng)的格式,并歸一化。

二、Cnnsetup.m

該函數(shù)你用于初始化CNN的參數(shù)。

設(shè)置各層的mapsize大小,

初始化卷積層的卷積核、bias

尾部單層感知機(jī)的參數(shù)設(shè)置

bias統(tǒng)一設(shè)置為0

權(quán)重設(shè)置為:-1~1之間的隨機(jī)數(shù)/sqrt(6/(輸入神經(jīng)元數(shù)量+輸出神經(jīng)元數(shù)量))

對(duì)于卷積核權(quán)重,輸入輸出為fan_in, fan_out

fan_out= net.layers{l}.outputmaps * net.layers{l}.kernelsize ^ 2;

%卷積核初始化,1層卷積為1*6個(gè)卷積核,2層卷積一共6*12=72個(gè)卷積核。對(duì)于每個(gè)卷積輸出featuremap,?

%fan_in= 表示該層的一個(gè)輸出map,所對(duì)應(yīng)的所有卷積核,包含的神經(jīng)元的總數(shù)。1*25,6*25

fan_in =numInputmaps * net.layers{l}.kernelsize ^ 2;

fin=1*25 ? ? ?or ? 6*25

fout=1*6*25 ? ?or ? 6*12*25

net.layers{l}.k{i}{j} =(rand(net.layers{l}.kernelsize) - 0.5) * 2 * sqrt(6 / (fan_in + fan_out));

1、卷積降采樣的參數(shù)初始化

2、尾部單層感知機(jī)的參數(shù)(權(quán)重和偏量)設(shè)置:

三、cnntrain.m

該函數(shù)用于訓(xùn)練CNN。

生成隨機(jī)序列,每次選取一個(gè)batch(50)個(gè)樣本進(jìn)行訓(xùn)練。

批訓(xùn)練:計(jì)算50個(gè)隨機(jī)樣本的梯度,求和之后一次性更新到模型權(quán)重中。

在批訓(xùn)練過程中調(diào)用:

Cnnff.m 完成前向過程

Cnnbp.m 完成誤差傳導(dǎo)和梯度計(jì)算過程

Cnnapplygrads.m把計(jì)算出來的梯度加到原始模型上去

四、cnnff.m

3、尾部單層感知機(jī)的數(shù)據(jù)處理,需要把subFeatureMap2連接成為一個(gè)(4*4)*12=192的向量,但是由于采用了50樣本批訓(xùn)練的方法,subFeatureMap2被拼合成為一個(gè)192*50的特征向量fv;

Fv作為單層感知機(jī)的輸入,全連接的方式得到輸出層

五、cnnbp.m

該函數(shù)實(shí)現(xiàn)2部分功能,計(jì)算并傳遞誤差,計(jì)算梯度

3、把單層感知機(jī)的輸入層featureVector的誤差矩陣,恢復(fù)為subFeatureMap2的4*4二維矩陣形式

插播一張圖片:

4、誤差在特征提取網(wǎng)絡(luò)【卷積降采樣層】的傳播

如果本層是卷積層,它的誤差是從后一層(降采樣層)傳過來,誤差傳播實(shí)際上是用降采樣的反向過程,也就是降采樣層的誤差復(fù)制為2*2=4份。卷積層的輸入是經(jīng)過sigmoid處理的,所以,從降采樣層擴(kuò)充來的誤差要經(jīng)過sigmoid求導(dǎo)處理。

如果本層是降采樣層,他的誤差是從后一層(卷積層)傳過來,誤差傳播實(shí)際是用卷積的反向過程,也就是卷積層的誤差,反卷積(卷積核轉(zhuǎn)180度)卷積層的誤差,原理參看插圖。

5、計(jì)算特征抽取層和尾部單層感知機(jī)的梯度

五、cnnapplygrads.m

該函數(shù)完成權(quán)重修改,更新模型的功能

1更新特征抽取層的權(quán)重 weight+bias

2 更新末尾單層感知機(jī)的權(quán)重 weight+bias

六、cnntest.m

驗(yàn)證測試樣本的準(zhǔn)確率

歡迎加入本站公開興趣群

商業(yè)智能與數(shù)據(jù)分析群

興趣范圍包括各種讓數(shù)據(jù)產(chǎn)生價(jià)值的辦法,實(shí)際應(yīng)用案例分享與討論,分析工具,ETL工具,數(shù)據(jù)倉庫,數(shù)據(jù)挖掘工具,報(bào)表系統(tǒng)等全方位知識(shí)

QQ群:81035754

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/4403.html

相關(guān)文章

  • 初學(xué)者怎么選擇神經(jīng)網(wǎng)絡(luò)環(huán)境?對(duì)比MATLAB、Torch和TensorFlow

    摘要:本報(bào)告面向的讀者是想要進(jìn)入機(jī)器學(xué)習(xí)領(lǐng)域的學(xué)生和正在尋找新框架的專家。其輸入需要重塑為包含個(gè)元素的一維向量以滿足神經(jīng)網(wǎng)絡(luò)。卷積神經(jīng)網(wǎng)絡(luò)目前代表著用于圖像分類任務(wù)的較先進(jìn)算法,并構(gòu)成了深度學(xué)習(xí)中的主要架構(gòu)。 初學(xué)者在學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的時(shí)候往往會(huì)有不知道從何處入手的困難,甚至可能不知道選擇什么工具入手才合適。近日,來自意大利的四位研究者發(fā)布了一篇題為《神經(jīng)網(wǎng)絡(luò)初學(xué)者:在 MATLAB、Torch 和 ...

    yunhao 評(píng)論0 收藏0
  • 最新Github上各DL框架Star數(shù)量大PK

    摘要:下圖總結(jié)了絕大多數(shù)上的開源深度學(xué)習(xí)框架項(xiàng)目,根據(jù)項(xiàng)目在的數(shù)量來評(píng)級(jí),數(shù)據(jù)采集于年月初。然而,近期宣布將轉(zhuǎn)向作為其推薦深度學(xué)習(xí)框架因?yàn)樗С忠苿?dòng)設(shè)備開發(fā)。該框架可以出色完成圖像識(shí)別,欺詐檢測和自然語言處理任務(wù)。 很多神經(jīng)網(wǎng)絡(luò)框架已開源多年,支持機(jī)器學(xué)習(xí)和人工智能的專有解決方案也有很多。多年以來,開發(fā)人員在Github上發(fā)布了一系列的可以支持圖像、手寫字、視頻、語音識(shí)別、自然語言處理、物體檢測的...

    oogh 評(píng)論0 收藏0
  • MATLAB更新R2017b:轉(zhuǎn)換CUDA代碼極大提升推斷速度

    摘要:陳建平說訓(xùn)練是十分重要的,尤其是對(duì)關(guān)注算法本身的研究者。代碼生成其實(shí)在中也十分簡單,陳建平不僅利用車道線識(shí)別模型向我們演示了如何使用生成高效的代碼,同時(shí)還展示了在脫離環(huán)境下運(yùn)行代碼進(jìn)行推斷的效果。 近日,Mathworks 推出了包含 MATLAB 和 Simulink 產(chǎn)品系列的 Release 2017b(R2017b),該版本大大加強(qiáng)了 MATLAB 對(duì)深度學(xué)習(xí)的支持,并簡化了工程師、...

    Corwien 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<