當前位置:
首頁 > 知識 > 導致機器學習項目失敗的7個原因

導致機器學習項目失敗的7個原因

機器學習正在改變這個世界。然而,並非每一個機器學習項目都能夠取得成功。根據在機器學習領域多年的經驗,我們總結出了幾個常見的導致機器學習項目失敗的原因。了解這些問題,以及它們如何產生,將有助於你更好地評估下一個機器學習項目的可行性,最重要的是,這也有助於讓項目的實際效果達到你的團隊的期望。

1、不良的數據

2、選定錯誤的目標:解釋型 VS 預測型

3、混淆相關性和因果關係

4、不做探究就進行優化

5、意料之外的數據偏差

6、未明確項目終點

7、選擇錯誤的模型訓練周期

1、不良的數據

獲得良好的數據對於機器學習來說是至關重要的。這要求數據必須滿足整潔性、易得性和相關性的要求。

整潔性要求數據必須是完整的(比如:沒有丟失時間數據)、正確的(檢驗數據的準確性,並在必要的時候進行修正)以及統一的(對於涉及到的所有時間或者事件,其數據格式是一致的)。項目中應該包含現在和將來能夠手動或者自動檢測數據整潔性的內部流程或者工具。

易得性要求不論是在特定的探究中還是在大規模的模型訓練中,都能夠快速地獲得數據。探究所需的數據應該由一個地方(數據池,數據倉庫,或者類似的數據平台)提供,數據科學家能夠自由地查詢而不需要擔心干擾實時系統。這通常需要通過構建一個專門設計的分析資料庫來實現。(詳見OLAP)

相關性要求在機器學習中所使用的數據必須與項目是相關的。舉個例子,如果你想要利用機器學習來了解顧客,你需要獲得的數據就不只是顧客的姓名和電子郵箱了,還需要其他的一些信息。如果機器學習的目標是來結果進行預測,那麼你的模型訓練數據應該包括很多種達到這種結果的範例。

如果你的數據不符合上述要求,那麼你的機器學習項目極有可能失敗。在確定機器學習的項目的規模之前,請先確保你完全了解了你的數據。

導致機器學習項目失敗的7個原因

打開今日頭條,查看更多圖片

2、選定錯誤的目標:解釋型 VS 預測型

機器學習模型的選擇存在一個基本的權衡:要麼是優先向人們解釋事件規律,要麼是預測事件結果。你所選擇的目標的類型將會極大地影響到項目的開發過程。

如果一個機器學習的目標是去探知真實世界的規律,或者如果存在限定如何決策的嚴苛要求,那麼你的模型能夠對它所研究的事件給出強有力的解釋將會比生成極其準確的預測更為重要。所以這就意味著數據轉換,以及你的模型的選擇,都必須足夠精簡。

如果你的目標是提供最佳的結果預測,那麼將會使用到跟上述不同的工具集。比如,對反饋給模型的數據進行複雜的變換,將有助於凸顯那些相對更加重要的差異。你也可以使用複雜的模型,比如神經網路,它的運作更像是一個「黑匣子」。

對於特定的項目,必須儘早地決定其目標類型是解釋型還是預測型。錯誤的目標將會迫使你的團隊從頭開始一個新的項目。值得注意的是,此時進行的項目將變成探究如何從預測性模型中獲得更好的解釋,或者如何從解釋型模型中得到更準確的預測。

3、混淆相關性和因果關係

相關性並不是因果關係。在應用從機器學習中得到的結果時,必須牢記《Statistics 101》一書中的這句口號。利用機器學習可以發現數據的相關性,但這並不是直接的因果關係。

舉個例子,模型可能會得出經常瀏覽你的網站中常見問題解答頁面的人更有可能購買你的產品的結論。但這並不意味這你需要立刻進行一次大規模的營銷活動,目的是將所有人都直接引導到常見問題解答頁面。在這個例子中,一個很普通的因素,比如顧客對產品的興趣,更有可能導致這種問題。相反,在顧客瀏覽過程中,常見問題解答頁面中的信息可能並沒有及時地提供給顧客,所以你應該嘗試讓常見問題解答頁面的鏈接更加醒目。

在根據機器學習得出的結果做出戰略性經營決策時,有必要通過試驗來確實其因果關係。在上述例子中,你可以改變相關因素讓一小部分顧客獲得不同的感受(比如更加醒目的常見問題解答頁面鏈接),從中觀察這個因素是如何影響顧客的購買行為。在這種情況下,機器學習的強大之處在於能夠從大量的數據當中找到事件之間的相關性,從而指導實驗的進行,來獲得全新的和更好的理解。

導致機器學習項目失敗的7個原因

4、不做探究就進行優化

當你要對機器學習的輸出結果進行部署時,建立能夠不斷驗證並持續改進的模型是至關重要的。如果缺乏這一點,你的機器學習項目將無法適應現實世界的變化,這很可能導致部署的項目變成一個「瞎子」。

在構建依照某項操作自動進行決策的模型(例如產品推薦引擎)時,你必須明白這不是簡單地將你所謂的「最佳」模型應用於所有用戶,而是應該向部分用戶推薦一組不同的產品,從中探索實現產品推薦功能的其他方法。如果缺少了這個過程,即便是最好的模型,遲早也會做出錯誤的決策,這都是因為它停止了學習。

對於解釋型模型,應該保證數據始終是動態變化的,這樣才能不斷地驗證所得到的解釋的正確性,同時生成新的結果。舉個例子,如果之前所使用的機器學習項目發現了一種更好的方式來向你的用戶推薦產品,那麼就應該留出一部分營銷預算來嘗試這種新的方式,從而確保當前的策略仍然是有效的。

如果你只是不斷地優化機器學習的輸出結果,那麼項目將因為模型缺乏學習而失敗。

5、意料之外的數據偏差

機器學習模型的核心就是以自動化方式來探索數據中所蘊含的結構規律和運作模式。自動化是非常強大的,但也有可能導致一些意外風險。

比如,早期開發的用於辨別己方坦克和敵方坦克的圖像識別防禦系統,在實驗階段被寄予了厚望,但是最終還是在實際應用中敗下陣來。所有用於模型訓練的己方坦克圖像都是在白天拍攝的,但是最終該模型所能區分的只是白天和晚上,而不是己方坦克和敵方坦克。因為模型訓練是自動實現的,所以模型並沒有意識到自己所識別的對象是錯誤的。

亞馬遜開發的用於人才招聘的機器學習項目最近宣布失敗,因為該模型是利用含有偏差的數據訓練得到的。該模型嘗試通過對簡歷進行過濾篩選,從中找到最合適的候選人。但是由於模型是利用以往的招聘信息進行訓練的,這些數據中存在明顯的性別歧視,導致在篩選過程中將女性候選人排除在外。

在機器學習演算法中,真實世界中的規律都通過訓練模型所用到的數據反映出來。必須要確保你所使用的數據儘可能正確地反映了現實世界,否則的話,整個項目就很可能無法投入使用。

6、未明確項目終點

數據科學和機器學習項目並不可能真正地「完成」。但為了保證其實用性,任何項目都必須要有終點。開發人員總是會找到方法來提高模型預測結果的準確性或者讓模型得出的結論更加令人信服,但是這也會相應地消耗額外的人力資源、計算資源以及對應的商業成本。明確制定項目的開發計劃是很有必要的,這樣你才能知道,對於特定的項目如何判斷項目消耗資源的多少。

目前存在有大量的機器學習演算法,而且每天都會有許多新的演算法產生,這些演算法甚至會有各種各樣的實現方式和使用方法。如果你不拿出充足的時間去研究各種不同的模型,那麼你將可能錯過更適用於你的數據和事件的模型。換個角度,你不可能永遠重複地研究如何提高指標的百分點來改進模型。此外,有時得到的數據很可能只是隨機雜訊,這些數據並不能作為決策依據。綜上所述,必須要限制一個項目中所投入的資源的數量,因為這些資源也可以用到其他地方。

我們在Retina所做的工作就是去實踐從敏捷軟體開發過程中所獲得的經驗,即不斷強調項目終止節點,直到項目結束。我們的想法是從一開始便限制項目所使用的資源,然後反覆地從模型中得到結果並根據效果來決定是否需要繼續添加更加複雜的內容。這就確保了儘快實現目標,同時也避免了消耗大量資源在遙不可及的目標上。

導致機器學習項目失敗的7個原因

7、選擇錯誤的模型訓練周期

機器學習的模型通過數據來感知和理解真實世界。但是世界是不斷變化的,你必須在開發過程中考慮世界變化的速率。

如果模型是在很短的時間內進行訓練,那麼該模型將無法應對一些不常發生的情況。比如,模型可能會忽略聖誕假期對於顧客購買行為的影響。

但是如果模型訓練時間過長,那麼模型可能會試圖去理解過去的世界是怎樣的,而不會去關注未來的世界將如何發展。比如,你可能無意中模擬了一場發生在10年前的大衰退期間的行為。

適當的模型訓練周期,必須保證在模型訓練周期內能夠挖掘到你所需的變化規律,所以最終還是需要根據實際情況來確定。模型訓練周期的確定應該由機器學習開發團隊和基於某些探究分析應用模型結果的人來共同完成。不要等到機器學習項目已經結束了才來考慮模型訓練周期。

英文原文:https://retina.ai/blog/7-ways-machine-learning-projects-fail/

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

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


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

TAG:Python部落 |