准確率Accuracy與損失函數Loss的關系


背景

在進行一項分類任務訓練時,觀察到驗證集上的accuracy增加的同時,loss也在增加,因此產生了一些疑惑,對accuracy和loss之間的關系進行探索。
在這里插入圖片描述

定義

在理解他們的關系之前,先來回顧一下什么是交叉熵損失和准確率。交叉熵損失函數:交叉熵輸出的是正確標簽的似然對數,和准確率有一定的關系,但是取值范圍更大。交叉熵損失公式:
在這里插入圖片描述
其中$\widehat{y}{(i)}$為預測值,$y{(i)}$為真實標簽,可以看出交叉熵損失只關心對正確類別的預測概率。(在這里為簡化討論,我們假設一個樣本里只要一個標簽,即簡單的0-1二分類問題。)
當訓練樣本為n時,交叉熵損失函數為:
在這里插入圖片描述
准確率:在分類問題中,准確率的定義簡單粗暴,就是看預測的類別是否和真實的類別一致。在分類任務中,對於一個N類任務,輸出就是一個N維的向量,向量每一個位置就代表了一種類別,對應位置的值就代表預測的目標屬於該類的概率,比如貓狗的分類,輸出向量為[0.3, 0.7],就表示輸入的圖屬於貓的概率為0.3,屬於狗的為0.7。在輸出預測結果時,我們是取概率最大的索引所對應的的標簽作為最終預測的結果標簽,比如在上個例子中,預測輸出:輸入的圖像類別為狗。

關系

清楚了定義之后,仔細思考就會發現其中的問題,因為准確率是輸出最大的概率,因此0.9的概率值和0.5的概率值效果是等價的,只要保證他們是最大概率即可!請看下面的例子:
比如我們現在預測貓和狗的類別,
有一個樣本預測輸出是[0.1, 0.9], 它的交叉熵損失為loss = -1* log(0.9) = 0.046, 預測結果為:狗
另一個樣本的預測輸出是[0.4, 0.6], 它的交叉熵損失為loss = -1 * log(0.6) = 0.222, 預測結果為:狗
可以看出兩個樣本都預測的為狗,但是他們的交叉熵損失差別很大。因此我們在訓練時,可能會出現准確率和交叉熵同時上升的情況。
那么問題來了:
既然准確率和損失都是評價模型好壞的,那么用一個不行嗎?為什么要用兩個並不完全等價的評價指標呢?
這是因為,在分類問題中,可能准確率更加的直觀,也更具有可解釋性,更重要,但是它不可微,無法直接用於網絡訓練,因為反向傳播算法要求損失函數是可微的。而損失函數一個很好的性質就是可微,可以求梯度,運用反向傳播更新參數。即首選損失不能直接優化(比如准確率)時,可以使用與真實度量類似的損失函數。 損失函數的可微性,使得可以采用多種方式進行優化求解,例如牛頓法、梯度下降法、極大似然估計等。另外在分類任務中,使用accuracy可以,但是在回歸任務中,accuracy便不再可用,只能使用loss。

  • 通過模型在 dev/test 集上的 accuracy ,計算模型正確分類的樣本數與總樣本數之比以衡量模型的效果,目標是對模型的效果進行度量。
  • 通過損失函數的計算,更新模型參數,目標是為了減小優化誤差(Optimization error),即在損失函數與優化算法的共同作用下,減小模型的經驗風險。

總結准確度和交叉熵會出現以下情況:

  1. 如果正確標簽的概率降低,但這個標簽依然是概率最高的,會出現損失增加單准確度不變的結果。
  2. 如果數據集的標簽很不平均,比如90%是類別A,那么模型一味增加預測A的比例,可能會讓准確度上升,但loss可能也會以更大幅度上升(cross entropy的幅度可以很大)
  3. 如果模型非常自信,大多數正確標簽的概率都接近1,那如果出現一個錯誤,准確率可能只會降低很少,但交叉熵可能會非常高。

參考:
https://blog.csdn.net/quiet_girl/article/details/86138489
https://www.zhihu.com/question/264892967


免責聲明!

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



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