caffe中各種loss函式

2021-08-04 17:01:57 字數 3835 閱讀 8044

在有監督的機器學習中,需要有標籤資料,與此同時,也需要有對應的損失函式(loss function)。

在caffe中,目前已經實現了一些損失函式,包括最常見的l2損失函式,對比損失函式,資訊增益損失函式等等。在這裡做乙個筆記,歸納總結caffe中用到的不同的損失函式,以及分析它們各自適合的使用場景。

輸入:

**的值: y 

^∈[?

∞,+∞

] , 其中,它們的形狀為:n×

c×h×

w 標籤的值: y∈

[?∞,

+∞] 

, 其中,它們的形狀為:n×

c×h×

w 輸出:

損失的值:lo

ss=1

2n∑n

n=1∥y ^

n?yn∥2

2 適合場景:

回歸,特別是其回歸的值是實數值得時候。

輸入:

形狀:(n×

c×1×

1)特徵 a∈

[?∞,

+∞] 

形狀:(n×

c×1×

1)特徵 b∈

[?∞,

+∞] 

形狀:(n×

1×1×

1)相似性 y∈

[0,1

輸出:

形狀:(1×

1×1×

1) 

對比損失函式為: e=

12n∑

n=1n

(y)d+(1

?y)max(m

argi

n?d,

0)

其中 d=|

|an?

bn||

22 .

適合場景:

可以用來訓練siamese網路

輸入:

形狀:(n×

c×h×

w)**值 t∈

[?∞,

+∞] 

代表著** k=

chw  個類中的得分(注:chw表示著在網路設計中,不一定要把**值進行向量化,只有其拉直後元素的個數相同即可。) . 在svm中, t 

是 d 維特徵x∈

rd×n

, 和學習到的超平面引數w∈

rd×k

內積的結果 x 

t w

所以,乙個網路如果僅僅只有全連線層 + 鉸鏈損失函式,而沒有其它的可學習的引數,那麼它就等價於svm

標籤值:(n

×1×1

×1) 

標籤 l 

, 是乙個整數型別的數 ln

∈[0,

1,2,

...,

k?1]

其代表在 

k  個類中的正確的標籤。

輸出:

形狀:(1×

1×1×

1) 

損失函式計算: e=

1n∑n

=1n 

∑k=1

k [max(0

,1?δ

tnk)

]p, lp

範數 (預設是 p=

1 , 是 l1 範數; l2 範數,正如在 l2-svm中一樣,也有實現),

其中 δ={

1?1成立

不成立 

應用場景:

在一對多的分類中應用,類似於svm.

輸入:

形狀:(n×

c×h×

w)**值 p^

∈[0,

1]內, 表示這**每一類的概率,共 k=

chw  個類, 每乙個** 概率p^

n的和為1: ?n

∑k=1

k p^

nk=1 

.形狀:(n×

1×1×

1)標籤值: l 

, 是乙個整數值,其範圍是 ln

∈[0,

1,2,

...,

k?1]

表示著在 

k  個類中的索引。

形狀:(1×

1×k×

k)(可選) 資訊增益矩陣 

h .作為第三個輸入引數,. 如果 h=

i , 則它等價於多項式邏輯損失函式

輸出:

形狀:(1×

1×1×

1) 

計算公式: e=

?1n∑

n=1n

h ln 

log(p^

n)=?1n∑

n=1n

∑k=1k h

ln,klog(p

^ n,

k), 其中 h 

ln  

表示 行 ln

of h .

輸入:

形狀:(n×

c×h×

w)**值 p^

∈[0,

1]範圍中, 表示這**的每一類的概率,共 k=

chw  個類. 每乙個**概率p^

n的和為1: ?n

∑k=1

k p^

nk=1 

.形狀:(n

×1×1

×1) 

標籤 l 

, 是乙個整數值,其範圍是 ln

∈[0,

1,2,

...,

k?1]

表示著在 

k  個類中的索引。

輸出:

形狀:(1×

1×1×

1)計算公式: e=

?1n∑

n=1n

log(p

^ n,

ln )

應用場景:

在一對多的分類任務中使用,直接把**的概率分布作為輸入.

輸入:

形狀: (n

×c×h

×w) 

得分 x∈

[?∞,

+∞] 

, 這個層使用 sigmoid 函式 σ(

.)對映到概率分布 p^

n=σ(xn)

∈[0,

1]形狀:(n

×c×h

×w) 

標籤 y∈

[0,1

] 輸出:

形狀:(1×

1×1×

1)計算公式: e=

?1n∑

n=1n

[pnlogp^ 

n+(1

?pn)

log(1?

p^ n

)]應用場景:

**目標概率分布

輸入:

形狀:(n×

c×h×

w)**值 x∈

[?∞,

+∞] 

代表**每個類的得分。 共 k=

chw  類. 這一層把得分通過softmax對映到概率分布 p^

nk=exp(xn

k)/[

∑k′ 

exp(xn

k′ )

] 形狀:(n

×1×1

×1) 

標籤值 是乙個整數值,其範圍是 ln

∈[0,

1,2,

...,

k?1]

表示著在 

k  個類中的索引。

輸出:

形狀:(1×

1×1×

1)計算公式: e=

?1n∑

n=1n

log(p

^ n,

ln )

, 其中 p^

為softmax輸出的類概率。

應用場景:

在一對多分類中應用。

caffe教程翻譯 Loss

與絕大多數的機器學習引擎一樣,caffe是由乙個lossfunction 損失函式 驅動的。loss function也稱為 error function,cost function或者objective function。loss function利用模型中的引數 比如模型中網路的weights ...

caffe 繪製accuracy和loss曲線

我們在訓練的時候會用到caffe buile tools caffe 這個裡面的train這個選項。在輸入之後,正常會顯示訓練日誌的詳細資訊。想要畫出這裡面顯示的loss和accuracy圖,就可以把這些輸出的日誌內容重定向到乙個檔案內,然後利用shell命令檢索出其中的loss和accuracy值...

Caffe 繪製loss和accuracy曲線

這裡我們在ipython notebook中繪製曲線 載入必要的庫 import numpy as np import matplotlib.pyplot as plt matplotlib inline import sys,os,caffe 設定當前目錄 caffe root home bnu ...