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