Focal Loss
針對類別不平衡問題,用預測概率對不同類別的loss進行加權。Focal loss對CE loss增加了一個調制系數來降低容易樣本的權重值,使得訓練過程更加關注困難樣本。
loss = -np.log(p) loss = (1-p)^G * loss
Dropout
隨機丟棄,抑制過擬合,提高模型魯棒性。
Normalization
Batch Normalization 于2015年由 Google 提出,開 Normalization 之先河。其規范化針對單個神經元進行,利用網絡訓練時一個 mini-batch 的數據來計算該神經元的均值和方差,因而稱為 Batch Normalization。
x = (x - x.mean()) / x.std()
relu
用極簡的方式實現非線性激活,緩解梯度消失。
x=max(x,0)
Cyclic LR
每隔一段時間重啟學習率,這樣在單位時間內能收斂到多個局部最小值,可以得到很多個模型做集成。
scheduler=lambdax:((LR_INIT-LR_MIN)/2)*(np.cos(PI*(np.mod(x-1,CYCLE)/(CYCLE)))+1)+LR_MIN
With Flooding
當training loss大于一個閾值時,進行正常的梯度下降;當training loss低于閾值時,會反過來進行梯度上升,讓training loss保持在一個閾值附近,讓模型持續進行“random walk”,并期望模型能被優化到一個平坦的損失區域,這樣發現test loss進行了double decent。
flood=(loss-b).abs()+b
Group Normalization
Face book AI research(FAIR)吳育昕-愷明聯合推出重磅新作Group Normalization(GN),提出使用Group Normalization 替代深度學習里程碑式的工作Batch normalization。一句話概括,Group Normbalization(GN)是一種新的深度學習歸一化方式,可以替代BN。
def GroupNorm(x, gamma, beta, G, eps=1e-5): # x: input features with shape [N,C,H,W] # gamma, beta: scale and offset, with shape [1,C,1,1] # G: number of groups for GN N, C, H, W = x.shape x = tf.reshape(x, [N, G, C // G, H, W]) mean, var = tf.nn.moments(x, [2, 3, 4], keep dims=True) x = (x - mean) / tf.sqrt(var + eps) x = tf.reshape(x, [N, C, H, W])returnx*gamma+beta
Label Smoothing
abel smoothing將hard label轉變成soft label,使網絡優化更加平滑。標簽平滑是用于深度神經網絡(DNN)的有效正則化工具,該工具通過在均勻分布和hard標簽之間應用加權平均值來生成soft標簽。它通常用于減少訓練DNN的過擬合問題并進一步提高分類性能。
targets = (1 - label_smooth) * targets + label_smooth / num_classes
Wasserstein GAN
徹底解決GAN訓練不穩定的問題,不再需要小心平衡生成器和判別器的訓練程度
基本解決了Collapse mode的問題,確保了生成樣本的多樣性
訓練過程中終于有一個像交叉熵、準確率這樣的數值來指示訓練的進程,數值越小代表GAN訓練得越好,代表生成器產生的圖像質量越高
不需要精心設計的網絡架構,最簡單的多層全連接網絡就可以做到以上3點。
Skip Connection
一種網絡結構,提供恒等映射的能力,保證模型不會因網絡變深而退化。
F(x)=F(x)+x
責任編輯:lq
-
模型
+關注
關注
1文章
3254瀏覽量
48878 -
神經元
+關注
關注
1文章
363瀏覽量
18461 -
深度學習
+關注
關注
73文章
5504瀏覽量
121221
原文標題:大道至簡:算法工程師煉丹Trick手冊
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論