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