99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀機器學習中的常見問題—損失函數(shù)
機器學習中的常見問題—損失函數(shù)
2017-03-28
收藏

機器學習中的常見問題—損失函數(shù)

一、分類算法中的損失函數(shù)

分類算法中,損失函數(shù)通??梢员硎境蓳p失項和正則項的和,即有如下的形式:

其中,L(mi(w))為損失項,R(w)為正則項。mi的具體形式如下:


對于損失項,主要的形式有:

0-1損失

Log損失

Hinge損失

指數(shù)損失

感知損失

1、0-1損失函數(shù)

在分類問題中,可以使用函數(shù)的正負號來進行模式判斷,函數(shù)值本身的大小并不是很重要,0-1損失函數(shù)比較的是預測值fw(x(i))與真實值y(i)的符號是否相同,0-1損失的具體形式如下:

以上的函數(shù)等價于下述的函數(shù):

0-1損失并不依賴m值的大小,只取決于m的正負號。0-1損失是一個非凸的函數(shù),在求解的過程中,存在很多的不足,通常在實際的使用中將0-1損失函數(shù)作為一個標準,選擇0-1損失函數(shù)的代理函數(shù)作為損失函數(shù)。

2、Log損失函數(shù)

2.1、Log損失

Log損失是0-1損失函數(shù)的一種代理函數(shù),Log損失的具體形式如下:

運用Log損失的典型分類器是Logistic回歸算法。

2.2、Logistic回歸算法的損失函數(shù)

對于Logistic回歸算法,分類器可以表示為:

為了求解其中的參數(shù)w,通常使用極大似然估計的方法,具體的過程如下:

1、似然函數(shù)

其中,

2、log似然

3、需要求解的是使得log似然取得最大值的w。將其改變?yōu)樽钚≈?,可以得到如下的形式?

2.3、兩者的等價

由于Log損失的具體形式為:


log(1+exp(?m))

Logistic回歸與Log損失具有相同的形式,故兩者是等價的。Log損失與0-1損失的關系可見下圖。

3、Hinge損失函數(shù)

3.1、Hinge損失

Hinge損失是0-1損失函數(shù)的一種代理函數(shù),Hinge損失的具體形式如下:


max(0,1?m)

運用Hinge損失的典型分類器是SVM算法。

3.2、SVM損失函數(shù)

對于軟間隔支持向量機,允許在間隔的計算中出現(xiàn)少許的誤差,其優(yōu)化的目標為:

約束條件為:

3.3、兩者的等價

對于Hinge損失:

優(yōu)化的目標是要求:

在上述的函數(shù)中引入截距γ,即:

并在上述的最優(yōu)化問題中增加L2正則,即變成:

至此,令下面的不等式成立:

約束條件為

則Hinge最小化問題變成:

約束條件為:

這與軟間隔的SVM是一致的,說明軟間隔SVM是在Hinge損失的基礎上增加了L2正則。

4、指數(shù)損失

4.1、指數(shù)損失

指數(shù)損失是0-1損失函數(shù)的一種代理函數(shù),指數(shù)損失的具體形式如下:

運用指數(shù)損失的典型分類器是AdaBoost算法。

4.2、AdaBoost基本原理

AdaBoost算法是對每一個弱分類器以及每一個樣本都分配了權重,對于弱分類器φj的權重為:

其中,表示的是誤分類率。對于每一個樣本的權重為:

最終通過對所有分類器加權得到最終的輸出。

4.3、兩者的等價

對于指數(shù)損失函數(shù)

可以得到需要優(yōu)化的損失函數(shù)

假設f~表示已經(jīng)學習好的函數(shù),則有:


而:

通過最小化φ,可以得到:

將其代入上式,進而對θ求最優(yōu)解,得:

其中,

可以發(fā)現(xiàn),其與AdaBoost是等價的。

5、感知損失

5.1、感知損失

感知損失是Hinge損失的一個變種,感知損失的具體形式如下:

運用感知損失的典型分類器是感知機算法。

5.2、感知機算法的損失函數(shù)

感知機算法只需要對每個樣本判斷其是否分類正確,只記錄分類錯誤的樣本,其損失函數(shù)為:

5.3、兩者的等價

對于感知損失:

優(yōu)化的目標為:

在上述的函數(shù)中引入截距b,即:

上述的形式轉變?yōu)椋?

對于max函數(shù)中的內容,可知:

對于錯誤的樣本,有:

類似于Hinge損失,令下式成立:

約束條件為:

則感知損失變成:

即為:

Hinge損失對于判定邊界附近的點的懲罰力度較高,而感知損失只要樣本的類別判定正確即可,而不需要其離判定邊界的距離,這樣的變化使得其比Hinge損失簡單,但是泛化能力沒有Hinge損失強。數(shù)據(jù)分析師培訓

import matplotlib.pyplot as plt
import numpy as np

xmin, xmax = -4, 4
xx = np.linspace(xmin, xmax, 100)
plt.plot([xmin, 0, 0, xmax], [1, 1, 0, 0], 'k-', label="Zero-one loss")
plt.plot(xx, np.where(xx < 1, 1 - xx, 0), 'g-', label="Hinge loss")
plt.plot(xx, np.log2(1 + np.exp(-xx)), 'r-', label="Log loss")
plt.plot(xx, np.exp(-xx), 'c-', label="Exponential loss")
plt.plot(xx, -np.minimum(xx, 0), 'm-', label="Perceptron loss")

plt.ylim((0, 8))
plt.legend(loc="upper right")
plt.xlabel(r"Decision function $f(x)$")
plt.ylabel("$L(y, f(x))$")
plt.show()

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師考試動態(tài)
數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調,回調的第一個參數(shù)驗證碼對象,之后可以使用它調用相應的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }