機器學習應用設計階段的 10 個陷阱和 11 個最佳實踐

2021-02-13 AI前線

 

本文主要介紹了在機器學習項目的最初設計階段中,你可能會遇到的陷阱,並詳細闡述如何避免這些陷阱的最佳實踐。

本文最初發表於 Towards Data Science 博客,經原作者 Bruce H. Cottman 授權,InfoQ 中文站翻譯並分享。

圖 1:機器學習應用的迭代生命周期

你是否成功設計、訓練和測試了一個機器學習應用(Machine Learning Application,MLA)?雖然經過了實驗室的審核,但機器學習應用的表現卻是不能令人接受的,甚至可能在生產中失敗?

如果是這樣,請繼續閱讀本文,我將詳細介紹我的同事和我遇到過的陷阱。接下來我將詳細討論最佳實踐,其中一些是我們已經開發的可避免這些陷阱的解決方案。

降低機器學習應用設計、開發和部署的高成本和負擔,是 DataOps、DevOps、MLOps、GitOps、CloudOps.xOps 的方法論領域,其中,Ops 代表運營(Operations)。

我們認為,你應該按照這個順序,先學會爬行,再學會行走,再學會跑步,然後也許是再學會飛行。

在我們看來,xOps 就相當於機器學習應用生命周期中的行走、跑步和飛行。

我們從爬行開始。

本文重點討論項目啟動時的陷阱和最佳實踐:機器學習應用設計階段。

項目管理被描述為陷阱和最佳實踐。

項目管理可以布置成一個步驟圖(邊和節點)。按特定順序執行的任務就是瀑布式項目管理方法。一個例子是按設計、開發、測試和最後部署的順序排列。

註:我們有兩個項目取得了成功,但也有很多項目失敗了。用瀑布項目方法按順序完成這些任務。對於失敗的項目,我們不是沒有時間,就是沒有資金。這些項目都麻煩,要花掉很多周末的時間。

機器學習應用項目管理被想像成一種連續的任務循環圖(參見圖 1)。我們也可以把一個應用項目看作是一個任務清單,其中每個任務都是部分完成的。這些任務中有些可以並行執行,有些依賴於其他任務,有些重複執行,直到應用變成「垃圾箱」。

註:我們建議你通過迭代和異步的方式來完成任務。

但願以上就是我們需要討論的關於機器學習應用項目管理方法的全部內容。從現在開始,我們將重點介紹一些在機器學習應用設計階段所遇到的比較多的陷阱。這些陷阱來自於 40 多年的綜合經驗和大約 18 個機器學習應用項目。

對於本文所列舉的任何陷阱,都會詳細說明一種或多種最佳實踐的變通辦法或解決方案。每個最佳實踐通常都是一個組件任務,它只有儘可能少的先驗輸入。你會注意到,有些任務有不可避免的啟動依賴性。

在機器學習應用項目生命周期中,我們也陷入了開發和生產過程中的陷阱。我們(通常)用最佳實踐來發現自我。

我們之所以把這個陷阱放在第一個位置,是因為作為一家諮詢集團,主要是在 2016 年及更早的時候,在業務問題不需要機器學習解決方案的時候,我們常常將精力投入到機器學習方案。

對所有這些客戶來說,他們想要說他們正在使用機器學習應用,無論他們是否需要機器學習,還是沒有為機器學習做好準備。

請不要笑,但在 2017 年之前的早些時候,我們受僱於客戶,卻沒有發現任何數據或問題。

我們發現,第 1 個陷阱和第 2 個陷阱都需要解決,然後才能繼續。

 最佳實踐 1:了解業務問題,定義機器學習應用解決方案

不要與那些不能或不願意讓你定義可行的機器學習解決方案的公司合作。

你的第一個項目應該增加功能,而不是替換和改進現有功能。

要證明機器學習的增值,首先要避免將機器學習應用於組織的遺留(現有)系統。說起來容易做起來難!

註:你可能最終會理解組織或部門的業務流程以及該流程的系統實現。對於希望用機器學習解決的業務用例,系統實現將很少或完全不了解。

 最佳實踐 3:查找並確定業務用例、流程和 / 或數據流圖

關鍵績效指標(Key Performance Indicators,KPI)被組織視為重要指標。組織可以衡量各部門、流程和項目的健康指標。

另外,對利益相關者進行調查,找出最讓他們失望的地方。

舉例來說,一家連鎖酒店衡量房間的可用性,或者一家餐廳衡量桌子的可用性。機器學習可以根據過去的預訂情況預測未來的預訂情況。但是,更有價值的機器學習會降低可用性。

一旦確定了業務用例問題,就可以提出一個機器學習應用解決方案。在第一個機器學習應用取得可衡量的成功之後,你就可以啟動其他的機器學習應用項目了。

 最佳實踐 5:當第一個機器學習應用取得成功後,通過啟動更多的機器學習應用項目來增加投資

這種最佳實踐是突出的。但不那麼明顯的是,在第一個機器學習應用項目投入生產之前,你的贊助商可能希望啟動更多的機器學習應用項目。

你的贊助者(或你)可能會因為實驗室中訓練、測試和驗證的漂亮結果而非常興奮。提醒自己和他們要對過去的災難保持警覺。

創建單體應用會導致瀑布式開發過程。不同的步驟和應用的各個部分是高度相關的。

將機器學習應用設計成組件或微服務的管道。在這種情況下,每個組件都是一個可分離的機器學習微服務。每個組件都是完全可執行的,彼此獨立,需要明確定義的輸入和輸出。

技巧:基於組件的架構能夠讓你的團隊以異步的方式進行開發機器學習應用的不同部分。

設計的第一部分規定了機器學習應用的功能性和非功能性需求。確定的需求構成了機器學習應用的架構設計。此外,需求將決定生產策略,並對機器學習應用進行具體測試。

技巧:制定並廣泛分享機器學習應用架構藍圖,展示端到端集成機器學習應用管道中的各個邏輯組件。

在機器學習中運用軟體開發項目的經驗。

由於輸入數據和調整參數對隨機機器學習的應用比確定性應用有更大的影響,因此機器學習就不同。然而,你將會發現你過去的大部分軟體工程方法和最佳實踐都適用於你的機器學習項目。

我們看到了很多因為前期工作研究不到位而不得不重新啟動項目的例子。

能工摹形,巧匠竊意。(Good artists borrow, great artists steal.)

——Pablo Ruiz Picasso(1881 年 10 月 25 日——1973 年 4 月 8 日)技巧:一開始花點時間在 GitHub 上搜索一下,然後繼續完成這個項目。技巧:我們的經驗是,arvix.org 上的好論文都是用代碼實現的,並放在 GitHub 上。代碼片段有助於啟動項目。

對於較小規模的項目,一個開箱即用的解決方案可能就足夠了。不幸的是,為了確保在競爭中的領先優勢,可能需要定製功能或多個機器學習模型組合。

 最佳實踐 9:自然語言處理應用架構需要 Transformer

由於自然語言處理應用在近兩年發生了顯著的變化,我們決定在本文中加入孤立的最佳實踐。

我們曾在 2017 年部署了基於 GLOVE 的自然語言處理應用 。2018 年出現了 BERT Transformer。通過兩個關鍵的改進,BERT 帶來了自然語言處理性能的大躍進:

BERT 被預先訓練在一個語料庫大小至少 4 個數量級(10000 倍)比我們的基於 GLOVE 的機器學習模型更加巨大;

BERT 的模型參數的數量比我們基於 GLOVE 的 ML 模型大兩個數量級(100 倍)。

[……] 擴展到極端規模的模型也會帶來很大的改進 [……]

——Devlin 等人,2018 年

無論機器學習應用有多成功,在項目過程中都會出現一些小問題。我們已經找到了一份提供給客戶項目發起人和經理的 1~2 頁的每周狀態報告,即使他們沒有要求這麼做,但這可以消除項目中的大部分溝通錯誤。

故事:有一次,我們被炒了魷魚,但幸運的是,在兩天之後,當幾次誤解澄清之後,我們又被重新僱用了。從此以後,每周的狀態報告就成了必需的最佳實踐。

無論你在項目中的位置如何,你的要求都是錯誤的,你需要停下來並重新評估。做好重新開始或者被解僱的準備。記錄你新提出的解決方案。人生苦短,無法繼續推出一個需要解決問題的機器學習應用解決方案。

陷阱 8 與陷阱 7 類似。由於你正確地處理了業務用例,所以我們把它列在這裡,但目前業務需求的優先級不高,或者消失了。這樣的話,你唯一能做的就是提出不同的需求,去滿足它們。要做好走人的準備。

早些時候,我們舉辦了《如何從機器學習中獲益?》(How to benefit from Machine Learning?)課程。現在,我們將這些課程指向 Github、Coursera 和 Medium 博客上的 Awesome-X URL。

但我們不會放棄幻燈片,因為我們還是會經常用到它。

技巧:為客戶的開發人員提供機器學習實踐的指導。

對於「我們沒有 ML 部署基礎設施」這個問題,我們只有一個答案(可行的解決方案),那就是去獲取一個雲帳戶。

推出自己的基礎設施是可以做到的。Apple、Amazon、Google、IBM、Zillow 和其他數十億(或數萬億)的公司都已經做到了。我們的答案是:去獲取一個雲帳戶。

Google Cloud Platform(GCP)是基於雲端部署機器學習模型的主要選擇之一。其他選擇有 AWS、Microsoft Azure、Paperspace 等。

技巧:我們最喜歡的是免費的 GCP Colab。

機器學習的最新進展正在發生,並且正在加速。你不想被另一個 BERT 類的事情蒙蔽雙眼。

要及時掌握最新文獻。你還可以向你的客戶宣傳全新的、優秀的機器學習項目。

我們是從外部顧問的角度為客戶設計機器學習應用而寫的本文。但是,如果你是負責設計機器學習應用解決方案的內部員工或團隊,那麼本文提到的所有陷阱和最佳實踐都同樣適用。

人工智慧 1.0 行業的第一波浪潮在 20 世紀 80 年代末可以說是失敗的。人工智慧 1.0 行業由於難以推出強大的生產機器學習應用而夭折。

人工智慧 2.0 行業之所以取得成功,是因為強大的生產機器學習應用的推廣和日常使用。我們預計成功將會持續增長,人們在生活中使用機器學習,甚至都沒有意識到這一點(儘管存在營銷行為)。

但願這些陷阱和最佳實踐能幫助你設計機器學習應用,並使它們成功地投入到生產環境中。

我們將詳述在機器學習項目生命周期的開發和部署階段遇到的更多陷阱。此外,我們還將列出我們用來擺脫困境的最佳實踐。我們在後續博文中完成這一任務。

作者介紹:

Bruce H. Cottman,博士,物理學家、機器學習科學家、不斷取得進步的軟體工程師。熱衷從新興技術中推斷未來。

原文連結:

https://towardsdatascience.com/10-pitfalls-and-11-best-practices-for-the-design-phase-of-a-machine-learning-application-project-66c3d599f87

你也「在看」嗎?👇

相關焦點

  • IN用丨機器學習應用設計階段的10個陷阱和11個最佳實踐
    雖然經過了實驗室的審核,但機器學習應用的表現卻是不能令人接受的,甚至可能在生產中失敗?如果是這樣,請繼續閱讀本文,我將詳細介紹我的同事和我遇到過的陷阱。接下來我將詳細討論最佳實踐,其中一些是我們已經開發的可避免這些陷阱的解決方案。
  • 《機器學習-原理、算法與應用》出版了
    本書的前身為《機器學習與應用》,雷明著,清華大學出版社。在第一版的基礎上做了大幅度優化,並經過反覆校對,最終形成此書。由於之前是第一次寫書,缺乏經驗,導致了書的內容過多,裡面存在大量開源庫代碼佔據篇幅。這一版改進了這些問題,且增加了不少新的內容,更為系統和全面,品質也得到了不小的提升。
  • 微信的機器學習與人工智慧應用實踐
    2018 年 1 月 13-14 日,AICon 全球人工智慧與機器學習技術大會在北京召開,微信小程序商業技術負責人張重陽應邀擔任本次大會的聯席主席,發表演講介紹了人工智慧應用落地過程中的 4 個"in",並結合在微信的實踐案例做了深入的講解。以下為演講全文。
  • SPSS統計應用的6個陷阱,你跳了嗎?
    SPSS作為全球頂級好用的統計分析軟體,在國內的普及是比較成功的,入門和進階的教材也極為豐富,可以說在各大高校、科研院所、市場調研公司、金融、零售、網際網路等行業企業都有應用,江湖人送綽號「傻瓜統計軟體」。
  • 10 個常用機器學習算法
    (給算法愛好者加星標,修煉編程內功)來源:機器之心   本文介紹了 10 大常用機器學習算法,包括線性回歸、Logistic
  • 機器學習提升嵌入式視覺應用
    在訓練過程中,為該神經網絡施加一定數量的正確輸入和錯誤輸入,並使用誤差函數教授網絡所需的性能。訓練深度神經網絡可能需要相當龐大的資料集,才足以正確訓練所需性能。機器學習最重要的應用之一是嵌入式視覺領域,其中,各類系統正從視覺實現的系統演進為視覺引導的自動化系統。相較於其他較簡單的機器學習應用,嵌入式視覺應用最主要的區別在於採用二維(2D)輸入格式。
  • 中國式機器換人的最佳實踐是什麼?
    打開APP 中國式機器換人的最佳實踐是什麼? 大話百科天地 發表於 2020-12-24 14:25:10 機器換人影響不僅限於工業生產效率的提升,更在於從根本上克服了傳統工業生產方式下產品成本和產品多樣性之間的衝突,從而推動了從線性產品開發流程向並行產品開發流程的轉變
  • 5個最佳強化學習課程和認證
    一支由全球專家組成的團隊編制了此最佳強化課程,課程,教程,培訓和認證計劃的列表,這些列表可在線獲得。此列表包括免費和付費課程,以幫助您學習強化學習。此外,它也是初學者,中級人員和專家的理想選擇。強化學習專業化(庫塞拉)這項由阿爾伯塔大學提供的強化學習專業課程包括四門不同的課程,將幫助您探索自適應學習系統和人工智慧的力量。在該計劃中,您將學習強化學習解決方案如何通過反覆嘗試和錯誤交互,通過從頭到尾實施完整的RL解決方案來幫助您解決實際問題。該程序是由阿爾伯塔大學經驗豐富的學院設計的,因此您將直接與教員聯繫以解決您的問題。
  • 設計HMI的準則和最佳實踐:做好控制系統的「看門人」
    現在,運行人員要做的事情越來越多,制定決策時需要考慮的數據和信息也更多。通過採用最佳實踐和準則來設計HMI,可以幫助運行人員改進處理信息的方式和工藝操作,提高生產效率。在控制系統中,HMI像是「看門人」,它可防止運行人員被大量數據淹沒,並提供安全的操作指南。
  • 對啊網設計學院:5個專注於移動體驗設計的最佳實踐
    對啊網設計學院:5個專注於移動體驗設計的最佳實踐 來源:財訊網 • 2020-12-16 10:05:13
  • 盤點52個全球人工智慧和機器學習重要會議
    今年 11 月舉行的大會邀請了來自谷歌、Facebook、微軟和亞馬遜等人工智慧前沿公司的頂級科學家,分享了他們在人工智慧研究及應用上的最新成果。谷歌和亞馬遜團隊還在會上開辦了深度學習軟體的培訓課。這次大會是與人工智慧領域的大公司、數據科學家及工程師和前沿技術親密接觸的絕佳機會。上一屆已於 2017 年 11 月 3-5 日在美國舊金山舉行。
  • 《機器學習及R應用》詳細目錄
    機器學習及R應用五天現場班陳強老師(親授)2021/1/20 - 1/24,北京
  • SQL語言簡介:簡單示例、最佳實踐及潛藏陷阱
    在傳統的關係資料庫和較新的NoSQL資料庫技術實現中,SQL都很流行;此外,SQL也被廣泛用於數據分析,大數據處理,與其他程式語言一起構造應用等。這是一種功能強大但簡單的語言。 文中主要分享並闡述:SQL強大功能以及我們為什麼使用它使用中的常見陷阱以及最佳實踐什麼是SQL語言?
  • 當前STEAM 課程設計中的三個陷阱、四個流派和五個關係
    當前 STEAM 課程設計中的三個陷阱、四個流派和五個關係 作者:華帥 發布時間:
  • 何莎:小學數學項目式學習的教學實踐思考 ——以「設計參觀動物園最佳路線」為例
    本文發表於《教學月刊·小學版(數學)》2021年第1期,參考文獻格式:何莎.小學數學項目式學習的教學實踐思考 ——以「設計參觀動物園最佳路線」為例.[J]教學月刊點·小學版(數學),2021(Z1):12-14.
  • 「最佳實踐」C++陷阱與套路
    本文結合號主的工作經驗和學習心得,對C++語言的一些高級特性,做了簡單介紹;對一些常見的誤解,做了解釋澄清;對比較容易犯錯的地方,做了歸納總結;希望藉此能增進大家對C++語言了解,減少編程出錯,提升工作效率。
  • Python+sklearn機器學習應該了解的33個基本概念
    ====機器學習(Machine Learning)根據已知數據來不斷學習和積累經驗,然後總結出規律並嘗試預測未知數據的屬性,是一門綜合性非常強的多領域交叉學科,涉及線性代數、概率論、逼近論、凸分析、算法複雜度理論等多門學科。
  • 七年專欄 最佳閱讀實踐:經典閱讀的三個階段(文法,邏輯和修辭)
  • 教程 | 一文讀懂自學機器學習的誤區和陷阱(附學習資料)
    不要把深度學習作為入門第一課雖然很多人都是衝著深度學習來的,但把深度學習作為機器學習第一課不是個好主意。原因如下:更多討論可以看我的回答:深度學習的教學和課程,與傳統 CS 的教學和課程有什麼區別?1.3.
  • 10個最佳APP開發入門在線學習網站
    接下來的10個APP開發入門在線學習網站是你成為一個初級的APP開發的不二選擇,我們不妨通過學習他們的教程邁出學習APP開發的第一步。根據Payscale的調查顯示,現在的APP開發人員的年薪達到:$66,851。這也是為什麼那麼多初學的開發都想躋身到APP開發這行業的主要原因之一。每當你打開App Store時候,看著琳琅滿目的APP,你肯定會被它們精緻的外觀和巧妙的設計吸引住。