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