Caffe實踐 損失函式解析

2021-07-02 01:59:26 字數 4192 閱讀 3697

在有監督的機器學習中,需要有標籤資料,與此同時,也需要有對應的損失函式(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 function 在caffe中,目前已經實現了一些損失函式,包括最常見的l2損失函式,對比損失函式,資訊增益損失函式等等。在這裡做乙個筆記,歸納總結caffe中用到的不同的損失函式,以及分析它們各自適合的使用場景。輸...

Caffe中的損失函式解析

導言 在有監督的 機器學習 中,需要有標籤資料,與此同時,也需要有對應的損失函式 loss function 在caffe中,目前已經實現了一些損失函式,包括最常見的l2損失函式,對比損失函式,資訊增益損失函式等等。在這裡做乙個筆記,歸納總結caffe中用到的不同的損失函式,以及分析它們各自適合的使...

caffe(六)主函式解析

tools caffe.cpp 登錄檔 首先定義乙個登錄檔,typedef int brewfunction typedef std map string,brewfunction brewmap brewmap g brew map define registerbrewfunction func...