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