具有前景的深度學(xué)習(xí)工具一覽
解決問(wèn)題往往需要大量工具的支持,深度學(xué)習(xí)也不例外。要說(shuō)真有什么區(qū)別的話,那就是在不遠(yuǎn)的將來(lái),用好這一領(lǐng)域的工具將愈發(fā)重要。
深度學(xué)習(xí)雖是一顆冉冉升起的“超新星”,但目前仍處于發(fā)展初期,許多該領(lǐng)域的工程師與有志之士正為深度學(xué)習(xí)的高效化進(jìn)程而拼搏奮斗。除了人才輩出,我們還見(jiàn)證著越來(lái)越多深度學(xué)習(xí)工具的誕生,它們有助于推進(jìn)深度學(xué)習(xí)曲折的發(fā)展進(jìn)程,增加其便利性與高效性。
深度學(xué)習(xí)正逐漸從學(xué)者專(zhuān)家的理論研究邁向一個(gè)更為廣闊的世界,在那里,深度學(xué)習(xí)愛(ài)好者想要投身該領(lǐng)域(便利性),越來(lái)越多的工程小組想要簡(jiǎn)化運(yùn)作流程,化繁為簡(jiǎn)(高效性)。隨著這一進(jìn)程的發(fā)展,我們也整理出了一份***深度學(xué)習(xí)工具圖表。
研究深度學(xué)習(xí)生命周期
要想對(duì)高效便捷的深度學(xué)習(xí)工具做出更好的評(píng)估,我們應(yīng)先了解下深度學(xué)習(xí)周期的大致情況。(有監(jiān)督)深度學(xué)習(xí)應(yīng)用的生命周期包括多個(gè)不同步驟,始于原始數(shù)據(jù),終于實(shí)況預(yù)測(cè)。
數(shù)據(jù)來(lái)源
任何深度學(xué)習(xí)技術(shù)應(yīng)用的***步都是確定正確信息的來(lái)源。如果幸運(yùn)的話,你會(huì)輕而易舉地找到可用的歷史數(shù)據(jù)。否則,你要搜索開(kāi)源數(shù)據(jù)集,在網(wǎng)頁(yè)中提取信息,購(gòu)買(mǎi)原始數(shù)據(jù)或使用模擬數(shù)據(jù)集。鑒于該步驟要視手頭所擁有的具體技術(shù)應(yīng)用而定,我們便未將其列入文末的工具圖表中。不過(guò)請(qǐng)注意,谷歌數(shù)據(jù)集搜索或Fast.ai數(shù)據(jù)等網(wǎng)站會(huì)幫助我們省去不少麻煩。
數(shù)據(jù)標(biāo)注
許多監(jiān)督深度學(xué)習(xí)技術(shù)應(yīng)用涉及對(duì)圖片、視頻、文本與音像的處理。在進(jìn)行模式訓(xùn)練前,要用真值(真實(shí)的有效值)來(lái)標(biāo)注原始數(shù)據(jù)(未處理數(shù)據(jù))。數(shù)據(jù)標(biāo)注高成本,高耗時(shí)。
在一個(gè)理想的安裝程序中,數(shù)據(jù)標(biāo)注往往與模型訓(xùn)練與模型部署緊密相連,并盡可能(雖然目前效果不盡如人意)地對(duì)深度學(xué)習(xí)訓(xùn)練模型做出調(diào)節(jié)。
數(shù)據(jù)版本
(假設(shè)你有個(gè)智能標(biāo)注處理流程,隨著數(shù)據(jù)集的增長(zhǎng),模型也得到不斷地重訓(xùn))數(shù)據(jù)會(huì)隨時(shí)間推移而演變,而時(shí)間過(guò)得越久,對(duì)數(shù)據(jù)集的版本更新就愈發(fā)重要(這和經(jīng)常更新代碼和訓(xùn)練模型是一個(gè)道理)。
硬件規(guī)模
對(duì)模型訓(xùn)練與模型部署來(lái)說(shuō),有一點(diǎn)很重要——采用適當(dāng)?shù)挠布?guī)模。在模型訓(xùn)練從本地服務(wù)器發(fā)展到大規(guī)模實(shí)驗(yàn)這一過(guò)程中,硬件的規(guī)模也需要做出適當(dāng)調(diào)整。這就和部署模型時(shí)要根據(jù)用戶需求來(lái)調(diào)整硬件規(guī)模是一個(gè)道理。
模型結(jié)構(gòu)
想要開(kāi)始模型訓(xùn)練,需要選擇一個(gè)神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)。
提醒:如果你有一個(gè)標(biāo)準(zhǔn)問(wèn)題(例如找出網(wǎng)絡(luò)上與貓有關(guān)的表情包),這就意味著只需要在GitHub開(kāi)源代碼庫(kù)中找出一個(gè)***進(jìn)的模型直接照搬即可,不過(guò)有的時(shí)候?yàn)榱烁纳菩阅?,要親自動(dòng)手調(diào)整自己的模型結(jié)構(gòu)。隨著諸如神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索(Neural Architecture Search)等新途徑的出現(xiàn),選擇合適的模型架構(gòu)逐漸并入模型訓(xùn)練這一步驟,不過(guò)對(duì)于2018年大部分技術(shù)應(yīng)用來(lái)說(shuō),使用NAS的性價(jià)比并不夠高。
一想到深度學(xué)習(xí)技術(shù)應(yīng)用的編碼,人們首先想到的往往就是模型結(jié)構(gòu)這一步驟,但是這只是深度學(xué)習(xí)運(yùn)行周期中區(qū)區(qū)一環(huán)而已,并且通常而言,這還不是最重要的一環(huán)。
模型訓(xùn)練
在模型訓(xùn)練中,所標(biāo)注數(shù)據(jù)需錄入神經(jīng)網(wǎng)絡(luò),并通過(guò)迭代來(lái)更新權(quán)值(即參數(shù)),以此實(shí)現(xiàn)損失(函數(shù))的最小化。一旦確定了一個(gè)指標(biāo),便可用很多組不同的超參數(shù)(如學(xué)習(xí)率、模型架構(gòu)與可選預(yù)處理步驟)來(lái)訓(xùn)練模型,這個(gè)過(guò)程便叫做超參數(shù)調(diào)優(yōu)。
模型評(píng)價(jià)
如果你不能甄別模型的好壞,那訓(xùn)練神經(jīng)網(wǎng)絡(luò)無(wú)從談起。在模型評(píng)價(jià)中,你通常會(huì)選擇一個(gè)指標(biāo)對(duì)其優(yōu)化(同時(shí)你也可以觀測(cè)許多不同的指標(biāo))。對(duì)于這個(gè)指標(biāo),你通常會(huì)找出一個(gè)***建模,它可以從訓(xùn)練數(shù)據(jù)推廣到驗(yàn)證數(shù)據(jù)。而這需要跟蹤記錄不同的實(shí)驗(yàn)數(shù)據(jù)(不同的超參數(shù)、模型結(jié)構(gòu)與數(shù)據(jù)集)與性能指標(biāo),實(shí)現(xiàn)訓(xùn)練模型的輸出可視化并將各個(gè)實(shí)驗(yàn)進(jìn)行比對(duì)。
如果沒(méi)有合適的工具予以輔助,尤其是在許多工程師采用同樣的深度學(xué)習(xí)數(shù)據(jù)管道進(jìn)行作業(yè)時(shí),這個(gè)過(guò)程很快便會(huì)變得盤(pán)根錯(cuò)節(jié),撲朔迷離。
模型版本管理
這是在模型評(píng)價(jià)和模型部署之間的一個(gè)小環(huán)節(jié)(但仍值得一提):給不同版本下的模型添上標(biāo)識(shí)符。在***版本沒(méi)有達(dá)到你的預(yù)期時(shí),你可以通過(guò)這個(gè)標(biāo)識(shí)符輕松返回到上一個(gè)運(yùn)行正常的版本。
模型部署
如果你愿意將模型版本投入生產(chǎn),那需要對(duì)該模型做出部署,使其與用戶(人或另一個(gè)應(yīng)用)實(shí)現(xiàn)交互:用戶能對(duì)其發(fā)送數(shù)據(jù)請(qǐng)求并收到模型做出的預(yù)測(cè)。理論上來(lái)說(shuō),模型部署工具支持不同版本的漸進(jìn)性變化,因此你可以預(yù)測(cè)出新投入生產(chǎn)模型的運(yùn)行效果。
監(jiān)控預(yù)測(cè)
一旦模型部署完成,你肯定會(huì)想密切關(guān)注模型的實(shí)地預(yù)測(cè)數(shù)據(jù),時(shí)刻留意其數(shù)據(jù)發(fā)布與運(yùn)行性能,以防用戶在發(fā)現(xiàn)模型出問(wèn)題后上門(mén)投訴。
提醒:上面提到的流程圖已反映出深度學(xué)習(xí)這一工作流程的循環(huán)特性。實(shí)際上,深度學(xué)習(xí)應(yīng)用要想成功,要點(diǎn)之一就是將所部署模型與新添加的標(biāo)記之間構(gòu)成的反饋回路(即人機(jī)回圈)視為深度學(xué)習(xí)工作流程中的重中之重。
與流程圖上描述的相比,現(xiàn)實(shí)中深度學(xué)習(xí)的運(yùn)行要復(fù)雜得多。你會(huì)發(fā)現(xiàn)深度學(xué)習(xí)的運(yùn)行出現(xiàn)很多問(wèn)題:“一躍千里”(比如處理預(yù)處理數(shù)據(jù)集時(shí)跳步驟),“重蹈覆轍”(模型性能數(shù)據(jù)不夠準(zhǔn)確,因此你需要搜集更多的數(shù)據(jù)),“鬼打墻”(陷入一個(gè)死循環(huán),如建模——訓(xùn)練——評(píng)價(jià)——訓(xùn)練——評(píng)價(jià)——建模)。
強(qiáng)推——深度學(xué)習(xí)工具一覽
知識(shí)貴在分享,下面的圖表簡(jiǎn)要地列舉了當(dāng)今市場(chǎng)***前景的深度學(xué)習(xí)工具。這些工具由深度學(xué)習(xí)工程師所研制,惠及所有樂(lè)于為深度學(xué)習(xí)這一超贊技術(shù)添磚加瓦的同道中人。