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