導(dǎo)讀
當(dāng)你在現(xiàn)實(shí)世界中工作時(shí),有幾個(gè)事實(shí)是你必須面對(duì)的,這也是本文的主要內(nèi)容。
上個(gè)月,我在一個(gè)親密的朋友聚會(huì)上做了一個(gè)非正式的演講,我把這個(gè)題目記下來(lái)。這篇文章主要是寫給那些使用機(jī)器學(xué)習(xí)來(lái)構(gòu)造東西的人,而不是那些研究機(jī)器學(xué)習(xí)的人,盡管后一組人會(huì)很好地傾聽(tīng)這些真理并反省他們的工作。
0. 你不是一個(gè)科學(xué)家
是的,雖然你們的 title 是“科學(xué)家”,包括你們所有擁有博士學(xué)位的人,以及涉足這個(gè)行業(yè)的學(xué)者。但是,機(jī)器學(xué)習(xí)(以及其他人工智能應(yīng)用領(lǐng)域,如 NLP、視覺(jué)、語(yǔ)音……)是一門工程研究學(xué)科(與科學(xué)研究相對(duì))。
你會(huì)問(wèn),科學(xué)研究和工程研究有什么區(qū)別?George A. Hazelrigg 在他的“HONING YOUR PROPOSAL WRITING SKILLS”中寫道:
一些科學(xué)家會(huì)學(xué)習(xí)如何制定研究計(jì)劃。很少有工程師是博士級(jí)別的工程師。讓我們先試著理解科學(xué)研究和工程研究之間的區(qū)別。對(duì)我來(lái)說(shuō),區(qū)別很明顯??茖W(xué)家力圖了解大自然的本質(zhì),以了解其根本的本質(zhì)。為了做到這一點(diǎn),科學(xué)家通常剝離無(wú)關(guān)的影響,深入到一個(gè)非常狹窄的自然元素。這就是我們所說(shuō)的自然法則:能量和質(zhì)量是一樣的,每一個(gè)作用力都有一個(gè)大小相等、方向相反的反作用力,依此類推。有許多自然法則,它們隨時(shí)隨地都適用。工程師遵循自然法則。他們別無(wú)選擇。他們的目標(biāo)是設(shè)計(jì)出在自然允許的范圍內(nèi)工作的東西。要做到這一點(diǎn),他們必須能夠預(yù)測(cè)系統(tǒng)的行為。所以工程師們面臨的一個(gè)大問(wèn)題是,我們?nèi)绾卫斫夂皖A(yù)測(cè)一個(gè)系統(tǒng)的行為,在這個(gè)系統(tǒng)中,所有的自然法則在任何時(shí)候都適用于任何地方。這是一個(gè)整合的問(wèn)題,它就像找到一開(kāi)始的規(guī)律一樣困難。每時(shí)每刻把所有的自然規(guī)律都考慮進(jìn)去是不可能的。因此,工程師必須找到方法來(lái)確定哪些定律是重要的,哪些可以忽略,以及如何近似那些在時(shí)間和空間上都很重要的定律。工程師不僅僅是預(yù)測(cè)未來(lái)。他們做出的決定部分是基于他們的預(yù)測(cè),因?yàn)樗麄冎雷约旱念A(yù)測(cè)不可能既準(zhǔn)確又確定。理解和應(yīng)用數(shù)學(xué)也很重要。這包括概率論、決策理論、博弈論、最優(yōu)化、控制理論和其他數(shù)學(xué)在工程決策環(huán)境中的應(yīng)用。這也是一個(gè)合理的工程研究領(lǐng)域。
作為 ML 的研究人員和實(shí)踐者,你必須考慮你擁有的數(shù)據(jù)的正確模型,而不是你擁有的模型的正確數(shù)據(jù)集(就像許多研究論文一樣)。如果你曾經(jīng)問(wèn)過(guò)“這個(gè)模型的正確數(shù)據(jù)集是什么”,那么你并不是在現(xiàn)實(shí)世界中。到底什么是真實(shí)的世界?在現(xiàn)實(shí)世界中,你對(duì)要處理的數(shù)據(jù)是沒(méi)有選擇的。在這里,數(shù)據(jù)定義了問(wèn)題,而不是相反。有時(shí),在現(xiàn)實(shí)世界中,ML 實(shí)踐者創(chuàng)建了一個(gè)自己的世界作為他們的建模游樂(lè)場(chǎng),從而假裝他們是“科學(xué)家”,例如“發(fā)明”一種用于做 NLP 的語(yǔ)言,或者通過(guò)簡(jiǎn)化假設(shè)來(lái)創(chuàng)建封閉的環(huán)境來(lái)強(qiáng)化學(xué)習(xí)。這些研究得出了有趣的結(jié)果,但它們的范圍僅限于它們所來(lái)自的世界,即使研究人員喜歡在論文中把它們當(dāng)作適用于現(xiàn)實(shí)世界的東西來(lái)兜售。在現(xiàn)實(shí)世界中,輸入的分布更有可能發(fā)生變化,長(zhǎng)尾的“curve balls”不知從何而來(lái),你并不總是有答案。
當(dāng)你在現(xiàn)實(shí)世界中工作時(shí),有幾個(gè)事實(shí)是你必須面對(duì)的,這也是本文的主要內(nèi)容。但這個(gè)開(kāi)場(chǎng)白是必不可少的。如果你在現(xiàn)實(shí)世界中做 ML 研究,你是工程師而不是科學(xué)家。
1. 需要可以工作
雖然這聽(tīng)起來(lái)很簡(jiǎn)單,但我很驚訝有多少人,不管是新手還是有經(jīng)驗(yàn)的人,都被一些聽(tīng)起來(lái)很花哨的名字吸引住了,或者因?yàn)橐恍〇|西來(lái)自 DeepMind、OpenAI、斯坦福大學(xué)、麻省理工學(xué)院等等。如果你的模型確實(shí)只能夠在它們的環(huán)境和資源約束下處理他們的數(shù)據(jù)集和,那么現(xiàn)實(shí)世界將無(wú)情地拒絕它。arXiv 上的許多結(jié)果只能在少數(shù)數(shù)據(jù)集上工作,或者只能在只有谷歌基礎(chǔ)設(shè)施支持的百兆級(jí) gpu 上工作。幫社區(qū)一個(gè)忙,不要再發(fā)布那些一般性的結(jié)果了。它必須能工作。這也是為什么我們今天不考慮在沒(méi)有卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算機(jī)視覺(jué)中做任何事情,或者為什么我們很容易在序列模型中使用注意力的原因。它必須要能工作。
推測(cè):這么多人,特別是 ML 的新手,被花哨的模型名稱沖昏了頭腦,迫不及待地想要嘗試它們,或者寫關(guān)于它們的博客帖子,等等。我覺(jué)得這就像一個(gè)初學(xué)寫作的人。他們認(rèn)為使用華麗的詞語(yǔ)會(huì)使他們的寫作更好,但經(jīng)驗(yàn)會(huì)告訴他們其他的。
2. 無(wú)論你如何努力,無(wú)論你的優(yōu)先級(jí)是什么,你都不能提高光速
緩存層次結(jié)構(gòu)已經(jīng)是固定的,你必須在這個(gè)前提下工作,網(wǎng)絡(luò)開(kāi)銷會(huì)讓分布式訓(xùn)練變慢,在向量中只能塞入那么多內(nèi)容,等等。
3. 只要有足夠的推力,豬就能飛得很高,然而,這并不一定是一個(gè)好主意
一個(gè)研究生或大型的超參數(shù)掃描器可以在一個(gè)巨大的數(shù)據(jù)中心中可以找到一組超參數(shù),可以讓非常復(fù)雜的模型工作得很好,甚至產(chǎn)生優(yōu)秀的結(jié)果。但沒(méi)有人在現(xiàn)實(shí)世界中調(diào)試那么大的模型。我在幫助公司管理他們的 ML 團(tuán)隊(duì)時(shí)發(fā)現(xiàn)了一個(gè)秘密 — 大多數(shù)人不知道/不關(guān)心超參數(shù)調(diào)優(yōu)。
4. 生活中的一些事情,除非親身經(jīng)歷過(guò),否則永遠(yuǎn)不會(huì)被完全欣賞或理解
對(duì)于既不構(gòu)建生產(chǎn) ML 模型也不維護(hù)它們的人來(lái)說(shuō),機(jī)器學(xué)習(xí)中的某些東西是永遠(yuǎn)無(wú)法完全理解的。再多的課件,再多的 mooc,再多的 Kaggling,都無(wú)法讓你為此做好準(zhǔn)備。沒(méi)有什么可以替代部署模型、觀察用戶與模型的交互、處理代碼/模型分解等等。
5. 總是有可能將多個(gè)獨(dú)立的問(wèn)題聚合成一個(gè)復(fù)雜的相互依賴的解決方案,在大多數(shù)情況下,這是一個(gè)壞主意
端到端學(xué)習(xí)在理論上聽(tīng)起來(lái)是一個(gè)好主意,但是對(duì)于大多數(shù)部署場(chǎng)景,分段優(yōu)化的管道架構(gòu)將繼續(xù)存在。這并不意味著我們將完全沒(méi)有端到端系統(tǒng)(語(yǔ)音識(shí)別和機(jī)器翻譯有很好的端到端生產(chǎn)價(jià)值解決方案),但在大多數(shù)情況下,具有可觀察的調(diào)試路徑將勝過(guò)其他選擇。
6. 把一個(gè)問(wèn)題轉(zhuǎn)移到別處,甚至是忽略它,都比解決它要容易得多
例如,在語(yǔ)音方面,聲學(xué)建模是困難的,但是你可以讓網(wǎng)絡(luò)在解決不同問(wèn)題(例如語(yǔ)音識(shí)別)的方法中找出這些細(xì)節(jié)。在 NLP 中,很難進(jìn)行正確的解析。但值得慶幸的是,對(duì)于 99%的現(xiàn)實(shí)任務(wù),我們可以不進(jìn)行解析。
推論:除非迫不得已,否則不要解決問(wèn)題。
7. 你總是要在一些事情上做權(quán)衡
速度 vs 內(nèi)存,電池壽命 vs 準(zhǔn)確性,公平性 vs 準(zhǔn)確性,易于實(shí)現(xiàn) vs 可維護(hù)性,……
8. 一切都比你想象的復(fù)雜
與購(gòu)物時(shí)的價(jià)格沖擊類似,工作中也有“努力沖擊”。大多數(shù)經(jīng)驗(yàn)豐富的研究人員和工程師都經(jīng)歷過(guò)“努力沖擊”,要么是因?yàn)樗麄兊凸懒颂幚泶笮蛿?shù)據(jù)集的工程問(wèn)題,要么是因?yàn)樗麄兊凸懒苏谂c之搏斗的領(lǐng)域的復(fù)雜性,要么是因?yàn)樗麄兊凸懒藢?duì)手。大多數(shù)論文讓讀者讀起來(lái)覺(jué)得事情很簡(jiǎn)單,而忽略了這背后是經(jīng)過(guò)了幾百萬(wàn)次失敗才有的成功。因此,論文不是研究,而是做研究的結(jié)果。因?yàn)檫@個(gè)原因,你永遠(yuǎn)可能通過(guò)閱讀論文來(lái)體驗(yàn)做研究的過(guò)程。
9. 你永遠(yuǎn)都會(huì)是準(zhǔn)備不足
這可以和第 8 點(diǎn)結(jié)合起來(lái),事實(shí)上任何遠(yuǎn)程調(diào)用的成功的模型如果沒(méi)有適當(dāng)?shù)挠?jì)劃,都可能由于自身的成功而崩潰。
10. 一個(gè)尺碼不可能適合所有人,你的模型會(huì)一直犯令人尷尬的錯(cuò)誤,盡管你的出發(fā)點(diǎn)是好的
角落案例和長(zhǎng)尾失敗模式將困擾你。值得慶幸的是,對(duì)于許多非關(guān)鍵的 ML 部署來(lái)說(shuō),這并不是什么大問(wèn)題。最壞的情況下,它會(huì)成為一條搞笑的推文。但是,如果你在醫(yī)療保健或其他高風(fēng)險(xiǎn)情況下工作,ML 部署將因此成為一場(chǎng)噩夢(mèng)。
11. 每一個(gè)舊的想法都會(huì)以不同的名字和不同的形式被再次提出,不管它是否有效
Schimdhuber 可能提出了一個(gè)更大的觀點(diǎn)。沒(méi)有人聽(tīng)他的,像他一樣,我們把舊酒重新裝進(jìn)新瓶子,被迫重復(fù)錯(cuò)誤的歷史。
12. 達(dá)到完美不是因?yàn)闆](méi)有什么可以補(bǔ)充的,而是因?yàn)闆](méi)有什么可以去掉的
生活中的每件事都是如此,現(xiàn)實(shí)世界中的機(jī)器學(xué)習(xí)也是如此。唉,我們的會(huì)議回顧了他們對(duì)“新穎性”的嗜好,產(chǎn)生了不想要的 arxi -spam,其中包含了大量本來(lái)就不需要存在的垃圾。除非做“科學(xué)”能夠鼓勵(lì)宣傳什么是有效的,而不是什么是新的,否則我不認(rèn)為這種情況會(huì)改變。
-
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8441瀏覽量
133087
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論