分類問題之損失函數

来自testwiki
imported>Ohtashinichiro2023年8月18日 (五) 05:13的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到导航 跳转到搜索

Template:Copyedit Template:Cleanup-jargon

各种代理损失函数的曲线。蓝色为0–1指示函数,绿色为平方损失函数,紫色为铰链损失函数,黄色为逻辑损失函数。注意所有代理损失函数对Template:Math均给出1的惩罚。

機器學習最佳化領域中,分類問題之損失函數可以用來表達預測不準確之程度,其中分類問題主要是用來判斷所偵測到的物件屬於什麼類別。將一個向量空間X做為所有的輸入值,而向量空間Y={1,1}做為所有的輸出值。我们希望能夠找到最佳的公式f:Xx映射到y[1]。然而,由于信息不完整、雜訊、计算過程中的非确定性模块等因素,有可能會有相同的輸入值x映射到不同的輸出值y[2]。因此,這個學習過程的目的就是要最小化預期風險(更详细的介绍参见统计学习理论),預期風險之定義為:

I[f]=X×YV(f(x,y))p(x,y)dxdy

其中V(f(x,y))即損失函數,而p(x,y)為機率密度函數。而實作上概率分布p(x,y)通常是未知的,因此我们使用由数据样本空间中取出的n獨立且同分布(i.i.d.)的樣本點

S={(x1,y1),...,(xn,yn)}作为训练集,將樣本空間所得到的经验風險做為預期風險的替代,其定義為:
IS[f]=1ni=1nV(f(xi,yi))

基於分類問題的二元性,可定義0-1函數做為匹配值之基準。因此損失函數為:

V(f(x,y))=H(yf(x))

其中H步階函數。然而損失函數並不是凸函數或平滑函數,是一種NP-hard的問題,因此做為替代,需要使用可以追蹤的機器學習演算法(透過凸損失函數)。

分類問題之界線

使用貝式定理,可以基於問題的二元性最佳化映射公式f*為:

f*(x)={1,if p(1x)>p(1x)1,if p(1x)<p(1x)

p(1x)p(1x)

簡化分類問題預期風險

I[f(x)]=X×YV(f(x,y))p(x,y)dxdy=XYV(f(x,y))p(x,y)p(x)dydx=X[V(f(x)p(1x)+V(f(x)p(1x)]p(x)dx=X[V(f(x)p(1x)+V(f(x)(1p(1x))]p(x)dx

平方損失

V(f(x,y))=(1yf(x))2

平方損失凸且平滑,但容易過度懲罰錯誤預測,導致收斂速度比邏輯損失和鏈結損失慢。它的優點為有助於簡化交叉驗證之正則化(regularization)。

最小化預期風險之映射函數為:

fSquare*=2p(1x)1

鏈結損失

V(f(x),y)=max(0,1yf(x))=|1yf(x)|+

鏈結損失公式等同於支持向量機(SVM)的損失公式。鏈結損失凸但不平滑(在yf(x))=1不可微分),因此不適用於梯度下降法隨機梯度下降法,但適用次梯度下降法。 最小化預期風險之映射函數為:

fSquare*=2p(1x)1

廣義平滑鏈結損失

fα*(z)={αα+1if z<01α+1zα+1z+αα+1if 0<z<10if z1

其中z=yf(x)

邏輯損失

V(f(x),y)=1ln2ln(1+eyf(x))

適用於梯度下降法,但不會對錯誤預測做懲罰。 最小化預期風險之映射函數為:

fLogistic*=ln(p(1x)1p(1x)).

交叉熵損失

V(f(x),t)=tln(f(x))(1t)ln(1f(x))

其中t=(1+y)/2 so that t{0,1} 屬於凸函數,適用於隨機梯度下降法。

指數損失

V(f(x),y)=eβyf(x)

参考资料

Template:Refs

Template:Differentiable computing