99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

徐土豆
認證:優(yōu)質(zhì)創(chuàng)作者
所在專題目錄 查看專題
MoCo 動量對比學(xué)習——一種維護超大負樣本訓(xùn)練的框架
訓(xùn)練大規(guī)模對比學(xué)習的一些小筆記
圖文搜索系統(tǒng)中的多模態(tài)模型:將MoCo應(yīng)用在多模態(tài)對比學(xué)習上
Batch Norm層在大尺度對比學(xué)習中的過擬合現(xiàn)象及其統(tǒng)計參數(shù)信息泄露問題
hinge loss的一種實現(xiàn)方法
【論文極速讀】MoCo v3: MoCo機制下Transformer模型的訓(xùn)練不穩(wěn)定現(xiàn)象
作者動態(tài) 更多
給定計算預(yù)算下的最佳LLM模型尺寸與預(yù)訓(xùn)練數(shù)據(jù)量分配
3星期前
大模型推理時的尺度擴展定律
3星期前
世界多胞體與世界模型
05-13 09:42
獎勵模型中的尺度擴展定律和獎勵劫持
05-12 08:41
MeCo——給預(yù)訓(xùn)練數(shù)據(jù)增加源信息,就能減少33%的訓(xùn)練量并且提升效果
05-08 09:13

hinge loss的一種實現(xiàn)方法

hinge loss是一種常用損失[1],常用于度量學(xué)習和表征學(xué)習。對于一個模型,如果給定了樣本x的標簽y(假設(shè)標簽是0/1標簽,分別表示負樣本和正樣本),那么可以有兩種選擇進行模型的表征學(xué)習。第一是pointwise形式的監(jiān)督學(xué)習,通過交叉熵損失進行模型訓(xùn)練,也即是如式子(1-1)所示。

其中的是softmax函數(shù)。第二種方式是將樣本之間組成如的pair,通過hinge loss進行pair的偏序關(guān)系學(xué)習,其hinge loss可以描述為式子(1-2):

其中的分別表示負樣本和正樣本的打分,而m mm這是正樣本與負樣本之間打分的最小間隔。如Fig 1.所示,我們發(fā)現(xiàn),而,從式子(1-2)中可以發(fā)現(xiàn),只有會產(chǎn)生loss,而? 則不會產(chǎn)生loss,這一點能防止模型過擬合一些簡單的負樣本,而盡量去學(xué)習難負例。

Fig 1. hinge loss的圖示。

從實現(xiàn)的角度出發(fā),我們通常可以采用下面的方式實現(xiàn),我們簡單介紹下其實現(xiàn)邏輯。

import torch 
import torch.nn.functional as F

margin = 0.3
for data in dataloader():
    inputs, labels = data
    score_orig = model(inputs) # score_orig shape (N, 1)
    N = score_orig.shape[0]
    score_1 = score_orig.expand(1, N) # score_1 shape (N, N)
    score_2 = torch.transpose(score_1, 1, 0) 

    label_1 = label.expand(1, N) # label_1 shape (N, N)
    label_2 = label_1.transpose(label_1, 1, 0)
	label_diff = F.relu(label_1 - label_2)
    score_diff = F.relu(score_2 - score_1 + margin)
    hinge_loss = score_diff * label_diff
    ...

為了實現(xiàn)充分利用一個batch內(nèi)的樣本,我們希望對batch內(nèi)的所有樣本都進行組pair,也就是說當batch size為N的時候,將會產(chǎn)出個pair(樣本自身不產(chǎn)生pair),為了實現(xiàn)這個目的,就需要代碼中expand和transpose這兩個操作,如Fig 2.所示,通過這兩個操作產(chǎn)出的score_1和score_2之差就是batch內(nèi)所有樣本之間的打分差,也就可以認為是batch內(nèi)兩兩均組了pair。

Fig 2. 對score的處理流程圖

與此相似的,如Fig 3.所示,我們也對label進行類似的處理,但是考慮到偏序已經(jīng)預(yù)測對了的pair不需要產(chǎn)生loss,而只有偏序錯誤的pair需要產(chǎn)出loss,因此是label_1-label_2產(chǎn)出label_diff。通過F.relu()我們替代max()的操作,將不產(chǎn)出loss的pair進行屏蔽,將score_diff和label_diff相乘就產(chǎn)出了hinge loss。

Fig 3. 對label處理的流程圖。

即便我們的label不是0/1標簽,而是分檔標簽,比如相關(guān)性中的0/1/2/3四個分檔,只要具有高檔位大于低檔位的這種物理含義(而不是分類標簽),同樣也可以采用相同的方法進行組pair,不過此時label_1-label_2產(chǎn)出的label_diff中會出現(xiàn)大于1的item,可視為是對某組pair的loss加權(quán),此時需要進行標準化,代碼將會改成如下:

import torch 
import torch.nn.functional as F

margin = 0.3
epsilon = 1e-6
for data in dataloader():
    inputs, labels = data
    score_orig = model(inputs) # score_orig shape (N, 1)
    N = score_orig.shape[0]
    score_1 = score_orig.expand(1, N) # score_1 shape (N, N)
    score_2 = torch.transpose(score_1, 1, 0) 

    label_1 = label.expand(1, N) # label_1 shape (N, N)
    label_2 = label_1.transpose(label_1, 1, 0)
	label_diff = F.relu(label_1 - label_2)
    score_diff = F.relu(score_2 - score_1 + margin)
    hinge_loss = torch.sum(score_diff * label_diff) / (torch.sum(label_diff) + epsilon) # 標準化處理,加上epsilon防止溢出
    ...

Reference

[1]. https://blog.csdn.net/LoseInVain/article/details/103995962, 《一文理解Ranking Loss/Contrastive Loss/Margin Loss/Triplet Loss/Hinge Loss》

聲明:本內(nèi)容為作者獨立觀點,不代表電子星球立場。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯的朋友,別忘了一鍵三連哦!
贊 0
收藏 1
關(guān)注 52
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 九七九色丨麻豆 | 91精品999 | 久久a级毛片免费观看 | 国产精品一区视频网站 | 亚洲最大天堂无码精品区 | 国产三级日本三级在线播放 | 精品国产日韩亚洲一区 | 色婷婷国产精品一区二区 | 国产精品人人妻人人爽人人牛 | 夜色资源网站ye321 | 国产精品69久久久久孕妇欧美 | 亚洲综合成人婷婷五月在线观看 | 中日韩一级视频 | 制服丝袜自拍另类第1页 | 小嫩嫩12欧美 | 久久久亚洲精品一区二区三区 | 蜜桃国内精品久久久久软件9 | 免费看一级黄色 | 欧美韩国一区二区 | 青青草中文 | 国产中文区4幕区2023 | 精品一区二区三区视频日产 | 午夜网站在线观看 | 人人澡超碰碰97碰碰碰 | tube中国91xxxxx国产 | 热99RE久久精品这里都是精品免费 | 久久爱涩涩www | 欧美一级淫片免费视频欧美辣图 | 偷拍亚洲综合 | 日韩福利在线视频 | ⅹxxxxhd亚洲日本hd | 国产成在线观看免费视频成本人 | 国产无区一区二区三麻豆 | 国产AV午夜精品一区二区入口 | 久久久久国产一区二区三区 | 麻豆一区二区大豆行情 | 女人下边被添全过程A片 | 国产精品69精品一区二区三区 | 亚洲精品无码久久久久去Q 国产精选一级毛片 | jizz成熟丰满韩国女人 | 国产激情片 |