當前位置:
首頁 > 科技 > 最近三年失敗了兩萬個機器學習項目,原因主要有九個

最近三年失敗了兩萬個機器學習項目,原因主要有九個

作者 | Alberto Artasanchez

譯者 | 劉志勇

編輯 | Debra-AI 前線

1

提出錯誤的問題

如果你提錯了問題,那麼你得到的答案肯定是錯誤的。金融行業和欺詐識別問題就是這樣的一例。本來嘛,最初提出的問題可能是「這筆特定的交易是否存在欺詐?」。如果想要確認是不是存在這個問題,你就需要一個包含欺詐和非欺詐交易示例的數據集。而這個數據集很有可能就是人工幫助下生成的,也就是說,這個數據集里的數據標記可以由專門負責檢測欺詐行為的主題專家(subject matter experts,SME)來決定。但是,專家很有可能使用他們以前所見過的欺詐行為來標記數據集,這樣一來,用這種數據集對模型進行訓練,模型將只會捕獲所標記的老舊模式的欺詐行為。如果犯罪分子發現了一種新的欺詐方式,我們的系統就會無法發現這一欺詐行為。所以,更好的問題可能是「這筆交易是否有異常現象?」。因此,它不一定要去查找過去已被證明存在欺詐行為的交易,它應該尋找的是不符合交易「正常」簽名的交易。即使在最為複雜的欺詐檢測系統中,也要依靠人類來進一步分析預測的欺詐交易來驗證模型的結果。這種方法有一個副作用就是,它很有可能會比以前的模型產生更多的誤報。

這種失敗類型的另一個例子同樣來自金融領域。投資界的傳奇人物 Peter Lynch 就經歷過這種類型的失敗。

在擔任 Fidelity Magellan 基金擔任董事期間,Lynch 的年化回報率高達 29%,在多數年份中超越了市場水平。但 Lynch 自己也指出了美中不足之處。他計算出,他基金中的普通投資者在同一時期只賺了 7% 左右。例如,當 Lynch 遇到挫折時,資金就會通過贖迴流出基金;而當他重回正軌時,資金又流回基金,但這樣一來就錯過了市場的復甦。

看看下面提出的兩個問題,你覺得哪個更好回答?

Fidelity Magellan 基金明年的業績會如何?

明年 Fidelity Magellan 基金的購買或贖回數量是多少?

2

試圖用它來解決錯誤的問題

第二個常犯的錯誤就是不關注業務用例。在提出需求時,你應該將注意力集中在這個問題上:「如果我們解決了這個問題,它會不會大大增加業務的價值呢?」要回答這個問題,當你將問題分解成子任務時,初始任務就應該集中在回答這個問題上。舉個例子,假設你想出了一個人工智慧產品的好點子,現在,你開始想兜售這個點子。讓我們假設這個點子是一項服務,使用這種服務,你可以將全身照上傳到網站,人工智慧應用程序會確定你的尺寸,這樣它就可以根據你的體型,為你量身定做一套適合你的西裝。讓我們來看看完成這個項目需要執行的任務都有哪些吧。

開發人工智慧 / 機器學習技術,從照片中確定身高等尺寸。

設計並創建一個網站及一個手機 App,以便與客戶進行交互。

進行可行性研究,確定此產品是否有市場前景。

作為技術人員,我們會渴望進行設計和編寫代碼,因此,我們可能會立即著手處理前兩項任務。你可以想像,如果我們執行完前兩項任務後,才開始進行可行性研究,而研究結果表明,我們的產品沒有市場,那該是一個多麼可怕的錯誤啊!

3

沒有足夠的數據

我有一些項目已進入生命科學領域,我們遇到的一個問題就是,某些數據根本就買不到,哪怕花多少錢都不行。生命科學行業對受保護的健康信息(protected health information,PHI)的存儲和傳輸非常敏感,因此你所能找到的大多數數據集都會刪除這種信息。在某些情況下,這些信息是相關的,會提高模型的結果準確率。例如,個人位置可能對他們的健康統計有顯著的統計影響:像密西西比州的人群比康涅狄格州的人患糖尿病的可能性更高。但由於這些信息可能無法獲得,因此我們將無法使用。

另一個例子就是金融行業的。在這個領域中可以找到一些最有趣和相關的數據集,但是出於同樣的原因,這些信息中的大部分,都可能非常敏感,並且受到嚴密保護。因此對它的訪問可能會受到很大的限制。但是如果沒有這種訪問許可權,就不可能實現相關的結果。

4

沒有正確的數據

就算你有最好的模型,但你如果使用了錯誤的數據或者臟數據的話,可能會得到預測錯誤的結果。在監督學習中,我們使用之前標記過的數據。在許多情況下,這種標記通常是人工完成的,但有可能會出錯。假設的一個極端例子就是,有一個準確性很完美的模型,但它使用的是不準確的數據,會怎麼樣呢?想一想那個 MNIST 的數據集吧,當我們使用這個數據集來運行模型時,我們假設圖像的人工標記是 100% 準確的。現在,我們假設有三分之一的數據被錯誤標記,會發生什麼樣的結果呢?那麼,不管你的模型有多好,你還會覺得你的模型產生任何像樣的結果,有多大的困難嗎?要記住,「無用數據入,無用數據出」(garbage in, garbage out)這一古老的格言,在數據科學領域仍然存在。

5

有太多的數據

從理論上講,你永遠不會有太多的數據(只要它是正確數據的話)。在實踐中,即使存儲和計算成本、性能有了巨大的進步,我們仍然會受到時間和空間的物理限制。因此,就目前來講,數據科學家最重要的工作之一,就是明智地選擇出他們認為會實現準確的模型預測產生影響的數據源。

舉個例子,我們假設正在嘗試預測嬰兒的出生體重。直覺告訴我們,產婦年齡似乎是一個相關特徵,但母親的名字可能不相關,而地址可能是相關的。另一個例子是 MNIST 數據集,在 MNIST 圖像中,大多數信息都在圖像的中心,因此我們可以在不丟失大量信息的情況下刪除圖像周圍的邊框。

同樣的,在這個例子中,需要人工干預和直覺來確定移除一定數量的邊界像素將對預測產生最小的影響。最後一個降維的例子是使用主成分分析(Principal Component Analysis,PCA)和 T 分布隨機鄰域嵌入(T-distributed Stochastic Neighbor Embedding,t-SNE)。在運行模型之前,確定這些特性中哪些是相關的仍然是計算機的一個難題,但它是一個成熟的領域,可以將該過程實現自動化。與此同時,擁有太多數據仍然是一個潛在的陷阱,可能會破壞你的數據科學項目。

6

招聘錯誤的人

你不會相信醫生會給你修好車子的,對吧?但你應該會相信機械師會給你做好結腸鏡檢查。如果你有一個小型的數據科學實踐,你可能別無選擇,只能依賴一個或幾個人來執行所有的任務,從數據採集和數據獲取、數據清理和數據再加工,特徵工程和生成,到模型選擇以及在生產中部署模型。但隨著團隊的成長,你應該考慮為每一項任務聘請專家。ETL 開發專家所需的那些技能,自然語言處理專家未必也掌握同樣的技能。

此外,對於某些行業,如生物技術和金融,擁有深厚的領域知識應該是有價值的,甚至是至關重要的。然而,擁有主題專家背景和具備良好溝通技巧的一個數據科學家可能是一個合適的選擇。隨著你的數據科學實踐的進展,擁有合適的專業資源確實是一項棘手的平衡工作,但擁有合適的資源和人才庫才是你成功實踐的最重要因素之一。

7

使用錯誤的工具

這裡有很多使用錯誤工具的例子。一種常見的陷阱是諺語「我有一把鎚子,那麼所有東西在我眼裡都只是一枚釘子」(譯註:這是英語諺語,用來形容狹隘的思維方式。對於那些偏愛某種特定的分析或解決問題方法的人,會不由自主地用它來解釋或解決任何現象或問題。)

我舉個行業上更具體的一個例子:最近,你派遣了團隊進行 MySQL 培訓,完成培訓之後,你需要設置一個分析流水線,讓他們牢記所培訓的東西而不會遺忘,於是他們建議使用新的工具。但是,根據流水線將要處理的數據量以及你需要對結果執行的分析量,這種選擇對作業來說,很可能是一種錯誤的選擇。因為許多 SQL 產品對可存儲在單個表上的數據量有嚴格的限制。在這種情況下,使用像 MongoDB 這樣的 NoSQL 產品或者像 AWS Redshift 這樣的高度可擴展的列式資料庫(columnar database)可能是更好的選擇。

8

沒有正確的模型

模型,就是對現實的簡化表示。這些簡化是為了去掉不必要的錯誤、雜訊和細節。一個好的模型能夠讓用戶專註於在特定領域中重要的現實的特定方面。例如,在市場營銷應用中,保留客戶電郵和地址等屬性可能很重要。但在醫療環境中,患者的身高、體重和血性可能更為重要。這些簡化都是基於假設;這些假設在某些情況下可能成立,但在其他情況下不見得同樣成立。這一點表明,在某種情況下運行良好的模型,在另一種情況,可能未必也適用。

在數學中有一個著名的定理:「沒有免費午餐定理」(No Free Lunch,NFL)。這個定理指出,沒有一種模型能夠適用於所有的問題。適合一個領域的假設運行很好的模型,未必適合另一個域,因此,在數據科學中使用多個模型進行迭代,試圖找出最適合給定情況的模型並不罕見。這點在監督學習尤為如此。驗證或交叉驗證通常用於評估具有不同複雜性的多個模型的預測準確率,以找到最合適的模型。此外,一個有效的模型也可通過多種演算法進行訓練得到,例如,線性回歸可以通過正規方程或梯度下降來訓練。

AI 前線註:沒有免費午餐定理 (No Free Lunch,簡稱 NFL) 是 wolpert 和 Macerday 提出的「最優化理論的發展」之一。該定理的結論是,由於對所有可能函數的相互補償,最優化演算法的性能是等價的。該定理暗指,沒有其它任何演算法能夠比搜索空間的線性列舉或者純隨機搜索演算法更優。該定理只是定義在有限的搜索空間,對無限搜索空間結論是否成立尚不清楚。

根據用例的不同,確定不同模型和演算法的速度、準確性和複雜性之間的權衡是至關重要的,並使用最適合給定領域的模型。

9

沒有正確的標準

在機器學習中,能夠評估已訓練的模型的性能至關重要。必須根據訓練數據和測試數據來衡量模型的性能。這些信息將用於選擇要使用的模型、超參數選擇以及確定模型是否已準備好用於生產。

為了衡量模型的性能,最重要的就是要為手頭的任務選擇最佳評估指標。關於指標選擇的文獻有很多,因此我們不會深入討論這個話題,但是在選擇指標時,我們要及記住的一些參數是:

機器學習問題的類型:監督學習、非監督學習和強化學習。

監督學習的類型:二元、分類或回歸。

數據集的類型:如果數據集不平衡,則不同的指標可能更合適。

10

結論

導致項目失敗的方法有很多,但解決問題的最好方法只有一種。成功的定義,可以由不同的標準來衡量。這個解決方案是尋找快速而骯髒的補丁來解決問題的嗎?你是在尋找最好的解決方案嗎?你看重的是模型訓練速度呢,還是看推理端點可用性呢?或者模型的準確性?也許發現某個解決方案不起作用也可視為一個勝利,因為現在你不必在這個解決方案上再浪費時間,可以把重點放在尋找其他替代方案上。

英文原文

https://www.kdnuggets.com/2018/07/why-machine-learning-project-fail.html


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 InfoQ 的精彩文章:

人工智慧白熱化,運維脫帽「背鍋俠」 | CNUTCon
FB大規模重構React Native,Airbnb宣布回歸原生,前端巨變來臨?

TAG:InfoQ |