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

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

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

表示學(xué)習(xí)中7大損失函數(shù)的發(fā)展歷程及設(shè)計思路

深度學(xué)習(xí)自然語言處理 ? 來源:圓圓的算法筆記 ? 作者:Fareise ? 2022-07-08 14:23 ? 次閱讀

表示學(xué)習(xí)的目的是將原始數(shù)據(jù)轉(zhuǎn)換成更好的表達,以提升下游任務(wù)的效果。在表示學(xué)習(xí)中,損失函數(shù)的設(shè)計一直是被研究的熱點。損失指導(dǎo)著整個表示學(xué)習(xí)的過程,直接決定了表示學(xué)習(xí)的效果。這篇文章總結(jié)了表示學(xué)習(xí)中的7大損失函數(shù)的發(fā)展歷程,以及它們演進過程中的設(shè)計思路,主要包括contrastive loss、triplet loss、n-pair loss、infoNce loss、focal loss、GHM loss、circle loss。

1. Contrastive Loss

Dimensionality Reduction by Learning an Invariant Mapping(CVPR 2006)提出contrastive loss,模型中輸入兩個樣本,經(jīng)過相同的編碼器得到兩個樣本的編碼。如果兩個樣本屬于同一類別,則優(yōu)化目標(biāo)為讓兩個樣本在某個空間內(nèi)的距離??;如果兩個樣本不屬于同一類別,并且兩個樣本之間的距離小于一個超參數(shù)m,則優(yōu)化目標(biāo)為讓兩個樣本距離接近m。損失函數(shù)可以表示為:

b2c16bd0-e8a5-11ec-ba43-dac502259ad0.png

Contrastive Loss是后面很多表示學(xué)習(xí)損失函數(shù)的基礎(chǔ),通過這種對比的方式,讓模型生成的表示滿足相似樣本距離近,不同樣本距離遠的條件,實現(xiàn)更高質(zhì)量的表示生成。

2. Triplet Loss

FaceNet: A unified embedding for face recognition and clustering(CVPR 2015)提出triplet loss,計算triplet loss需要比較3個樣本,這3個樣本分別為anchor、position和negtive。其目標(biāo)為讓anchor和positive樣本(類別相同)的距離盡可能近,而和negtive樣本(類別不同)的距離盡可能遠。因此triplet loss設(shè)計為,讓anchor和positive樣本之間的距離比anchor和negtive樣本要小,并且要小至少一個margin的距離才不計入loss。

b31439dc-e8a5-11ec-ba43-dac502259ad0.png

b3366f34-e8a5-11ec-ba43-dac502259ad0.png

3. N-pair Loss

Improved Deep Metric Learning with Multi-class N-pair Loss Objective(NIPS 2016)提出N-pairLoss。在之前提出的contrastive loss和triplet loss中,每次更新只會使用一個負樣本,而無法見到多種其他類型負樣本信息,因此模型優(yōu)化過程只會保證當(dāng)前樣本的embedding和被采樣的負樣本距離遠,無法保證和所有類型的負樣本都遠,會影響模型收斂速度和效果。即使多輪更新,但是這種情況仍然會導(dǎo)致每輪更新的不穩(wěn)定性,導(dǎo)致學(xué)習(xí)過程持續(xù)震蕩。

為了解決這個問題,讓模型在每輪更新中見到更多的負樣本,本文提出了N-pair loss,主要改進是每次更新的時候會使用多個負樣本的信息。N-pair loss可以看成是一種triplet loss的擴展,兩個的關(guān)系如下圖,當(dāng)我們有1個正樣本和N-1個負樣本時,N-pair loss的計算方式:

b3501f74-e8a5-11ec-ba43-dac502259ad0.png

b3677444-e8a5-11ec-ba43-dac502259ad0.png

擴大負樣本數(shù)量的問題在于,原來每個batch內(nèi)只需要計算N*3個樣本,現(xiàn)在需要計算N*(N+1)個樣本,運算量大幅度提高,難以實現(xiàn)。為了解決這個問題,文中提出將一個batch內(nèi)不同樣本的負樣本數(shù)據(jù)共享,這樣只需要計算3*N個樣本的embedding即可,實現(xiàn)了效率提升。

b38b6188-e8a5-11ec-ba43-dac502259ad0.png

4. InfoNceLoss

Representation learning with contrastive predictive coding(2018)提出infoNce loss,是對比學(xué)習(xí)中最常用的loss之一,它和softmax的形式很相似,主要目標(biāo)是給定一個query,以及k個樣本,k個樣本中有一個是和query匹配的正樣本,其他都是負樣本。當(dāng)query和正樣本相似,并且和其他樣本都不相似時,loss更小。InfoNCE loss可以表示為如下形式,其中r代表temperature,采用內(nèi)積的形式度量兩個樣本生成向量的距離,InfoNCE loss也是近兩年比較火的對比學(xué)習(xí)中最常用的損失函數(shù)之一:

b3b6b7ca-e8a5-11ec-ba43-dac502259ad0.png

相比softmax,InfoNCE loss使用了temperature參數(shù),以此將樣本的差距拉大,提升模型的收斂速度。

5. Focal Loss

Focal Loss for Dense Object Detection(2018)提出Focal Loss,最開始主要是為了解決目標(biāo)檢測中的問題,但是在很多其他領(lǐng)域也可以適用。Focal Loss解決的核心問題是,當(dāng)數(shù)據(jù)中有很多容易學(xué)習(xí)的樣本和較少的難學(xué)習(xí)樣本時,如何調(diào)和難易樣本的權(quán)重。如果數(shù)據(jù)中容易的樣本很多,難的樣本很少,容易的樣本就會對主導(dǎo)整體loss,對難樣本區(qū)分能力弱。

為了解決這個問題,F(xiàn)ocal Loss根據(jù)模型對每個樣本的打分結(jié)果給該樣本的loss設(shè)置一個權(quán)重,減小容易學(xué)的樣本(即模型打分置信的樣本)的loss權(quán)重。在交叉熵的基礎(chǔ)上,公式可以表示如下:

b3d558d8-e8a5-11ec-ba43-dac502259ad0.png

b41f579e-e8a5-11ec-ba43-dac502259ad0.png

b44595c6-e8a5-11ec-ba43-dac502259ad0.png

其中pt表示,當(dāng)label為1時模型的預(yù)測值,當(dāng)label為0時1-模型的預(yù)測值。通過對這個loss公式的分析可以看出,對于label為1的樣本,且模型預(yù)測值接近1,這個時候該樣本分類正確且容易預(yù)測,則第一項權(quán)重接近0,顯著減小了這種易分類樣本的loss權(quán)重。當(dāng)label為0,模型預(yù)測值接近1時,屬于預(yù)測錯誤,loss的權(quán)重也是接近1的,對該樣本的loss基本沒有影響。

6. GHM Loss

在Focal Loss中強制讓模型關(guān)注難分類的樣本,但是數(shù)據(jù)中可能也存在一些異常點,過度關(guān)注這些難分類樣本,反而會讓模型效果變差。Gradient Harmonized Single-stage Detector(AAAI 2019)提出了GHM Loss,

首先分析了一個收斂的目標(biāo)檢測模型中,所有樣本梯度模長的分布情況。梯度模長衡量了一個樣本對模型梯度的影響大?。ú豢紤]方向),反映了一個樣本的難以程度,g越大模型因為此樣本需要更新的梯度越大,預(yù)測難度越大。基于交叉熵和模型輸出,梯度模長g定義如下:

b469321a-e8a5-11ec-ba43-dac502259ad0.png

b49ddbdc-e8a5-11ec-ba43-dac502259ad0.png

一個收斂的目標(biāo)檢測模型的梯度模長分布如下,簡單樣本(即g很小的樣本)占絕大多數(shù),這部分樣本是我們希望減小其loss權(quán)重的;同時還有很多難樣本,它們的g非常大,這部分可以被視作異常點,因為它們的梯度不符合大多數(shù)樣本,對于這部分極難樣本也應(yīng)該減小權(quán)重。

b4c0313c-e8a5-11ec-ba43-dac502259ad0.png

為了同時減小易學(xué)習(xí)樣本和異常點樣本的權(quán)重,文中引入了梯度密度的概念(GD),衡量單位梯度模長的樣本密度。這個梯度密度用來作為交叉熵loss中的樣本權(quán)重,公式如下:

b4f887d0-e8a5-11ec-ba43-dac502259ad0.png

上面右側(cè)的圖對比了各種loss對不同梯度模長樣本的影響情況,可以看到GHM對于簡單樣本和困難樣本都進行了一定的loss抑制,而Focal Loss只能對簡單樣本進行l(wèi)oss抑制,普通loss對這兩類樣本都沒有抑制作用。

7. Circle Loss

Circle Loss: A Unified Perspective of Pair Similarity Optimization(CVPR 2020)提出circle loss,從一個統(tǒng)一的視角融合了class-level loss和pair-wise loss。這兩種優(yōu)化目標(biāo),其實都是在最小化sn-sp,其中sn表示between-class similarity,即不同類別的樣本表示距離應(yīng)該盡可能大;sp表示within-class similarity,即相同類別的樣本表示距離盡可能小。因此,兩種類型的loss都可以寫成如下統(tǒng)一形式:

b5231888-e8a5-11ec-ba43-dac502259ad0.png

基于sn-sp這種loss存在的問題是,優(yōu)化過程中對sn和sp的懲罰力度是一樣的。例如下面左圖中,A點的sn已經(jīng)很小了,滿足要求了,而sp還不夠大,sn-sp這種優(yōu)化方法讓sn和sp的更新幅度相同。而更好的方法是多更新一些sp,少更新一些sn。此外,這種loss在優(yōu)化過程中也會導(dǎo)致模棱兩可的情況,導(dǎo)致收斂狀態(tài)不明確。例如T和T'這兩個點,都滿足給定margin的情況下的優(yōu)化目標(biāo),但卻存在不同的優(yōu)化點。

b54a1e4c-e8a5-11ec-ba43-dac502259ad0.png

為了解決這個問題,circle loss在sn和sp分別增加了權(quán)重,用來動態(tài)確定sn和sp更新的力度,實現(xiàn)sn和sp以不同步調(diào)學(xué)習(xí),circle loss的公式如下。當(dāng)sn或sp相似度結(jié)果距離各自的最優(yōu)點較遠時,會以一個更大的權(quán)重進行更新。同時,在這種情況下loss不再是對稱的,需要對sn和sp分別引入各自的margin。

b57cc478-e8a5-11ec-ba43-dac502259ad0.png

8. 總結(jié)

損失函數(shù)是影響表示學(xué)習(xí)效果的關(guān)鍵因素之一,本文介紹了表示學(xué)習(xí)中7大損失函數(shù)的發(fā)展歷程,核心思路都是通過對比的方式約束模型生成的表示滿足相似樣本距離近,不同樣本距離遠的原則。 審核編輯:郭婷

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

    關(guān)注

    45

    文章

    3655

    瀏覽量

    134893

原文標(biāo)題:表示學(xué)習(xí)中的7大損失函數(shù)梳理

文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    藍牙技術(shù)的發(fā)展歷程和工作原理

    你是否曾經(jīng)想過,手機、耳機、鍵盤等設(shè)備之間是如何實現(xiàn)無線連接的?這一切都離不開一項重要的技術(shù)——藍牙。本文將帶你一起探索藍牙技術(shù)的發(fā)展歷程,了解這項技術(shù)如何從初代發(fā)展到5.0版本,以及它在我們?nèi)粘I?/div>
    的頭像 發(fā)表于 01-10 15:29 ?198次閱讀

    LP-SCADA的發(fā)展歷程和應(yīng)用行業(yè)?

    關(guān)鍵字:LP-SCADA,藍鵬測控系統(tǒng), 藍鵬SCADA, LP-SCADA, 藍鵬測控系統(tǒng), 藍鵬測量軟件,獨立SCADA系統(tǒng) LP-SCADA的發(fā)展歷程 LP-SCADA系統(tǒng)是藍鵬測控(保定市藍
    發(fā)表于 12-05 13:57

    【每天學(xué)點AI】前向傳播、損失函數(shù)、反向傳播

    在深度學(xué)習(xí)的領(lǐng)域中,前向傳播、反向傳播和損失函數(shù)是構(gòu)建和訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型的三個核心概念。今天,小編將通過一個簡單的實例,解釋這三個概念,并展示它們的作用。前向傳播:神經(jīng)網(wǎng)絡(luò)的“思考”過程前向傳播
    的頭像 發(fā)表于 11-15 10:32 ?732次閱讀
    【每天學(xué)點AI】前向傳播、<b class='flag-5'>損失</b><b class='flag-5'>函數(shù)</b>、反向傳播

    RNN的損失函數(shù)與優(yōu)化算法解析

    RNN的損失函數(shù) RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))在處理序列數(shù)據(jù)的過程,損失函數(shù)(Loss Function)扮演著重要的角色,它可以測量模型在訓(xùn)練
    的頭像 發(fā)表于 11-15 10:16 ?534次閱讀

    語義分割25種損失函數(shù)綜述和展望

    語義圖像分割,即將圖像的每個像素分類到特定的類別,是許多視覺理解系統(tǒng)的重要組成部分。作為評估統(tǒng)計模型性能的主要標(biāo)準(zhǔn),損失函數(shù)對于塑造基
    的頭像 發(fā)表于 10-22 08:04 ?722次閱讀
    語義分割25種<b class='flag-5'>損失</b><b class='flag-5'>函數(shù)</b>綜述和展望

    直徑測量工具的發(fā)展歷程

    關(guān)鍵字:直徑測量,工業(yè)直徑測量設(shè)備,線性尺量器,光電測徑儀, 直徑測量工具的發(fā)展歷程是一個悠久且不斷創(chuàng)新的過程,它隨著科學(xué)技術(shù)的進步而不斷演變。以下是直徑測量工具發(fā)展歷程的詳細概述:
    發(fā)表于 10-10 16:55

    簡述socket編程的常用函數(shù)

    Socket編程是一種基于TCP/IP協(xié)議的網(wǎng)絡(luò)編程技術(shù),它允許應(yīng)用程序通過網(wǎng)絡(luò)進行通信。在Socket編程,有許多常用的函數(shù),它們用于創(chuàng)建、配置、連接、發(fā)送和接收數(shù)據(jù)等操作。以下是對這些常用函數(shù)
    的頭像 發(fā)表于 08-16 10:49 ?432次閱讀

    NAND閃存的發(fā)展歷程

    NAND閃存的發(fā)展歷程是一段充滿創(chuàng)新與突破的歷程,它自誕生以來就不斷推動著存儲技術(shù)的進步。以下是對NAND閃存發(fā)展歷程的詳細梳理,將全面且深
    的頭像 發(fā)表于 08-10 16:32 ?1404次閱讀

    AI大模型的發(fā)展歷程和應(yīng)用前景

    隨著人工智能技術(shù)的飛速發(fā)展,AI大模型逐漸成為研究與應(yīng)用領(lǐng)域的熱點。AI大模型,顧名思義,是指具有巨大參數(shù)量的深度學(xué)習(xí)模型,這些模型通過學(xué)習(xí)海量的數(shù)據(jù),能夠在自然語言處理、計算機視覺、自主駕駛等多個
    的頭像 發(fā)表于 07-03 18:20 ?1259次閱讀

    PLC的發(fā)展歷程

    最初的簡單控制器發(fā)展成為現(xiàn)代工業(yè)自動化領(lǐng)域中的智能化系統(tǒng)。本文將詳細介紹PLC的發(fā)展歷程,包括其起源、發(fā)展階段和現(xiàn)代階段,并探討PLC在工業(yè)自動化領(lǐng)域中的應(yīng)用和未來的
    的頭像 發(fā)表于 06-14 10:15 ?2731次閱讀

    光伏逆變器的發(fā)展歷程

    光伏逆變器的發(fā)展歷程可以追溯到20世紀(jì)70年代末期,隨著光伏電池的發(fā)展和應(yīng)用,人們開始意識到將其應(yīng)用于實際電力系統(tǒng)中所面臨的難題,光伏逆變器因此應(yīng)運而生。
    的頭像 發(fā)表于 05-06 17:01 ?723次閱讀

    PyTorch激活函數(shù)的全面概覽

    為了更清晰地學(xué)習(xí)Pytorch的激活函數(shù),并對比它們之間的不同,這里對最新版本的Pytorch的激活函數(shù)進行了匯總,主要介紹激活
    的頭像 發(fā)表于 04-30 09:26 ?571次閱讀
    PyTorch<b class='flag-5'>中</b>激活<b class='flag-5'>函數(shù)</b>的全面概覽

    制冷劑的發(fā)展歷程發(fā)展趨勢

    一、制冷劑的發(fā)展歷程 在民用空調(diào)、工業(yè)制冷,制冷劑作為制冷系統(tǒng)不可或缺的工質(zhì),一直發(fā)揮著重要作用。從歷史上看,制冷劑的發(fā)展可以分為四個階
    發(fā)表于 03-02 17:52

    verilog函數(shù)和任務(wù)對比

    在verilog,函數(shù)和任務(wù)均用來描述共同的代碼段,并且在模式內(nèi)任意位置被調(diào)用,提高代碼效率,讓代碼更加的直觀,提高代碼可讀性。但是在實際使用的過程,函數(shù)和任務(wù)也存在諸多的不同,下
    的頭像 發(fā)表于 02-12 18:43 ?905次閱讀

    對象檢測邊界框損失函數(shù)–從IOU到ProbIOU介紹

    目標(biāo)檢測損失函數(shù)的選擇在目標(biāo)檢測問題建模至關(guān)重要。通常,目標(biāo)檢測需要兩個損失函數(shù),一個用于對象分類,另一個用于邊界框回歸(BBR)。
    的頭像 發(fā)表于 01-24 10:50 ?2984次閱讀
    對象檢測邊界框<b class='flag-5'>損失</b><b class='flag-5'>函數(shù)</b>–從IOU到ProbIOU介紹