1. SVM 損失:在一個樣本中,對於真實分類與其他每各個分類,如果真實分類所得的分數與其他各分類所得的分數差距大於或等於安全距離,則真實標簽分類與該分類沒有損失值;反之則需要計算真實分類與該分類的損失值; 真實分類與其他各分類的損失值的總和即為一個樣本的損失值
①即真實標簽分類所得分數大於等於該分類的分數+安全距離,S_yi >=S_j + △,那么損失值=0
②否則,損失值等於其他分類的分數 + 安全距離(閾值)- 真實標簽分類所得的分數,即損失值=S_j + △ - S_yi
S_yi:真實標簽分類的分數 S_j:其他標簽的分數 △:安全距離、閾值
③以上是針對每一個樣本而言的,一輪的損失值=n個樣本損失值Li的算術平均和+正則化(每一個樣本是指每一個測試數據)
④算法過程:對於每一個樣本,計算真實分類與其他各個分類的損失值,真實分類與其他各個分類的損失值的總和即為一個樣本的損失值;
所有的樣本損失值的算術平均和 + 正則化 = 總體損失值
Li:(用於理解)此處的安全距離=1
Li表達式:
L表達式:
2. Multiclass SVM loss的圖像:閾值為1
3. 例子
①一共有3個樣本,第一個樣本的真實分類是cat,第二個是car,第三個是frog。
注意:真實分類是指數據的真實標簽,而不是預測標簽
②第一個樣本,真實標簽是貓,所以要計算其他分類的得分與貓分類的得分是否在一個安全的范圍內
max(汽車的分數 + 安全距離 - 貓的分數,0)+ max(青蛙的分數 + 安全距離 - 貓的分數,0)= max(2.9 , 0)+ max(-3.9,0)= 2.9
所有第一個樣本的損失值為2.9,以此類推
③算完三個樣本的損失值后,求三個樣本損失值的算術平均和,該結果即為總體損失值(其實一般還要加一個正則化)
4. 代碼