Cross-Entropy Loss 與Accuracy的數值關系


以分類任務為例, 假設要將樣本分為\(n\)個類別.

先考慮單個樣本\((X, z)\).

將標題\(z\)轉化為一個\(n\)維列向量\(y = (y_1, \dots y_k, \dots, y_n)^T\):

\[y_k= \begin{cases} 0& k \neq z \\ 1& k = z \end{cases} \]

\(p_z\)是模型將此樣本分到類別\(z\)的概率, 即正確分類的概率\(p_{correct}\). 在這個樣本上的Cross-Entropy Loss為:

\[loss = -ln p_z = -ln p_{correct} \]

再考慮由\(m\)個樣本組成的batch. 在整個batch上的loss:

\[loss = \frac 1m \sum_{i}^{m} - ln p^{(i)}_{correct} \]

\(- ln p^{(i)}_{correct}\)看作一個隨機變量\(C_i\). 當\(m \rightarrow \infty\)時:

\[loss = E(C) = E(-ln p_{correct}) \]

\(p_{correct}\)對單個樣本來說是被正確分類的概率, 對一個batch來說則是准確率 accuracy.
當一個batch中包含無窮多個樣本時:

\[loss = E(-ln accuracy) \]

\(m \rightarrow \infty\)時,

\[accuracy = e^{-loss} \]

這就是ce loss與accuracy之間的數值關系.

也就是說,**用batch-based + Cross-Entropy loss訓練機器學習算法時, 根據loss可大致計算出accuracy, 並且誤差隨 batch size 增大而減小. **我常用batch size = 100, 此時\(e^{-loss}\)\(accuracy\)之間已經很接近了, 誤差通常小於\(0.01\).


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM