你是否真的需要機器學習?

文中內容並非是從理論上去探討哪些問題可以通過機器學習解決,而是意在幫助那些沒有數據科學家的團隊理解應用機器學習是否真的有效。

機器學習當前處境微妙。

機器學習的可行性已得到充分證明,幾乎所有最受歡迎的移動應用都或多或少使用了該項技術,從中可見一斑。但這一生態系統尚未完全成熟到任何一位初學者都可以迅速應用自如的程度。

對於團隊而言,決定何時引入機器學習技術並非易事,尤其是對於缺少數據科學家的團隊。儘管軟件工程人員通常對機器學習具有更高層次的理解,但他們一般缺少領域知識,難以判定自己所面對的問題是否適用機器學習解決。

文中內容並非從理論上去探討講哪些問題可以通過機器學習解決,而是意在幫助那些沒有數據科學家的團隊理解應用機器學習是否會有效。

是否有其他人使用機器學習解決了類似的問題?

如果團隊中沒有任何經驗豐富的機器學習工程師或數據科學家,那麼是很難回答“是否有可能通過機器學習來解決某個問題?”

如果團隊中缺少數據科學家,應該怎麼辦?

  • 自身成爲機器學習專家。這樣你可以自己分析問題,判定機器學習解決方案的可行性。
  • 聘用機器學習專家,完成上述工作。
  • 調研是否有其他人用機器學習解決了類似的問題。

前兩個選項耗精力耗財力,而後者可能只需花一天時間搜索一下。

相關調研的好處,就是有助於確定工作的着手點。鑑於團隊中沒有數據科學家,不太可能針對問題設計出適用的模型架構。例如,如果需要構建一個客戶支持代理,那麼可以去了解一下其他公司的做法。當然,你一定會涉及到Rasa和Google Meena。

瞭解使用哪些模型和方法解決了類似的問題,有助於團隊明確工作的着手點。例如,工程師Robert Lucian構建了一款得到廣泛使用的個性化車牌讀取器。Lucian的解決方案就是依賴於一些已有的目標檢測和文本提取模型。

Lucian在在文章中提及,他只是調研了其他人在類似領域中正在使用的方法,進而着手實現了自己項目中的機器學習部分。他最終找到了那些專門針對車牌而調優的模型,及用於文本提取的有效模型。這樣,他很快將兩者加入到生產環境中。

是否具有相關的數據來源(無需考慮數據是否是自己的)?

除非你的問題使用原始預訓練模型解決了,否則模型都需要使用相關數據進行訓練。

例如,構建一個推薦系統引擎,需要用戶資料屬性以及瀏覽習慣等數據。而構建一款客戶支持代理,則需要文檔手冊進行訓練。爲使模型適用於特定領域,需要使用相應領域數據進行訓練。

但是,訓練數據不必是自己具有的。即便並沒有做複雜的用戶數據收集,也可藉助於一些公開可用的數據。

例如,數月前開始流行的文本類冒險遊戲“AI Dungeon”,就是基於機器學習構建的。

儘管遊戲開發工程師Nick Walton只通過從choiceyourstory.com上抓取50 MB的文本做模型調優,但該遊戲仍可以與當前最先進的模型相媲美。其成功應歸功於遷移學習,該技術將模型的“知識”(該遊戲中使用了OpenAI的GPT-2)遷移到新的模型,並使用很小的數據集對更特定領域做了調優,例如遊戲中的地牢探索者的故事情景。

相對於其他解決方案而言,使用機器學習的成效是否顯著?

在很多情況下,機器學習只是一種可工作的工具,但並非最優的工具。如果機器學習並不能提供比其它解決方案明顯的優點,那麼就不值得爲此付出額外的開銷。

對此問題的分析,可藉助於下列幾個基本考量:

首先,除機器學習外,是否還有其它解決方案?

對於語音識別、計算機視覺等許多應用,機器學習目前是最適用的解決方案。

其次, 其它解決方案是否能復現機器學習的預測質量?

例如,在建立一個推薦系統中,如果收集的用戶數據不多,並且只有100條博客帖子可供推薦,那麼使用基本的標籤系統就完全可以。如果用戶喜歡Javascript,那麼就向用戶展示所有具有“Javascript”標籤的文章:

但是,如果策劃構建一個龐大的內容庫,並且其中管理了大量的用戶數據,那麼機器學習對於實現個性化推薦的作用是獨一無二的。

第三,其他解決方法是否具有機器學習那樣的可擴展性?

機器學習的主要承諾之一,就是其靈活性足以消除那些傳統上需要人工干預的流程中的人力參與。例如,庫存管理是一個非常繁雜的工作,產品通常信息不完整,列出方式也不一致,導致經常需要手動處理。

在產品數量不多的情況下,人工處理完全可以取代機器學習。但是對於大量的產品,人工做比對是不現實的。例如,處理一百萬種產品,需要很多人花費大量時間。而Glisten等產品使用機器學習分析產品數據,可快速完成此類工作:

何時何處適用機器學習

事實上,儘管機器學習有着諸多優越性,但卻往往應用在許多毫無意義的場景中。這導致許多人普遍對機器學習持懷疑態度,“不過又是一輪炒作而已”。

現實情況是,就像其它所有廣爲使用的技術一樣,機器學習只是在某些情況下的理想解決方案,而並不適用於所有情況。項目上手時,最難的就是判定該項目是否需要使用機器學習,尤其是對於缺乏該領域經驗的團隊,希望本文能對正處於迷茫中的團隊有所助益。

如果讀者對如何在生產環境中使用機器學習感興趣,歡迎訪問Cortex示例代碼庫。

Cortex項目地址:
https://github.com/cortexlabs/cortex/tree/master/examples

聲明:本文內容基於作者本人對機器學習團隊的觀察,而非對整個行業的學術綜述。作者背景是Cortex的貢獻者之一。Cortex是一款用於機器學習模型在生產環境部署的開源平臺。

原文鏈接:

https://towardsdatascience.com/should-you-really-use-machine-learning-for-that-d781a80aa0fb

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章