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

熱線電話:13121318867

登錄
首頁大數(shù)據(jù)時代卷積神經(jīng)網(wǎng)絡(luò)中歸一化層的作用?
卷積神經(jīng)網(wǎng)絡(luò)中歸一化層的作用?
2023-04-11
收藏

卷積神經(jīng)網(wǎng)絡(luò) (Convolutional Neural Network, CNN) 是一種深度學(xué)習(xí)模型,常用于計算機(jī)視覺任務(wù)。除了常見的卷積層、池化層和全連接層,CNN 中還有一個重要的組件就是歸一化層 (Normalization Layer)。在本文中,我們將介紹歸一化層的作用以及其在 CNN 中的應(yīng)用。

歸一化層的作用是對網(wǎng)絡(luò)的輸入或某一層的輸出進(jìn)行標(biāo)準(zhǔn)化處理,使得數(shù)據(jù)分布更加平穩(wěn),有利于網(wǎng)絡(luò)訓(xùn)練的穩(wěn)定性和泛化能力。通俗來說,就是將輸入數(shù)據(jù)盡量映射到均值為0、方差為1的標(biāo)準(zhǔn)正態(tài)分布上,以便于后續(xù)層的學(xué)習(xí)。具體地,歸一化層可以分為以下兩種類型:

  1. 批歸一化層 (Batch Normalization, BN)

批歸一化是由 Ioffe 和 Szegedy 在 2015 年提出的方法,它是目前最常用的歸一化方法之一。批歸一化層的輸入數(shù)據(jù)是一個 batch 的樣本,即一個 batch 內(nèi)的所有樣本共同完成標(biāo)準(zhǔn)化處理。具體地,假設(shè) $x$ 是一個 batch 內(nèi)的輸入數(shù)據(jù),$mu_B$ 和 $sigma_B^2$ 分別是這個 batch 的均值和方差,則批歸一化的計算公式如下:

$$hat{x}=frac{x-mu_B}{sqrt{sigma_B^2+epsilon}}$$

其中 $epsilon$ 是一個小常數(shù),以防止分母為零。在標(biāo)準(zhǔn)化之后,我們還需要將數(shù)據(jù)映射回原來的分布,即通過一個可學(xué)習(xí)的縮放參數(shù) $gamma$ 和平移參數(shù) $beta$ 來實現(xiàn):

$$y=gamma hat{x} + beta$$

可以看出,批歸一化層中,除了均值和方差外,還有兩個可學(xué)習(xí)的參數(shù) $gamma$ 和 $beta$,它們的作用是恢復(fù)網(wǎng)絡(luò)的表達(dá)能力。

批歸一化的優(yōu)點在于可以增加模型的泛化性,減少過擬合風(fēng)險;同時也能夠加速訓(xùn)練過程并提高模型的收斂速度。但是,在某些情況下,批歸一化可能會對模型的表現(xiàn)產(chǎn)生負(fù)面影響。例如,當(dāng) batch size 很小時,估計出的均值和方差可能存在較大偏差,導(dǎo)致模型性能下降;此外,批歸一化的計算量比較大,因此在嵌入式設(shè)備等資源受限的場景中可能不太適用。

  1. 組歸一化層 (Group Normalization, GN)

組歸一化是在批歸一化的基礎(chǔ)上提出的方法,它將樣本分為若干個 group,并針對每個 group 進(jìn)行標(biāo)準(zhǔn)化處理。假設(shè)輸入數(shù)據(jù) $x$ 的 batch size 為 $N$,通道數(shù)為 $C$,則可以將其分為 $G$ 個 group,每個 group 包含 $C/G$ 個通道。組歸一化的計算公式如下:

$$hat{x}{n,c}=frac{x{n,c}-mu_g}{sqrt{sigma_g^2+epsilon}}$$

其中 $mu_g$ 和 $sigma_g^2$ 分別表示 $g$ 組中所有通道在某個位置 $(n,h,w)$ 上的均值和方差,即:

$$mu_g=frac{1}{NHW}sum_{n=1}^{N}sum_{h=1}^{H}sum_{w=1}^{

W}sum_{c in G} x_{n,c,h,w}$$

$$sigma_g^2=frac{1}{NHW}sum_{n=1}^{N}sum_{h=1}^{H}sum_{w=1}^{W}sum_{c in G}(x_{n,c,h,w}-mu_g)^2$$

與批歸一化不同,組歸一化的均值和方差是在每個 group 內(nèi)計算的,因此不受 batch size 影響,可以適用于小批量訓(xùn)練。此外,由于沒有 BN 中需要跨樣本計算的均值和方差,組歸一化的計算量相對較小,適合于大規(guī)模數(shù)據(jù)集和高分辨率圖像處理。

除了批歸一化和組歸一化,還有其他類型的歸一化方法,例如層歸一化 (Layer Normalization)、實例歸一化 (Instance Normalization) 等等。這些方法在具體場景下可能會更優(yōu)秀,但是我們不在本文中進(jìn)行細(xì)節(jié)介紹。

總之,歸一化層是卷積神經(jīng)網(wǎng)絡(luò)中一個非常重要的組件,它可以提高網(wǎng)絡(luò)的穩(wěn)定性和泛化能力。在實際應(yīng)用中,我們可以根據(jù)具體情況選擇不同的歸一化方法,并結(jié)合其他技巧如學(xué)習(xí)率調(diào)整、正則化等來提高模型效果。

數(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(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(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ù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時表示是新驗證碼的宕機(jī) 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); }