分類問題之損失函數

在機器學習和最佳化領域中，分類問題之損失函數可以用來表達預測不準確之程度，其中分類問題主要是用來判斷所偵測到的物件屬於什麼類別。將一個向量空間 X {\displaystyle X} 做為所有的輸入值，而向量空間 Y = { − 1 , 1 } {\displaystyle Y=\{-1,1\}} 做為所有的輸出值。我们希望能夠找到最佳的公式 f : X → ℜ {\displaystyle f:X\rightarrow \Re } 將 x → {\displaystyle {\vec {x}}} 映射到 y {\displaystyle y} 。然而，由于信息不完整、雜訊、计算過程中的非确定性模块等因素，有可能會有相同的輸入值 x → {\displaystyle {\vec {x}}} 映射到不同的輸出值 y {\displaystyle y} 。因此，這個學習過程的目的就是要最小化預期風險（更详细的介绍参见统计学习理论），預期風險之定義為： I [ f ] = ∫ X × Y V ( f ( x → , y ) ) p ( x → , y ) d x → d y {\displaystyle I[f]=\textstyle \int _{X\times Y}^{}\displaystyle V(f({\vec {x}},y))p({\vec {x}},y)d{\vec {x}}dy} 其中 V ( f ( x → , y ) ) {\displaystyle V(f({\vec {x}},y))} 即損失函數，而 p ( x → , y ) {\displaystyle p({\vec {x}},y)} 為機率密度函數。而實作上概率分布 p ( x → , y ) {\displaystyle p({\vec {x}},y)} 通常是未知的，因此我们使用由数据样本空间中取出的 n {\displaystyle n} 個獨立且同分布（i.i.d.）的樣本點 S = { ( x 1 → , y 1 ) , . . . , ( x n → , y n ) } {\displaystyle S=\{({\vec {x_{1}}},y_{1}),...,({\vec {x_{n}}},y_{n})\}} 作为训练集，將樣本空間所得到的经验風險做為預期風險的替代，其定義為： I S [ f ] = 1 n ∑ i = 1 n V ( f ( x i → , y i ) ) {\displaystyle I_{S}[f]={\frac {1}{n}}\sum _{i=1}^{n}V(f({\vec {x_{i}}},y_{i}))} 基於分類問題的二元性，可定義0-1函數做為匹配值之基準。因此損失函數為： V ( f ( x → , y ) ) = H ( − y f ( x → ) ) {\displaystyle V(f({\vec {x}},y))=H(-yf({\vec {x}}))} 其中 H {\displaystyle H} 為步階函數。然而損失函數並不是凸函數或平滑函數，是一種NP-hard的問題，因此做為替代，需要使用可以追蹤的機器學習演算法（透過凸損失函數）。 使用貝式定理，可以基於問題的二元性最佳化映射公式 f ∗ {\displaystyle f^{*}} 為： f ∗ ( x → ) = { 1 , if  p ( 1 ∣ x → ) > p ( − 1 ∣ x → ) − 1 , if  p ( 1 ∣ x → ) < p ( − 1 ∣ x → ) {\displaystyle f^{*}({\vec {x}})={\begin{cases}1,&{\text{if }}p(1\mid {\vec {x}})>p(-1\mid {\vec {x}})\\-1,&{\text{if }}p(1\mid {\vec {x}})<p(-1\mid {\vec {x}})\end{cases}}} 當 p ( 1 ∣ x → ) ≠ p ( − 1 ∣ x → ) {\displaystyle p(1\mid {\vec {x}})\neq p(-1\mid {\vec {x}})} I [ f ( x ) ] = ∫ X × Y V ( f ( x → , y ) ) p ( x → , y ) d x → d y = ∫ X ∫ Y V ( f ( x → , y ) ) p ( x → , y ) p ( x → ) d y d x → = ∫ X [ V ( − f ( x → ) p ( 1 ∣ x ) + V ( f ( x → ) p ( − 1 ∣ x ) ] p ( x → ) d x → = ∫ X [ V ( − f ( x → ) p ( 1 ∣ x ) + V ( f ( x → ) ( 1 − p ( 1 ∣ x ) ) ] p ( x → ) d x → {\displaystyle {\begin{alignedat}{4}I[f(x)]&=\int _{X\times Y}^{}V(f({\vec {x}},y))p({\vec {x}},y)d{\vec {x}}dy\\&=\int _{X}^{}\int _{Y}^{}V(f({\vec {x}},y))p({\vec {x}},y)p({\vec {x}})dyd{\vec {x}}\\&=\int _{X}^{}[V(-f({\vec {x}})p(1\mid x)+V(f({\vec {x}})p(-1\mid x)]p({\vec {x}})d{\vec {x}}\\&=\int _{X}^{}[V(-f({\vec {x}})p(1\mid x)+V(f({\vec {x}})(1-p(1\mid x))]p({\vec {x}})d{\vec {x}}\end{alignedat}}} V ( f ( x → , y ) ) = ( 1 − y f ( x → ) ) 2 {\displaystyle V(f({\vec {x}},y))=(1-yf({\vec {x}}))^{2}} 平方損失凸且平滑，但容易過度懲罰錯誤預測，導致收斂速度比邏輯損失和鏈結損失慢。它的優點為有助於簡化交叉驗證之正則化（regularization）。 最小化預期風險之映射函數為： f S q u a r e ∗ = 2 p ( 1 ∣ x ) − 1 {\displaystyle f_{Square}^{*}=2p(1\mid x)-1} V ( f ( x → ) , y ) = max ( 0 , 1 − y f ( x → ) ) = | 1 − y f ( x → ) | + {\displaystyle V(f({\vec {x}}),y)=\max(0,1-yf({\vec {x}}))=|1-yf({\vec {x}})|_{+}} 鏈結損失公式等同於支持向量機（SVM）的損失公式。鏈結損失凸但不平滑（在 y f ( x → ) ) = 1 {\displaystyle yf({\vec {x}}))=1} 不可微分），因此不適用於梯度下降法和隨機梯度下降法，但適用次梯度下降法。 最小化預期風險之映射函數為： f S q u a r e ∗ = 2 p ( 1 ∣ x ) − 1 {\displaystyle f_{Square}^{*}=2p(1\mid x)-1} f α ∗ ( z ) = { α α + 1 if  z < 0 1 α + 1 z α + 1 − z + α α + 1 if  0 < z < 1 0 if  z ≥ 1 {\displaystyle f_{\alpha }^{*}(z)\;=\;{\begin{cases}{\frac {\alpha }{\alpha +1}}&{\text{if }}z<0\\{\frac {1}{\alpha +1}}z^{\alpha +1}-z+{\frac {\alpha }{\alpha +1}}&{\text{if }}0<z<1\\0&{\text{if }}z\geq 1\end{cases}}} 其中 z = y f ( x → ) {\displaystyle z=yf({\vec {x}})} V ( f ( x → ) , y ) = 1 ln ⁡ 2 ln ⁡ ( 1 + e − y f ( x → ) ) {\displaystyle V(f({\vec {x}}),y)={\frac {1}{\ln 2}}\ln(1+e^{-yf({\vec {x}})})} 適用於梯度下降法，但不會對錯誤預測做懲罰。 最小化預期風險之映射函數為： f Logistic ∗ = ln ⁡ ( p ( 1 ∣ x ) 1 − p ( 1 ∣ x ) ) . {\displaystyle f_{\text{Logistic}}^{*}=\ln \left({\frac {p(1\mid x)}{1-p(1\mid x)}}\right).} V ( f ( x → ) , t ) = − t ln ⁡ ( f ( x → ) ) − ( 1 − t ) ln ⁡ ( 1 − f ( x → ) ) {\displaystyle V(f({\vec {x}}),t)=-t\ln(f({\vec {x}}))-(1-t)\ln(1-f({\vec {x}}))} 其中 t = ( 1 + y ) / 2 {\displaystyle t=(1+y)/2} so that t ∈ { 0 , 1 } {\displaystyle t\in \{0,1\}} 屬於凸函數，適用於隨機梯度下降法。 V ( f ( x → ) , y ) = e − β y f ( x → ) {\displaystyle V(f({\vec {x}}),y)=e^{-\beta yf({\vec {x}})}} Shen, Yi, Loss Functions For Binary Classification and Class Probability Estimation (PDF), University of Pennsylvania, 2005 [6 December 2014], （原始内容存档 (PDF)于2019-06-14）  Rosasco, Lorenzo; Poggio, Tomaso, A Regularization Tour of Machine Learning, MIT-9.520 Lectures Notes, Manuscript, 2014