0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

高效構(gòu)建基于機(jī)器學(xué)習(xí)的產(chǎn)品的經(jīng)驗(yàn)

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-07-02 14:42 ? 次閱讀

編者按:Insight Data Science AI負(fù)責(zé)人Emmanuel Ameisen分享了高效構(gòu)建基于機(jī)器學(xué)習(xí)產(chǎn)品的經(jīng)驗(yàn)。

要構(gòu)建通用AI,先掌握線性回歸

從基本開始

試圖發(fā)展對(duì)世界的科學(xué)理解的時(shí)候,大多數(shù)領(lǐng)域從粗略的勾勒開始,之后才探索重要的細(xì)節(jié)。拿物理來說吧,我們從簡(jiǎn)單模型(牛頓力學(xué))開始,漸漸深入更復(fù)雜的模型(相對(duì)論),到時(shí)我們將知道,我們最初的假定是錯(cuò)誤的。通過在最簡(jiǎn)單的有用層次推理,我們可以高效地解決問題,

所有事情都應(yīng)該盡可能簡(jiǎn)單,但不要過于簡(jiǎn)單。

阿爾伯特·愛因斯坦

從非常簡(jiǎn)單的模型開始這一做法,同樣可以應(yīng)用于機(jī)器學(xué)習(xí)工程,通??梢宰C明,這是非常有價(jià)值的做法。事實(shí)上,我們?cè)贗nsight看到數(shù)以百計(jì)的項(xiàng)目從想法到發(fā)布成品的全過程,發(fā)現(xiàn)從一個(gè)簡(jiǎn)單的基線模型開始,一貫地導(dǎo)向更好的最終產(chǎn)品。

應(yīng)對(duì)復(fù)雜問題時(shí),簡(jiǎn)單的方案,有很多缺陷:

它們有時(shí)候忽略輸入的重要方面。例如,簡(jiǎn)單模型常常忽略句子中的詞序,或者變量之間的相關(guān)性。

它們受到限制,難以得到精細(xì)的結(jié)果。大多數(shù)簡(jiǎn)單模型可能需要配合啟發(fā)式方法或手工指定的規(guī)則才能供客戶使用。

它們并不那么有趣,可能無法讓你在開發(fā)時(shí)獲得尖端研究的體驗(yàn)。

這些方案常常產(chǎn)生受到誤導(dǎo)的輸出,可能在我們看來非常愚蠢,正如本文標(biāo)題所言,蠢模型。然而,如同我們將在本文中描述的,它們提供了極為有用的第一步,讓我們可以更好地理解我們的問題,以找到最好的處理方法。正如George E. P. Box所說:

所有模型都是錯(cuò)誤的,但有些模型有用。

換句話說:如果你想玩下有趣的玩意,從復(fù)雜的模型開始。如果你想解決問題、構(gòu)建產(chǎn)品,從愚蠢的模型開始。

什么是基線?

不同的分布需要不同的基線(來源:xkcd/1725)

基線模型不僅易于配置,同時(shí)有合理的幾率提供不錯(cuò)的結(jié)果。試驗(yàn)基線模型通常很快,而且代價(jià)較低,因?yàn)榱餍械能浖蠖喟嘶€模型實(shí)現(xiàn)。

值得考慮的一些基線:

線性回歸。從一組特征預(yù)測(cè)連續(xù)值(價(jià)格、年齡等),首先嘗試下線性回歸。

邏輯回歸。試圖分類結(jié)構(gòu)數(shù)據(jù)或自然語言時(shí),邏輯回歸通常能給出快速、牢靠的結(jié)果。

梯度提升樹。Kaggle競(jìng)賽經(jīng)典模型!從時(shí)序預(yù)測(cè)到一般結(jié)構(gòu)數(shù)據(jù),梯度提升樹難以戰(zhàn)勝。盡管比其他基線要稍微難以解釋一點(diǎn),它通常表現(xiàn)出色。

簡(jiǎn)單卷積架構(gòu)。對(duì)大多數(shù)圖像分類、檢測(cè)、分割問題而言,微調(diào)VGG或再訓(xùn)練某個(gè)U-net變體通常是一個(gè)良好的開始。

還有更多!

簡(jiǎn)單基線模型的選擇取決于要處理的數(shù)據(jù)類型和任務(wù)類型。如果你打算基于多個(gè)特征預(yù)測(cè)房?jī)r(jià),那選擇線性回歸很合理。不過,如果你想要構(gòu)建語音到文本算法,那選擇線性回歸就不怎么合理了。你需要思考你希望從基線模型中得到什么,以選擇最佳的基線。

為什么從基線開始?

部署模型需要很多工作,確保提交前充分探索(來源:Uber)

開始一個(gè)項(xiàng)目時(shí),首要的是了解會(huì)阻礙項(xiàng)目進(jìn)度的未曾預(yù)見的潛在挑戰(zhàn)。即使基線模型最終沒有成為最終版本的模型,它們?nèi)匀荒軌蜃屇惴浅?焖俚氐?,浪費(fèi)最少的時(shí)間。下面是一些原因。

基線將花去不到1/10的時(shí)間,可能提供高達(dá)90%的結(jié)果

生產(chǎn)率乘以9!

這里有一個(gè)非常常見的故事:一個(gè)團(tuán)隊(duì)想要實(shí)現(xiàn)一個(gè)模型預(yù)測(cè)用戶點(diǎn)擊廣告的概率。他們從邏輯回歸開始,并很快(經(jīng)過一些微調(diào))達(dá)到了90%精確度。

問題在于:這個(gè)團(tuán)隊(duì)?wèi)?yīng)該集中精力將精確度提高到95%,還是應(yīng)該以這樣90%的方式解決其他問題?

大多數(shù)最先進(jìn)的模型,由于其隨機(jī)性本質(zhì),仍然會(huì)給出非零誤差率。你的用例可能不同,但大多數(shù)系統(tǒng)的效率本質(zhì)上是乘法的,這意味著你寧愿選擇90%精確度的10個(gè)連續(xù)步驟(導(dǎo)致34%的最終精確度),而不是一個(gè)99%的步驟,跟著九個(gè)10%的步驟(0.000000099%)。

從基線開始,讓你可以首先解決瓶頸!

基線模型為更復(fù)雜的模型提供了上下文

通常,模型表現(xiàn)有三個(gè)易于評(píng)定的層次:

微不足道的可實(shí)現(xiàn)表現(xiàn),你希望任何模型都能超過這個(gè)層次。例如,在分類任務(wù)中,每次都猜測(cè)最頻繁出現(xiàn)的分類所得到的精確度。

人類表現(xiàn),人類在這一任務(wù)上能夠達(dá)到的表現(xiàn)。在某些任務(wù)上,計(jì)算機(jī)的表現(xiàn)比人類好很多(比如下圍棋),在其他一些任務(wù)上,則比人類要差(比如寫詩(shī))。知道人類能夠表現(xiàn)得多好,有時(shí)可以幫助你事先為算法設(shè)定期望。不過,由于人類/計(jì)算機(jī)在不同領(lǐng)域的任務(wù)上表現(xiàn)不一樣,這也許需要進(jìn)行一些文獻(xiàn)檢索加以校正。

部署模型要求的表現(xiàn),從商業(yè)和可用性角度出發(fā),使你的模型適宜部署到生產(chǎn)環(huán)境的最小價(jià)值。通常而言,聰明的設(shè)計(jì)決策可以讓這一價(jià)值更容易實(shí)現(xiàn)。例如,Google的智能回復(fù),顯示三個(gè)建議回復(fù),明顯提升了顯示有用結(jié)果的幾率。

以上三個(gè)層次缺了一層,我會(huì)稱它為“合理的自動(dòng)化表現(xiàn)”,這代表可以通過一個(gè)相對(duì)簡(jiǎn)單的模型實(shí)現(xiàn)的表現(xiàn)。這對(duì)評(píng)估復(fù)雜模型是否表現(xiàn)良好而言,是不可或缺的,也能讓我們處理精確性和復(fù)雜性的折衷。

許多時(shí)候,我們發(fā)現(xiàn)基線模型的表現(xiàn)和復(fù)雜模型相當(dāng),甚至優(yōu)于復(fù)雜模型,特別是選擇復(fù)雜模型時(shí)沒有查看基線模型失敗之處的時(shí)候。此外,復(fù)雜模型通常更難部署,這意味著,很有必要事先衡量它們?cè)诤?jiǎn)單基線水平上的提升,是否值得額外的工程上的努力來部署它們。

簡(jiǎn)單模型易于部署

根據(jù)定義,基線模型是簡(jiǎn)單的。它們通常包含相對(duì)較少的可訓(xùn)練參數(shù),無需太多工作就可以快速擬合數(shù)據(jù)。

這意味著,在工程上,簡(jiǎn)單模型:

訓(xùn)練起來更快,讓你能夠迅速得到模型表現(xiàn)的反饋。

研究充分,這意味著你碰到的大多數(shù)錯(cuò)誤或者是構(gòu)建模型時(shí)的簡(jiǎn)單bug,或者突顯了你的數(shù)據(jù)有問題。

推理起來更快,這意味著部署它們不需要很多基礎(chǔ)設(shè)施工程,也不會(huì)增加延遲。

構(gòu)建和部署一個(gè)基線模型之后,正是決定下一步做什么的最佳時(shí)機(jī)。

構(gòu)建基線模型之后做什么?

是時(shí)候拿一些論文出來看?

就像我們之前提到的那樣,如果你發(fā)現(xiàn)基線模型的表現(xiàn)不夠好,那么,查看簡(jiǎn)單模型失效之處有助于你找到更好的方法。

例如,在我之前寫的NLP初步中,通過查看基線的誤差,我們可以看到它無法區(qū)分有意義的單詞和填充詞。這引導(dǎo)我們使用可以捕捉這一細(xì)微差別的模型。

基線幫助你理解數(shù)據(jù)

如果基線表現(xiàn)良好,你就不用為配置一個(gè)更復(fù)雜的模型操心了。如果基線表現(xiàn)不佳,它產(chǎn)生的錯(cuò)誤種類對(duì)理解數(shù)據(jù)的偏離和特定問題非常有指導(dǎo)性。大多數(shù)機(jī)器學(xué)習(xí)的問題是通過更好地理解和準(zhǔn)備數(shù)據(jù)解決的,而不是通過選擇更復(fù)雜的模型解決的。查看基線的表現(xiàn)有助你發(fā)現(xiàn):

哪些分類更難區(qū)分。對(duì)大多數(shù)分類問題而言,查看混淆矩陣能得到很多關(guān)于哪些分類導(dǎo)致模型出現(xiàn)問題的信息。當(dāng)特定分類上的表現(xiàn)特別差時(shí),值得探索數(shù)據(jù)以理解為什么。

模型捕捉到了哪些信號(hào)。大多數(shù)基線可以提取特征重要性,揭示輸入的哪些方法預(yù)測(cè)性最好。分析特征重要性對(duì)理解模型如何做出判定以及模型在哪些方面有所欠缺非常有幫助。

模型錯(cuò)過了哪些信號(hào)。如果數(shù)據(jù)的特定方面從直覺上看起來很重要,但模型忽略了它。那么進(jìn)行特征工程或者選用其他能夠更好地利用數(shù)據(jù)這一方面的模型會(huì)是一個(gè)好主意。

基線幫助你理解任務(wù)

基線不僅有助于你更好地理解數(shù)據(jù),還能讓你看到推理的哪一部分容易,哪一部分困難。進(jìn)而允許你探索改進(jìn)模型的哪個(gè)方向使困難部分表現(xiàn)更好。

例如,在嘗試預(yù)測(cè)給定團(tuán)隊(duì)在守望先鋒中的勝率時(shí),Bowen Yang從邏輯回歸開始。他很快發(fā)現(xiàn)在游戲過半之后預(yù)測(cè)精確度戲劇性地提升了。這一觀察幫助他決定下一個(gè)模型的選擇,一種允許從先驗(yàn)信息學(xué)習(xí)的嵌入技術(shù),在一開始就提升了精確度。

大多數(shù)機(jī)器學(xué)習(xí)問題遵循“沒有免費(fèi)午餐”定理:并不存在一個(gè)萬能的解決方案。從多種架構(gòu)、嵌入策略、模型中選定能夠提取和利用數(shù)據(jù)結(jié)構(gòu)的最佳方案是一項(xiàng)挑戰(zhàn)。查看簡(jiǎn)單的基線勉力建模的內(nèi)容,對(duì)做出選擇幫助很大。

再舉一個(gè)例子。試圖分割心臟MRI影像時(shí),Chuck-Hou Yee首先嘗試了一個(gè)原始的U-net架構(gòu)。這讓他發(fā)現(xiàn)模型產(chǎn)生的很多分割誤差是因?yàn)槿鄙偕舷挛男畔ⅲㄐ⌒透惺芤埃?。為了?yīng)對(duì)這一問題,他轉(zhuǎn)而使用了擴(kuò)張卷積,這一選擇顯著提升了模型的表現(xiàn)。

當(dāng)基線派不上用場(chǎng)的時(shí)候

最后,為某些任務(wù)構(gòu)建有效的基線非常困難。如果你打算從音源中分離出不同的說話人(雞尾酒會(huì)問題),你可能需要從復(fù)雜模型開始,以得到滿意的結(jié)果。在這些情形下,作為簡(jiǎn)化模型的替代,你可以簡(jiǎn)化數(shù)據(jù):嘗試讓你的復(fù)雜模型過擬合數(shù)據(jù)的一個(gè)非常小的子集。如果你的模型具備學(xué)習(xí)這一問題的表達(dá)能力,它會(huì)很簡(jiǎn)單。如果發(fā)現(xiàn)這部分很困難,那么通常這意味著你需要試試其他模型。

結(jié)語

當(dāng)你意識(shí)到強(qiáng)大的模型的存在之后,很容易忽略那些簡(jiǎn)單方法。然而,和大多數(shù)領(lǐng)域一樣,在機(jī)器學(xué)習(xí)中,從基本開始總是很有價(jià)值的。

學(xué)習(xí)如何應(yīng)用復(fù)雜方法固然是一項(xiàng)挑戰(zhàn),機(jī)器學(xué)習(xí)工程師的最大挑戰(zhàn)是為給定的任務(wù)決定建模策略。首先嘗試簡(jiǎn)單模型可以為這一決策提供信息;如果簡(jiǎn)單模型的表現(xiàn)平平無奇,轉(zhuǎn)而使用一個(gè)更復(fù)雜的模型,一個(gè)擅長(zhǎng)避免基線產(chǎn)生的特定錯(cuò)誤的模型。

在Insight,這一方法總共節(jié)省了數(shù)以千計(jì)小時(shí)的時(shí)間。我們希望這一方法對(duì)你同樣有用。如果遇到問題,或有什么想法,歡迎留言!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 圖像分類
    +關(guān)注

    關(guān)注

    0

    文章

    89

    瀏覽量

    11887
  • 基線
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    7943
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8306

    瀏覽量

    131842

原文標(biāo)題:創(chuàng)造機(jī)器學(xué)習(xí)產(chǎn)品的秘訣:總是從蠢模型開始

文章出處:【微信號(hào):jqr_AI,微信公眾號(hào):論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【下載】《機(jī)器學(xué)習(xí)》+《機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》

    、Apriori算法、FP-Growth算法。第四部分介紹了機(jī)器學(xué)習(xí)算法的一些附屬工具。全書通過精心編排的實(shí)例,切入日常工作任務(wù),摒棄學(xué)術(shù)化語言,利用高效的可復(fù)用Python代碼來闡釋如何處理統(tǒng)計(jì)數(shù)據(jù),進(jìn)行
    發(fā)表于 06-01 15:49

    構(gòu)建機(jī)器學(xué)習(xí)產(chǎn)品必需的數(shù)學(xué)背景

    必讀我們?cè)撊绾?b class='flag-5'>學(xué)習(xí)機(jī)器學(xué)習(xí)中的數(shù)學(xué)
    發(fā)表于 08-15 11:44

    機(jī)器學(xué)習(xí)經(jīng)驗(yàn)總結(jié)

    面試經(jīng)驗(yàn)機(jī)器學(xué)習(xí)
    發(fā)表于 08-16 14:20

    什么是機(jī)器學(xué)習(xí)? 機(jī)器學(xué)習(xí)基礎(chǔ)入門

    中,我將概述機(jī)器學(xué)習(xí),它是如何工作的,以及為什么它對(duì)嵌入式工程師很重要。什么是機(jī)器學(xué)習(xí)?機(jī)器學(xué)習(xí)
    發(fā)表于 06-21 11:06

    Airbnb機(jī)器學(xué)習(xí)和數(shù)據(jù)科學(xué)團(tuán)隊(duì)經(jīng)驗(yàn)分享

    Airbnb資深機(jī)器學(xué)習(xí)科學(xué)家Shijing Yao、前Airbnb數(shù)據(jù)科學(xué)負(fù)責(zé)人Qiang Zhu、Airbnb機(jī)器學(xué)習(xí)工程師Phillippe Siclait分享了在Airbnb
    的頭像 發(fā)表于 07-07 09:24 ?3776次閱讀

    ML-Bench 1.0構(gòu)建和分析機(jī)器學(xué)習(xí)基準(zhǔn)

    本講座描述了用于構(gòu)建機(jī)器學(xué)習(xí)基準(zhǔn)的分析方法。
    的頭像 發(fā)表于 11-13 06:32 ?2353次閱讀

    機(jī)器學(xué)習(xí)的12大經(jīng)驗(yàn)總結(jié)

    本文整理了關(guān)于機(jī)器學(xué)習(xí)研究者和從業(yè)者的 12 個(gè)寶貴經(jīng)驗(yàn),包括需要避免的陷阱、需要關(guān)注的重點(diǎn)問題、常見問題的答案。希望這些經(jīng)驗(yàn)對(duì)機(jī)器
    的頭像 發(fā)表于 12-13 15:29 ?2597次閱讀

    為生產(chǎn)系統(tǒng)構(gòu)建機(jī)器學(xué)習(xí)的一些考慮

    這篇文章介紹了為生產(chǎn)系統(tǒng)構(gòu)建機(jī)器學(xué)習(xí)過程的很多方面的內(nèi)容,都是從實(shí)踐中總結(jié)出來的。
    的頭像 發(fā)表于 04-19 11:34 ?1495次閱讀

    如何才能正確的構(gòu)建機(jī)器學(xué)習(xí)的模型

    組織構(gòu)建一個(gè)可行的、可靠的、敏捷的機(jī)器學(xué)習(xí)模型來簡(jiǎn)化操作和支持其業(yè)務(wù)計(jì)劃需要耐心、準(zhǔn)備以及毅力。各種組織都在為各行業(yè)中的眾多應(yīng)用實(shí)施人工智能項(xiàng)目。這些應(yīng)用包括預(yù)測(cè)分析、模式識(shí)別系統(tǒng)、自主系統(tǒng)、會(huì)話
    發(fā)表于 01-11 19:25 ?14次下載

    六個(gè)構(gòu)建機(jī)器學(xué)習(xí)模型需避免的錯(cuò)誤

    近年來,機(jī)器學(xué)習(xí)在學(xué)術(shù)研究領(lǐng)域和實(shí)際應(yīng)用領(lǐng)域得到越來越多的關(guān)注。但構(gòu)建機(jī)器學(xué)習(xí)模型不是一件簡(jiǎn)單的事情,它需要大量的知識(shí)和技能以及豐富的
    發(fā)表于 05-05 16:39 ?1363次閱讀

    Python機(jī)器學(xué)習(xí)應(yīng)用

    機(jī)器學(xué)習(xí)的目標(biāo):機(jī)器學(xué)習(xí)是實(shí)現(xiàn)人工智能的手段,主要研究?jī)?nèi)容是如何利用數(shù)據(jù)或經(jīng)驗(yàn)進(jìn)行學(xué)習(xí),改善具體
    發(fā)表于 05-25 16:24 ?19次下載

    電力公司正在使用機(jī)器學(xué)習(xí)構(gòu)建綠色的智能電網(wǎng)

    從發(fā)電到智能電表,各種電力項(xiàng)目正在采用機(jī)器學(xué)習(xí)構(gòu)建綠色、有韌性的智能電網(wǎng),其中許多項(xiàng)目都采用了 NVIDIA 的技術(shù)。
    的頭像 發(fā)表于 05-30 15:10 ?1795次閱讀

    高效理解機(jī)器學(xué)習(xí)

    來源:DeepNoMind對(duì)于初學(xué)者來說,機(jī)器學(xué)習(xí)相當(dāng)復(fù)雜,可能很容易迷失在細(xì)節(jié)的海洋里。本文通過將機(jī)器學(xué)習(xí)算法分為三個(gè)類別,梳理出一條相對(duì)清晰的路線,幫助初學(xué)者理解
    的頭像 發(fā)表于 05-08 10:24 ?462次閱讀
    <b class='flag-5'>高效</b>理解<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>

    機(jī)器學(xué)習(xí)構(gòu)建ML模型實(shí)踐

    實(shí)踐中的機(jī)器學(xué)習(xí)構(gòu)建 ML 模型
    的頭像 發(fā)表于 07-05 16:30 ?619次閱讀

    新知同享 | AI 開發(fā)廣泛應(yīng)用,高效構(gòu)建

    谷歌致力于通過高效、可靠的方法 構(gòu)建 AI 驅(qū)動(dòng)的產(chǎn)品 如今已經(jīng)走過了七年 "AI 為先" 的旅程 一起來看 2023 Google 開發(fā)者大會(huì)上 AI 開發(fā)如何被廣泛應(yīng)用,簡(jiǎn)化開發(fā) 并將機(jī)器
    的頭像 發(fā)表于 09-09 19:10 ?452次閱讀