Caffe中的損失函式解析

2021-07-04 11:28:39 字數 3923 閱讀 2452

在有監督的機器學習中,需要有標籤資料,與此同時,也需要有對應的損失函式(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(ma

rgin

−d,0

)

其中 d=

||an

−bn|

|22 .

適合場景:

可以用來訓練siamese網路

輸入:

形狀:(n

×c×h

×w)  **值 t∈

[−∞,

+∞]  代表著** k=

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

t  是 d 維特徵x∈

rd×n

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

rd×k

內積的結果 xt

w

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

標籤值:(n

×1×1

×1)  標籤 

l , 是乙個整數型別的數 ln

∈[0,

1,2,

...,

k−1]

其代表在 

k  個類中的正確的標籤。

輸出:

形狀:(1

×1×1

×1)

損失函式計算: e=

1n∑n

=1n∑

k=1k

[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

kp^n

k=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

hlnlog(p

^n)=

−1n∑

n=1n

∑k=1

khln

,klog(p^

n,k)

, 其中 hl

n  表示 行 ln

of h .

輸入:

形狀:(n

×c×h

×w)  **值 p^

∈[0,

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

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

n  的和為1: ∀n

∑k=1

kp^n

k=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(x

nk)/

[∑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...