5大關(guān)鍵步驟!如何構(gòu)建深度學(xué)習(xí)模型?
本文轉(zhuǎn)載自公眾號(hào)“讀芯術(shù)”(ID:AI_Discovery)。
深度學(xué)習(xí)的關(guān)注度正持續(xù)上升,它是機(jī)器學(xué)習(xí)的一個(gè)子領(lǐng)域,基于人工神經(jīng)網(wǎng)絡(luò)的概念來執(zhí)行特定任務(wù)。然而在理論上,人工神經(jīng)網(wǎng)絡(luò)與人類大腦的運(yùn)作方式并不相同,甚至都不相似!
它們之所以被命名為人工神經(jīng)網(wǎng)絡(luò),是因?yàn)樗鼈兛梢酝瓿纱_切的任務(wù),同時(shí)達(dá)到理想的精確度,而無需使用任何特定規(guī)則進(jìn)行明確編程。
幾十年前AI失敗的主要原因是缺乏數(shù)據(jù)和計(jì)算能力。經(jīng)過數(shù)年時(shí)間,這一情況已顯著改善。基于大型科技巨頭和跨國公司投資AI數(shù)據(jù),數(shù)據(jù)的豐富程度已大大提高。而鑒于圖形處理單元(GPUs)功能強(qiáng)大,計(jì)算能力也不再是挑戰(zhàn)。
本文將詳細(xì)討論構(gòu)建深度學(xué)習(xí)模型的五個(gè)基本步驟,以及如何使用這些步驟來處理各種深度學(xué)習(xí)項(xiàng)目。
1. 定義架構(gòu)
深度學(xué)習(xí)是解決復(fù)雜任務(wù)的最優(yōu)方法之一,例如圖像分類或分割、人臉識(shí)別、目標(biāo)檢測(cè)、聊天機(jī)器人等。但是,對(duì)于每一個(gè)復(fù)雜的項(xiàng)目,深度學(xué)習(xí)模型均需進(jìn)行五個(gè)固定步驟以完成當(dāng)前任務(wù)。
構(gòu)建深度學(xué)習(xí)模型的第一步,也是最重要的一步就是成功定義網(wǎng)絡(luò)和架構(gòu)。根據(jù)所執(zhí)行任務(wù)的類型,一般傾向于使用特定類型的體系結(jié)構(gòu)。
通常,對(duì)于計(jì)算機(jī)視覺任務(wù),如圖像分割、圖像分類、面部識(shí)別和其他類似項(xiàng)目,首選卷積神經(jīng)網(wǎng)絡(luò)(CNNs)或ConvNets。而對(duì)于自然語言處理和與文本數(shù)據(jù)相關(guān)的問題,遞歸神經(jīng)網(wǎng)絡(luò)(RNNs)和長(zhǎng)短期記憶(LSTMs)更為可取。
在此步驟中,還可以決定整個(gè)深度學(xué)習(xí)架構(gòu)的模型構(gòu)建結(jié)構(gòu)類型。執(zhí)行此操作的三個(gè)主要步驟是順序模型(Sequential Models)、功能性API或用戶定義的自定義架構(gòu)。下文將更詳細(xì)地討論每種方法。
2. 編譯模型
首選架構(gòu)構(gòu)建完成后,將繼續(xù)進(jìn)行構(gòu)建模型的第二個(gè)步驟——編譯模型。編譯步驟通常是TensorFlow深度學(xué)習(xí)框架中的一行代碼,可以采用model.compile()函數(shù)進(jìn)行編譯。
在深度學(xué)習(xí)中,編譯的要求是配置模型,以便成功完成擬合/訓(xùn)練過程。正是在編譯中,為評(píng)估程序定義了培訓(xùn)程序的一些關(guān)鍵組成部分。
列舉一些必要參數(shù),下一步需要分配損耗、優(yōu)化器和指標(biāo)。損耗的種類取決于所遇問題的類型以及亟待解決的問題。優(yōu)化器通常是指用于計(jì)算的adam、RMSprop或類似優(yōu)化器;指標(biāo)是指用于分析的準(zhǔn)確性度量或任何其他由用戶定義的衡量標(biāo)準(zhǔn)。
3. 擬合模型
圖源:unsplash
成功定義整體架構(gòu)并編譯模型后,第三個(gè)邏輯步驟是在訓(xùn)練數(shù)據(jù)集上擬合模型。擬合功能可在固定數(shù)量的周期(數(shù)據(jù)集上的迭代)內(nèi)訓(xùn)練模型。借助擬合功能,可以確定訓(xùn)練周期的數(shù)量、輸入和輸出數(shù)據(jù)、驗(yàn)證數(shù)據(jù)等重要參數(shù)。擬合功能可用于計(jì)算和估算這些基本參數(shù)。
在培訓(xùn)過程中,必須持續(xù)評(píng)估擬合步驟。重要的是要確保所訓(xùn)練的模型在提高準(zhǔn)確性和減少整體損失的同時(shí),運(yùn)行良好。
同樣重要的是,要考慮到該模型沒有以任何方式被過度擬合。為此,必須使用Tensorboard之類的工具進(jìn)行持續(xù)評(píng)估,以分析各種圖表,并了解這些模型是否有可能被過度擬合。一旦訓(xùn)練完成并對(duì)固定數(shù)量的周期進(jìn)行分析后,就可以繼續(xù)進(jìn)行第四個(gè)步驟——評(píng)估并使用訓(xùn)練好的模型進(jìn)行預(yù)測(cè)。
4. 評(píng)估和預(yù)測(cè)
評(píng)估深度學(xué)習(xí)模型是檢驗(yàn)構(gòu)建模型是否按預(yù)期工作的一個(gè)十分重要的步驟。構(gòu)建的深度學(xué)習(xí)模型在現(xiàn)實(shí)應(yīng)用程序中可能運(yùn)行不佳。因此,評(píng)估深度學(xué)習(xí)模型變得至關(guān)重要。
評(píng)估深度學(xué)習(xí)模型的一個(gè)主要方法是,確保模型對(duì)預(yù)處理步驟開始時(shí),將分割測(cè)試數(shù)據(jù)所做的預(yù)測(cè)考慮在內(nèi),以驗(yàn)證訓(xùn)練模型的有效性。除測(cè)試數(shù)據(jù)外,還必須用可變數(shù)據(jù)和隨機(jī)測(cè)試對(duì)模型進(jìn)行測(cè)試,以查看其在未經(jīng)訓(xùn)練的數(shù)據(jù)上的有效性,以及其性能效率是否符合預(yù)期要求。
假設(shè)我們建立了一個(gè)簡(jiǎn)單的人臉識(shí)別模型。需考慮到該模型已使用圖像訓(xùn)練過,并嘗試在測(cè)試數(shù)據(jù)和實(shí)時(shí)視頻錄制中使用不同面孔評(píng)估這些圖像,以確保訓(xùn)練的模型運(yùn)行良好。
5. 部署模型
部署階段是構(gòu)建任何模型的最后一步。一旦成功完成模型構(gòu)建后,如果想要保留模型或進(jìn)行部署,以面向更廣泛的受眾,這便是一個(gè)可選的步驟。部署方法各不相同,可以將其部署為跨平臺(tái)傳輸?shù)膽?yīng)用程序,也可以使用amazon提供的AWS云平臺(tái)進(jìn)行部署,或者使用嵌入式系統(tǒng)部署。
如果想要部署監(jiān)控?cái)z像頭之類的東西,則可以考慮使用類似樹莓派的嵌入式設(shè)備與攝像頭模塊共同執(zhí)行此功能。帶有人工智能的嵌入式系統(tǒng)是部署物聯(lián)網(wǎng)項(xiàng)目的常用方法。
使用flask、Django或任何其他類似框架構(gòu)建深度學(xué)習(xí)模型后,也可以選擇在網(wǎng)站上部署這些深度學(xué)習(xí)模型。另一個(gè)有效部署模型的方法是為智能手機(jī)用戶開發(fā)一個(gè)android或iOS應(yīng)用程序,以覆蓋更廣泛的用戶。
圖源:unsplash
構(gòu)建任何深度學(xué)習(xí)模型都需遵循這些步驟,至少包含前述五個(gè)中的四個(gè)。對(duì)于新手或初級(jí)項(xiàng)目而言,部署步驟是可選步驟,但在相關(guān)行業(yè)和公司中,該步驟卻是極其重要,不可或缺。
需要格外注意的是,在構(gòu)建和使用深度學(xué)習(xí)模型前,必須考慮數(shù)據(jù)預(yù)處理、探索性數(shù)據(jù)分析以及其他強(qiáng)制性清理步驟。模型的構(gòu)建步驟必須在完成所有數(shù)據(jù)的預(yù)處理后才可以執(zhí)行。