隨著新的神經(jīng)網(wǎng)絡(luò)模型定期出現(xiàn),機(jī)器學(xué)習(xí)正在突飛猛進(jìn)地發(fā)展。
這些模型針對(duì)特定數(shù)據(jù)集進(jìn)行了訓(xùn)練,并在準(zhǔn)確性和處理速度方面得到了證明。開(kāi)發(fā)人員需要在部署之前評(píng)估 ML 模型并確保其符合預(yù)期的特定閾值和功能。有很多實(shí)驗(yàn)可以提高模型性能,在設(shè)計(jì)和訓(xùn)練模型時(shí),可視化差異變得至關(guān)重要。TensorBoard 有助于可視化模型,使分析變得不那么復(fù)雜,因?yàn)楫?dāng)人們可以看到問(wèn)題所在時(shí),調(diào)試變得更容易。
訓(xùn)練 ML 模型的一般做法
一般的做法是使用預(yù)訓(xùn)練的模型并執(zhí)行遷移學(xué)習(xí)以針對(duì)相似的數(shù)據(jù)集重新訓(xùn)練模型。在遷移學(xué)習(xí)期間,首先針對(duì)與正在解決的問(wèn)題相似的問(wèn)題對(duì)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練。然后將訓(xùn)練模型中的一個(gè)或多個(gè)層用于針對(duì)感興趣問(wèn)題訓(xùn)練的新模型。
大多數(shù)情況下,預(yù)訓(xùn)練模型采用二進(jìn)制格式,這使得很難獲取內(nèi)部信息并立即開(kāi)始處理。從組織的業(yè)務(wù)角度來(lái)看,擁有一些工具來(lái)深入了解模型以縮短項(xiàng)目交付時(shí)間是有意義的。
有幾個(gè)可用的選項(xiàng)可以獲取模型信息,例如層數(shù)和相關(guān)參數(shù)。模型摘要和模型圖是基本選項(xiàng)。這些選項(xiàng)非常簡(jiǎn)單,考慮到幾行實(shí)現(xiàn),并提供了非常基本的細(xì)節(jié),如層數(shù)、層類(lèi)型和每層的輸入/輸出。
但是,模型摘要和模型圖對(duì)于理解協(xié)議緩沖區(qū)形式的任何大型復(fù)雜模型的每一個(gè)細(xì)節(jié)并不是那么有效。在這樣的場(chǎng)景下,使用TensorFlow提供的可視化工具TensorBoard就更有意義了。考慮到它提供的各種可視化選項(xiàng),例如模型、標(biāo)量和度量(訓(xùn)練和驗(yàn)證數(shù)據(jù))、圖像(來(lái)自數(shù)據(jù)集)、超參數(shù)調(diào)整等,它非常強(qiáng)大。
模型圖以可視化自定義模型
當(dāng)以協(xié)議緩沖區(qū)的形式接收自定義模型時(shí),此選項(xiàng)特別有用,并且需要在對(duì)其進(jìn)行任何修改或訓(xùn)練之前對(duì)其進(jìn)行理解。如下圖所示,在板上可視化了順序 CNN 的概述。每個(gè)塊代表一個(gè)單獨(dú)的層,選擇其中一個(gè)將在右上角打開(kāi)一個(gè)窗口,其中包含輸入和輸出信息。
如果需要進(jìn)一步的信息,關(guān)于各個(gè)塊中的內(nèi)容,可以簡(jiǎn)單地雙擊塊,這將展開(kāi)塊并提供更多詳細(xì)信息。請(qǐng)注意,一個(gè)塊可以包含一個(gè)或多個(gè)可以逐層擴(kuò)展的塊。在選擇任何特定操作后,它還將提供有關(guān)相關(guān)處理參數(shù)的更多信息。
用于分析模型訓(xùn)練和驗(yàn)證的標(biāo)量和指標(biāo)
機(jī)器學(xué)習(xí)的第二個(gè)重要方面是分析給定模型的訓(xùn)練和驗(yàn)證。從準(zhǔn)確性和速度的角度來(lái)看,性能對(duì)于使其適用于現(xiàn)實(shí)生活中的實(shí)際應(yīng)用非常重要。在下圖中,可以看出模型的準(zhǔn)確性隨著 epochs/迭代次數(shù)的增加而提高。如果訓(xùn)練和測(cè)試驗(yàn)證不達(dá)標(biāo),則表明某些事情不正確。這可能是欠擬合或過(guò)擬合的情況,可以通過(guò)修改層/參數(shù)或改進(jìn)數(shù)據(jù)集或兩者兼而有之來(lái)糾正。
圖像數(shù)據(jù)以可視化數(shù)據(jù)集中的圖像
顧名思義,它有助于可視化圖像。它不僅限于可視化數(shù)據(jù)集中的圖像,它還以圖像的形式顯示混淆矩陣。該矩陣表示檢測(cè)各個(gè)類(lèi)別的對(duì)象的準(zhǔn)確性。如下圖所示,模特將大衣與套頭衫混淆了。為了克服這種情況,建議改進(jìn)特定類(lèi)別的數(shù)據(jù)集,以將可區(qū)分的特征提供給模型,以便更好地學(xué)習(xí)并提高準(zhǔn)確性。
超參數(shù)調(diào)整以實(shí)現(xiàn)所需的模型精度
模型的準(zhǔn)確性取決于輸入數(shù)據(jù)集、層數(shù)和相關(guān)參數(shù)。在大多數(shù)情況下,在初始訓(xùn)練期間,準(zhǔn)確度永遠(yuǎn)不會(huì)達(dá)到預(yù)期的準(zhǔn)確度,除了數(shù)據(jù)集之外,還需要考慮層數(shù)、層類(lèi)型、相關(guān)參數(shù)。此過(guò)程稱為超參數(shù)調(diào)整。
在這個(gè)過(guò)程中,提供了一系列超參數(shù)供模型選擇,并結(jié)合這些參數(shù)運(yùn)行模型。每個(gè)組合的準(zhǔn)確性都記錄在板上并可視化。它糾正了為超參數(shù)的每個(gè)可能組合手動(dòng)訓(xùn)練模型所消耗的精力和時(shí)間。
分析模型處理速度的分析工具
除了準(zhǔn)確性之外,處理速度對(duì)于任何模型來(lái)說(shuō)都是同樣重要的方面。有必要分析各個(gè)塊消耗的處理時(shí)間,以及是否可以通過(guò)一些修改來(lái)減少它。Profiling Tool 提供了每個(gè)操作在不同時(shí)期的時(shí)間消耗的圖形表示。通過(guò)這種可視化,人們可以很容易地查明需要更多時(shí)間的操作。一些已知的開(kāi)銷(xiāo)可能是調(diào)整輸入的大小、從 Python 轉(zhuǎn)換模型代碼或在 CPU 而非 GPU 中運(yùn)行代碼。照顧好這些事情將有助于實(shí)現(xiàn)最佳性能。
總體而言,TensorBoard 是幫助開(kāi)發(fā)和培訓(xùn)過(guò)程的絕佳工具。Scalar and Metrics、Image Data 和 Hyperparameter 調(diào)優(yōu)的數(shù)據(jù)有助于提高準(zhǔn)確性,而 profiling 工具有助于提高處理速度。TensorBoard 還有助于減少所涉及的調(diào)試時(shí)間,否則這肯定是一個(gè)很大的時(shí)間框架。
審核編輯:郭婷
-
cpu
+關(guān)注
關(guān)注
68文章
10891瀏覽量
212455 -
gpu
+關(guān)注
關(guān)注
28文章
4762瀏覽量
129151 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8429瀏覽量
132854
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論