Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国产一区二区影院,亚洲国产成人久久一区久久,成人久久18免费网

          整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          外貿(mào)人必收的6大類郵箱工具!手把手教你高效給客戶發(fā)郵

          外貿(mào)人必收的6大類郵箱工具!手把手教你高效給客戶發(fā)郵件

          貿(mào)人常常有個困惑,發(fā)出去的郵件為啥沒反應(yīng)?

          到底是客戶沒收到郵件?還是收到了沒看?還是看了沒回?


          又或者,我們拿到的這個郵箱地址本來就有問題?


          以后再也不用在網(wǎng)上瘋狂搜索攻略和工具了,我這里一次性給你整理好,收藏就對了,全網(wǎng)最全!



          01

          黑名單查詢


          如果自己家郵箱進(jìn)了黑名單,那真得就不能怪客戶沒反應(yīng)了,所以定期自查非常有必要。



          MXToolbox


          https://mxtoolbox.com/SuperTool.aspx?action=blacklist


          MX tool box 是一個功能強大的檢測工具,很多人在用,它可以通過解析輸入的域名/IP地址/主機名來識別是否在黑名單中。

          當(dāng)然,其功能的全面性不僅僅局限在域名的黑歷史檢測方面,不過我們最關(guān)注的就是精心撰寫的郵件能不能順利送達(dá)對方郵箱,所以,這里主要介紹它核查黑名單的功能。

          打開頁面,在blacklist check欄,輸入我的IP地址,點擊表格右側(cè)的blacklist,在一眾的綠色OK前面,有一個紅色的listed。

          被錄入了!咋回事?

          這個SORBS SPAM是由GFI等公司贊助及發(fā)起的RBL組織,他們提供了一個DUHL(SORBS Dynamic User and Host List)的DUL列表。

          因為國內(nèi)大多數(shù)都是寬帶包月的情況,電信服務(wù)商并未提供固定IP地址,以及沒有更改WHOIS信息,造成了不少IP地址段都被列入SORBS的黑名單中。

          當(dāng)使用這些IP地址進(jìn)行郵件發(fā)送時,如果對方服務(wù)器使用了DUL,那么會得到類似于“452 XXX.XXX.XXX.XXX RBL filtered by dul.dnsbl.sorbs.net”的信息。

          真是不看不知道,有點冤,要怎么移出這個黑名單呢?

          官方網(wǎng)站提供了移除DUHL的條件。

          “The MX record of a domain needs to contain a host name that maps to the IP address involved. The Time to Live of the MX record needs to be at least 43200 seconds.(域名的MX記錄包含一個主機名并指向IP地址。MX記錄的存在時間至少需要43200秒)

          The A record for the host name needs to have a TTL of at least 43200 seconds.(該域名A記錄的TTL至少需要43200秒)

          The reverse DNS PTR record for the IP address involved needs to map back to the name given in the MX record, and to have a TTL of at least 43200 seconds.(IP地址的反向解析記錄必須指向所給出的MX記錄,且TTL至少需要43200秒)”

          好的,根據(jù)以上的條件做好你的DNS記錄更改(如何更改請自行搜索解決,不展開),然后嘗試一下申訴。

          以下為申訴流程:

          打開網(wǎng)頁:

          http://www.au.sorbs.net/lookup.shtml


          在輸入欄內(nèi)輸入IP地址,方便起見我們選擇Search all listing types,輸入驗證碼之后,我們點擊Check Entry進(jìn)行查詢。


          因為SORBS一般將某個網(wǎng)段的地址都列入黑名單,申訴的成功機會不是很大,我們還可以訪問http://dnsbl.sorbs.net/提交一份申訴郵件,內(nèi)容盡量誠懇,但是可能要一個月的時間才可能等來回復(fù)。

          而且,它是個出了名的釘子戶,不太容易成功。不過有棗沒棗,先打兩桿子試試。



          SPAMHAUS


          https://check.spamhaus.org/

          這也是國內(nèi)郵箱非常容易踩到的坑,安全起見,我們需要通過它定期檢驗下郵箱地址或域名是否在黑名單中。

          為什么這么說呢?

          因為SPAMHAUS是目前世界上影響最大的反垃圾郵件組織。被業(yè)內(nèi)尊為影響最大的RBL(實時黑名單列表)服務(wù)提供商。

          影響力有多大呢?只要被它列入黑名單,那我們的郵件服務(wù)器就算是廢了,因為全球80%以上的服務(wù)器都會拒收里面郵件服務(wù)器發(fā)出的郵件。

          他們提供四種類型XBL,SBL,PBL,CBL。國內(nèi)有很多IP被列為了SPAMHAUS這幾類PBL當(dāng)中。

          如果不幸被列入,也是可以申訴的,而且申訴的成功率不低。

          點擊紅字下方的超鏈接,轉(zhuǎn)到申訴頁面,申請撤銷你的IP地址,單擊remove an IP from XXX(XXX為所在的黑名單類型),注意提示“turn on smtp authentication”,請復(fù)查你的郵件服務(wù)器中繼和權(quán)限是否設(shè)置好。


          輸入請求釋放的郵件服務(wù)器IP地址,接收確認(rèn)信的電子郵件地址(一定要能正常收取郵件)及驗證碼,國家信息以及驗證碼。

          注意查收上述填入的email郵箱,大約5分鐘內(nèi)會收到一封來自spamhaus的確認(rèn)信,找到其中的確認(rèn)碼,填入后,即可等待解禁。spamhaus提示大約30分鐘左右。一般情況下等待15分鐘左右即可。

          從spamhaus黑名單中釋放后,并非一勞永逸,如果你的郵件服務(wù)器因保護(hù)不周,被用來大量發(fā)送垃圾郵件,或者你的郵件服務(wù)器公網(wǎng)地址段充斥著垃圾郵件服務(wù)器,那么還可能被再次列入spamhaus黑名單,所以,要定期檢查,并注意排除被收錄的因素。

          但總體來說,這個黑名單比上面那個SORBS SPAM容易申訴多了。

          其他可以檢查黑名單的網(wǎng)站大同小異,這里不再展開:

          • http://cbl.abuseat.org/lookup.cgi
          • http://rbls.org/




          02

          通訊錄管理工具



          removebounce


          https://removebounce.com/


          這是一個垃圾郵箱、無效郵箱的自動檢查、清除工具,如果你的通訊錄龐大到超過一定數(shù)量或剛剛獲取到一個幾百甚至上千數(shù)量級的買家名單,可以考慮使用這個管理工具。


          注冊成功后有50個免費驗證額度,階梯付費功能,5美金可以驗證1500個,驗證結(jié)果顯示為unkown的不收費。






          03

          郵箱有效性驗證工具



          emailable


          https://emailable.com/


          這個驗證工具的原理是通過連接郵件服務(wù)器,檢查郵箱是否存在。注冊成功后有250個免費額度,超過后需要付費。


          此外它還提供升級功能,包括防止郵件退回或被拉黑名單,自動同步郵件狀態(tài)監(jiān)控數(shù)據(jù),黑名單監(jiān)控和檢測等打包升級功能,當(dāng)然,價格也更貴。



          不過還有其他很多驗證郵箱的工具,功能大同小異,一個免費額度用完以后可以換下一個注冊使用,看個人喜好挑選。


          • https://verify-email.org/
          • https://www.verifyemailaddress.org/
          • http://mailtester.com/
          • https://hunter.io/email-verifier


          04

          郵件內(nèi)容完善工具


          郵件模板大全


          https://goodemailcopy.com/

          一個外貿(mào)新手必備的郵件模板工具,它能提供各大知名企業(yè)的各種類型的郵件模板供你參考。

          提供按主題搜索功能,跟進(jìn),確認(rèn),通知,產(chǎn)品更新,價格調(diào)整,致歉等主題內(nèi)容一應(yīng)俱全。

          在沒有形成自己的表達(dá)風(fēng)格以前,外貿(mào)人可以多看看這些大企業(yè)的現(xiàn)成郵件模板,模仿下地道又簡練的表達(dá),有的甚至可以拿過來簡單改改,輕松實現(xiàn)與客戶的高效溝通。

          這里再提供一個免費獲取郵件模板的思路,到國外英語母語國家的商業(yè)網(wǎng)站,或者服務(wù)提供商發(fā)意向詢盤,記得留下郵件地址。如果他們認(rèn)為你是質(zhì)量不錯的潛在客戶,將不斷給你發(fā)跟進(jìn)郵件試圖轉(zhuǎn)化你。

          此時,他們發(fā)來的郵件的結(jié)構(gòu),話術(shù),表達(dá)思路甚至逼單技巧都是我們可以參考的,有時候把產(chǎn)品信息代入,其他不改,就是一封地道的開發(fā)信。


          臨時郵箱


          http://mail.bccto.me/

          當(dāng)我們想要注冊網(wǎng)站獲取上述工具的免費額度,又不想暴露自己真實郵箱的時候,這個就非常好用。

          還有就是收到買家發(fā)的詢盤帶附件拿不準(zhǔn)的時候,也可以用臨時郵箱有效規(guī)避風(fēng)險。

          這種用來短暫接收郵件的臨時郵箱,也稱為一次性郵箱,按時效可以選10分鐘、24小時郵箱。

          還有獲取一次性接收驗證碼的手機號的工具,這里不展開,有需要的自己想辦法。


          郵件簽名美化工具


          https://www.hubspot.com/email-signature-generator

          一個好的郵件簽名可以更全面地展示自己,讓客戶對你的專業(yè)和細(xì)致留下好感。銷售在與客戶接觸的初期,第一印象非常重要,所以不要忽略這些細(xì)枝末節(jié)的信息。

          如果咱們公司沒有對郵件簽名有統(tǒng)一的設(shè)計或要求,這里可以找到你喜歡的郵件簽名,各種模板任君挑選。


          05

          郵件追蹤工具


          didtheyreadit


          http://www.didtheyreadit.com

          當(dāng)我們排除了黑名單的限制,優(yōu)化了郵件內(nèi)容,接下來就是監(jiān)測和追蹤?quán)]件的狀態(tài)了。

          這些工具不需要科學(xué)上網(wǎng)即可打開。根據(jù)流程下載注冊后,系統(tǒng)會自動通知你的郵件何時被打開,其打開時間多久,在哪里打開的(地理位置)。

          每個月可免費追蹤10封以內(nèi)的郵件,超過了就需要付費了,有需要的可以去看看網(wǎng)站的報價,不想花錢也可以繼續(xù)往下看,換一個工具。


          免費額度用完后,不想花錢咱就再換一個,市場上競品很多,功能大同小異,輪流薅它們的羊毛吧:


          • https://whoreadme.com/
          • https://readnotify.com/
          • https://www.getnotify.com/
          • http://www.ifread.com
          • http://www.wasmyemailread.com



          06

          郵件監(jiān)控工具



          mailcharts


          https://www.mailcharts.com.


          這是一款監(jiān)控并扒光競爭對手的郵件營銷策略工具,可以監(jiān)控目標(biāo)品牌的郵件內(nèi)容,可以查看競爭對手郵件的發(fā)送時間、內(nèi)容、源文件,并提供下載和轉(zhuǎn)發(fā)功能。



          Mailcharts 提供免費版本,免費版本可以同時跟蹤3個公司,可以查看免費郵件模版。但無法查看郵件的具體效果報告,無法查看Email Journeys。收費版本可以說還是比較貴的,初級版本是/月。


          還提供各種主題的幾千個郵件模板,可免費下載。


          如果你的產(chǎn)品對C端也做營銷,這是一個不能錯過的好工具。




          雖然社媒軟件已經(jīng)非常普及了,但在獲取到客戶的各種聯(lián)系信息之后,開發(fā)信依然是外貿(mào)業(yè)務(wù)不可或缺的破冰工具,希望大家能充分利用上述這些工具,提高開發(fā)效率,周周開單!

          rrayList 對象是包含單個數(shù)據(jù)值的項目的集合。


          ArrayList DropDownList

          ArrayList RadioButtonList


          創(chuàng)建 ArrayList

          ArrayList 對象是包含單個數(shù)據(jù)值的項目的集合。

          通過 Add() 方法向 ArrayList 添加項目。

          下面的代碼創(chuàng)建了一個名為 mycountries 的 ArrayList 對象,并添加了四個項目:

          <script runat="server">

          Sub Page_Load

          if Not Page.IsPostBack then

          dim mycountries=New ArrayList

          mycountries.Add("Norway")

          mycountries.Add("Sweden")

          mycountries.Add("France")

          mycountries.Add("Italy")

          end if

          end sub

          </script>

          在默認(rèn)情況下,一個 ArrayList 對象包含 16 個條目??赏ㄟ^ TrimToSize() 方法把 ArrayList 調(diào)整為最終尺寸:

          <script runat="server">

          Sub Page_Load

          if Not Page.IsPostBack then

          dim mycountries=New ArrayList

          mycountries.Add("Norway")

          mycountries.Add("Sweden")

          mycountries.Add("France")

          mycountries.Add("Italy")

          mycountries.TrimToSize()

          end if

          end sub

          </script>

          通過 Sort() 方法,ArrayList 也能夠按照字母順序或者數(shù)字順序進(jìn)行排序:

          <script runat="server">

          Sub Page_Load

          if Not Page.IsPostBack then

          dim mycountries=New ArrayList

          mycountries.Add("Norway")

          mycountries.Add("Sweden")

          mycountries.Add("France")

          mycountries.Add("Italy")

          mycountries.TrimToSize()

          mycountries.Sort()

          end if

          end sub

          </script>

          要實現(xiàn)反向排序,請在 Sort() 方法后應(yīng)用 Reverse() 方法:

          <script runat="server">

          Sub Page_Load

          if Not Page.IsPostBack then

          dim mycountries=New ArrayList

          mycountries.Add("Norway")

          mycountries.Add("Sweden")

          mycountries.Add("France")

          mycountries.Add("Italy")

          mycountries.TrimToSize()

          mycountries.Sort()

          mycountries.Reverse()

          end if

          end sub

          </script>


          綁定數(shù)據(jù)到 ArrayList

          ArrayList 對象可為下列的控件自動生成文本和值:

          • asp:RadioButtonList

          • asp:CheckBoxList

          • asp:DropDownList

          • asp:Listbox

          為了綁定數(shù)據(jù)到 RadioButtonList 控件,首先要在 .aspx 頁面中創(chuàng)建一個 RadioButtonList 控件(不帶任何 asp:ListItem 元素):

          <html>

          <body>

          <form runat="server">

          <asp:RadioButtonList id="rb" runat="server" />

          </form>

          </body>

          </html>

          然后添加創(chuàng)建列表的腳本,并且綁定列表中的值到 RadioButtonList 控件:

          實例

          <script runat="server">

          Sub Page_Load

          if Not Page.IsPostBack then

          dim mycountries=New ArrayList

          mycountries.Add("Norway")

          mycountries.Add("Sweden")

          mycountries.Add("France")

          mycountries.Add("Italy")

          mycountries.TrimToSize()

          mycountries.Sort()

          rb.DataSource=mycountries

          rb.DataBind()

          end if

          end sub

          </script>

          <html>

          <body>

          <form runat="server">

          <asp:RadioButtonList id="rb" runat="server" />

          </form>

          </body>

          </html>

          演示實例 ?

          RadioButtonList 控件的 DataSource 屬性被設(shè)置為該 ArrayList,它定義了這個 RadioButtonList 控件的數(shù)據(jù)源。RadioButtonList 控件的 DataBind() 方法把 RadioButtonList 控件與數(shù)據(jù)源綁定在一起。

          注釋:數(shù)據(jù)值作為控件的 Text 和 Value 屬性來使用。如需添加不同于 Text 的 Value,請使用 Hashtable 對象或者 SortedList 對象。

          器之心專欄

          機器之心編輯部

          一文梳理騰訊 QQ 瀏覽器 2021AI 算法大賽冠軍方案。

          歷時兩個多月的騰訊 QQ 瀏覽器 2021AI 算法大賽 [9] 已經(jīng)告一段落,大賽自 2021 年 8 月 15 日啟動以來,受到了全球 AI 算法愛好者及業(yè)界的廣泛關(guān)注。整個賽程歷時 68 天,覆蓋全球 279 個城市,共吸引來自 276 個不同高校、企業(yè)和社會的算法精英 1853 人,組成 852 支隊伍參賽,其中進(jìn)入決賽的 TOP 20 隊伍就涵蓋了北京大學(xué)、清華大學(xué)、復(fù)旦大學(xué)、香港科技大學(xué)、中科院大學(xué)、華南理工大學(xué)、浙江大學(xué)、西安交大、中山大學(xué)、西安電子科技大學(xué)等頂尖院校,也有來自德國、加拿大等國際高校的學(xué)生,期間共完成了近 7000 次提交。

          騰訊 QQ 瀏覽器為優(yōu)秀參賽團隊提供價值共計 41.7 萬人民幣的總獎池,除此之外每個賽道前 15 名隊伍將會額外收獲校招直通復(fù)試卡,前 8 名隊伍可獲得 QQ 瀏覽器實習(xí)生直通終面卡。

          首屆 AI 算法大賽議題設(shè)置 “多模態(tài)視頻相似度” 和“自動超參數(shù)優(yōu)化”兩大賽道,以下為 “自動超參數(shù)優(yōu)化” 賽道冠軍團隊,來自北京大學(xué)的隊伍 PKU-DAIR 的方案分享。(PKU-DAIR 隊成員:姜淮鈞、沈彧、黎洋

          團隊介紹

          PKU-DAIR 團隊的三位成員來自北京大學(xué)崔斌教授 DAIR 實驗室的 AutoML 自動化機器學(xué)習(xí)項目組。團隊研究方向包括超參數(shù)優(yōu)化(HPO)、神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索(NAS)、自動化機器學(xué)習(xí)系統(tǒng)(AutoML System)等。團隊不僅在國際頂級會議上發(fā)表了多篇論文,為提高 AutoML 技術(shù)的易用性與可用性,團隊還相繼在 GitHub 開源了黑盒優(yōu)化系統(tǒng) OpenBox[1][7]、自動化機器學(xué)習(xí)系統(tǒng) MindWare[2][8]等。

          在本次自動化超參數(shù)優(yōu)化賽道中,團隊基于實驗室自研開源黑盒優(yōu)化系統(tǒng) OpenBox 進(jìn)行調(diào)參。初賽時使用 OpenBox 系統(tǒng)中的并行貝葉斯優(yōu)化(Bayesian optimization)算法,決賽在初賽基礎(chǔ)上加入早停機制。比賽代碼已在 Github 上開源[3]。下面將進(jìn)行詳細(xì)介紹。

          • Rank 1st 比賽代碼開源地址:https://github.com/PKU-DAIR/2021_AIAC_Task2_1st
          • 黑盒優(yōu)化系統(tǒng) OpenBox 地址:https://github.com/PKU-DAIR/open-box

          初賽算法介紹

          賽題理解

          在信息流推薦業(yè)務(wù)場景中普遍存在模型或策略效果依賴于 “超參數(shù)” 的問題,而“超參數(shù) " 的設(shè)定往往依賴人工經(jīng)驗調(diào)參,不僅效率低下維護(hù)成本高,而且難以實現(xiàn)更優(yōu)效果。因此,本次賽題以超參數(shù)優(yōu)化為主題,從真實業(yè)務(wù)場景問題出發(fā),并基于脫敏后的數(shù)據(jù)集來評測各個參賽隊伍的超參數(shù)優(yōu)化算法。

          參賽者需要提交超參數(shù)生成的算法代碼,算法每一輪需要提供一組超參數(shù),裁判程序會返回超參數(shù)對應(yīng)的 reward。參賽者的算法要求在限定的迭代輪次和時間內(nèi),找到 reward 盡可能大的一組超參數(shù),最終按照找到的最大 reward 來計算排名。

          針對該賽題,優(yōu)化器需要在每輪以同步并行方式推薦 5 個超參數(shù)配置,共執(zhí)行 20 輪推薦,即總共搜索 100 個超參數(shù)配置。對每個超參數(shù)配置均執(zhí)行完整資源的驗證,并且在比賽的問題抽象中,不同超參數(shù)的驗證時間相同。

          根據(jù)現(xiàn)有研究,貝葉斯優(yōu)化是超參數(shù)優(yōu)化(黑盒優(yōu)化)問題上 SOTA 的方法,而且比賽場景中的超參數(shù)空間維度不超過 6 維,并非超高維問題,較適合貝葉斯優(yōu)化方法,因此我們選定貝葉斯優(yōu)化作為初賽的搜索算法。另外,問題中所有的超參數(shù)均為連續(xù)型(離散浮點型)超參數(shù),這決定了我們的超參數(shù)空間定義方法、貝葉斯優(yōu)化代理模型以及優(yōu)化器的選擇,接下來也將分別進(jìn)行介紹。

          算法核心技術(shù)——貝葉斯優(yōu)化模塊介紹

          貝葉斯優(yōu)化簡介

          超參數(shù)優(yōu)化是典型的黑盒優(yōu)化問題,即對于目標(biāo)函數(shù)(超參數(shù) - 獎勵函數(shù)),具體表達(dá)式或?qū)?shù)信息是不可知的,只能通過嘗試輸入獲取輸出來推測目標(biāo)函數(shù)的內(nèi)部情況。

          貝葉斯優(yōu)化是解決黑盒優(yōu)化問題的一個迭代式框架,優(yōu)化流程包括如下步驟:

          1. 使用代理模型(surrogate model)對已有觀測歷史數(shù)據(jù)(嘗試過的超參數(shù)和對應(yīng)的獎勵)進(jìn)行建模擬合;
          2. 使用采集函數(shù)(acquisition function)評估搜索空間內(nèi)的超參數(shù),平衡探索與利用。對采集函數(shù)執(zhí)行優(yōu)化,找到驗證價值最大(使采集函數(shù)值最大)的下一組超參數(shù);
          3. 在目標(biāo)函數(shù)上評估超參數(shù),得到獎勵;
          4. 將新評估的超參數(shù)和結(jié)果加入觀測歷史數(shù)據(jù),重復(fù)以上步驟。

          注:以下代碼分為文字版和圖示版,代碼以圖示版為準(zhǔn)。

          貝葉斯優(yōu)化算法封裝在 OpenBox 系統(tǒng)中,代碼實現(xiàn)的主要流程如下:

          # 使用貝葉斯優(yōu)化得到超參數(shù)配置推薦
          def get_suggestions(self, history_container, batch_size):
              # ...
              # 基于觀測歷史數(shù)據(jù),訓(xùn)練貝葉斯優(yōu)化代理模型
              self.surrogate_model.train(X, Y)
              # ...
              # 更新采集函數(shù)(使用EI函數(shù)時,要更新當(dāng)前最優(yōu)觀測值)
              self.acquisition_function.update(eta=incumbent_value, ...)
              # 使用優(yōu)化器優(yōu)化采集函數(shù),得到使采集函數(shù)值最大的一個(一組)超參數(shù)
              challengers=self.optimizer.maximize(...)
              # ...
              return batch_configs_list  # 依據(jù)并行算法,得到下一輪需要驗證的超參數(shù)

          代碼以圖示為準(zhǔn)

          超參數(shù)空間定義

          首先,我們使用 ConfigSpace 庫 [4] 定義超參數(shù)空間。由于賽題中的超參數(shù)均為離散浮點型,并可近似為等間距分布,因此使用 Int 型定義超參數(shù)(本質(zhì)上和使用 Float 定義相同,但避免了賽題中超參數(shù)取值范圍邊緣可能出現(xiàn)不同間距的問題)。在 ConfigSpace 庫中,F(xiàn)loat 型和 Int 型超參數(shù)均被視作連續(xù)型,在執(zhí)行優(yōu)化時會自動將參數(shù)范圍縮放至[0, 1]。

          初始化方法

          貝葉斯優(yōu)化需要一定數(shù)量的歷史數(shù)據(jù)才能啟動,我們使用了一種貪心法生成初始超參數(shù)配置。該方法從隨機候選配置中,逐步挑選距離已有配置最遠(yuǎn)的配置加入初始配置集合。使用該方法進(jìn)行初始化能更好地探索超參數(shù)空間,經(jīng)測試效果稍好于完全隨機初始化方法。初始化配置數(shù)設(shè)置為 10 個。該方法集成在 OpenBox 系統(tǒng)中,可通過 init_strategy="random_explore_first" 調(diào)用。

          代理模型

          貝葉斯優(yōu)化中的代理模型(surrogate model)有多種選擇,包括高斯過程(Gaussian process)、概率隨機森林(probabilistic random forest)、Tree Parzen Estimator(TPE)等,其中高斯過程在連續(xù)超參數(shù)空間上(如數(shù)學(xué)問題)優(yōu)化效果較好,概率隨機森林在含有分類超參數(shù)的空間上優(yōu)化效果較好。本次比賽只包含連續(xù)型超參數(shù),經(jīng)測試,高斯過程作為代理模型效果最好。高斯過程使用 OpenBox 系統(tǒng)默認(rèn)的 Matern5/2 核,核超參數(shù)通過最大似然 (maximize log likelihood) 得到。

          采集函數(shù)與優(yōu)化

          我們使用常用的 Expected Improvement(EI)函數(shù)作為貝葉斯優(yōu)化的采集函數(shù)(acquisition function)。在優(yōu)化采集函數(shù)時,我們使用系統(tǒng)中的 "random_scipy" 優(yōu)化器。該優(yōu)化器在結(jié)合局部搜索與隨機采樣的基礎(chǔ)上,使用 L-BFGS-B 算法對采集函數(shù)執(zhí)行優(yōu)化。測試表明,相較于單純使用隨機采樣,該方法能對采集函數(shù)進(jìn)行更為充分的優(yōu)化,從而更大程度發(fā)揮 GP 模型和 EI 函數(shù)的潛能。

          其他

          傳統(tǒng)的貝葉斯優(yōu)化每輪只能推薦一個超參數(shù)配置,因此設(shè)計并行推薦方法是一個值得考慮的問題。我們嘗試了系統(tǒng)中實現(xiàn)的并行貝葉斯方法,包括 "median_imputation" 中位數(shù)插補法,即使用歷史觀察結(jié)果的中位數(shù),填補并行 batch 中推薦配置的性能,重新訓(xùn)練代理模型并得到下一個并行推薦配置,以及 "local_penalization" 局部懲罰法,對并行已推薦配置在采集函數(shù)上施加局部懲罰,這兩種方法的目的都是提高對超參數(shù)空間的探索性。不過經(jīng)過測試,在本次比賽問題上這些方法的效果不佳,最終我們采用多次優(yōu)化采集函數(shù)并去重的方式執(zhí)行并行推薦,達(dá)到了較好的性能。

          此外,為增大貝葉斯優(yōu)化的探索性,保證算法收斂,我們設(shè)置每次推薦時使用隨機搜索的概率為 0.1。

          代碼實現(xiàn)

          初賽代碼僅需調(diào)用 OpenBox 系統(tǒng)中的并行貝葉斯優(yōu)化器 SyncBatchAdvisor,即可實現(xiàn)上述功能:

          from openbox import SyncBatchAdvisor
          self.advisor=SyncBatchAdvisor(
              config_space=self.config_space,
              batch_size=5,
              batch_strategy='reoptimization',
              initial_trials=10,
              init_strategy='random_explore_first',
              rand_prob=0.1,
              surrogate_type='gp',
              acq_type='ei',
              acq_optimizer_type='random_scipy',
              task_id='thpo',
              random_state=47,
          )

          代碼以圖示為準(zhǔn)

          每輪執(zhí)行推薦時,調(diào)用 advisor 的 get_suggestions 接口:

          def suggest(self, suggestion_history, n_suggestions):
              history_container=self.parse_suggestion_history(suggestion_history)
              next_configs=self.advisor.get_suggestions(n_suggestions, history_container)
              next_suggestions=[self.convert_config_to_parameter(conf) for conf in next_configs]
              return next_suggestions

          代碼以圖示為準(zhǔn)

          決賽算法介紹

          賽題理解

          決賽問題在初賽的基礎(chǔ)上,對每個超參數(shù)配置提供 14 輪的多精度驗證結(jié)果,供算法提前對性能可能不佳的配置驗證過程執(zhí)行早停。同時,總體優(yōu)化預(yù)算時間減半,最多只能全量驗證 50 個超參數(shù)配置,因此問題難度大大增加。如何設(shè)計好的早停算法,如何利用多精度驗證數(shù)據(jù)是優(yōu)化器設(shè)計的關(guān)鍵。

          我們對本地公開的兩個數(shù)據(jù)集進(jìn)行了探索,發(fā)現(xiàn)了一些有趣的性質(zhì):

          • 對于任意超參數(shù)配置,其第 14 輪的獎勵均值位于前 13 輪置信區(qū)間內(nèi)的概率為 95%。
          • 對于任意超參數(shù)配置,其前 13 輪中任意一輪的均值比第 14 輪均值大的概率為 50%。
          • 對于任意超參數(shù)配置,其 14 輪的置信區(qū)間是不斷減小的,但均值曲線是任意波動的。

          我們也對兩兩超參數(shù)配置間的關(guān)系進(jìn)行了探索,比較了兩兩配置間前 13 輪的均值大小關(guān)系和第 14 輪的均值大小關(guān)系的一致性,發(fā)現(xiàn):

          • 在所有超參數(shù)配置之間,部分驗證(1-13 輪)和全量驗證(14 輪)均值大小關(guān)系一致的概率大于 95%。
          • 在空間中最終性能前 1% 的超參數(shù)配置之間,這種一致性大約在 50% 到 70% 之間。

          下圖為 data-30 空間中最終獎勵排名前 2 的超參數(shù)和隨機 8 個超參數(shù)的獎勵 - 輪次關(guān)系:

          圖:data-30 搜索空間中 2 個最好配置和 8 個隨機配置的獎勵 - 輪數(shù)曲線,包含置信上界(藍(lán)色)、均值(紅色)、置信下界(綠色)曲線。

          我們在比賽開源代碼倉庫中提供了上述 “數(shù)據(jù)探索” 代碼。

          上述數(shù)據(jù)探索結(jié)果表明,根據(jù)前 13 輪的置信區(qū)間,我們可以推測第 14 輪獎勵均值的位置。利用前 13 輪的均值大小關(guān)系,我們可以估計第 14 輪最終均值的大小關(guān)系,但是由于數(shù)據(jù)噪音的存在,排名靠前的超參數(shù)配置大小關(guān)系無法通過部分驗證結(jié)果預(yù)估。由此我們設(shè)計了兩種早停算法,分別是基于置信區(qū)間的早停和基于排名的早停,將在下一部分詳細(xì)描述。

          過于激進(jìn)的早停策略在比賽中仍然存在問題。如果使用貝葉斯優(yōu)化只對全量驗證數(shù)據(jù)建模,由于總體優(yōu)化預(yù)算時間很少,早停會減少可用于建模的數(shù)據(jù)量,使得模型不能得到充分訓(xùn)練。為解決這一問題,我們引入插值方法,增加模型可訓(xùn)練數(shù)據(jù)。

          基于以上考量,最終我們的決賽算法在初賽貝葉斯優(yōu)化算法的基礎(chǔ)上,前期執(zhí)行完整貝葉斯優(yōu)化使模型得到較為充分的擬合,后期使用早停技術(shù)與插值法,加速超參數(shù)驗證與搜索過程。下面將對早停模塊做詳細(xì)介紹。

          算法核心技術(shù)——早停模塊介紹

          早停方法

          由于超參數(shù)配置之間的部分驗證輪次均值大小關(guān)系與最終均值大小關(guān)系存在一定的相關(guān)性,我們受異步多階段早停算法 ASHA[5]的啟發(fā),設(shè)計了基于排名的早停算法:一個超參數(shù)如果到達(dá)需要判斷早停的輪次,就計算其性能均值處于歷史中同一輪次的超參數(shù)性能均值的排名,如果位于前 1/eta,則繼續(xù)驗證,否則執(zhí)行早停。

          依據(jù) 95% 置信區(qū)間的含義,我們還設(shè)計了另一種早停方法,即使用置信區(qū)間判斷當(dāng)前超參數(shù)配置是否仍有驗證價值。如果某一時刻,當(dāng)前驗證超參數(shù)的置信區(qū)間上界差于已完全驗證的性能前 10 名配置的均值,則代表至少有 95% 的可能其最終均值差于前 10 名的配置,故進(jìn)行早停。使用本地數(shù)據(jù)驗證,以空間中前 50 名的配置對前 1000 名的配置使用該方法進(jìn)行早停,早停準(zhǔn)確率在 99% 以上。

          經(jīng)過測試,結(jié)合貝葉斯優(yōu)化時兩種方法效果近似,我們最終選擇使用基于排名的早停方法。無論是哪種方法,都需要設(shè)計執(zhí)行早停的輪次。早停越早越激進(jìn),節(jié)省的驗證時間越多,但是得到的數(shù)據(jù)置信度越低,后續(xù)執(zhí)行插值時訓(xùn)練的模型就越不準(zhǔn)確。為了權(quán)衡早停帶來的時間收益和高精度驗證帶來的數(shù)據(jù)收益,我們選擇只在第 7 輪(總共 14 輪)時判斷每個配置是否應(yīng)當(dāng)早停。早停判斷準(zhǔn)則依據(jù) eta=2 的 ASHA 算法,即如果當(dāng)前配置均值性能處于已驗證配置第 7 輪的后 50%,就進(jìn)行早停。

          以下代碼展示了基于排名的早停方法。首先統(tǒng)計各個早停輪次下已驗證配置的性能并進(jìn)行排序(比賽中我們使用早停輪次為第 7 輪),然后判斷當(dāng)前配置是否處于前 1/eta(比賽中為前 1/2),否則執(zhí)行早停:

          # 基于排名的早停方法,prune_eta=2,prune_iters=[7]
          def prune_mean_rank(self, iteration_number, running_suggestions, suggestion_history):
              # 統(tǒng)計早停階段上已驗證配置的性能并排序
              bracket=dict()
              for n_iteration in self.hps['prune_iters']:
                  bracket[n_iteration]=list()
              for suggestion in running_suggestions + suggestion_history:
                  n_history=len(suggestion['reward'])
                  for n_iteration in self.hps['prune_iters']:
                      if n_history >=n_iteration:
                          bracket[n_iteration].append(suggestion['reward'][n_iteration - 1]['value'])
              for n_iteration in self.hps['prune_iters']:
                  bracket[n_iteration].sort(reverse=True)  # maximize
           
              # 依據(jù)當(dāng)前配置性能排名,決定是否早停
              stop_list=[False] * len(running_suggestions)
              for i, suggestion in enumerate(running_suggestions):
                  n_history=len(suggestion['reward'])
                  if n_history==CONFIDENCE_N_ITERATION:
                      # 當(dāng)前配置已完整驗證,無需早停
                      print('full observation. pass', i)
                      continue
                  if n_history not in self.hps['prune_iters']:
                      # 當(dāng)前配置不處于需要早停的階段
                      print('n_history: %d not in prune_iters: %s. pass %d.'
                            % (n_history, self.hps['prune_iters'], i))
                      continue
           
                  rank=bracket[n_history].index(suggestion['reward'][-1]['value'])
                  total_cnt=len(bracket[n_history])
                  # 判斷當(dāng)前配置性能是否處于前1/eta,否則早停
                  if rank / total_cnt >=1 / self.hps['prune_eta']:
                      print('n_history: %d, rank: %d/%d, eta: 1/%s. PRUNE %d!'
                            % (n_history, rank, total_cnt, self.hps['prune_eta'], i))
                      stop_list[i]=True
                  else:
                      print('n_history: %d, rank: %d/%d, eta: 1/%s. continue %d.'
                            % (n_history, rank, total_cnt, self.hps['prune_eta'], i))
              return stop_list

          代碼以圖示為準(zhǔn)

          基于置信區(qū)間的早停方法可見我們的比賽開源代碼庫。

          數(shù)據(jù)建模方法

          對于貝葉斯優(yōu)化的數(shù)據(jù)建模,我們嘗試了多精度集成代理模型 MFES-HB[6]擬合多精度觀測數(shù)據(jù)。該方法雖然能應(yīng)對低精度噪聲場景,但在決賽極其有限的優(yōu)化時間限制內(nèi),可能無法快速排除噪聲的干擾,導(dǎo)致效果不如僅使用最高精度數(shù)據(jù)建模。

          我們最終選擇只利用最高精度數(shù)據(jù)進(jìn)行建模。為了彌補早停造成的高精度數(shù)據(jù)損失,我們引入插值方法,增加用于模型訓(xùn)練的數(shù)據(jù)量,具體來說,就是對早停的配置,設(shè)置一個完整驗證時的性能均值,插入優(yōu)化歷史執(zhí)行建模。對于插入值的選取,我們使用已完整驗證配置的最終均值中位數(shù)進(jìn)行插值。

          以下為插值代碼示例:

          def set_impute_value(self, running_suggestions, suggestion_history):
              value_list=[]
              for suggestion in running_suggestions + suggestion_history:
                  n_history=len(suggestion['reward'])
                  if n_history !=CONFIDENCE_N_ITERATION:
                      continue
                  value_list.append(suggestion['reward'][-1]['value'])
              self.impute_value=np.median(value_list).item()


          代碼以圖示為準(zhǔn)

          總結(jié)

          本文介紹了自動化超參數(shù)優(yōu)化賽道的冠軍方案,包括貝葉斯優(yōu)化算法和早停方法。很幸運能夠拿到此次比賽的冠軍。感謝賽事主辦方為我們提供了富有現(xiàn)實意義的比賽場景,讓我們積累了寶貴的比賽經(jīng)驗和超參數(shù)優(yōu)化實際經(jīng)驗。希望我們的分享能夠?qū)Υ蠹矣兴鶐椭?/span>

          引用

          [1] 黑盒優(yōu)化系統(tǒng) OpenBox

          https://github.com/PKU-DAIR/open-box

          [2] 自動化機器學(xué)習(xí)系統(tǒng) MindWare

          https://github.com/PKU-DAIR/mindware

          [3] 比賽冠軍源碼

          https://github.com/PKU-DAIR/2021_AIAC_Task2_1st

          [4] https://github.com/automl/ConfigSpace

          [5] Liam Li, Kevin Jamieson, Afshin Rostamizadeh, Ekaterina Gonina, Jonathan Bentzur, Moritz Hardt, Benjamin Recht, and Ameet Talwalkar. 2020. A System for Massively Parallel Hyperparameter Tuning. Proceedings of Machine Learning and Systems 2 (2020), 230–246.

          [6] Yang Li, Yu Shen, Jiawei Jiang, Jinyang Gao, Ce Zhang, and Bin Cui. 2021. MFES-HB: Efficient Hyperband with Multi-Fidelity Quality Measurements. In Proceedings of the AAAI Conference on Artificial Intelligence, Vol. 35. 8491–8500.

          [7] Yang Li, Yu Shen, Wentao Zhang, Yuanwei Chen, Huaijun Jiang, Mingchao Liu, Jiawei Jiang, Jinyang Gao, Wentao Wu, Zhi Yang, Ce Zhang, and Bin Cui. 2021. OpenBox: A Generalized Black-box Optimization Service. Proceedings of the 27th ACM SIGKDD Conference on Knowledge Discovery & Data Mining (2021).

          [8] Yang Li, Yu Shen, Wentao Zhang, Jiawei Jiang, Bolin Ding, Yaliang Li, Jingren Zhou, Zhi Yang, Wentao Wu, Ce Zhang, and Bin Cui. 2021. VolcanoML: Speeding up End-to-End AutoML via Scalable Search Space Decomposition. Proceedings of VLDB Endowment 14 (2021), 2167–2176.

          [9]QQ 瀏覽器 2021AI 算法大賽

          https://algo.browser.qq.com/


          主站蜘蛛池模板: 国产乱码精品一区二区三区四川人 | 无码喷水一区二区浪潮AV | 一区二区三区AV高清免费波多| 亚洲综合国产一区二区三区| 精品无码人妻一区二区三区18| 成人日韩熟女高清视频一区| 欧洲精品码一区二区三区| 无码人妻一区二区三区免费手机| 精品一区二区三区免费| 国产成人高清视频一区二区| 精品欧美一区二区在线观看| 国产伦精品一区二区三区女| 国产精品无圣光一区二区| 中文字幕在线视频一区| 无码毛片一区二区三区视频免费播放| 国产伦精品一区二区三区不卡 | 久久精品成人一区二区三区| 精品国产一区二区三区无码| 亚洲国产精品综合一区在线| 一区二区免费视频| 97久久精品一区二区三区| 亚洲AV午夜福利精品一区二区| 国产av成人一区二区三区| 99久久精品国产免看国产一区| 中文字幕在线播放一区| 日韩一本之道一区中文字幕| 国产午夜毛片一区二区三区 | AV鲁丝一区鲁丝二区鲁丝三区| 色妞色视频一区二区三区四区| 精品深夜AV无码一区二区| 无码国产精品一区二区免费虚拟VR | 成人精品一区二区电影 | 熟女精品视频一区二区三区| 亚洲国产韩国一区二区| 成人欧美一区二区三区在线视频| 国产一区在线播放| 中文字幕AV一区中文字幕天堂| 亚洲国产av一区二区三区丶| 无码一区18禁3D| 一区二区免费电影| 无码人妻精品一区二区三区夜夜嗨 |