使用機器學習前,企業需要做的10項準備工作

並非每一個問題都可以通過機器學習來解決,也並不是每個企業都為AI的應用做好了準備。

比如,企業要確定具體的應用場景、是否有足夠的數據進行分析、要建立預測模型、要有定義模型和訓練模型的人員和工具......等等。

為此,本文將具體闡述使用人工智能、深度學習和機器學習時,企業需要做的10項準備工作。

-1- 擁有足夠多的數據

足夠多的相關數據是預測和特徵識別的必要條件。那麼,企業到底需要多少數據?無論是進行普通的統計預測,還是機器學習或者深度學習,要考慮的因素越多,所需的數據就越多。總的來說,機器學習比統計預測需要更多的數據,而深度學習所需的數據更是成倍的。

以銷售預測問題為例,由於零售行業的季節性很強,這就要求企業積累多年具有統計學意義的重要月度數據,以便能夠校正每月的週期性變化並建立年度趨勢,從而用於標準的時間序列分析模型。

比如,企業可以通過統計模型來分析5年內全國範圍連鎖店的每月襯衫銷售額,並基於此預測下個月的襯衫總銷售量,以及諸如某地女襯衫銷售額佔全國總銷售額的百分比、藍色短袖襯衫的銷售額佔襯衫總銷售額的百分比等更具體的數字。當然,在這個過程中,企業還需要特別注意實際結果與模型預之間的差距。

而如果還要考慮外部因素,例如天氣和時尚趨勢。企業還可以把歷史氣象數據引入到模型中進行測試。當然,在時間序列統計模型中這麼做可能比較困難,但可以嘗試使用決策樹迴歸模型來實現。

使用機器學習前,企業需要做的10項準備工作

如上圖,企業可以通過嘗試其它7種用於迴歸的機器學習模型,然後把每種模型的“成本”(歸一化誤差函數)與去年的實際結果進行比較,從而找出最佳模型。

例如,當企業想知道下個月海軍藍色的衣服比去年同期賣得更好還是更差?就可以查看海軍藍服裝的所有月度銷售額並預測年度時尚趨勢,也可以將其引入到機器學習模型中進行分析。除此之外,企業也可以根據時尚媒體上獲取的信息,對模特進行手動更正。

在這一過程中,通過創建一個深度神經網絡,能夠讓預測效果更好。你甚至會發現,對於添加的每個隱藏層,都可以將回歸誤差提高几個百分點,直到增加下一層再也無法改善效果為止。其中,收益遞減的關鍵,可能是因為模型中沒有更多功能可以識別,或者也有可能是因為沒有足夠的數據來支持更多的提升空間。

-2- 數據科學家

當然,企業必須要有一個能夠建立上面提到的所有模型的人。他需要足夠的經驗、直覺、編程能力和統計學背景。

即便當前很多機器學習的產品和服務提供商都表示,“任何人”或“任何商業角色”都可以使用他們預先訓練好的應用機器學習模型。但現實情況是,企業的數據可能並不適用現有模型。因此,還需要數據分析師和數據科學家來指導和幫助對模型進行訓練。

-3- 追蹤和採集重要的相關變量數據

此外,企業還需要具有相關變量的數據,從多個維度採集和使用數據,從而避免統計上所說的“不明原因的方差”。

當然,某些獨立變量(如天氣觀測)的測量和採集是很難、不切實際或者高成本的。以化學領域為例,當你將鉛電鍍到銅上時,就可以測量氟硼酸電鍍液的溫度和濃度,並記錄正極上的電壓。但這要求溶液中含有的肽是適量的,從而獲得良好的粘附性。否則,你無法知道這關鍵催化劑的數量,也無法使用其他變量解釋電極板質量的變化。

-4- 找到清理和轉換數據的方法

通常情況下,數據都非常複雜,其質量也常常參差不齊。比如,在採集過程中,可能缺少一個或多個值,個別值也可能超出範圍或與其他值不一致,回答問題的人可能不瞭解問題或者會編造答案等等。

而這,則意味著分析過程中的數據過濾需要花費最多的精力,這甚至可能佔到總分析時間的80%到90%。如果在ETL(提取、轉換和加載)過程中將所有數據保留在數據倉庫或數據湖中,就可能讓無關的或者質量不高的數據也被保存下來。

當然,即使是經過精確過濾的數據也可能需要進一步轉換,才能對其進行良好的分析。與統計方法類似,當每個可能狀態的參數相似時,即當所有變量的範圍都歸一化時,機器學習模型的效果最好。因此,企業必須找到能夠更好地清理和轉換數據的方法。

-5- 重新審視所有變量數據及其相關性

下一步,我們需要退後一步,再看看所有的變量及其相關性。

探索式數據分析可以快速顯示所有變量的範圍和分佈,不管相關變量之間是相互依賴的還是獨立的、集群在哪裡、哪裡可能有異常值。當企業擁有高度相關的變量時,通常從分析中刪除一個或者多個變量是有用的。企業還可以執行類似於逐步多元線性迴歸的方法來確定最佳的變量選擇。

然而,這一併不意味著最終模型是線性的,只是在引入更多複雜因素之前,需要嘗試一下簡單線性模型;如果企業的模型中有太多的專業術語,最終得到的將會是一個由多種因素決定的系統模型。

-6- 通過反覆嘗試尋找最佳模型

只有一種方法可以找到給定數據集的最佳模型:也就是——嘗試所有這些模型。

如果企業的目標是針對一個探索性很強但具有挑戰性的領域(例如圖片特徵識別和語言識別),就可能只會嘗試某個所謂“最佳”的模型。然而,這些模型通常是計算密集度最高的深度學習模型,例如,在圖像識別的情況下具有卷積層以及用於語音識別的長期短期記憶(LSTM)層。如果企業需要訓練這些深度神經網絡,就需要比辦公環境更高的計算能力。

-7- 擁有訓練深度學習模型所需的計算能力

數據集越大,深度學習模型中的層就越多,訓練神經網絡所需的時間也就越長。

關於訓練時間的問題,有一個方法就是使用通用圖形處理單元(GPU)來解決。一個K80 GPU配合CPU,其訓練速度通常可以達到僅使用CPU的5到10倍。如果企業可以將網絡的整個“內核”整合到GPU的本地內存中,那麼訓練速度甚至可以達到僅使用CPU的100倍。

除了單個GPU之外,企業還可以設置協調的CPU和GPU網絡,以便在更短的時間內解決更大的問題。除非你願意花一整年時間來訓練深度學習模型,並擁有龐大的預算,否則你會發現,在雲上租用GPU是最具成本效益的選擇。包括CNTK、MXNet和TensorFlow在內的幾種深度學習框架都支持CPU和GPU的並行計算,並且具有合理的縮放係數,可用於支持GPU的超大型虛擬機(VM)實例網絡。

-8- 學會調整或者嘗試不同的方法

簡單的統計模型考驗通過機器學習和深度學習為企業的模型等運作制定標準。但如果你不能用給定的模型來提高分析水平,就應該調整或者嘗試一種不同的方法,比如,可以在超參數調整算法的控制下並行設置多個模型訓練,並使用最佳結果指導下一個階段。

-9- 部署預測模型

最終,訓練好的模型可以部署和運行在服務器上、雲中、個人計算機上或者手機上,以供企業實時地應用。深度學習框架提供了將模型嵌入到Web和移動應用中的各種選擇。亞馬遜、谷歌和微軟也都展示了自己在這方面的實踐,甚至有可以通過語音識別操作的消費電子設備和智能手機應用。

-10- 定期更新模型

當然,你可能還會發現,即便是訓練好的模型,由於數據會隨著時間的推移而變化,因此模型的錯誤率也會隨著時間的推移而增加。比如,企業的銷售模式會發生變化,競爭對手會發生變化,款式會發生變化,經濟形勢會發生變化……

為此,大多數深度學習框架都可以選擇對舊數據進行再訓練,並用新模型替換原來的預測服務。如果你每月都能定期更新的話,基本上就能夠保持與時俱進。否則,最終你的模型就會變得太過時而不可靠。


分享到:


相關文章: