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

熱線電話:13121318867

登錄
首頁大數(shù)據(jù)時(shí)代正則化---提高深度學(xué)習(xí)模型的泛化能力
正則化---提高深度學(xué)習(xí)模型的泛化能力
2020-07-23
收藏

前面文章小編簡單給大家介紹了泛化能力的一些基礎(chǔ)知識(shí),今天給大家?guī)淼氖翘岣吣P?a href='/map/fanhuanengli/' style='color:#000;font-size:inherit;'>泛化能力的方法--正則化。

一、首先來回顧一下什么是泛化能力

泛化能力(generalization ability),百科給出的定義是:機(jī)器學(xué)習(xí)算法對新鮮樣本的適應(yīng)能力。學(xué)習(xí)的目的是學(xué)到隱含在數(shù)據(jù)對背后的規(guī)律,對具有同一規(guī)律的學(xué)習(xí)集以外的數(shù)據(jù),經(jīng)過訓(xùn)練的網(wǎng)絡(luò)也能給出合適的輸出,該能力稱為泛化能力。簡單來概括一下,泛化能力就是一個(gè)機(jī)器學(xué)習(xí)算法能夠識(shí)別沒有見過的樣本的能力,通俗點(diǎn)說就是學(xué)以致用,舉一反三的能力。機(jī)器學(xué)習(xí)方法訓(xùn)練出一個(gè)模型,我們會(huì)希望這個(gè)模型不但是對于已知的數(shù)據(jù)(訓(xùn)練集)性能表現(xiàn)良好,而且對于未知的數(shù)據(jù)(測試集)也能夠表現(xiàn)良好,這就表明這個(gè)模型具有良好的泛化能力。在實(shí)際應(yīng)用子中,模型的過擬合(overfitting)與欠擬合(underfitting)能夠最直觀的體現(xiàn)出泛化能力的好壞。

根據(jù)泛化能力強(qiáng)弱,可以分為:

欠擬合:模型不能在訓(xùn)練集上獲得足夠低的誤差;

擬合:測試誤差與訓(xùn)練誤差差距較小;

過擬合:訓(xùn)練誤差和測試誤差之間的差距太大;

不收斂:模型不是根據(jù)訓(xùn)練集訓(xùn)練得到的。

二、簡單介紹正則化

正則化regularization的目標(biāo)為:模型的經(jīng)驗(yàn)風(fēng)險(xiǎn)和模型復(fù)雜度之和達(dá)到最小,即結(jié)構(gòu)風(fēng)險(xiǎn)達(dá)到最小。也就是正則化的目的是為了防止過擬合, 從而增強(qiáng)泛化能力。

我們通常將正則化定義為:對學(xué)習(xí)算法的修改,目的是減少泛化誤差而不是訓(xùn)練誤差

在訓(xùn)練次數(shù)足夠多,以及表達(dá)形式足夠復(fù)雜的情況下,訓(xùn)練誤差能夠無限小,可是這并不代表著泛化誤差的減小。相反的,一般情況下,這樣會(huì)導(dǎo)致泛化誤差的增大。最常見的例子是:真實(shí)數(shù)據(jù)的分布符合二次函數(shù),但是欠擬合一般會(huì)將模型擬合成一次函數(shù),而過擬合通常將模型擬合成高次函數(shù)。根據(jù)奧卡姆剃須原則:在盡可能符合數(shù)據(jù)原始分布的基礎(chǔ)上,更加平滑、簡單的模型,往往更加符合數(shù)據(jù)的真實(shí)特征。所以,我們必須采用采用某種約束,這也就引出了的正則化。

三、正則化---提高模型的泛化能力

按策略正則化可以分為以下三類:

(一) 經(jīng)驗(yàn)正則化:利用工程上的技巧,實(shí)現(xiàn)更低的泛化誤差,例如:提前終止法、模型集成、Dropout等;

1.提前終止(earlystop)

一種最簡單的正則化方法,在泛化誤差指標(biāo)不再提升后,提前結(jié)束訓(xùn)練

2.模型集成(ensemable))

通過訓(xùn)練多個(gè)模型來完成該任務(wù),這些模型可以是不同的網(wǎng)絡(luò)結(jié)構(gòu),不同的初始化方法,不同的數(shù)據(jù)集訓(xùn)練出來的,也可以是采用不同的測試圖片處理方法。總結(jié)來說就是,利用多個(gè)模型進(jìn)行投票的策略

3.Dropout移除一部分神經(jīng)元

Dropout采用的是"綜合起來取平均”的策略,來防止過擬合問題。不同的網(wǎng)絡(luò)會(huì)產(chǎn)生不同的過擬合問題,取平均會(huì)讓一些“相反的”擬合有互相抵消的可能,整個(gè)Dropout過程就相當(dāng)于 對很多個(gè)不同的神經(jīng)網(wǎng)絡(luò)取平均。而且因?yàn)閐ropout程序?qū)е聝蓚€(gè)神經(jīng)元不一定每次都在一個(gè)dropout網(wǎng)絡(luò)中出現(xiàn),這樣會(huì)減少神經(jīng)元之間復(fù)雜的共適應(yīng)關(guān)系

(二)參數(shù)正則化:直接提供正則化約束,例如:L1/L2正則化法等;

L1/L2正則化方法,就是最常用的正則化方法,它直接來自于傳統(tǒng)的機(jī)器學(xué)習(xí)。

L1正則化:

L2正則化:

(三)隱式正則化:不直接提供約束,例如:數(shù)據(jù)有關(guān)的操作,包括歸一化、數(shù)據(jù)增強(qiáng)、擾亂標(biāo)簽等。

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

若不方便掃碼,搜微信號(hào):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)的第一個(gè)參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(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){ //倒計(jì)時(shí)完成 $(".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); }