https://www.toutiao.com/a6677459521876525576/
我們身邊有越來(lái)越多的優(yōu)秀的工具的出現(xiàn),它們有助于促進(jìn)深度學(xué)習(xí)的復(fù)雜過(guò)程,使得其更易于訪問(wèn)和提高效率。
每個(gè)值得解決的問(wèn)題都需要很好的支持工具。深度學(xué)習(xí)也不例外。如果一定要說(shuō)有什么區(qū)別的話,那么可能是在未來(lái)的幾年,好的工具會(huì)邊的越來(lái)越重要。我們?nèi)匀惶幱谏疃葘W(xué)習(xí)超新星的早期階段,許多深度學(xué)習(xí)工程師和愛(ài)好者都在以自己的方式進(jìn)入高效流程。然而,通過(guò)觀察越來(lái)越多的偉大工具,它們有助于促進(jìn)深度學(xué)習(xí)的復(fù)雜過(guò)程,使其更易于訪問(wèn)和提高效率。隨著深度學(xué)習(xí)從研究人員和專家的工作穩(wěn)步擴(kuò)展到希望進(jìn)入該領(lǐng)域(可訪問(wèn)性)的DL愛(ài)好者的更廣泛領(lǐng)域,以及正在尋求簡(jiǎn)化其流程并降低復(fù)雜性(效率)的不斷發(fā)展的工程團(tuán)隊(duì),我們匯總了一些最佳DL工具。
深入研究深度學(xué)習(xí)的生命周期
為了更好地評(píng)估可以提高深度學(xué)習(xí)的可訪問(wèn)性和效率的工具,讓我們首先看一下流程的實(shí)際情況。
典型(監(jiān)督)深度學(xué)習(xí)應(yīng)用程序的生命周期包括不同的步驟,從原始數(shù)據(jù)開(kāi)始,到野外預(yù)測(cè)結(jié)束。
典型的深度學(xué)習(xí)生命周期
數(shù)據(jù)來(lái)源
任何深度學(xué)習(xí)應(yīng)用程序的第一步都是獲取正確的數(shù)據(jù)。有時(shí)你很幸運(yùn),有歷史數(shù)據(jù)可供使用。有時(shí)您需要搜索開(kāi)源數(shù)據(jù)集,抓取Web,購(gòu)買原始數(shù)據(jù)或使用模擬數(shù)據(jù)集。由于此步驟通常特定于手頭的應(yīng)用程序,因此我們沒(méi)有將其包含在工具環(huán)境中。但請(qǐng)注意,Google的數(shù)據(jù)集搜索或Fast.ai數(shù)據(jù)集等網(wǎng)站可以緩解查找正確數(shù)據(jù)的問(wèn)題。
數(shù)據(jù)標(biāo)簽
大多數(shù)受監(jiān)督的深度學(xué)習(xí)應(yīng)用程序處理圖像、視頻、文本或音頻,在訓(xùn)練模型之前,您需要使用地面實(shí)況標(biāo)簽來(lái)注釋這些原始數(shù)據(jù),這可能是一項(xiàng)會(huì)耗費(fèi)大量成本且耗時(shí)的任務(wù)。在理想的設(shè)置中,此過(guò)程與模型訓(xùn)練和部署交織在一起,并盡可能地利用您訓(xùn)練有素的深度學(xué)習(xí)模型(即使其性能尚不完美)。
數(shù)據(jù)版本控制
您的數(shù)據(jù)隨著時(shí)間的推移會(huì)發(fā)展得越多(假設(shè)您設(shè)置了智能標(biāo)簽流程并隨著數(shù)據(jù)集的增長(zhǎng)繼續(xù)重新訓(xùn)練模型)對(duì)數(shù)據(jù)集進(jìn)行版本設(shè)置就越重要(正如您應(yīng)該始終對(duì)代碼和訓(xùn)練模型進(jìn)行版本更新) 。
擴(kuò)展硬件
此步驟與模型訓(xùn)練和部署相關(guān):訪問(wèn)正確的硬件。在模型訓(xùn)練期間從本地開(kāi)發(fā)轉(zhuǎn)向大規(guī)模實(shí)驗(yàn)時(shí),您的硬件需要適當(dāng)擴(kuò)展。在部署模型時(shí),根據(jù)用戶需求進(jìn)行擴(kuò)展也是如此。
模型架構(gòu)
要開(kāi)始訓(xùn)練模型,您需要選擇神經(jīng)網(wǎng)絡(luò)的模型架構(gòu)。
注意:如果您遇到標(biāo)準(zhǔn)問(wèn)題,這通常意味著只是從開(kāi)源GitHub存儲(chǔ)庫(kù)復(fù)制粘貼最新的可用最先進(jìn)模型,但有時(shí)您會(huì)想要親自動(dòng)手調(diào)整模型的架構(gòu)以提高性能。使用神經(jīng)架構(gòu)搜索(NAS)等新方法,選擇正確的模型架構(gòu)漸漸地歸入模型訓(xùn)練階段,但是對(duì)于大多數(shù)應(yīng)用而言,NAS的性能的邊際增加不值得增加計(jì)算成本。
這一步是人們?cè)诳紤]編寫深度學(xué)習(xí)應(yīng)用程序時(shí)經(jīng)常想到的,但正如您所看到的那樣,它只是步驟的其中之一,而且往往不是最重要的。
模型訓(xùn)練
在模型訓(xùn)練期間,您將標(biāo)記數(shù)據(jù)提供給神經(jīng)網(wǎng)絡(luò),并迭代更新的模型權(quán)重,以最大限度地減少訓(xùn)練集的損失。一旦選擇了一個(gè)指標(biāo)(參見(jiàn)模型評(píng)估),您就可以在稱為超參數(shù)調(diào)整的過(guò)程中使用許多不同的超參數(shù)集(例如,學(xué)習(xí)速率、模型架構(gòu)和一組預(yù)處理步驟的組合)來(lái)訓(xùn)練您的模型。
模型評(píng)估
如果你無(wú)法區(qū)分好的和壞的模型,那么訓(xùn)練神經(jīng)網(wǎng)絡(luò)就沒(méi)有意義了。在模型評(píng)估期間,您通常會(huì)選擇一個(gè)指標(biāo)進(jìn)行優(yōu)化(同時(shí)可能會(huì)觀察到許多其他指標(biāo))。對(duì)于此指標(biāo),您嘗試查找從訓(xùn)練數(shù)據(jù)到驗(yàn)證數(shù)據(jù)的最佳表現(xiàn)模型。這涉及跟蹤不同的實(shí)驗(yàn)(可能有不同的超參數(shù)、體系結(jié)構(gòu)和數(shù)據(jù)集)及其性能指標(biāo),可視化訓(xùn)練模型的輸出,并將實(shí)驗(yàn)相互比較。如果沒(méi)有合適的工具,這可能會(huì)很快變得混亂和復(fù)雜,尤其是在與同一個(gè)深度學(xué)習(xí)管道上的多個(gè)工程師協(xié)作時(shí)。
模型版本控制
最終模型評(píng)估和模型部署之間的一小步(但仍值得一提):使用不同版本標(biāo)記模型。當(dāng)您發(fā)現(xiàn)最新的型號(hào)版本達(dá)不到您的期望時(shí),這使您可以輕松回滾到運(yùn)行良好的型號(hào)版本。
模型部署
如果您有一個(gè)您希望投入生產(chǎn)的模型版本,則需要以您的用戶(可以是人員或其他應(yīng)用程序)可以與您的模型通信的方式進(jìn)行部署:使用數(shù)據(jù)發(fā)送請(qǐng)求并返回模型的預(yù)測(cè)。理想情況下,您的模型部署工具支持在不同模型版本之間逐步切換,以便您可以預(yù)測(cè)在生產(chǎn)中使用新模型的效果。
監(jiān)測(cè)預(yù)測(cè)
部署完模型后,您需要密切關(guān)注它在現(xiàn)實(shí)世界中的預(yù)測(cè),并在用戶敲門抱怨您的服務(wù)之前,收到有關(guān)數(shù)據(jù)分布變化和性能下降的警報(bào)。
注意:該流程圖已經(jīng)暗示了典型深度學(xué)習(xí)工作流程的循環(huán)性質(zhì)。實(shí)際上,在深度學(xué)習(xí)工作流程中將部署模型和新標(biāo)簽之間的反饋循環(huán)視為一流公民,這可能是許多應(yīng)用程序最重要的成功因素之一。在現(xiàn)實(shí)生活中的深度學(xué)習(xí)工作中,事情通常比流程圖所暗示的更復(fù)雜。您將發(fā)現(xiàn)自己跳過(guò)步驟(例如,當(dāng)您使用預(yù)先標(biāo)記的數(shù)據(jù)集時(shí)),返回幾個(gè)步驟(模型性能不夠準(zhǔn)確,您需要獲取更多數(shù)據(jù))或在瘋狂循環(huán)中來(lái)回(架構(gòu)=>訓(xùn)練=>評(píng)估=>訓(xùn)練=>評(píng)估=>架構(gòu))。
我們最喜愛(ài)的深度學(xué)習(xí)工具
在Luminovo,我們努力創(chuàng)造工具,使我們的工程師更高效,并利用那里出色的深度學(xué)習(xí)人員創(chuàng)建的強(qiáng)大工具。偉大的代碼意味著共享,因此下面的圖表概述了目前市場(chǎng)上最有前途的深度學(xué)習(xí)工具。來(lái)自DL工程師的DL工程師和所有熱衷于了解更多關(guān)于創(chuàng)建令人敬畏的深度學(xué)習(xí)應(yīng)用程序的人。
詳細(xì)內(nèi)容可以點(diǎn)擊了解:https://drive.google.com/file/d/1XhngKISDpQgwGlvU-hjXWZb_qfyIYjqN/view