引言
部署機器學習的過程涉及多個步驟。首先選擇一個模型,針對特定任務加以訓練,用測試數(shù)據(jù)進行驗證,然后,將該模型部署到實際系統(tǒng)中并進行監(jiān)控。在本文中,我們將討論這些步驟,將每個步驟拆分講解來介紹機器學習。
機器學習是指在沒有明確指令的情況下能夠?qū)W習和加以改進的系統(tǒng)。這些系統(tǒng)從數(shù)據(jù)中學習,用于執(zhí)行特定的任務或功能。在某些情況下,學習,或者更具體地說,訓練,是在受監(jiān)督的方式下進行,當輸出不正確時對模型加以調(diào)整,使其生成正確的輸出。在其他情況下,則實行無監(jiān)督學習,由系統(tǒng)負責梳理數(shù)據(jù)來發(fā)現(xiàn)以前未知的模式。大多數(shù)機器學習模型都是遵循這兩種范式(監(jiān)督學習與無監(jiān)督學習)。
現(xiàn)在,讓我們深入研究“模型”的含義,然后探究數(shù)據(jù)如何成為機器學習的燃料。
機器學習模型
模型是機器學習解決方案的抽象化表述。模型定義架構(gòu),架構(gòu)經(jīng)過訓練變成產(chǎn)品實現(xiàn)。所以,我們不是部署模型,而是部署經(jīng)過數(shù)據(jù)訓練的模型的實現(xiàn)(在下一節(jié)中有更加詳細的介紹)。模型 + 數(shù)據(jù) + 訓練=機器學習解決方案的實例(圖1)。
圖1:從機器學習模型到解決方案。(圖源:作者)
機器學習解決方案代表一個系統(tǒng)。它們接受輸入,在網(wǎng)絡中執(zhí)行不同類型的計算,然后提供輸出。輸入和輸出代表數(shù)值型數(shù)據(jù),這意味著,在某些情況下,需要轉(zhuǎn)譯。例如,將文本數(shù)據(jù)輸入深度學習網(wǎng)絡需要將單詞編碼成數(shù)字形式,考慮到可以使用的單詞的多樣性,該數(shù)字形式通常是高維向量。同樣,輸出可能需要從數(shù)字形式轉(zhuǎn)譯回文本形式。
機器學習模型有多種類型,如神經(jīng)網(wǎng)絡模型、貝葉斯 (Bayesian) 模型、回歸模型、聚類模型等。您選擇的模型是基于著手解決的問題。
對于神經(jīng)網(wǎng)絡來說,模型從淺多層網(wǎng)絡到深度神經(jīng)網(wǎng)絡,類型豐富,而深度神經(jīng)網(wǎng)絡還包括多層特化神經(jīng)元(處理單元)。深度神經(jīng)網(wǎng)絡還有一系列基于目標應用的可用模型。例如:
如果您的應用側(cè)重于識別圖像中的對象,那么卷積神經(jīng)網(wǎng)絡 (CNN) 就是理想的模型。CNN已被應用于皮膚癌檢測,效果優(yōu)于皮膚科醫(yī)生的平均水平。
如果您的應用涉及預測或生成復雜序列(如人類語言句子),那么遞歸神經(jīng)網(wǎng)絡 (RNN) 或長短期記憶網(wǎng)絡 (LSTM) 是理想模型。LSTM也已經(jīng)應用到人類語言的機器翻譯中。
如果您的應用涉及用人類語言描述圖像內(nèi)容,可以使用CNN和LSTM的組合(圖像輸入CNN,CNN的輸出代表LSTM的輸入,后者發(fā)出詞匯序列)。
如果您的應用涉及生成現(xiàn)實圖像(如風景或人臉),那么生成對抗網(wǎng)絡 (GAN) 是當前最先進的模型。
這些模型代表了當今常用的部分深層神經(jīng)網(wǎng)絡架構(gòu)。深度神經(jīng)網(wǎng)絡深受歡迎,因為它們可以接受非結(jié)構(gòu)化數(shù)據(jù),如圖像、視頻或音頻信息。網(wǎng)絡中的各層構(gòu)成一個特征層次結(jié)構(gòu),使它們能夠?qū)Ψ浅碗s的信息進行分類。深度神經(jīng)網(wǎng)絡已經(jīng)在許多問題領域展示出先進的性能。但是像其他機器學習模型一樣,它們的準確性依賴于數(shù)據(jù)。接下來我們就探討一下這個方面。
數(shù)據(jù)和訓練
無論在運算中,還是在通過模型訓練構(gòu)建機器學習解決方案的過程中,數(shù)據(jù)皆為驅(qū)動機器學習的燃料。對于深度神經(jīng)網(wǎng)絡的訓練數(shù)據(jù),探索數(shù)量和質(zhì)量前提下的必要數(shù)據(jù)至關重要。
深度神經(jīng)網(wǎng)絡需要大量數(shù)據(jù)進行訓練;按經(jīng)驗來說,圖像分類中每類需要1,000張圖像。但具體答案顯然取決于模型的復雜度和容錯度。實際機器學習解決方案中的一些示例表明,數(shù)據(jù)集有各種大小。一個面部檢測和識別系統(tǒng)需要45萬張圖像,一個問答聊天機器人需要接受20萬個問題和200萬個匹配答案的訓練。根據(jù)要解決的問題,有時較小的數(shù)據(jù)集也足夠。一個情感分析解決方案(根據(jù)書面文本確定觀點的極性)只需要數(shù)萬個樣本。
數(shù)據(jù)的質(zhì)量和數(shù)量同等重要。鑒于訓練需要大數(shù)據(jù)集,即使少量的錯誤訓練數(shù)據(jù)也會導致糟糕的解決方案。根據(jù)所需的數(shù)據(jù)類型,數(shù)據(jù)可能會經(jīng)歷一個清洗過程。此過程確保數(shù)據(jù)集一致、沒有重復數(shù)據(jù)且準確、完整(沒有無效或不完整數(shù)據(jù))。有可以支持此過程的工具。驗證數(shù)據(jù)的偏差也很重要,確保數(shù)據(jù)不會導致有偏差的機器學習解決方案。
機器學習訓練對數(shù)值型數(shù)據(jù)進行運算,因此,根據(jù)您的解決方案,可能需要預處理步驟。例如,如果數(shù)據(jù)是人類語言,其必須首先轉(zhuǎn)譯為數(shù)字形式才能處理。可以對圖像進行預處理以保持一致性。例如,除了其他運算外,輸入深度神經(jīng)網(wǎng)絡的圖像還需要調(diào)整大小和平滑處理,以去除噪聲。
機器學習中最大的問題之一是獲取數(shù)據(jù)集來訓練機器學習解決方案。根據(jù)您的具體問題,這個工作量可能非常大,因為可能沒有現(xiàn)成的數(shù)據(jù),需要您另外設法獲取。
最后,應該分割數(shù)據(jù)集,分別用作訓練數(shù)據(jù)和測試數(shù)據(jù)。訓練數(shù)據(jù)用于訓練模型,在訓練完成后,測試數(shù)據(jù)用于驗證解決方案的準確性(圖2)。
圖2:分割數(shù)據(jù)集分別用于訓練和驗證。(圖源:作者)
有工具來幫助完成這個過程,大多數(shù)框架都擁有“分割”功能,用于分割訓練和測試數(shù)據(jù)。現(xiàn)在我們來看一些簡化機器學習解決方案構(gòu)造的框架。
框架
現(xiàn)在,不再需要從頭開始構(gòu)建機器學習模型。您可以使用包含這些模型和其他工具的框架來準備數(shù)據(jù)和驗證您的解決方案。這些框架還提供用于部署解決方案的環(huán)境。選擇哪個框架通常取決于您的熟悉程度,但在剛開始的時候可以選擇一個適合您要使用的應用與模型的框架。
TensorFlow是最好的深度學習框架。它支持所有流行的模型(CNN、RNN、LSTM等),并允許您使用Python或C++進行開發(fā)。從高端服務器到移動設備,均可部署TensorFlow解決方案。如果您剛剛上手,TensorFlow是一個不錯的起點,它有教程和豐富的文檔。
CAFFE最初是一個學術(shù)項目,但在發(fā)布到開源后,已經(jīng)發(fā)展成為一個流行的深度學習框架。CAFFE采用C++編寫,但也支持Python模型開發(fā)。同TensorFlow一樣,它也支持廣泛的深度學習模型。
PyTorch的框架中。PyTorch是另一個很好的選擇,它基于豐富的可用信息,包括構(gòu)建不同類型解決方案的實踐教程。
R語言和環(huán)境是機器學習和數(shù)據(jù)科學的流行工具。其為交互式工具,可幫助您逐步構(gòu)建解決方案的原型,同時分階段查看結(jié)果。有了Keras(一個開源的神經(jīng)網(wǎng)絡庫),您可以用極少量的開發(fā)投入來構(gòu)建CNN和RNN。
模型審核
一旦模型經(jīng)過訓練并滿足了準確性要求,即可部署到生產(chǎn)系統(tǒng)中。但是到了這一步就需要審核解決方案,以確保其符合要求。考慮到?jīng)Q策是由模型來做以及對人們的影響,這一點尤為重要。
有些機器學習模型是透明的,可以理解(例如,決策樹)。但深度神經(jīng)網(wǎng)絡等其他模型被認為是“黑箱”,決策是由數(shù)百萬個無法用模型本身解釋的計算做出的。因此,過去一度可以接受定期審核,但是,連續(xù)審核正在迅速成為這些暗箱情況下的標配,因為錯誤是不可避免的。一旦發(fā)現(xiàn)錯誤,這些信息可以用作調(diào)整模型的數(shù)據(jù)。
另一個考慮是解決方案的生命周期。模型會衰退,輸入數(shù)據(jù)會發(fā)生變化,從而導致模型性能的變化。因此,必須接受解決方案隨著時間的推移會變得羸弱,機器學習解決方案必須隨著周圍世界的變化而不斷做出改變。
總結(jié)
為了部署機器學習解決方案,我們從一個問題開始,然后考慮可能的解決模型。接下來是獲取數(shù)據(jù),經(jīng)過正確清理和分割,就可以使用機器學習框架訓練和驗證模型。并非所有的框架都是相同的,您可以根據(jù)您的模型和經(jīng)驗來選擇和應用。然后,使用該框架部署機器學習解決方案,通過適當?shù)膶徍耍鉀Q方案可以在真實世界中使用實時數(shù)據(jù)進行運算。
審核編輯:郭婷
-
C++
+關注
關注
22文章
2114瀏覽量
73793 -
機器學習
+關注
關注
66文章
8438瀏覽量
132929 -
python
+關注
關注
56文章
4807瀏覽量
84955
發(fā)布評論請先 登錄
相關推薦
評論