其實目前在 GitHub 上有很多優秀的機器學習開源項目,例如各種預訓練深度卷積網絡、高度封裝的算法以及大量開放數據集,不過要想復現以及根據實際情況調整這些項目,開發者還是需要一些 ML 領域知識。此外,很多項目的文檔說明與技術支持都有待提高,它們需要開發者一點點調試與試錯才能正確搭建。更重要的是,將訓練后的模型部署到移動端等平台會遇到非常多的困難,這主要還是當前流行的深度學習框架並不能完美支持模型部署。
所以對於不太了解 ML 的開發者而言,最好將上述這些過程都自動化。例如我們只需要收集少量和任務相關的數據,並直接在平台上完成標注,然后讓系統幫我們選擇合適模型與超參數進行訓練,最后已訓練模型還可以直接部署到雲 API 或打包成安裝包。其實現在也已經有一些平台能完成這一些過程,例如谷歌的 AutoML 和百度的 EasyDL 等。
EasyDL 主頁:http://ai.baidu.com/easydl/
EasyDL經典版
功能:
- 零算法訓練模型:無需機器學習專業知識,只需上傳並標注需要識別的示例數據即可一鍵訓練模型
- 校驗模型效果:查看詳細的效果評估報告,並在可視化界面校驗模型效果,進而有針對性地補充訓練數據
- 部署應用模型:對模型效果滿意后,將模型部署在雲端、設備端、私有服務器,或直接購買軟硬一體方案
例如用於圖像分類:
定制識別一張圖中是否是某類物體/狀態/場景,適合圖片中主體或者狀態單一的場景
應用場景:
- 圖片內容檢索:定制訓練需要識別的各種物體,並結合業務信息展現更豐富識別結果
- 制造業分揀或質檢:定制生產線上各種產品識別,進而實現自動分揀或者質檢
- 醫療診斷:定制識別醫療圖像,輔助醫生肉眼診斷
主要技術手段:
- AI Workflow 統一大數據工程系統與分布式訓練系統,為 EasyDL 提供穩定的系統和流程支持
- 采用 PaddlePaddle 作為基本框架,為模型的搭建提供基礎;
- 采用 Auto Model Search 自動搜索模型超參數,支持獲得更好的訓練效果
- 采用遷移學習訓練較小的用戶數據集,從而大大加強訓練效率與效果等。
AI Workflow 與 PaddlePaddle
AI Workflow 是百度對機器學習從訓練到上線構建的工作流引擎,
總體而言,AI Workflow 的主要流程可以分為四個階段:
- 首先第一階段是對數據進行預處理,例如對圖像實現歸一化、大小裁剪與數據增強等。
- 隨后第二階段是模型的訓練,或者說是學習過程,這一階段會基於百度研發的深度學習框架 PaddlePaddle 進行分布式訓練。
- 訓練完模型后,第三階段就需要驗證模型的效果,也就是說用戶可以上傳小規模的測試數據,並對模型的召回率與精度等指標進行驗證。
- 最后第四階段為服務的上線或模型的部署,在這個過程中我們可以將已訓練模型加載到雲端並對外提供服務,也可以打包為一組移動端開發套件,為進一步集成到其它任務中提供接口。

自動模型搜索與遷移學習
目前 EasyDL 采用了 Auto Model Search 的算法,即系統會同時發起多個模型結構和超參數不同的訓練,並采用對應算法進行最終模型的篩選,從而確保更優的模型效果。Auto Model Search 與后文介紹的 AutoDL 在功能上是相近的,但百度的 AutoDL 是一種神經架構搜索方法,它關注於利用強化學習從頭構建神經網絡。
其中系統可調的超參數包含神經網絡類型的選擇,例如對於圖像分類可以選擇 Inception、ResNet 或者其他。而對於每一個模型,可選的超參數包含批量大小、迭代數量和卷積核大小等。
其實 Auto Model Search 是針對特定用戶數據的,在用戶上傳與他們任務相關的數據后,EasyDL 會抽取多個已訓練深度網絡,並采用遷移學習和不同的超參配置精調這些深度網絡。如下所示在用戶確定好小型數據集后,EasyDL 可能會選擇 Inception v3/v4 和 ResNet 等,在固定這幾個網絡前面層級的權重后,系統會根據用戶數據以及不同的批量大小和學習率訓練網絡。

EasyDL 大量采用了遷移學習技術,各種基礎模型會在百度大規模數據集上進行預訓練,並將從中學習到的知識(Knowledge)運用到用戶提交的小規模訓練數據集上,從而實現出色的模型效果和快速的模型訓練。遷移學習的主干是非常大的網絡,而一般我們每一類只需要使用 20 到 100 多張圖像就能完成對后面層級的訓練,且 EasyDL 也會采用 Early Stopping 等正則化手段降低模型過擬合的風險。

神經架構搜索
EasyDL 即將引入百度領先的 AutoDL 技術,這是一種 AutoML 的技術,它實現了深度學習網絡結構的自動搜索和設計。
在架構搜索策略上,目前比較流行的有進化策略、強化學習和基於梯度的連續空間搜索方法。而百度的 AutoDL 主要是基於強化學習,其核心思路是希望能搜索到盡可能廣的空間。為了將神經架構搜索構造為強化學習問題,神經架構的生成可以視為智能體對動作的選擇,動作空間也就相當於搜索空間。智能體獲得的獎勵會根據已訓練架構在驗證數據上的性能評估而定義。
模型部署
目前 EasyDL 有兩種發布服務的方式,即生成在線 API 和離線 SDK。在線 API 能讓開發者更方便地與業務系統整合,而離線 SDK 有更低的調用延遲,對互聯網的依賴性也沒有那么強,它可以利用本地計算資源實現更安全與穩定的計算。
