loss function
什么是loss?
??loss: loss是我們用來對模型滿意程度的指標(biāo)。loss設(shè)計的原則是:模型越好loss越低,模型越差loss越高,但也有過擬合的情況。
??loss function: 在分類問題中,輸入樣本經(jīng)過含權(quán)重矩陣θ的模型后會得出關(guān)于各個類別的分值,如何通過分值與樣本的標(biāo)簽來得到我們對模型的滿意程度就是Loss function的主要工作了。訓(xùn)練過程中通過調(diào)整參數(shù)矩陣θ來降低loss,使用模型更優(yōu)。多分類問題中常用Softmax分類器與多類SVM分類器。
Softmax分類器
Softmax與logistict回歸
??Softmax分類器將類別分值用負(fù)對數(shù)轉(zhuǎn)換為概率來表示,相對于multiclass-SVM的輸出更為直觀。
??Softmax分類器的損失函數(shù)為交叉熵?fù)p失 (cross-entropy loss),即通常所說的Softmax loss。logistic回歸是用來解決二分類問題的,其損失函數(shù)與Softmax與有很相似的形式。
??Softmax的損失函數(shù): //1表示指示函數(shù),即真值返回1,否則返回0
\begin{align} J(\theta) = - \frac{1}{m} \left[ \sum_{i=1}^{m} \sum_{j=1}^{k} 1\left\{y^{(i)} = j\right\} \log \frac{e^{\theta_j^T x^{(i)}}}{\sum_{l=1}^k e^{ \theta_l^T x^{(i)} }}\right] \end{align}
??logistic回歸的損失函數(shù):
\begin{align}
J(\theta) =
-\frac{1}{m} \left[ \sum_{i=1}^m y^{(i)} \log h_\theta(x^{(i)}) + (1-y^{(i)}) \log (1-h_\theta(x^{(i)})) \right]
\end{align}
??可以看出,將(1)式中k=2即可得到(2)式
??Softmax對樣本x的分類結(jié)果(假設(shè)函數(shù)):
\begin{align}
h_\theta(x^{(i)}) =
\begin{bmatrix}
p(y^{(i)} = 1 | x^{(i)}; \theta) \
p(y^{(i)} = 2 | x^{(i)}; \theta) \
\vdots \
p(y^{(i)} = k | x^{(i)}; \theta)
\end{bmatrix}
=
\frac{1}{ \sum_{j=1}^{k}{e^{ \theta_j^T x^{(i)} }} }
\begin{bmatrix}
e^{ \theta_1^T x^{(i)} } \
e^{ \theta_2^T x^{(i)} } \
\vdots \
e^{ \theta_k^T x^{(i)} } \
\end{bmatrix}
\end{align}
??logistic回歸的分類結(jié)果(假設(shè)函數(shù)):
\begin{align}
h_\theta(x) = \frac{1}{1+\exp(-\theta^Tx)},
\end{align}
??但(3)式與(4)式有什么關(guān)系呢?
??原來Softmax預(yù)測出每個類別的概率具有“參數(shù)冗余”的特性。“參數(shù)冗余”是指:若矩陣θ為代價函數(shù)的極小值點(diǎn),那么θ-Ψ也為代價函數(shù)的極小值點(diǎn)。(ψ為向量,并且矩陣-向量=矩陣每個列向量-向量)
\begin{align}
p(y^{(i)} = j | x^{(i)} ; \theta)
&= \frac{e^{(\theta_j-\psi)^T x^{(i)}}}{\sum_{l=1}^k e^{ (\theta_l-\psi)^T x^{(i)}}} \
&= \frac{e^{\theta_j^T x^{(i)}} e^{-\psi^Tx^{(i)}}}{\sum_{l=1}^k e^{\theta_l^T x^{(i)}} e^{-\psi^Tx^{(i)}}} \
&= \frac{e^{\theta_j^T x^{(i)}}}{\sum_{l=1}^k e^{ \theta_l^T x^{(i)}}}.
\end{align}
???這時,令ψ=θ1、k=2,可得到(3) 等價于(4)的結(jié)論
???所以,Softmax其實(shí)是logistic regression將二分類問題推廣到多分類問題的一般形式。
但是Softmax分類器與k個logistic回歸分類器還是有區(qū)別的:
?? 通常,當(dāng)k個類別之間互斥時使用k=k的Softmax分類器,當(dāng)k個類別之間與交集時使用k個logistic回歸分類器。
Softmax分類器為什么要正則化損失項?
??求解loss最小值時往往不是簡單利用“參數(shù)冗余”將θ1=0,而是加入權(quán)重衰減(正則化損失)來懲罰過大的參數(shù)值。加入正則化損失后的代價函數(shù)為:
\begin{align}\notag J(\theta) = - \frac{1}{m} \left[ \sum_{i=1}^{m} \sum_{j=1}^{k} 1\left\{y^{(i)} = j\right\} \log \frac{e^{\theta_j^T x^{(i)}}}{\sum_{l=1}^k e^{ \theta_l^T x^{(i)} }} \right] + \frac{\lambda}{2} \sum_{i=1}^k \sum_{j=0}^n \theta_{ij}^2 \end{align}
??其中,第二項為正則化損失薦,加入該項的加一個好處是將代價函數(shù)變?yōu)橐粋€凸函數(shù)。
簡單實(shí)例
??在一個三類別模型預(yù)測的過程中,假設(shè)輸出的分值向量為[1, -2, 0]
??則分類計算過過程: [1,-2, 0] => [e1, e-2, e0]=[2.71, 0.14, 1]//熵值化 => [0.7, 0.04, 0.26] //歸一化為概率
算法實(shí)踐
??后續(xù)補(bǔ)充
Multiclass SVM
??基本思想:正常確類別的分值比錯誤類別的分值高出一個間距(margin)
??Multiclass SVM分類器的損失函數(shù)為hinge loss,也稱為SVM loss。
hinge loss
算法實(shí)踐
已知
計算過程
因為\(y_{i}\)=1, 所以\(j只能=2、3\)
\[L_{2}=max(0,-7-13+10)=0\]
\[L_{3}=max(0,11-13+10)=8\]
所以,
\[L_{i}=0+8=8\]
從上面的計算過程可以看出SVM的損失函數(shù)想要正確分類類別\(y_{i}\)的分?jǐn)?shù)比不正確類別分?jǐn)?shù)高,而且至少要高\(\Delta\)。如果不滿足這點(diǎn),就開始計算損失值。
正則化損失
提高模型泛化能力,避免過擬合。
從公式上來看:
- 若兩個等比例的權(quán)重,權(quán)重的范數(shù)越小越好
- 若兩個權(quán)重范數(shù)相等,權(quán)重的系數(shù)大小分布越分均等越好
直觀來看:
從直觀上來看,這是因為w_2的權(quán)重值更小且更分散。既然L2懲罰傾向于更小更分散的權(quán)重向量,這就會鼓勵分類器最終將所有維度上的特征都用起來,而不是強(qiáng)烈依賴其中少數(shù)幾個維度。
MutiSVM VS SVM
未完待續(xù)
補(bǔ)充實(shí)驗
reference:
cs231n
cs231n
softmax
小馬奔騰
轉(zhuǎn)載于:https://www.cnblogs.com/fariver/p/6204261.html
總結(jié)
以上是生活随笔為你收集整理的loss function的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu与win10互换硬盘
- 下一篇: java如何从方法返回多个值