常見的損失函式

2021-09-19 08:34:29 字數 3388 閱讀 4763

通常機器學習每乙個演算法中都會有乙個目標函式,演算法的求解過程是通過對這個目標函式優化的過程。在分類或者回歸問題中,通常使用損失函式(代價函式)作為其目標函式。損失函式用來評價模型的**值和真實值不一樣的程度,損失函式越好,通常模型的效能越好。不同的演算法使用的損失函式不一樣。

損失函式分為經驗風險損失函式和結構風險損失函式。經驗風險損失函式指**結果和實際結果的差別,結構風險損失函式是指經驗風險損失函式加上正則項。通常表示為如下:

θ ∗=

argm

in1n

∑i=1

nl(y

i,f(

xi;θ

i))+

λφ(θ

)\theta ^=argmin\frac\sum_^l(y_,f(x_;\theta_ ))+\lambda \phi (\theta )

θ∗=arg

minn

1​i=

1∑n​

l(yi

​,f(

xi​;

θi​)

)+λφ

(θ)其中,前面的均值項表示經驗風險函式,l表示損失函式,後面的λφ(

θ)

\lambda \phi (\theta )

λφ(θ

)是正則化項(regularizer)或懲罰項(penalty term),它可以是l1、l2或者其他正則函式。整個式子表示要找到使得目標函式最小的引數θ

∗\theta^*

θ∗值。0-1損失是指,**值和目標值不相等為1,否則為0:

l (y

,f(x

))

=1, y\neq f(x)\\ 0, y=f(x) \end\right.

l(y,f(

x))=

1, |y-f(x)|\geq t\\ 0, |y=f(x)|l(

y,f(

x))=

(y - f(x))^

l(y,f(

x))=

n∑​(

y−f(

x))2

adaboost就是一指數損失函式為損失函式的。

指數損失函式的標準形式:

l (y

,f(x

))=e

xp[−

yf(x

)]

l(y,f(x)) = exp[-yf(x)]

l(y,f(

x))=

exp[

−yf(

x)]對數損失, 即對數似然損失(log-likelihood loss), 也稱邏輯回歸損失(logistic loss)或交叉熵損失(cross-entropy loss), 是在概率估計上定義的.它常用於(multi-nominal, 多項)邏輯斯諦回歸和神經網路,以及一些期望極大演算法的變體. 可用於評估分類器的概率輸出。

對數損失通過懲罰錯誤的分類,實現對分類器的準確度(accuracy)的量化. 最小化對數損失基本等價於最大化分類器的準確度.為了計算對數損失, 分類器必須提供對輸入的所屬的每個類別的概率值, 不只是最可能的類別。對數損失函式的計算公式如下:

l (y

,p(y

∣x))

=−lo

gp(y

∣x)=

−1n∑

i=1n

∑j=1

myij

log(

pij)

l(y,p(y|x))=-logp(y|x)=-\frac\sum_^n\sum_^my_log(p_)

l(y,p(

y∣x)

)=−l

ogp(

y∣x)

=−n1

​i=1

∑n​j

=1∑m

​yij

​log

(pij

​)其中, y

yy 為輸出變數, x

xx為輸入變數, l

ll 為損失函式. n

nn為輸入樣本量, m

mm為可能的類別數, yij

y_yi

j​是乙個二值指標, 表示類別 j

jj 是否是輸入例項 x

ix_i

xi​ 的真實類別。 pij

p_pi

j​為模型或分類器**輸入例項 x

ix_i

xi​ 屬於類別 j

jj 的概率.

如果只有兩類 , 則對數損失函式的公式簡化為

l (y

,p(y

∣x))

=−1n

∑i=1

n[yi

logp

i+(1

−yi)

log(

1−pi

)]

l(y,p(y|x))=-\frac\sum_^n[y_ilogp_i + (1-y_i)log(1-p_i)]

l(y,p(

y∣x)

)=−n

1​i=

1∑n​

[yi​

logp

i​+(

1−yi

​)lo

g(1−

pi​)

]這時, y

iy_i

yi​ 為輸入例項 x

ix_i

xi​ 的真實類別, p

ip_i

pi​ 為**輸入例項 x

ix_i

xi​ 屬於類別 1 的概率. 對所有樣本的對數損失表示對每個樣本的對數損失的平均值, 對於完美的分類器, 對數損失為 0。

sklearn中的對數損失函式方法:

from sklearn.metrics import log_loss

def unitest():

y_true = [0, 0, 1, 1]

y_pred = [0.1, 0.2, 0.7, 0.99]

print (log_loss(y_true, y_pred))

if __name__ == '__main__':

unitest()

參考**:

對數損失函式(logarithmic loss function)的原理和 python 實現

hinge loss用於最大間隔(maximum-margin)分類,其中最有代表性的就是支援向量機svm。

hinge函式的標準形式:

其中,t為目標值(-1或+1),y是分類器輸出的**值,並不直接是類標籤。其含義為,當t和y的符號相同時(表示y**正確)並且|y|≥1時,hinge loss為0;當t和y的符號相反時,hinge loss隨著y的增大線性增大。

參考**:

常見的損失函式

常見的損失函式

一 常見的損失函式 損失函式一般用來衡量 值和真實值之間的不一致程度。是乙個非負值,通常用l y,f x 來表示。1.0 1損失函式 結果和真實結果一致,則為0,不一致則為1.2.絕對值損失函式 真實值和 值差的絕對值。3.平方損失函式 4.指數損失函式 5.對數損失函式 6.合頁損失函式 t是 值...

常見損失函式 損失函式選擇方法

神經網路的學習通過某個指標表示現在的狀態,然後以這個指標為基準,尋找最優權重引數,這個指標就是損失函式 loss function 如上介紹,神經網路損失函式 loss function 也叫目標函式 objective function 的作用 衡量神經網路的輸出與預期值之間的距離,以便控制 調節...

常見損失函式記錄

常見損失函式記錄,主要是自己記一下公式,沒啥講解 最簡單的幾種,沒啥好說的 l y,f x y f x l y,f x left end right.l y,f x y f x 來自svm l y,tilde max 0,1 y tilde y pm 1 出自svm,也叫做svm loss,從數學表...