人臉聚類Fscore評估
引子
在之前做人臉智慧相簿時,為了給客戶演示,需要拿出我們的demo與市場上其他產品如小米,華為等的準確率比較。但當時沒有找到什麼好的方法進行評估,因此自己發明了一種方法。但並不專業。所以這裡要介紹在看人臉聚類論文《Clustering Millions of Faces by Identity》時發現有4篇左右的論文都提到的F score測量的方法。認為對我們有幫助。下面就介紹論文中是如何計算F score的。
論文中Fsocre 計算
pairwise precision
屬於同一人的pairs數目”佔“該類簇pairs數目”的比例比如上圖的準確率P = 1/(3+2) = 1/5 (其中3是左邊的聚類結果中有3個樣本,一一對應就是3對,右邊的聚類結果中除了U1,U2外有兩對)
論文中U1,U2是從網路下載的unknow lable,U1,U2不是一對),所以不計算在內。
Pairwise recall
“屬於同一人的pairs數目”佔“該個體真實的pairs數目”
比如上圖召回率是R =1/3 (只關注了A樣本,沒有關注U1,U2,以及B1)
Fscore
TP,FP,FN幫助理解pairwise precision和 recall
由於上面內容太晦澀,所以各種在網上查資料,才找到這篇幫組我們理解的內容。
其中提到的RI計算方式中的TP,FP,FN。剛好是我們計算Fscore需要的。我們可以藉助這個網頁內容理解聚類結果中的TP,FP,FN。
如圖,認為x代表一類文件,o代表一類文件,方框代表一類文件,完美的聚類顯然是應該把各種不同的圖形放入一類。
其中TP是指被聚在一類的兩個文件被正確分類了,FP只不應該放在一類的文件被錯誤的放在了一類,FN只不應該分開的文件被錯誤的分開了。對上圖
TP+FP = C(2,6)+C(2,6)+C(2,5)=15+15+10 = 40
其中C(n,m)是指在m中任選n個的組合數。
TP = C(2,5)+C(2,4)+C(2,3)+C(2,2)=15+15+10 = 20
FP = 40 - 20 = 20
TP+FN=C(2,8)+C(2,5)+C(2,4) = 28+10+6 = 44(這裡計算的是每種文件真實有多少對,比如x有8個則有28對等)
通過上面的計算,則能得出:P = 20/40 = 50%
R = 20/44 = 45.5%
F = 2*P*R/(P+R) = 0.476
通過這部分對TP,FP,FN的理解,我們更能明白多分類或者聚類時算幾個簇的TP等要全部加起來。反過來也能說明第一部分論文中我們的理解是正確的。
聚類Fscore計算實際舉例
使用人臉相簿app進行對50張測試樣本,進行測試結果如下:
jianwen:3/6 (表示有6張圖片只有3張正確分在了一個簇,注意這次測試結果沒有出現將一個人的臉分錯到別的人臉的簇中的情況)
jianwenlaopo:3/3
jianwenmama:0/2
jiujun:7/8
liuqing:9/10
linyujing:7/8
meinv:2/3
mengmeng:7/8
xiaoxiao:0/2
由於這裡計算F score用的是每張樣本的一一對應有多少對。因此引出了計算多少對的公式。其中N代表樣本數。
Pairs = 1/2*N*(N-1)
如一個聚類簇裡有3個人臉樣本,則有3對人臉。
如一個聚類簇裡有5個人臉樣本,則有10對人臉。
然後計算如下:
小結
通過對這篇論文的學習,我們學習到了一種人臉聚類演算法準確率的評估方法。並且看到有以下幾篇論文都提到了用F score的方式進行人臉聚類演算法評估:
Clustering Millions of Faces by Identity
Face Clustering Representation and Pairwise
An Efficient Approach for Clustering Face Images