# 深度學習專題 & 類神經與深度學習進階 week 3 課程筆記 ## 深度學習最佳演算法--優化器 優化器(optimizer):優化器幫助模型在訓練過程中學習並逐步優化自身,使其更好地擬合數據,實現更好的性能。 優化器的種類: |種類 | 1 | 2 |3 | | -------- | -------- | -------- |-------- | | 調整學習速率法 | SDG | Adagrad | RMSprop | |動量法|Momentum||| |統整法|Adam| 優化器的目的: 1. 損失最小化 2. 加速收斂(加入動量/調整學習速率) 3. 避免局部最小值 優化器介紹: * 隨機梯度下降法(Stochastic Gradient Decent,SDG): 把原始資料分成幾批,一批一批的學習,再把每一筆資料的梯度相加求平均,求得平均梯度。 :bulb: 學習速率(learning rate): 1. 學習速率是很重要的參數,太高會錯過最佳解,太低會導致訓練時間過長浪費成本。 1. 學習速率與訓練週期相關(epoch)。 1. 可以設定學習策略,比如:先快後慢。 * 自適應梯度法(Adagrad): 是一種自適應學習率的方法,透過累加梯度的平方範數,將學習率除以這個累加總和的平方根。 **會有什麼效果?** 接收到較大梯度的時候會把學習速率減小,接收到較小梯度的時候會把學習速率拉大。 **為什麼要這樣?** 因為梯度小的平緩區可以加大變化的力度加速學習,而梯度高的陡峭區則可以放緩變化的力度以免錯過最佳解。 但是這種方法有一弊端:這種方法等於將過去每一筆梯度都視為一樣重要,這違反經驗法則,通常應該離現在愈遠愈不重要、愈靠近現在愈重要。 * 均方根傳播法(RMSProp): 他改善了上個方法的缺點,將梯度累積改為指數加權移動平均。 過去的資料會隨著時間的向前而以某種衰敗率(decat_rate)下修重要性。 * 動量項法(Momentum): 累積過去梯度的指數衰減移動平均,並在更新模型參數時繼續沿著這個移動平均的方向更新。 有一個保留率來控制動量裡過去梯度與目前梯度的占比。 動量項法是梯度下降的變種,引入動量項可以改善模型在高維度、非凸優化問題中的效能。還可以加速收斂!幫助模型更快跨越平緩區以及避免模型在峽谷內震盪。 * 自適應矩估計法(Adam): 可以看成RMSProp與動量組合的變體。 * 批次標準化(Batch Mormailzation): 在訓練的過程中,每一個神經元收到的淨輸入會因為周期的不同而有所變化,特別是發生在深層的神經元,這會影響在激活函數的結果,因為淨輸入的變動大會容易掉入激活函數的飽和區,掉入飽和區模型就不學了。(飽和區梯度近似於0) BN有助於將激活值留在激活區(非線性區),幫助梯度遞減。 降低過擬合的風險。 ## 深度學習之正則化(Regularization) 正則化什麼:用來控制模型複雜度並減少過度擬合的技術。它通過向模型的損失函數中添加額外的懲罰項,來限制模型參數的大小或數量。正規化的目標是使模型更加簡單,從而提高其泛化能力。而當模型本身足夠大、足夠複雜,是不用正則化的。 正則化的用意: 1. 避免過擬合(主要目的) 2. 提高模型泛化能力 3. 控制模型複雜度 4. 提高模型穩定性 5. 解決共線性問題(特徵之間的相依問題) 常見的正則化方法: * 參數範數懲罰策略: 透過添加範數來限制模型的容量。包括L1參數正則法以及L2參數正則法。 | 正則化方法 | 說明 | | -------- | -------- | | L1 | 在損失函數中添加權重向量的絕對值之和來限制模型的複雜度。 會促使部分權重變成0,實現稀疏性。 有助於保留對預測有重要貢獻的特徵。(不重要的特徵權重會變成0) 約束權重達到防止過擬合。| |L2|在損失函數中引入權重的平方和。用於懲罰過重的權重。 效果在於減少模型的權重值(會趨近0不是等於0。) 也是因為這樣使權重保持平滑,防止特定權重變為0影響模型的表達能力。 | |比較|L1會使不重要的特徵權重變成0,L2則是使權重變小趨近0。 L2也是因為這樣所以沒有L1的稀疏性。| * Dropout策略: 由Bagging(Bootstrap Aggregating)而來。 Dropout會在訓練過程中隨機掉一部分神經元。使得前後神經元之間的相依性下降。可以防止神經元的共適應性也防止過擬合。 ## 深度學習之其他正則化方法: | 正則化方法 | 說明 | | -------- | -------- | | 資料集擴增法 | 使用影像轉化技術。雜訊注入法。 | |多工學習法|同時學習多個相關的任務,以提高模型性能。這模型能夠充分利用不同任務之間的相關信息,從而提升模型的泛化能力。| |Early stopping| 在訓練模型的過程中監控模型在驗證集上的表現,一旦發現模型在驗證集上的表現不再改善,甚至開始下降,就會停止訓練,以防止模型繼續擬合訓練集數據,導致過度擬合的問題出現。| |稀疏表示法|利用少量的基函數來表示數據,從而實現對數據的有效表達和降維。| |Bagging|是一種集成學習方法,旨在通過建立多個相互獨立的模型,並將它們的預測結果進行平均或投票來提高整體模型的性能和穩定性。| |對抗訓練|FGSM(Fast Gradient Sign Method): 通過計算梯度來確定對樣本進行擾動的方向,從而生成對抗樣本。 PGD(Projected Gradient Descent): 可以生成更複雜的樣本,它通過迭代的方式對原始樣本進行擾動,並在每次迭代中將對抗樣本投影回到一個允許的範圍內,以確保生成的對抗樣本仍然保持原始樣本的特徵。|