Contrastive Loss 對比損失

2021-08-28 13:02:25 字數 1011 閱讀 7650

在傳統的siamese network中一般使用contrastive loss作為損失函式,這種損失函式可以有效的處理孿生神經網路中的paired data的關係。

siamese network-孿生神經網路

contrastive loss的表示式如下:

# tensorflow偽**

def contrastive_loss(self, y,d,batch_size):

tmp= y *tf.square(d)

#tmp= tf.mul(y,tf.square(d))

tmp2 = (1-y) *tf.square(tf.maximum((1 - d),0))

return tf.reduce_sum(tmp +tmp2)/batch_size/2

即原本相似的樣本,如果在特徵空間的歐式距離較大,則說明當前的模型不好,因此加大損失。

而當y=0時(即樣本不相似)時,損失函式為

即當樣本不相似時,其特徵空間的歐式距離反而小的話,損失值會變大,這也正好符號我們的要求。

這張圖表示的就是損失函式值與樣本特徵的歐式距離之間的關係,其中紅色虛線表示的是相似樣本的損失值,藍色實線表示的不相似樣本的損失值。

個人見解:歐式距離表示兩個文字向量在空間之間的距離,如果距離很**明樣本相似;反過來,兩個文字越相似,那麼它們之間的歐式距離越小;從上面圖中我們可以看出,x軸為d(歐式距離),以紅色虛線為例,它們描述了兩個相似文字loss與歐式距離之間的關係,因為歐式距離越大與"兩個文字相似"這個事實事與願違,那麼我們就對它們懲罰越大(即loss越大)。

來自文章:

Contrastive Loss 對比損失

在caffe的孿生神經網路 siamese network 中,其採用的損失函式是contrastive loss,這種損失函式可以有效的處理孿生神經網路中的paired data的關係。contrastive loss的表示式如下 l 12n n 1n yd2 1 y max mar gin d,...

10kv線損計算公式 線損以及線損率的計算公式

線損率計算公式 線損率 線損電量 供電量 100 供電量 售電量 供電量 100 1 輸電線路損耗 1 單一線路有功功率損失計算公式為 p i2r 式中 p 損失功率,w i 負荷電流,a r 導線電阻,2 三相電力線路 線路有功損失為 p pa十 pb十 pc 3i2r 3 溫度對導線電阻的影響 ...

止損 鱷魚原則

當鱷魚咬住了乙個人的腳,如果這個人用手臂去跟鱷魚搏鬥的話,鱷魚的嘴巴就會同時咬住他 的手,並且越掙扎陷的越深,直到最後被鱷魚吃掉。在這種情況下,唯一的生存機會就是立刻 把這只腳犧牲掉。講到做交易,乙個重要的原則就是止損,鱷魚原則講的就是止損理念。鱷魚在吞食獵物的時候,每咬一口的動作都非常迅速,通常獵...