Top-k Accuracy:模型優(yōu)化策略不一定徒勞無功 原創(chuàng)
構(gòu)建模型通常是一個迭代過程,給定數(shù)據(jù)集:
- 訓(xùn)練模型
- 評估模型
- 改進(jìn),直到滿意為止
你的改進(jìn)策略不一定徒勞無功!
如何評估模型是否進(jìn)步了呢?通常會使用某些性能指標(biāo)來評估改進(jìn)策略的有效性。
然而,在多分類問題中,當(dāng)使用“Accuracy”指標(biāo)評估改進(jìn)策略有效性時,通常帶有欺騙性。
換句話,某些改進(jìn)策略其實(shí)已經(jīng)提升模型性能了,但通過“Accuracy”這個指標(biāo)沒有反映出來。
“Accuracy”陷阱
這里的“Accuracy”其實(shí)應(yīng)該是“Top-1 Accuracy”。
在多分類問題中,Accuracy由具有最高概率值的標(biāo)簽決定。
實(shí)際的標(biāo)簽雖然可能并不是模型預(yù)測概率最高的標(biāo)簽,但它位于模型輸出的前“k”個標(biāo)簽之中。
如下面圖,實(shí)際的標(biāo)簽(類別C)并不是概率最高的標(biāo)簽,但它至少在前2個預(yù)測概率最高的標(biāo)簽之中(類別B和類別C):
如果上一個版本中,類別C的輸出概率是最低的,就像下面所示:
雖然在這兩種情況下,最終的預(yù)測結(jié)果都是錯誤的(模型預(yù)測標(biāo)簽C不是最高概率)。
但是,在從“版本1”迭代到“版本2”的過程中,通過使用一些模型改進(jìn)技術(shù),我們確實(shí)取得了實(shí)質(zhì)性的進(jìn)步(從倒數(shù)第一上升到第二)。
盡管如此,準(zhǔn)確率(Accuracy)完全忽略了這一點(diǎn),因?yàn)樗魂P(guān)注概率最高的標(biāo)簽。
解決辦法:top-k Accuracy
在模型迭代過程中,“top-k Accuracy”可能會持續(xù)提高,這反映了性能的提升。然而,準(zhǔn)確率可能會在一段時間內(nèi)保持不變,如下所示:
所以,top-k Accuracy常用于評估模型改進(jìn)策略,模型最終性能仍然要通過top-1 Accuracy評估。
在Scikit-learn中也提供了top-k Accuracy評估指標(biāo)。
在二分類問題中,因?yàn)橹挥袃蓚€類別,模型的輸出通常只是一個概率值,用于表示正樣本的概率,使用準(zhǔn)確率、精確率、召回率就夠用了。
性能指標(biāo)vs損失函數(shù)
最后再說一下模型性能評估指標(biāo)和損失值的區(qū)別。
損失值用于訓(xùn)練過程中,衡量模型預(yù)測結(jié)果與真實(shí)標(biāo)簽之間的差異,指導(dǎo)模型的參數(shù)更新。
模型性能指標(biāo)主要用于評估模型的泛化能力,即模型在未見過的數(shù)據(jù)上的表現(xiàn)。通常衡量模型的預(yù)測準(zhǔn)確性、精確率、召回率、F1 分?jǐn)?shù)等。
本文轉(zhuǎn)載自公眾號人工智能大講堂
