機器學習從業者面臨的8大挑戰
許多人在趕上機器學習(ML)或人工智能(AI)時想象出機器人或終結者。 但是,它們并不是電影中沒有的東西,只是優秀的夢想。 已經在這里了 盡管ML從業人員在從零開發應用程序到生產應用程序的過程中可能會遇到某些挑戰,但我們正處在使用機器學習開發大量優秀應用程序的情況下。
這些挑戰是什么? 讓我們來看看!
1.數據收集
在任何用例中,數據都起著關鍵作用。 數據科學家的60%的工作在于收集數據。 為了讓初學者嘗試機器學習,他們可以輕松地從Kaggle,UCI ML Repository等中查找數據。
要實現實際案例,您需要通過網絡抓取或(通過Twitter等API)收集數據,或者為解決業務問題而需要從客戶端獲取數據(此處ML工程師需要與領域專家協作以收集數據) 。
收集完數據后,我們需要對數據進行結構化并將其存儲在數據庫中。 這需要了解大數據(或數據工程師)的知識,而大數據在這里起著主要作用。
2.訓練數據量少
收集完數據后,您需要驗證數量是否足以滿足用例的要求(如果是時間序列數據,我們至少需要3-5年的數據)。
在進行機器學習項目時,我們要做的兩個重要事情是選擇一種學習算法,并使用一些獲取的數據來訓練模型。 因此,作為人類,我們自然會犯錯,結果可能會出錯。 在這里,錯誤可能是選擇了錯誤的模型或選擇了錯誤的數據。 現在,我所說的不良數據是什么意思? 讓我們嘗試了解。
假設您的機器學習模型是嬰兒,您計劃教嬰兒區分貓和狗。 因此,我們首先指著貓說"這是一只CAT",然后對DOG做同樣的事情(可能多次重復此過程)。 現在,孩子將能夠通過識別形狀,顏色或任何其他特征來區分貓和狗。 就這樣,嬰兒變成了天才(與眾不同)!
以類似的方式,我們使用大量數據訓練模型。 一個孩子可以用較少的樣本數來區分動物,但是機器學習模型甚至需要針對簡單問題的數千個例子。 對于諸如圖像分類和語音識別之類的復雜問題,可能需要數以百萬計的數據。
因此,一件事很清楚。 我們需要訓練具有足夠數據的模型。
3.非代表性訓練數據
培訓數據應代表新案例以更好地進行概括,即,我們用于培訓的數據應涵蓋所有發生的和即將發生的案例。 通過使用非代表性訓練集,訓練后的模型不太可能做出準確的預測。
開發用于在業務問題視圖中對一般情況進行預測的系統被認為是很好的機器學習模型。 即使數據模型從未見過的數據,也將有助于模型表現良好。
如果訓練樣本的數量少,則我們的采樣噪聲是不具代表性的數據,如果用于訓練的策略存在缺陷,那么無數的訓練測試也會帶來采樣偏差。
1936年美國總統大選期間(蘭登對羅斯福),發生了一個調查抽樣偏見的流行案例,《文學文摘》進行了一次非常大的民意調查,向大約1000萬人發送郵件,其中240萬人回答了這一問題,并預測蘭登 將以高度的信心獲得57%的選票。 羅斯福以62%的選票獲勝。
這里的問題在于抽樣方法,用于獲取進行民意測驗的電子郵件地址,《文學文摘》使用過的雜志訂閱,俱樂部會員名單等,這些錢一定會被富有的個人用來投票給共和黨人(因此, 落在)。 此外,由于只有25%的受訪者回答了無回應的偏見。
為了做出準確的預測而沒有任何漂移,訓練數據集必須具有代表性。
4.數據質量差
實際上,我們不會直接開始訓練模型,分析數據是最重要的步驟。 但是我們收集的數據可能尚未準備好進行訓練,例如某些樣本異常,而另一些樣本則具有異常值或缺失值。
在這些情況下,我們可以刪除異常值,或者使用中位數或均值(以填充高度)填充缺失的特征/值,或者簡單地刪除具有缺失值的屬性/實例,或者在有或沒有這些實例的情況下訓練模型。
我們不希望我們的系統做出錯誤的預測,對吧? 因此,數據質量對于獲得準確的結果非常重要。 數據預處理需要通過過濾缺失值,提取和重新排列模型所需的內容來完成。
5.不相關/不需要的特征
垃圾進垃圾出
如果訓練數據包含大量不相關的特征和足夠的相關特征,則機器學習系統將不會給出預期的結果。 機器學習項目成功所需的重要方面之一是選擇好的特征以訓練模型,也稱為特征選擇。
假設我們正在一個項目中,根據我們收集的輸入特征(年齡,性別,體重,身高和位置(即他/她的居住地))來預測一個人需要運動的小時數。
- 在這5特征中,位置值可能不會影響我們的輸出特征。 這是不相關的功能,我們知道沒有此功能可以得到更好的結果。
- 另外,我們可以將兩個特征結合起來以產生更有用的一個特征,即特征提取。 在我們的示例中,我們可以通過消除體重和身高來產生一個稱為BMI的功能。 我們也可以對數據集應用轉換。
- 通過收集更多數據來創建新特征也有幫助。
6.過度擬合訓練數據
假設您訪問了新城市的一家餐館。 您查看了菜單以訂購商品,發現費用或賬單過高。 您可能會想說"城市中的所有餐館都太貴了,負擔不起"。 過度概括是我們經常要做的事情,令人震驚的是,框架也可能陷入類似的陷阱,在AI中,我們稱之為過擬合。

> Overfitting
這意味著該模型運行良好,可以對訓練數據集進行預測,但不能很好地概括。
假設您正在嘗試實施"圖像分類"模型,分別對訓練樣本分別為3000、500、500和500的蘋果,桃子,橘子和香蕉進行分類。 如果我們使用這些樣本訓練模型,則系統更可能將橘子分類為蘋果,因為蘋果的訓練樣本數量過多。 這可以稱為過采樣。
當模型與訓練數據集的噪聲相比過于不可預測時,就會出現過度擬合。 我們可以通過以下方法避免這種情況:
- 收集更多的訓練數據。
- 選擇具有較少特征的模型,與線性模型相比,較高階多項式模型不是優選的。
- 修復數據錯誤,消除異常值,并減少訓練集中的實例數量。
7.訓練數據不足
當模型過于簡單以至于無法理解數據的基本結構時,通常會發生與過度擬合相反的欠擬合。 這就像試圖穿上小號褲子。 通常,當我們缺少用于構建精確模型的信息時,或者當我們嘗試使用非線性信息來構建或開發線性模型時,就會發生這種情況。

> Underfitting
減少欠擬合的主要選項是:
- 特征工程-為學習算法提供更好的特征。
- 消除數據中的噪音。
- 增加參數并選擇功能強大的模型。
8.離線學習和部署模型
機器學習工程在構建應用程序時遵循以下步驟:1)數據收集2)數據清理3)功能工程4)分析模式5)訓練模型和優化6)部署。
糟糕! 我說部署了嗎? 是的,許多機器學習從業者可以執行所有步驟,但缺乏部署技能,由于缺乏實踐和依賴關系問題,對業務基礎模型的了解不足,將其出色的應用程序投入生產已成為最大的挑戰之一, 了解業務問題,模型不穩定。
通常,許多開發人員從像Kaggle這樣的網站收集數據并開始訓練模型。 但實際上,我們需要為數據收集提供一個動態變化的源。 離線學習或批量學習不能用于這種類型的變量數據。 該系統經過培訓,然后投入生產,無需學習即可運行。 由于動態變化,數據可能會漂移。

> Online Learning
始終首先建立一條管道來收集,分析,構建/訓練,測試和驗證任何機器學習項目的數據集,并分批訓練模型。
結論
如果訓練集太小,或者數據沒有被泛化,嘈雜且具有不相關的功能,則系統將無法正常運行。 在練習機器學習時,我們經歷了初學者面臨的一些基本挑戰。
如果您有任何建議,我將很高興聽到。 我很快會再提出另一個有趣的話題。 到那時,待在家里,保持安全并繼續探索!