深度學(xué)習(xí)從入門到入土,基礎(chǔ)知識篇三 | 您所在的位置:網(wǎng)站首頁 › 算卦入門到入土 › 深度學(xué)習(xí)從入門到入土,基礎(chǔ)知識篇三 |
深度學(xué)習(xí)從入門到入土,基礎(chǔ)知識篇三
1. 深度學(xué)習(xí)網(wǎng)絡(luò)包含哪些方面2. 深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的超參數(shù)2.1訓(xùn)練輪數(shù)(epoches)2.2批次大小(batch_size)2.3學(xué)習(xí)率(learning_rate)2.4學(xué)習(xí)策略2.5優(yōu)化器2.6 損失函數(shù)
![]() 最常用的深度學(xué)習(xí)網(wǎng)絡(luò)包括分類網(wǎng)絡(luò)、目標(biāo)檢測網(wǎng)絡(luò)、分割網(wǎng)絡(luò)、分級網(wǎng)絡(luò)、對比網(wǎng)絡(luò)與異常檢測網(wǎng)絡(luò), 2. 深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的超參數(shù)什么是神經(jīng)網(wǎng)絡(luò)的超參數(shù)? 超參數(shù)是指可供網(wǎng)絡(luò)使用者外部調(diào)整的參數(shù),可以讓使用者控制優(yōu)化模型的過程,從而在不改變網(wǎng)絡(luò)結(jié)構(gòu)與模型復(fù)雜度的情況下,使我們的網(wǎng)絡(luò)盡可能達到一個好的預(yù)測效果,不同的超參數(shù)可以影響網(wǎng)絡(luò)的收斂速度與模型訓(xùn)練。 2.1訓(xùn)練輪數(shù)(epoches)epoches–指的是訓(xùn)練數(shù)據(jù)集被完整遍歷的次數(shù)。在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程中,每一個epoch表示所有的數(shù)據(jù)輸入網(wǎng)絡(luò)完成一次向前計算及反向傳播,即一個epoch是將所有的數(shù)據(jù)輸入網(wǎng)絡(luò)完成一次向前計算及反向傳播的過程。設(shè)置更大的epoches在一定程度范圍內(nèi)可以使模型學(xué)習(xí)更充分,效果更好,但過大的epoches可能導(dǎo)致過擬合。 每個 epoch 由兩個主要部分組成: 訓(xùn)練循環(huán) - 迭代訓(xùn)練數(shù)據(jù)集并嘗試收斂到最佳參數(shù)。 驗證/測試循環(huán) - 迭代測試數(shù)據(jù)集以檢查模型性能是否有所改善 2.2批次大小(batch_size)batch_size–是指每次訓(xùn)練模型所用的樣本數(shù),通俗的理解為,模型在下一次更新參數(shù)時,查看了多少個樣本。bath_size主要影響網(wǎng)絡(luò)訓(xùn)練時的以下性能: 訓(xùn)練速度:較小的batch_size通常意味著更頻繁的權(quán)重更新,這可能會加快訓(xùn)練的初期收斂速度,特別是在數(shù)據(jù)分布不均勻時。然而,它也可能導(dǎo)致梯度更新不夠穩(wěn)定。另一方面,較大的batch_size能夠減少計算梯度的次數(shù),這在某些硬件(特別是GPU)上可能會帶來更高的計算效率。 內(nèi)存使用:較小的batch_size需要的內(nèi)存較少,這對于內(nèi)存有限的設(shè)備或大型數(shù)據(jù)集來說是有利的。而較大的batch_size則可能超出設(shè)備的內(nèi)存限制。 泛化性能:在某些情況下,較小的batch_size可能有助于模型更好地泛化到新數(shù)據(jù),因為它在每次更新時都暴露于更多的數(shù)據(jù)變化。然而,這并非總是如此,因為過大的batch_size也可能導(dǎo)致模型收斂到更好的局部最優(yōu)解。 收斂穩(wěn)定性:較大的batch_size通常會使梯度更新更加穩(wěn)定,有助于減少訓(xùn)練過程中的波動 2.3學(xué)習(xí)率(learning_rate)learning_rate–是指更新網(wǎng)絡(luò)參數(shù)時的幅度,較小的值可能會導(dǎo)致網(wǎng)絡(luò)學(xué)習(xí)速度較慢,收斂時間較長,而較大的值可能會導(dǎo)致模型錯過其最優(yōu)性能參數(shù)。 在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練階段,假設(shè)參數(shù)跟新是依據(jù)梯度下降法實現(xiàn),而梯度下降法優(yōu)化參數(shù)的過程,用公式表示為: ? ? ? ? ξ ? L ? ? \vartheta \longleftarrow \vartheta -\xi \frac{\partial L}{\partial \vartheta } ????ξ???L? 其中 ? \vartheta ? 表示網(wǎng)絡(luò)模型的參數(shù), ξ \xi ξ 為學(xué)習(xí)率, L = L ( ? ) L=L(\vartheta) L=L(?) 表示 L L L 是關(guān)于 ? \vartheta ? 的損失函數(shù), ? L ? ? \frac{\partial L}{\partial \vartheta } ???L? 是損失函數(shù)對參數(shù)的一階導(dǎo)數(shù),也就是梯度誤差。從參數(shù)根性公式來看,學(xué)習(xí)率直接影響參數(shù)更新的能力,學(xué)習(xí)率越大,參數(shù)更新的步長越大,模型收斂越快,但也可能錯過最優(yōu)參數(shù),學(xué)習(xí)率越小,參數(shù)更新的步長越小,模型收斂越緩慢。因此在網(wǎng)絡(luò)訓(xùn)練時,需要把學(xué)習(xí)設(shè)置在一個合理的范圍內(nèi),從而得到更好的誤差平滑曲線,得到更優(yōu)的模型性能。 實際使用中,我們可以首先選擇一個差不多合適的值(比如0.01),然后多次修改觀察網(wǎng)絡(luò)LOSS曲線的下降趨勢,選擇最平滑的下降最好的曲線對應(yīng)的學(xué)習(xí)率,或者使用階段性衰減學(xué)習(xí)率,根據(jù)參數(shù)梯度不在衰減時,將學(xué)習(xí)率降低。 建議在網(wǎng)絡(luò)訓(xùn)練初期采用較大的學(xué)習(xí)率,而當(dāng)網(wǎng)絡(luò)性能有一定收斂之后采用較低的學(xué)習(xí)率,得到一個性能更好的網(wǎng)絡(luò)。 2.4學(xué)習(xí)策略深度學(xué)習(xí)網(wǎng)路的一系列策略,有助于我們獲得性能更好的訓(xùn)練結(jié)果。常用的訓(xùn)練策略有如下幾種: 數(shù)據(jù)預(yù)處理與增強:對數(shù)據(jù)集進行增強,對數(shù)據(jù)集進行擴增(平移、旋轉(zhuǎn)、裁剪等等),減少過擬合風(fēng)險,其次對數(shù)據(jù)集進行清洗與歸一化。超參數(shù)調(diào)整:包括學(xué)習(xí)率調(diào)整、訓(xùn)練批次(batch size)、迭代次數(shù)(epochs)、正則化參數(shù)等的設(shè)置。常用方法有網(wǎng)格搜索、隨機搜索、貝葉斯優(yōu)化等。優(yōu)化算法選擇:如SGD(隨機梯度下降)、小批量隨機地體下降、Momentum、RMSprop、Adam等,不同的優(yōu)化器對訓(xùn)練速度和模型收斂有重要影響。學(xué)習(xí)率調(diào)度:動態(tài)調(diào)整學(xué)習(xí)率,如使用學(xué)習(xí)率衰減策略(如逐步減小學(xué)習(xí)率)、Warm-up策略(初期緩慢增加學(xué)習(xí)率)等,以加速訓(xùn)練初期的收斂并避免后期訓(xùn)練陷入局部最優(yōu)。正則化與規(guī)范化:如L1、L2正則化、Dropout、Batch Normalization等,用于防止過擬合,提升模型泛化能力。早停法(Early Stopping):在驗證集性能不再提升時終止訓(xùn)練,以避免過擬合。模型集成:通過集成學(xué)習(xí)(如Bagging、Boosting)結(jié)合多個模型的預(yù)測,提高整體預(yù)測性能。權(quán)重初始化:合理初始化網(wǎng)絡(luò)權(quán)重,對加速收斂和提高性能至關(guān)重要。損失函數(shù)選擇:根據(jù)任務(wù)需求選擇合適的損失函數(shù),如交叉熵?fù)p失用于分類任務(wù),均方誤差用于回歸任務(wù)。動態(tài)調(diào)整網(wǎng)絡(luò)結(jié)構(gòu):如動態(tài)調(diào)整網(wǎng)絡(luò)深度、寬度或使用可變形卷積等,以適應(yīng)不同復(fù)雜度的任務(wù)。并行與分布式訓(xùn)練:利用多GPU或分布式系統(tǒng)加快訓(xùn)練速度,通過數(shù)據(jù)并行或模型并行等方式分散計算負(fù)擔(dān)。 2.5優(yōu)化器優(yōu)化是調(diào)整模型參數(shù)以減少每個訓(xùn)練步驟中模型誤差的過程。優(yōu)化算法定義了如何執(zhí)行此過程(在本例中我們使用)。所有優(yōu)化邏輯都封裝在優(yōu)化器對象中。這里,我們使用 SGD(隨機梯度下降)優(yōu)化器。此外,PyTorch 中還有許多不同的優(yōu)化器,例如 ADAM 和 RMSProp,它們可以更好地處理不同類型的模型和數(shù)據(jù)。 2.6 損失函數(shù)損失函數(shù)衡量的是模型預(yù)測的結(jié)果與真實值(ground truth)的不相似程度,它是我們在訓(xùn)練時想要最小化的損失函數(shù)。為了計算損失,我們使用給定數(shù)據(jù)樣本的輸入進行預(yù)測,并將其與真實數(shù)據(jù)標(biāo)簽值進行比較。常見的損失函數(shù)包含交叉熵?fù)p失與均方差損失。 |
CopyRight 2018-2019 實驗室設(shè)備網(wǎng) 版權(quán)所有 |