摘要:是一個(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
摘要:本報(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 和 ...
摘要:下圖總結(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í)別、自然語言處理、物體檢測的...
摘要:陳建平說訓(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í)的支持,并簡化了工程師、...
閱讀 2234·2021-11-22 15:29
閱讀 4114·2021-11-04 16:13
閱讀 1000·2019-08-29 16:58
閱讀 346·2019-08-29 16:08
閱讀 1467·2019-08-23 17:56
閱讀 2393·2019-08-23 17:06
閱讀 3171·2019-08-23 16:55
閱讀 2067·2019-08-23 16:22