日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

分类评分函数 score function

發布時間:2025/3/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分类评分函数 score function 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 從圖像到標簽分值的映射
    • 多類 SVM 分類器
    • Softmax 分類器
    • SVM 和 Softmax的比較

從圖像到標簽分值的映射

一個線性映射:

f(xi,W,b)=Wxi+b\displaystyle f(x_i,W,b)=Wx_i+bf(xi?,W,b)=Wxi?+b

其中,參數 WWW 為權重(weights),bbb 稱為偏差向量(bias vector)

一個將圖像映射到分類分值的例子:

  • 為了便于可視化,假設圖像只有4個像素值,有3個分類。

  • 首先將圖像像素拉伸為一個列向量,與 WWW 進行矩陣乘,再加上偏置項 bbb,得到各個分類的分值。

  • 需要注意的是,由于權值沒有訓練到位,貓分類的分值非常低。

多類 SVM 分類器

針對第 iii 個數據的 jjj 類 SVM 的損失函數定義如下:

Li=∑j?=yimax(0,sj?syi+Δ)\displaystyle L_i=\sum_{j\not=y_i}max(0,s_j-s_{y_i}+\Delta)Li?=j??=yi??max(0,sj??syi??+Δ)

使用多類 SVM 分類時,正確分類的分數需要比其他不正確的分類分數高出 邊界值 deltaΔ\DeltaΔ)。其他分類分數進入了紅色的區域時,就開始計算損失。在紅色區域之前,損失值為0。

SVM 評分函數中,將輸出 sj=f(xi,W)js_j=f(x_i,W)_jsj?=f(xi?,W)j? 作為第 iii 個數據針對第 jjj 個類別的得分,所以分類損失的詳細定義為:

Li=∑j?=yimax(0,wjTxi?wyiTxi+Δ)\displaystyle L_i=\sum_{j\not=y_i}max(0,w^T_jx_i-w^T_{y_i}x_i+\Delta)Li?=j??=yi??max(0,wjT?xi??wyi?T?xi?+Δ)

加上正則化項:

L=1N∑i∑j?=yi[max(0,f(xi;W)j?f(xi;W)yi+Δ)]+λ∑k∑lWk,l2L=\frac{1}{N}\sum_i\sum_{j\not=y_i}[max(0,f(x_i;W)_j-f(x_i;W)_{y_i}+\Delta)]+\lambda \sum_k \sum_l W^2_{k,l}L=N1?i?j??=yi??[max(0,f(xi?;W)j??f(xi?;W)yi??+Δ)]+λk?l?Wk,l2?

其中:

  • max(0,?)max(0,-)max(0,?) 函數,它常被稱為 折葉損失(hinge loss)。有時候會聽到人們使用 平方折葉損失SVM(即 L2-SVM),它使用的是 max(0,?)2max(0,-)^2max(0,?)2,將更強烈(平方地而不是線性地)地懲罰過界的邊界值。可以通過交叉驗證來決定到底使用哪個。

  • 在絕大多數情況下設置 Δ=1.0\Delta=1.0Δ=1.0 都是安全的。超參數 Δ\DeltaΔλ\lambdaλ 一起控制損失函數中的數據損失(data loss)和正則化損失(regularization loss)之間的權衡。

  • 不同分類分值之間的邊界的具體值(比如 Δ=1\Delta=1Δ=1Δ=100\Delta=100Δ=100)從某些角度來看是沒意義的,因為權重自己就可以控制差異變大和縮小。也就是說,真正的權衡是我們允許權重能夠變大到何種程度,通過正則化強度 λ\lambdaλ 來控制,詳見:正則化方法 。

Softmax 分類器

Softmax 分類器可以理解為 邏輯回歸分類器 面對多個分類的一般化歸納,輸出歸一化的分類概率。

在Softmax分類器中,函數映射 f(xi;W)=Wxif(x_i;W)=Wx_if(xi?;W)=Wxi? 保持不變,但將這些評分值視為每個分類的未歸一化的對數概率,并且將折葉損失(hinge loss)替換為交叉熵損失(cross-entropy loss)。公式如下:

Li=?log(efyi∑jefj)L_i=-log(\frac{e^{f_{y_i}}}{\sum_je^{f_j}}) Li?=?log(j?efj?efyi???)

或等價的:

Li=?fyi+log(∑jefj)L_i=-f_{y_i}+log(\sum_je^{f_j})Li?=?fyi??+log(j?efj?)

其中:

  • 使用 fjf_jfj? 來表示分類評分向量 fff 中的第 jjj 個元素。

  • 函數 fj(z)=ezj∑kezkf_j(z)=\frac{e^{z_j}}{\sum_ke^{z_k}}fj?(z)=k?ezk?ezj?? 被稱作 softmax 函數,其輸入值是一個向量,向量中元素為任意實數的評分值(zzz 中的),函數對其進行壓縮,輸出一個向量,其中每個元素值在 0 到 1 之間,且所有元素之和為 1。

對數的基本性質:

  • 函數拆分:
    ln?(ab)=ln?(a)+ln?(b)\ln(ab)=\ln(a)+\ln(b)ln(ab)=ln(a)+ln(b)
  • log(xxx) vs log(1/x1/x1/x) :
    log(x)=?log(1/x)log(x) = -log(1/x)log(x)=?log(1/x)
    圖中,藍線為 ln(1/x1/x1/x) ,黑線為 ln(xxx)

數值歸一化:

  • 編程實現 softmax 函數計算的時候,中間項 efyie^{f_{y_i}}efyi??∑jefj\sum_j e^{f_j}j?efj? 因為存在指數函數,所以數值可能非常大。

  • 除以大數值可能導致數值計算的不穩定,所以使用歸一化非常重要。如果在分式的分子和分母都乘以一個常數 CCC,并把它變換到求和之中,就能得到一個從數學上等價的公式:

efyi∑jefj=CefyiC∑jefj=efyi+logC∑jefj+logC\frac{e^{f_{y_i}}}{\sum_je^{f_j}}=\frac{Ce^{f_{y_i}}}{C\sum_je^{f_j}}=\frac{e^{f_{y_i}+logC}}{\sum_je^{f_j+logC}}j?efj?efyi???=Cj?efj?Cefyi???=j?efj?+logCefyi??+logC?

  • 代碼實現如下:
f = np.array([123, 456, 789]) # 例子中有3個分類,每個評分的數值都很大 p = np.exp(f) / np.sum(np.exp(f)) # 不妙:數值問題,可能導致數值爆炸# 那么將f中的值平移到最大值為0: f -= np.max(f) # f becomes [-666, -333, 0] p = np.exp(f) / np.sum(np.exp(f)) # 現在OK了,將給出正確結果

SVM 和 Softmax的比較

損失函數的不同:

  • SVM 分類器使用的是 折葉損失(hinge loss),有時候又被稱為 最大邊界損失(max-margin loss)

  • Softmax 分類器使用的是 交叉熵損失(corss-entropy loss)

對分類分值的不同解釋:

  • 針對一個數據點,兩個分類器都計算了同樣的分值向量 fff

  • SVM分類器將 fff 看做是分類評分,它的損失函數鼓勵正確的分類(本例中是藍色的類別2)的分值比其他分類的分值高出至少一個邊界值。

  • Softmax分類器將 fff 看做是每個分類沒有歸一化的對數概率,鼓勵正確分類的歸一化的對數概率變高,其余的變低。

  • SVM的最終的損失值是 1.58,Softmax 的最終的損失值是 0.452,但要注意這兩個數值沒有可比性。只在給定同樣數據,在同樣的分類器的損失值計算中,它們才有意義。

在實際使用中,SVM 和 Softmax 經常是相似的:

  • 通常說來,兩種分類器的表現差別很小。

  • 相對于 Softmax 分類器,SVM 更加局部目標化(local objective),這既可以看做是一個特性,也可以看做是一個劣勢。

  • SVM 對于各個分類的得分細節并不關心:分數是 [10,?100,?100][10, -100, -100][10,?100,?100] 或者 [10,9,9][10, 9, 9][10,9,9],對于 SVM 來說沒什么不同,只要分差超過邊界值,那么損失值就等于 0,不會超過限制去細微地操作具體分數。

  • 對于 softmax 分類器,情況則不同。對于 [10,9,9][10, 9, 9][10,9,9] 來說,計算出的損失值就遠遠高于 [10,?100,?100][10, -100, -100][10,?100,?100] 的。換句話來說,softmax 分類器對于分數是永遠不會滿意的。

總結

以上是生活随笔為你收集整理的分类评分函数 score function的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。