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

熱線電話(huà):13121318867

登錄
首頁(yè)精彩閱讀機(jī)器學(xué)習(xí)算法和超參數(shù)選擇藝術(shù)
機(jī)器學(xué)習(xí)算法和超參數(shù)選擇藝術(shù)
2020-03-06
收藏
作者 | Mischa Lisovyi & Rosaria Silipo
編譯 | CDA數(shù)據(jù)科學(xué)研究院

從智能手機(jī)到航天器,機(jī)器學(xué)習(xí)算法無(wú)處不在。他們會(huì)告訴您明天的天氣預(yù)報(bào),將一種語(yǔ)言翻譯成另一種語(yǔ)言,并建議您接下來(lái)想在Netflix上看什么電視連續(xù)劇。

這些算法會(huì)根據(jù)數(shù)據(jù)自動(dòng)調(diào)整(學(xué)習(xí))其內(nèi)部參數(shù)。但是,有一部分參數(shù)是無(wú)法學(xué)習(xí)的,必須由專(zhuān)家進(jìn)行配置。這些參數(shù)通常被稱(chēng)為“超參數(shù)”,隨著AI的使用增加,它們對(duì)我們的生活產(chǎn)生重大影響。

例如,決策樹(shù)模型中的樹(shù)深度和人工神經(jīng)網(wǎng)絡(luò)中的層數(shù)是典型的超參數(shù)。模型的性能在很大程度上取決于其超參數(shù)的選擇。對(duì)于中等深度的樹(shù),決策樹(shù)可能會(huì)產(chǎn)生良好的結(jié)果,而對(duì)于非常深的樹(shù),決策樹(shù)的性能將很差。

如果我們要手動(dòng)運(yùn)行,最佳超參數(shù)的選擇比藝術(shù)更是藝術(shù)。實(shí)際上,超參數(shù)值的最佳選擇取決于當(dāng)前的問(wèn)題。

由于算法,目標(biāo),數(shù)據(jù)類(lèi)型和數(shù)據(jù)量從一個(gè)項(xiàng)目到另一個(gè)項(xiàng)目都發(fā)生了很大變化,因此沒(méi)有適合所有模型和所有問(wèn)題的超參數(shù)值的最佳選擇。相反,必須在每個(gè)機(jī)器學(xué)習(xí)項(xiàng)目的上下文中優(yōu)化超參數(shù)。

在本文中,我們將從回顧優(yōu)化策略的功能開(kāi)始,然后概述四種常用的優(yōu)化策略:

? 網(wǎng)格搜索

? 隨機(jī)搜尋

? 爬山

? 貝葉斯優(yōu)化

優(yōu)化策略

即使有專(zhuān)家深入的領(lǐng)域知識(shí),手動(dòng)優(yōu)化模型超參數(shù)的任務(wù)也可能非常耗時(shí)。另一種方法是讓專(zhuān)家離開(kāi),并采用自動(dòng)方法。根據(jù)某種性能指標(biāo)來(lái)檢測(cè)給定項(xiàng)目中給定模型的最佳超參數(shù)集的自動(dòng)過(guò)程稱(chēng)為優(yōu)化策略。

典型的優(yōu)化過(guò)程定義了可能的超參數(shù)集以及針對(duì)該特定問(wèn)題要最大化或最小化的度量。因此,實(shí)際上,任何優(yōu)化過(guò)程都遵循以下經(jīng)典步驟:

? 1)將手頭的數(shù)據(jù)分為訓(xùn)練和測(cè)試子集

? 2)重復(fù)優(yōu)化循環(huán)固定次數(shù)或直到滿(mǎn)足條件:

o a)選擇一組新的模型超參數(shù)

o b)使用選定的超參數(shù)集在訓(xùn)練子集上訓(xùn)練模型

o c)將模型應(yīng)用于測(cè)試子集并生成相應(yīng)的預(yù)測(cè)

o d)使用針對(duì)當(dāng)前問(wèn)題的適當(dāng)評(píng)分標(biāo)準(zhǔn)(例如準(zhǔn)確性或平均絕對(duì)誤差)評(píng)估測(cè)試預(yù)測(cè)。存儲(chǔ)與選定的超參數(shù)集相對(duì)應(yīng)的度量標(biāo)準(zhǔn)值

? 3)比較所有度量值,然后選擇產(chǎn)生最佳度量值的超參數(shù)集

問(wèn)題是如何從步驟2d返回到步驟2a,以進(jìn)行下一次迭代。也就是說(shuō),如何選擇下一組超參數(shù),確保它實(shí)際上比上一組更好。我們希望優(yōu)化循環(huán)朝著合理的解決方案發(fā)展,即使它可能不是最佳解決方案。換句話(huà)說(shuō),我們要合理確定下一組超參數(shù)是對(duì)上一組的改進(jìn)。

典型的優(yōu)化過(guò)程將機(jī)器學(xué)習(xí)模型視為黑匣子。這意味著在每個(gè)選定的超參數(shù)集的每次迭代中,我們感興趣的只是由選定指標(biāo)測(cè)量的模型性能。我們不需要(想要)知道黑匣子內(nèi)部發(fā)生了什么魔術(shù)。我們只需要轉(zhuǎn)到下一個(gè)迭代并迭代下一個(gè)性能評(píng)估,依此類(lèi)推。

所有不同優(yōu)化策略中的關(guān)鍵因素是如何根據(jù)步驟2d中先前的度量標(biāo)準(zhǔn)輸出,在步驟2a中選擇下一組超參數(shù)值。因此,對(duì)于一個(gè)簡(jiǎn)化的實(shí)驗(yàn),我們省略了對(duì)黑盒的訓(xùn)練和測(cè)試,我們專(zhuān)注于度量計(jì)算(數(shù)學(xué)函數(shù))和選擇下一組超參數(shù)的策略。此外,我們用任意數(shù)學(xué)函數(shù)替換了度量計(jì)算,并用函數(shù)參數(shù)替換了一組模型超參數(shù)。

通過(guò)這種方式,優(yōu)化循環(huán)運(yùn)行得更快,并盡可能保持通用。進(jìn)一步的簡(jiǎn)化是使用僅具有一個(gè)超參數(shù)的函數(shù),以實(shí)現(xiàn)簡(jiǎn)單的可視化。下面是我們用來(lái)演示四種優(yōu)化策略的函數(shù)。我們想強(qiáng)調(diào)的是,任何其他數(shù)學(xué)函數(shù)也可以起作用。

f(x)= sin(x / 2)+0.5?sin(2?x)+0.25?cos(4.5?x)

這種簡(jiǎn)化的設(shè)置使我們可以在一個(gè)簡(jiǎn)單的xy圖上可視化一個(gè)超參數(shù)的實(shí)驗(yàn)值和相應(yīng)的函數(shù)值。在x軸上是超參數(shù)值,在y軸上是函數(shù)輸出。然后,根據(jù)描述超參數(shù)序列生成中的點(diǎn)位置的白紅色漸變對(duì)(x,y)點(diǎn)進(jìn)行著色。

白點(diǎn)對(duì)應(yīng)于該過(guò)程中較早生成的超參數(shù)值。紅點(diǎn)對(duì)應(yīng)于此過(guò)程中稍后生成的超參數(shù)值。此漸變著色將在以后用于說(shuō)明優(yōu)化策略之間的差異時(shí)很有用。

在這種簡(jiǎn)化的用例中,優(yōu)化過(guò)程的目標(biāo)是找到一個(gè)使函數(shù)值最大化的超參數(shù)。

讓我們開(kāi)始回顧四種常見(jiàn)的優(yōu)化策略,這些策略用于為優(yōu)化循環(huán)的下一次迭代標(biāo)識(shí)新的超參數(shù)值集。

網(wǎng)格搜索

這是基本的蠻力策略。如果您不知道嘗試使用哪些值,則可以全部嘗試。功能評(píng)估中使用固定步長(zhǎng)范圍內(nèi)的所有可能值。

例如,如果范圍為[0,10],步長(zhǎng)為0.1,那么我們將獲得超參數(shù)值的序列(0、0.1、0.2、0.3,…9.5、9.6、9.7、9.8、9.9、10) 。在網(wǎng)格搜索策略中,我們?yōu)檫@些超參數(shù)值的每一個(gè)計(jì)算函數(shù)輸出。因此,網(wǎng)格越細(xì),我們?cè)浇咏顑?yōu)值,但是所需的計(jì)算資源也就越高。

圖1:使用步驟0.1在[0,10]范圍內(nèi)對(duì)超參數(shù)值進(jìn)行網(wǎng)格搜索。顏色梯度反映了在生成的超參數(shù)候選序列中的位置。白點(diǎn)對(duì)應(yīng)于過(guò)程中較早生成的超參數(shù)值。紅點(diǎn)對(duì)應(yīng)于稍后生成的超參數(shù)值。如圖1所示,從小到大掃描超參數(shù)的范圍。

網(wǎng)格搜索策略在單個(gè)參數(shù)的情況下可以很好地工作,但是當(dāng)必須同時(shí)優(yōu)化多個(gè)參數(shù)時(shí),它的效率將非常低下。

隨機(jī)搜尋

對(duì)于隨機(jī)搜索 策略,顧名思義,超參數(shù)的值是隨機(jī)選擇的。在多個(gè)超參數(shù)的情況下,通常首選此策略,并且當(dāng)某些超參數(shù)對(duì)最終指標(biāo)的影響大于其他參數(shù)時(shí),此策略特別有效。

同樣,在[0,10]范圍內(nèi)生成超參數(shù)值。然后,隨機(jī)生成固定數(shù)量的超參數(shù)。可以使用固定數(shù)量的預(yù)定義超參數(shù)進(jìn)行試驗(yàn),您可以控制此優(yōu)化策略的持續(xù)時(shí)間和速度。N越大,達(dá)到最佳狀態(tài)的可能性越高,但是所需的計(jì)算資源也就越高。

圖2:在[0,10]范圍內(nèi)隨機(jī)搜索超參數(shù)值。顏色梯度反映了在生成的超參數(shù)候選序列中的位置。白點(diǎn)對(duì)應(yīng)于過(guò)程中較早生成的超參數(shù)值。紅點(diǎn)對(duì)應(yīng)于稍后生成的超參數(shù)值。不出所料,來(lái)自生成序列的超參數(shù)值沒(méi)有降序或升序使用:白色和紅色點(diǎn)在圖中隨機(jī)混合。

梯度

梯度,在每次迭代的方式選擇在超參數(shù)空間選擇下一個(gè)超參數(shù)值的最佳方向。如果沒(méi)有鄰居改善最終指標(biāo),則優(yōu)化循環(huán)將停止。

請(qǐng)注意,此過(guò)程在一個(gè)重要方面與網(wǎng)格搜索和隨機(jī)搜索不同:選擇下一個(gè)超參數(shù)值時(shí)要考慮先前迭代的結(jié)果。

圖3:在[0,10]范圍內(nèi)對(duì)超參數(shù)值進(jìn)行梯度搜索。顏色梯度反映了在生成的超參數(shù)候選序列中的位置。白點(diǎn)對(duì)應(yīng)于過(guò)程中較早生成的超參數(shù)值。紅點(diǎn)對(duì)應(yīng)于稍后生成的超參數(shù)值。圖3顯示了應(yīng)用于我們函數(shù)的爬坡策略從一個(gè)隨機(jī)的超參數(shù)值x = 8.4開(kāi)始,然后在x = 6.9時(shí)朝函數(shù)最大值y = 0.4移動(dòng)。一旦達(dá)到最大值,就不會(huì)在下一個(gè)鄰居中看到度量值的進(jìn)一步增加,并且搜索過(guò)程將停止。

此示例說(shuō)明了與此策略有關(guān)的警告:它可能陷入次要最大值。從其他圖中可以看出,全局最大值位于x = 4.0處,對(duì)應(yīng)的度量值為1.6。該策略找不到全局最大值,但陷入局部最大值。此方法的一個(gè)很好的經(jīng)驗(yàn)法則是以不同的起始值多次運(yùn)行它,并檢查算法是否收斂到相同的最大值。

貝葉斯優(yōu)化

該貝葉斯優(yōu)化戰(zhàn)略選擇基于以前的迭代,類(lèi)似于爬山策略的功能輸出的下一個(gè)超參數(shù)值。與爬山不同,貝葉斯優(yōu)化會(huì)全局查看過(guò)去的迭代,而不僅僅是最后一次。

此過(guò)程通常分為兩個(gè)階段:

? 在稱(chēng)為預(yù)熱的第一階段中,將隨機(jī)生成超參數(shù)值。在用戶(hù)定義的數(shù)量N個(gè)此類(lèi)超參數(shù)的隨機(jī)生成之后,第二階段開(kāi)始。

? 在第二階段中,在每次迭代中,都會(huì)估計(jì)類(lèi)型為P(輸出|過(guò)去超參數(shù))的“替代”模型,以描述輸出值在過(guò)去迭代中對(duì)超參數(shù)值的條件概率。該替代模型比原始函數(shù)更容易優(yōu)化。因此,該算法優(yōu)化了替代,并建議將替代模型的最大值處的超參數(shù)值也作為原始函數(shù)的最佳值。第二階段的一小部分迭代還用于探測(cè)最佳區(qū)域之外的區(qū)域。這是為了避免局部最大值的問(wèn)題。

圖4:[0,10]范圍內(nèi)超參數(shù)值的貝葉斯優(yōu)化。顏色梯度反映了在生成的超參數(shù)候選序列中的位置。白點(diǎn)對(duì)應(yīng)于過(guò)程中較早生成的超參數(shù)值。紅點(diǎn)對(duì)應(yīng)于稍后生成的超參數(shù)值?;尹c(diǎn)在策略的第一個(gè)隨機(jī)階段中生成。圖4證明了貝葉斯優(yōu)化策略使用預(yù)熱階段來(lái)定義最有希望的區(qū)域,然后為該區(qū)域中的超參數(shù)選擇下一個(gè)值。

您還可以看到,密集的紅色點(diǎn)聚集在更接近最大值的位置,而淡紅色和白色的點(diǎn)則分散了。這表明,第二階段的每次迭代都會(huì)改善最佳區(qū)域的定義。

摘要

我們都知道訓(xùn)練機(jī)器學(xué)習(xí)模型時(shí)超參數(shù)優(yōu)化的重要性。由于手動(dòng)優(yōu)化非常耗時(shí)并且需要特定的專(zhuān)家知識(shí),因此我們探索了四種常見(jiàn)的超參數(shù)優(yōu)化自動(dòng)過(guò)程。

通常,自動(dòng)優(yōu)化過(guò)程遵循迭代過(guò)程,在該過(guò)程中,每次迭代時(shí),都會(huì)在一組新的超參數(shù)上訓(xùn)練模型,并在測(cè)試集上進(jìn)行評(píng)估。最后,將與最佳度量得分相對(duì)應(yīng)的超參數(shù)集選擇為最佳集。問(wèn)題是如何選擇下一組超參數(shù),以確保它實(shí)際上比上一組更好。

我們概述了四種常用的優(yōu)化策略:網(wǎng)格搜索,隨機(jī)搜索,梯度和貝葉斯優(yōu)化。它們都各有利弊,我們通過(guò)說(shuō)明它們?cè)诤?jiǎn)單玩具用例中的工作方式來(lái)簡(jiǎn)要解釋了它們之間的差異?,F(xiàn)在,您都可以嘗試在現(xiàn)實(shí)世界中的機(jī)器學(xué)習(xí)問(wèn)題中進(jìn)行嘗試。

數(shù)據(jù)分析咨詢(xún)請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

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

OK
客服在線
立即咨詢(xún)
客服在線
立即咨詢(xún)
') } 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)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶(hù)后臺(tái)檢測(cè)極驗(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ù)說(shuō)明請(qǐng)參見(jiàn):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 = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+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); }