1. 程式人生 > >hinge loss/支援向量損失的理解

hinge loss/支援向量損失的理解

線性分類器損失函式與最優化

假設有3類 cat car frog

這裡寫圖片描述

第一列第二行的5.1表示真實類別為cat,然後分類器判斷為car的的分數為5.1。

那這裡的這個loss怎麼去計算呢?

這裡就要介紹下SVM的損失函式,叫hinge loss。 
如上圖所示,我們去計算第一列的損失,計算方法如下:

因為真實的類為cat,所以我們讓其他兩類的分數去減去真實類的分數,相當於去計算真實類和其他類之間的誤差。得到第一列的誤差計算如下:
  • 1
  • 2

這裡寫圖片描述

這裡3.2為真實類的分數,所以為被減數

這裡寫圖片描述

這個計算方法就是用的多類SVM損失。

SVM損失(hinge loss)

給定一個樣本這裡寫圖片描述,當是一張圖片,yi是一個整型標籤。成績向量s=f(xi,W),SVM損失定義如下:

這裡寫圖片描述

這是一個二分類支援向量機的泛化,它計算了所有不正確的例子,將所有不正確的類別的評分,與正確類別的評分之差加1,將得到的數值與0作比較,取兩者中的最大值,然後將所有的數值進行求和。 
我們不僅要使得正確類別的評分高於錯誤類別的評分,還使用了一個安全係數,係數的值為1,為啥安全係數為1?

根據W的不同,得出的分數也不同,W按比例縮放,分數也在縮放,所以安全係數為1是隨意給的。

全部訓練集的Loss是這裡寫圖片描述,就是上面那個多類SVM的mean。和這裡寫圖片描述看上去差不多,但是其實有差別,我們不是在不斷的縮放或者平移這一損失,而是在非線性的改變支援向量機SVM,其實第二種就是square hinge loss,第一個是hinge loss。 
這裡寫圖片描述

問:那麼利用hinge loss的最大損失和最小損失分別為多少? 
答:最小值:0,最大值:無窮大

問:最開始的時候,W都很小,接近於零,那麼在優化的時候分數很接近零,就是說左邊計算出的Sj都接近零,那麼損失值會怎麼樣? 
答:像左邊只有三類的,平均損失會接近2。

正確性檢查程式 
一般為了正確性檢查程式,當從很小的數W開始優化時,你的第一個損失函式,如果你的函式形式基本正確,只需要去看得到的數是否有意義,例如當在這個例子中損失為2,說明程式正確執行。 
向量化實現:這裡寫圖片描述

Def Li_vecterized(x,y,W):
Score =W.dot(x)
Margins = np.maximum
(0,scores-scores[y]+1) Margins[y]=0 Loss_i = np.sum(margins) Return Loss_i
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

:如果我們找到了一個W,使得損失函式為零,那麼這個W是否是獨一無二的? 
:當找到一個W後,用2W去計算Loss,發現損失還是為零,而且越大,分數越大,差本來就是小於-1的數,那更加小於-1

所以引入了正則化 R(W)

正則化

這裡寫圖片描述 
R(W)衡量了W的好壞,我們不僅僅想要資料擬合得更好,也希望能優化W,訓練損失和你用於測試集的泛化損失,所以正則化是一系列通過損失來使目標相加的技術,和前面的項形成競爭,前面的想適應你的訓練資料,而這個想要讓W呈現一種特殊的方式,所以有時在目標中他們會相互競爭。 
事實證明,正則項有時會讓訓練錯誤變得更多,甚至造成錯誤的分類,但是我們注意到,他會使測試結果表現得更好。

常見正則化或者權值衰減: 
這裡寫圖片描述

還有max norm /drop out等

例: 
X=[1,1,1,] 
W1 = [1,0,0,0] 
W2 = [0.25,0.25,0.25,0.25] 
他們乘積都為1: 
這裡寫圖片描述

不加正則化,分數一樣,loss一樣,但L2正則化考慮了x中的大部分東西,L2會認為W2好些。

Softmax

Softmax分類:一般化的邏輯斯蒂迴歸

這裡寫圖片描述

假設這些分數都是未標準化的對數概率 
這一列表示真實圖片為貓,然後判斷為這三類的分數分別為3.2、5.1、-1.7。 
求圖片為某一類的概率:這裡寫圖片描述 
使正確分類的概率的對數最大,根據損失函式,我們要使負的正確分類概率的對數最小,所以概率對數是分數的擴充套件。 
這裡寫圖片描述

這裡寫圖片描述

問:上面這個Loss的最大值、最小值? 
答:看log函式就能看出來,為1的時候最小為0,為0的時候最大為無窮大。

問:剛開始訓練的時候,W很小,那麼損失值是多少呢? 
答:是類別數分之一的對數負值,可用於檢查程式碼

Hinge loss和cross-entropy loss比較

下圖分別展示了hinge loss和cross-entropy loss的計算過程。 
這裡寫圖片描述

Hinge loss的話只有當分類正確,即這裡寫圖片描述的時候,損失為0

但是cross entropy loss對每個樣例的每個分數都有用到。當分數發生微小變化的時候,cross entropy loss會變,hinge loss不會變。 
下一章 反向傳播與神經網路初步

原文地址:http://blog.csdn.net/sxf1061926959/article/details/60470415