HOME 首頁
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運營
CASE 服務(wù)案例
NEWS 熱點資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    svm損失函數(shù)(svm損失函數(shù)hinge loss)

    發(fā)布時間:2023-04-21 17:15:42     稿源: 創(chuàng)意嶺    閱讀: 145        

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于svm損失函數(shù)的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端

    官網(wǎng):https://ai.de1919.com。

    創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請撥打電話175-8598-2043,或添加微信:1454722008

    本文目錄:

    svm損失函數(shù)(svm損失函數(shù)hinge loss)

    一、什么是支持向量機,SVM與LR的區(qū)別?

    支持向量機為一個二分類模型,它的基本模型定義為特征空間上的間隔最大的線性分類器。而它的學(xué)習(xí)策略為最大化分類間隔,最終可轉(zhuǎn)化為凸二次規(guī)劃問題求解。

    LR是參數(shù)模型,SVM為非參數(shù)模型。LR采用的損失函數(shù)為logisticalloss,而SVM采用的是hingeloss。在學(xué)習(xí)分類器的時候,SVM只考慮與分類最相關(guān)的少數(shù)支持向量點。LR的模型相對簡單,在進行大規(guī)模線性分類時比較方便。

    二、常見的損失函數(shù)

    MSE也稱為L2 loss:

    隨著預(yù)測與真實值的絕對誤差的增加,均方差損失呈二次方增加。

    Huber Loss將L1和L2結(jié)合起來,也被稱做smoothed L1 Loss。增加了一個需要額外設(shè)置的超參數(shù) ,來控制L2和L1的連接位置。 在誤差接近0的時候使用L2,使損失函數(shù)可導(dǎo),梯度更加穩(wěn)定;誤差較大的時候用L1,可以降低outlier帶來的巨大誤差的影響。

    二分類中,通常使用Sigmoid函數(shù)將模型的輸出壓縮到(0, 1)區(qū)間。給定輸入 ,模型判斷為正類/負類的概率:

    合并成一個:

    取對數(shù)加負號之后,得到:

    N是所有樣本的數(shù)量。

    圖中曲線可以看出,當(dāng)預(yù)測值越接近目標(biāo)值損失越小,隨著誤差變差,損失呈現(xiàn)指數(shù)增長。

    真實值 現(xiàn)在是一個One-hot向量,Sigmoid換成了Softmax來把輸出值壓縮到(0, 1)之間,所有維度的輸出和為1.

    Softmax公式:

    表示K個類別中的一個,k只在對應(yīng)的類別上是1,其他時候是0。

    于是上式可以改寫成:

    是樣本 的目標(biāo)類。

    分類問題中為什么不用MSE? 因為MSE假設(shè)了誤差服從高斯分布,在分類任務(wù)下這個假設(shè)無法滿足,因此效果會很差。

    第二個論點是從信息論的角度來分析的,是關(guān)于由KL散度的角度來推導(dǎo)Cross Entropy的過程( 原文 )

    是另一種二分類損失函數(shù),適用于Maximum-margin的分類,SVM的損失函數(shù)就是hinge loss + L2正則化

    下圖為,當(dāng)y為正類的時候( ),不同的輸出 對應(yīng)的loss圖

    當(dāng)y為正類時,模型輸出負值會有很大的懲罰。即使輸出為正值在(0, 1)區(qū)間,也還是會有一個較小的懲罰。也就是只有置信度高的才會有零損失。使用hinge loss直覺上的理解是要找到一個決策邊界,使得素有數(shù)據(jù)點被這個邊界正確地,高置信度地被分類。

    同時hinge loss也反應(yīng)了一點,對于那些已經(jīng)可以被很好分類的樣本,它不再對loss產(chǎn)生貢獻,可以讓模型花更多的energy去學(xué)習(xí)難以分類的樣本。

    https://zhuanlan.zhihu.com/p/77686118

    三、損失函數(shù)與魯棒性

    機器學(xué)習(xí)模型關(guān)于單個樣本的預(yù)測值與真實值的差稱為損失。損失越小,模型越好,如果預(yù)測值與真實值相等,就是沒有損失。

    損失函數(shù)(Loss function)是用來估量模型的預(yù)測值 f(x) 與真實值 Y 的不一致程度,它是一個非負實值函數(shù),通常用 L(Y,f(x)) 來表示。損失函數(shù)越小,模型的魯棒性就越好。

    雖然損失函數(shù)可以讓我們看到模型的優(yōu)劣,并且為我們提供了優(yōu)化的方向,但是我們必須知道沒有任何一種損失函數(shù)適用于所有的模型。損失函數(shù)的選取依賴于參數(shù)的數(shù)量、異常值、機器學(xué)習(xí)算法、梯度下降的效率、導(dǎo)數(shù)求取的難易和預(yù)測的置信度等若干方面。

    由于機器學(xué)習(xí)的任務(wù)不同,損失函數(shù)一般分為分類和回歸兩類,回歸會預(yù)測出一個數(shù)值結(jié)果,分類則會給出一個標(biāo)簽。

    0-1損失是指,預(yù)測值和目標(biāo)值不相等為1,否則為0:

    感知機就是用的這種損失函數(shù)。但是由于相等這個條件太過嚴格,因此我們可以放寬條件,即滿足 |Y−f(X)|<T時認為相等。

    邏輯回歸的損失函數(shù)就是對數(shù)損失函數(shù),在邏輯回歸的推導(dǎo)中,它假設(shè)樣本服從伯努利分布(0-1)分布,然后求得滿足該分布的似然函數(shù),接著用對數(shù)求極值。邏輯回歸并沒有求對數(shù)似然函數(shù)的最大值,而是把極大化當(dāng)做一個思想,進而推導(dǎo)它的風(fēng)險函數(shù)為最小化的負的似然函數(shù)。從損失函數(shù)的角度上,它就成為了對數(shù)損失函數(shù)。

    損失函數(shù)的標(biāo)準(zhǔn)形式:

    在極大似然估計中,通常都是先取對數(shù)再求導(dǎo),再找極值點,這樣做是方便計算極大似然估計。損失函數(shù)L(Y,P(Y|X))是指樣本X在分類Y的情況下,使概率P(Y|X)達到最大值(利用已知的樣本分布,找到最大概率導(dǎo)致這種分布的參數(shù)值)

    最小二乘法是線性回歸的一種方法,它將回歸的問題轉(zhuǎn)化為了凸優(yōu)化的問題。最小二乘法的基本原則是:最優(yōu)擬合曲線應(yīng)該使得所有點到回歸直線的距離和最小。通常用歐幾里得距離進行距離的度量。平方損失的損失函數(shù)為:

    AdaBoost就是以指數(shù)損失函數(shù)為損失函數(shù)的。

    指數(shù)損失函數(shù)的標(biāo)準(zhǔn)形式:

    Hinge損失函數(shù)用于最大間隔(maximum-margin)分類,其中最有代表性的就是支持向量機SVM。

    Hinge函數(shù)的標(biāo)準(zhǔn)形式:

    其中,t為目標(biāo)值(-1或+1),y是分類器輸出的預(yù)測值,并不直接是類標(biāo)簽。其含義為,當(dāng)t和y的符號相同時(表示y預(yù)測正確)并且|y|≥1時,hinge loss為0;當(dāng)t和y的符號相反時,Hinge損失函數(shù)隨著y的增大線性增大。

    在支持向量機中,最初的SVM優(yōu)化的函數(shù)如下:

    將約束項進行變形,則為:

    則損失函數(shù)可以進一步寫為:

    因此,SVM的損失函數(shù)可以看做是L2正則化與Hinge loss之和。

    平均絕對誤差(MAE)是一種常用的回歸損失函數(shù),它是目標(biāo)值與預(yù)測值之差絕對值的和,表示了預(yù)測值的平均誤差幅度,而不需要考慮誤差的方向(注:平均偏差誤差MBE則是考慮的方向的誤差,是殘差的和),范圍是0到∞,其公式如下所示:

    均方誤差(MSE)是回歸損失函數(shù)中最常用的誤差,它是預(yù)測值與目標(biāo)值之間差值的平方和,其公式如下所示:

    下圖是均方根誤差值的曲線分布,其中最小值為預(yù)測值為目標(biāo)值的位置。我們可以看到隨著誤差的增加損失函數(shù)增加的更為迅猛。

    Huber損失相比于平方損失來說對于異常值不敏感,但它同樣保持了可微的特性。它基于絕對誤差但在誤差很小的時候變成了平方誤差。我們可以使用超參數(shù)δ來調(diào)節(jié)這一誤差的閾值。當(dāng)δ趨向于0時它就退化成了MAE,而當(dāng)δ趨向于無窮時則退化為了MSE,其表達式如下,是一個連續(xù)可微的分段函數(shù):

    對于Huber損失來說,δ的選擇十分重要,它決定了模型處理異常值的行為。當(dāng)殘差大于δ時使用L1損失,很小時則使用更為合適的L2損失來進行優(yōu)化。

    Huber損失函數(shù)克服了MAE和MSE的缺點,不僅可以保持損失函數(shù)具有連續(xù)的導(dǎo)數(shù),同時可以利用MSE梯度隨誤差減小的特性來得到更精確的最小值,也對異常值具有更好的魯棒性。而Huber損失函數(shù)的良好表現(xiàn)得益于精心訓(xùn)練的超參數(shù)δ。

    Log-Cosh損失函數(shù)是一種比L2更為平滑的損失函數(shù),利用雙曲余弦來計算預(yù)測誤差:

    它的優(yōu)點在于對于很小的誤差來說log(cosh(x))與(x**2)/2很相近,而對于很大的誤差則與abs(x)-log2很相近。這意味著log cosh損失函數(shù)可以在擁有MSE優(yōu)點的同時也不會受到異常值的太多影響。它擁有Huber的所有優(yōu)點,并且在每一個點都是二次可導(dǎo)的。二次可導(dǎo)在很多機器學(xué)習(xí)模型中是十分必要的,例如使用牛頓法的XGBoost優(yōu)化模型(Hessian矩陣)。

    在大多數(shù)真實世界的預(yù)測問題中,我們常常希望看到我們預(yù)測結(jié)果的不確定性。通過預(yù)測出一個取值區(qū)間而不是一個個具體的取值點,這對于具體業(yè)務(wù)流程中的決策至關(guān)重要。

    分位數(shù)損失函數(shù)在我們需要預(yù)測結(jié)果的取值區(qū)間時是一個特別有用的工具。通常情況下我們利用最小二乘回歸來預(yù)測取值區(qū)間主要基于這樣的假設(shè):取值殘差的方差是常數(shù)。但很多時候?qū)τ诰€性模型是不滿足的。這時候就需要分位數(shù)損失函數(shù)和分位數(shù)回歸來拯救回歸模型了。它對于預(yù)測的區(qū)間十分敏感,即使在非均勻分布的殘差下也能保持良好的性能。下面讓我們用兩個例子看看分位數(shù)損失在異方差數(shù)據(jù)下的回歸表現(xiàn)。

    上圖是兩種不同的數(shù)據(jù)分布,其中左圖是殘差的方差為常數(shù)的情況,而右圖則是殘差的方差變化的情況。我們利用正常的最小二乘對上述兩種情況進行了估計,其中橙色線為建模的結(jié)果。但是我們卻無法得到取值的區(qū)間范圍,這時候就需要分位數(shù)損失函數(shù)來提供。

    上圖中上下兩條虛線基于0.05和0.95的分位數(shù)損失得到的取值區(qū)間,從圖中可以清晰地看到建模后預(yù)測值得取值范圍。

    分位數(shù)回歸的目標(biāo)在于估計給定預(yù)測值的條件分位數(shù)。實際上分位數(shù)回歸就是平均絕對誤差的一種拓展。分位數(shù)值得選擇在于我們是否希望讓正的或者負的誤差發(fā)揮更大的價值。損失函數(shù)會基于分位數(shù)γ對過擬合和欠擬合的施加不同的懲罰。例如選取γ為0.25時意味著將要懲罰更多的過擬合而盡量保持稍小于中值的預(yù)測值。

    γ的取值通常在0-1之間,圖中描述了不同分位數(shù)下的損失函數(shù)情況,明顯可以看到對于正負誤差不平衡的狀態(tài)。

    參考文章:

    https://www.jianshu.com/p/b715888f079b

    http://baijiahao.baidu.com/s?id=1603857666277651546&wfr=spider&for=pc

    https://blog.csdn.net/weixin_37933986/article/details/68488339

    四、常見損失函數(shù)用法

    損失函數(shù)(loss function)又叫做代價函數(shù)(cost function),是用來評估模型的預(yù)測值與真實值不一致的程度,也是神經(jīng)網(wǎng)絡(luò)中優(yōu)化的目標(biāo)函數(shù),神經(jīng)網(wǎng)絡(luò)訓(xùn)練或者優(yōu)化的過程就是最小化損失函數(shù)的過程,損失函數(shù)越小,說明模型的預(yù)測值就越接近真是值,模型的健壯性也就越好。

    常見的損失函數(shù)有以下幾種:

    0-1損失函數(shù)是最為簡單的一種損失函數(shù),多適用于分類問題中,如果預(yù)測值與目標(biāo)值不相等,說明預(yù)測錯誤,輸出值為1;如果預(yù)測值與目標(biāo)值相同,說明預(yù)測正確,輸出為0,言外之意沒有損失。其數(shù)學(xué)公式可表示為:

    由于0-1損失函數(shù)過于理想化、嚴格化,且數(shù)學(xué)性質(zhì)不是很好,難以優(yōu)化,所以在實際問題中,我們經(jīng)常會用以下的損失函數(shù)進行代替。

    感知損失函數(shù)是對0-1損失函數(shù)的改進,它并不會像0-1損失函數(shù)那樣嚴格,哪怕預(yù)測值為0.99,真實值為1,都會認為是錯誤的;而是給一個誤差區(qū)間,只要在誤差區(qū)間內(nèi),就認為是正確的。其數(shù)學(xué)公式可表示為:

    顧名思義,平方損失函數(shù)是指預(yù)測值與真實值差值的平方。損失越大,說明預(yù)測值與真實值的差值越大。平方損失函數(shù)多用于線性回歸任務(wù)中,其數(shù)學(xué)公式為:

    接下來,我們延伸到樣本個數(shù)為N的情況,此時的平方損失函數(shù)為:

    Hinge損失函數(shù)通常適用于二分類的場景中,可以用來解決間隔最大化的問題,常應(yīng)用于著名的SVM算法中。其數(shù)學(xué)公式為:

    其中在上式中,t是目標(biāo)值{-1,+1},y為預(yù)測值的輸出,取值范圍在(-1,1)之間。

    對數(shù)損失函數(shù)也是常見的一種損失函數(shù),常用于邏輯回歸問題中,其標(biāo)準(zhǔn)形式為:

    上式中,y為已知分類的類別,x為樣本值,我們需要讓概率p(y|x)達到最大值,也就是說我們要求一個參數(shù)值,使得輸出的目前這組數(shù)據(jù)的概率值最大。因為概率P(Y|X)的取值范圍為[0,1],log(x)函數(shù)在區(qū)間[0,1]的取值為負數(shù),所以為了保證損失值為正數(shù)要在log函數(shù)前加負號。

    交叉熵損失函數(shù)本質(zhì)上也是一種對數(shù)損失函數(shù),常用于多分類問題中。其數(shù)學(xué)公式為:

    注意:公式中的x表示樣本,y代表預(yù)測的輸出,a為實際輸出,n表示樣本總數(shù)量。交叉熵損失函數(shù)常用于當(dāng)sigmoid函數(shù)作為激活函數(shù)的情景,因為它可以完美解決平方損失函數(shù)權(quán)重更新過慢的問題。

    原文參見 https://www.toutiao.com/a6585133695361876487/

    以上就是關(guān)于svm損失函數(shù)相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。


    推薦閱讀:

    svip的全稱是什么(svip的全稱是什么英文)

    百度網(wǎng)盤svip共享賬號(百度云超級會員試用1天)

    pd.readcsv參數(shù)(pd.read_csv參數(shù))

    怎么用通道扣圖(怎么用通道摳圖)

    學(xué)機器人編程有用嗎(編程和機器人課有什么區(qū)別)