大道至簡(jiǎn):算法工程師煉丹Trick手冊(cè)

極市導(dǎo)讀
如何提高煉丹速度?本文總結(jié)了算法工程師須知的十個(gè)煉丹trick,附有相關(guān)代碼,可直接上手。 >>加入極市CV技術(shù)交流群,走在計(jì)算機(jī)視覺(jué)的最前沿
Focal Loss

針對(duì)類(lèi)別不平衡問(wèn)題,用預(yù)測(cè)概率對(duì)不同類(lèi)別的loss進(jìn)行加權(quán)。Focal loss對(duì)CE loss增加了一個(gè)調(diào)制系數(shù)來(lái)降低容易樣本的權(quán)重值,使得訓(xùn)練過(guò)程更加關(guān)注困難樣本。
loss = -np.log(p)loss = (1-p)^G * loss
Dropout

隨機(jī)丟棄,抑制過(guò)擬合,提高模型魯棒性。
Normalization
Batch Normalization 于2015年由 Google 提出,開(kāi) Normalization 之先河。其規(guī)范化針對(duì)單個(gè)神經(jīng)元進(jìn)行,利用網(wǎng)絡(luò)訓(xùn)練時(shí)一個(gè) mini-batch 的數(shù)據(jù)來(lái)計(jì)算該神經(jīng)元的均值和方差,因而稱為 Batch Normalization。
x = (x - x.mean()) / x.std()
relu

用極簡(jiǎn)的方式實(shí)現(xiàn)非線性激活,緩解梯度消失。
x = max(x, 0)
Cyclic LR

每隔一段時(shí)間重啟學(xué)習(xí)率,這樣在單位時(shí)間內(nèi)能收斂到多個(gè)局部最小值,可以得到很多個(gè)模型做集成。
scheduler = lambda x: ((LR_INIT-LR_MIN)/2)*(np.cos(PI*(np.mod(x-1,CYCLE)/(CYCLE)))+1)+LR_MINWith Flooding

當(dāng)training loss大于一個(gè)閾值時(shí),進(jìn)行正常的梯度下降;當(dāng)training loss低于閾值時(shí),會(huì)反過(guò)來(lái)進(jìn)行梯度上升,讓training loss保持在一個(gè)閾值附近,讓模型持續(xù)進(jìn)行“random walk”,并期望模型能被優(yōu)化到一個(gè)平坦的損失區(qū)域,這樣發(fā)現(xiàn)test loss進(jìn)行了double decent。
flood = (loss - b).abs() + b
Group Normalization

Face book AI research(FAIR)吳育昕-愷明聯(lián)合推出重磅新作Group Normalization(GN),提出使用Group Normalization 替代深度學(xué)習(xí)里程碑式的工作Batch normalization。一句話概括,Group Normbalization(GN)是一種新的深度學(xué)習(xí)歸一化方式,可以替代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 GNN, C, H, W = x.shapex = 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])return x * gamma + beta
Label Smoothing


abel smoothing將hard label轉(zhuǎn)變成soft label,使網(wǎng)絡(luò)優(yōu)化更加平滑。標(biāo)簽平滑是用于深度神經(jīng)網(wǎng)絡(luò)(DNN)的有效正則化工具,該工具通過(guò)在均勻分布和hard標(biāo)簽之間應(yīng)用加權(quán)平均值來(lái)生成soft標(biāo)簽。它通常用于減少訓(xùn)練DNN的過(guò)擬合問(wèn)題并進(jìn)一步提高分類(lèi)性能。
targets = (1 - label_smooth) * targets + label_smooth / num_classes

Wasserstein GAN

徹底解決GAN訓(xùn)練不穩(wěn)定的問(wèn)題,不再需要小心平衡生成器和判別器的訓(xùn)練程度 基本解決了Collapse mode的問(wèn)題,確保了生成樣本的多樣性 訓(xùn)練過(guò)程中終于有一個(gè)像交叉熵、準(zhǔn)確率這樣的數(shù)值來(lái)指示訓(xùn)練的進(jìn)程,數(shù)值越小代表GAN訓(xùn)練得越好,代表生成器產(chǎn)生的圖像質(zhì)量越高 不需要精心設(shè)計(jì)的網(wǎng)絡(luò)架構(gòu),最簡(jiǎn)單的多層全連接網(wǎng)絡(luò)就可以做到以上3點(diǎn)。
Skip Connection
一種網(wǎng)絡(luò)結(jié)構(gòu),提供恒等映射的能力,保證模型不會(huì)因網(wǎng)絡(luò)變深而退化。
F(x) = F(x) + x
參考文獻(xiàn):
https://www.zhihu.com/question/427088601 https://arxiv.org/pdf/1701.07875.pdf https://zhuanlan.zhihu.com/p/25071913 https://www.zhihu.com/people/yuconan/posts
推薦閱讀
2021-01-15

2020-10-16

2020-09-24


# CV技術(shù)社群邀請(qǐng)函 #
備注:姓名-學(xué)校/公司-研究方向-城市(如:小極-北大-目標(biāo)檢測(cè)-深圳)
即可申請(qǐng)加入極市目標(biāo)檢測(cè)/圖像分割/工業(yè)檢測(cè)/人臉/醫(yī)學(xué)影像/3D/SLAM/自動(dòng)駕駛/超分辨率/姿態(tài)估計(jì)/ReID/GAN/圖像增強(qiáng)/OCR/視頻理解等技術(shù)交流群
每月大咖直播分享、真實(shí)項(xiàng)目需求對(duì)接、求職內(nèi)推、算法競(jìng)賽、干貨資訊匯總、與 10000+來(lái)自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺(jué)開(kāi)發(fā)者互動(dòng)交流~

