0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

算法工程師須知的十個煉丹trick

新機器視覺 ? 來源:新機器視覺 ? 作者:新機器視覺 ? 2021-03-04 09:46 ? 次閱讀

導讀

如何提高煉丹速度?本文總結了算法工程師須知的十個煉丹trick,附有相關代碼,可直接上手。

Focal Loss

針對類別不平衡問題,用預測概率對不同類別的loss進行加權。Focal loss對CE loss增加了一個調(diào)制系數(shù)來降低容易樣本的權重值,使得訓練過程更加關注困難樣本。

loss = -np.log(p) loss = (1-p)^G * loss

Dropout

2724a454-7c25-11eb-8b86-12bb97331649.jpg

隨機丟棄,抑制過擬合,提高模型魯棒性。

Normalization

Batch Normalization 于2015年由 Google 提出,開 Normalization 之先河。其規(guī)范化針對單個神經(jīng)元進行,利用網(wǎng)絡訓練時一個 mini-batch 的數(shù)據(jù)來計算該神經(jīng)元的均值和方差,因而稱為 Batch Normalization。

x = (x - x.mean()) / x.std()

relu

用極簡的方式實現(xiàn)非線性激活,緩解梯度消失。

x=max(x,0)

Cyclic LR

每隔一段時間重啟學習率,這樣在單位時間內(nèi)能收斂到多個局部最小值,可以得到很多個模型做集成。

scheduler=lambdax:((LR_INIT-LR_MIN)/2)*(np.cos(PI*(np.mod(x-1,CYCLE)/(CYCLE)))+1)+LR_MIN

With Flooding

27f68dde-7c25-11eb-8b86-12bb97331649.jpg

當training loss大于一個閾值時,進行正常的梯度下降;當training loss低于閾值時,會反過來進行梯度上升,讓training loss保持在一個閾值附近,讓模型持續(xù)進行“random walk”,并期望模型能被優(yōu)化到一個平坦的損失區(qū)域,這樣發(fā)現(xiàn)test loss進行了double decent。

flood=(loss-b).abs()+b

Group Normalization

Face book AI research(FAIR)吳育昕-愷明聯(lián)合推出重磅新作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轉(zhuǎn)變成soft label,使網(wǎng)絡優(yōu)化更加平滑。標簽平滑是用于深度神經(jīng)網(wǎng)絡(DNN)的有效正則化工具,該工具通過在均勻分布和hard標簽之間應用加權平均值來生成soft標簽。它通常用于減少訓練DNN的過擬合問題并進一步提高分類性能。

targets = (1 - label_smooth) * targets + label_smooth / num_classes

Wasserstein GAN

徹底解決GAN訓練不穩(wěn)定的問題,不再需要小心平衡生成器和判別器的訓練程度

基本解決了Collapse mode的問題,確保了生成樣本的多樣性

訓練過程中終于有一個像交叉熵、準確率這樣的數(shù)值來指示訓練的進程,數(shù)值越小代表GAN訓練得越好,代表生成器產(chǎn)生的圖像質(zhì)量越高

不需要精心設計的網(wǎng)絡架構,最簡單的多層全連接網(wǎng)絡就可以做到以上3點。

Skip Connection

一種網(wǎng)絡結構,提供恒等映射的能力,保證模型不會因網(wǎng)絡變深而退化。

F(x)=F(x)+x

責任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Google
    +關注

    關注

    5

    文章

    1752

    瀏覽量

    57334
  • 算法
    +關注

    關注

    23

    文章

    4580

    瀏覽量

    92369
  • 神經(jīng)元

    關注

    1

    文章

    363

    瀏覽量

    18424

原文標題:大道至簡:算法工程師煉丹Trick手冊

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    FPGA算法工程師、邏輯工程師、原型驗證工程師有什么區(qū)別?

    ,共同進步。 歡迎加入FPGA技術微信交流群14群! 交流問題(一) Q:FPGA中的FPGA算法工程師、FPGA邏輯工程師、FPGA原型驗證工程師三者有什么區(qū)別? A:FPGA
    發(fā)表于 09-23 18:26

    正是拼的年紀|65歲電子工程師上班VLOG #65歲退休 #電子工程師 #搞笑 #上班vlog

    電子工程師
    安泰小課堂
    發(fā)布于 :2024年07月25日 11:31:02

    嵌入式軟件工程師和硬件工程師的區(qū)別?

    嵌入式軟件工程師和硬件工程師的區(qū)別? 嵌入式軟件工程師 嵌入式軟件工程師是軟件開發(fā)領域中的一種專業(yè)工程師,他們主要負責設計和開發(fā)嵌入式軟件,
    發(fā)表于 05-16 11:00

    大廠電子工程師常見面試題#電子工程師 #硬件工程師 #電路知識 #面試題

    電子工程師電路
    安泰小課堂
    發(fā)布于 :2024年04月30日 17:33:15

    企業(yè)老工程師和高校老師有啥區(qū)別

    電子工程師硬件
    電子發(fā)燒友網(wǎng)官方
    發(fā)布于 :2024年02月28日 17:50:00

    如何搞崩一硬件工程師心態(tài)?試試對ta說這幾句

    硬件工程師
    揚興科技
    發(fā)布于 :2024年02月20日 18:05:49

    #人工智能 #FPGA 怎么成為一合格的FPGA工程師?

    fpga工程師
    明德?lián)P助教小易老師
    發(fā)布于 :2023年12月18日 21:19:01

    接口調(diào)用并發(fā)執(zhí)行十個任務總結

    接口調(diào)用時,接收到一列表,十個元素,需要并發(fā)執(zhí)行十個任務,每個任務都要返回執(zhí)行的結果和異常,然后對返回的結果裝填到一切片列表里,統(tǒng)一
    的頭像 發(fā)表于 11-15 10:37 ?396次閱讀

    FPGA工程師需要具備哪些技能?

    上獲取。此外,他們還需要知道如何使用現(xiàn)成的PCB和其他電路板,以進行各種通信協(xié)議的測試和驗證。 六、測試驗證 測試驗證是FPGA設計中非常關鍵的一環(huán)節(jié)。FPGA工程師需要利用各種工具
    發(fā)表于 11-09 11:03