99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀剖析手寫數(shù)字識別器LeNet-5認識卷積網(wǎng)絡(luò)
剖析手寫數(shù)字識別器LeNet-5認識卷積網(wǎng)絡(luò)
2018-08-07
收藏

剖析手寫數(shù)字識別器LeNet-5認識卷積網(wǎng)絡(luò)

關(guān)于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的文章網(wǎng)上非常多,也有很多大牛們講得生動形象,令人十分佩服,也給我的學習帶來了很大的幫助,但是關(guān)于LeNet-5的具體剖析感覺還沒有一篇博文講得很清楚,本著菜鳥服務(wù)菜鳥的精神,寫一個通過詳細介紹LeNet-5手寫識別器的過程來認識卷積網(wǎng)絡(luò)。

CNN的核心思想無非三種:

1、局部感受野:每個神經(jīng)元感受局部圖像區(qū)域;

2、權(quán)值共享:同一個濾波器下,每個神經(jīng)元權(quán)值參數(shù)是一樣的;

3、時間或空間亞采樣:模糊圖像,帶來更好的泛化性能。

其實理解CNN的方法有很多種,比如一個Map是28*28,讓它去卷積上一層的Map,怎么看呢?可以看作是28*28個神經(jīng)元走一次(因為“局部感受野”和“權(quán)值共享”嘛)。所以,可以把一個Map叫做一個濾波器,也可以把一個神經(jīng)元叫做濾波器。

下面介紹這次博文的主題,典型的用來識別數(shù)字的卷積網(wǎng)絡(luò)LeNet-5。當年美國大多數(shù)銀行就是用它來識別支票上面的手寫數(shù)字的。能夠達到這種商用的地步,它的準確性可想而知。上圖。

由圖知輸入的圖像是32*32格式的。

第一步,C1層,也就是卷積層的第一層。一共有6個Map,每個Map分辨率是28*28,每個神經(jīng)元的分辨率則是(32-28+1)*(32-28+1)=5*5,我們可以把這個神經(jīng)元看作一個濾波器,而這就是局部感受野,因為一個濾波器只感受5*5的風景。又因為權(quán)值共享,同Map下所有的神經(jīng)元感受的特征都是一樣的,所以這整個Map都只能算一個濾波器。每個Map算一個濾波器,每個濾波器有(5*5+1)個參數(shù),28*28個神經(jīng)元是重復(fù)被6個濾波器使用的,每個神經(jīng)元一共有(5*5+1)*6=156個參數(shù),這里要注意一點,這里是6個濾波器卷一個Map,所以有6個偏置。假如6個濾波器卷兩個Map呢?還是只有6個偏置,因為被卷的Map不論數(shù)量只算一個偏置。一共有156*(28*28)=122304個連接。

第二步,S2層,下采樣層,模糊圖像,提高泛化性。6個Map,每個Map14*14,size=2*2,卷積層有重疊,而采樣層無重疊,所以每個Map=上一層Map分辨率28*28/size 2*2=14*14。采樣層參數(shù)計算方法和卷積層也不一樣,每個濾波器有可訓練參數(shù)和可訓練偏置兩個參數(shù),所以一共有2*6=12個參數(shù)。而采樣層又是特殊的卷積層,只不過是卷積核為2*2(pool size),所以連接數(shù)計算方法不變,一共有(2*2+1)*14*14*6=5880個連接。

第三部,C3層,卷積層。16個Map,每個Map有10*10個神經(jīng)元,每個神經(jīng)元分辨率為(14-10+1)*(14-10+1)=5*5,前6個Map卷S2中3個相鄰Map,接下來6個Map卷S2中4個相鄰Map,接下來3個卷S2中4個不相鄰Map,最后一個卷S2中所有Map。一共有6*(3*5*5+1)+6*(4*5*5+1)+3*(4*5*5+1)+1*(6*5*5+1)=1516個參數(shù),一共有1516*10*10=151600個連接。

第四層,S4層,下采樣層,16個Map,每個Map有5*5個神經(jīng)元,pool size=2*2。有32個參數(shù),有(2*2+1)*5*5*16=2000個連接。

第五層,C5層,卷積層。有120個Map,每個神經(jīng)元與S4的16個Map的5*5相連,所以C5的Map為(5-5+1)*(5-5+1)=1*1個神經(jīng)元。一共有120*(16*5*5+1)=48120個參數(shù),有1*1*48120個連接。

第六層,F(xiàn)6層,全連接層,84個Map,一共有84*121=10164個參數(shù)。


數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }