超好用的自信學習:1行代碼查找標簽錯誤,3行代碼學習噪聲標簽
本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。
你知道嗎?就連ImageNet中也可能至少存在10萬個標簽問題。
在大量的數據集中去描述或查找標簽錯誤本身就是挑戰性超高的任務,多少英雄豪杰為之頭痛不已。
最近,MIT和谷歌的研究人員便提出了一種廣義的自信學習(Confident Learning,CL)方法,可以直接估計給定標簽和未知標簽之間的聯合分布。
這種廣義的CL,也是一個開源的Clean Lab Python包,在ImageNet和CIFAR上的性能比其他前沿技術高出30%。
這種方法有多厲害?舉個栗子。

上圖是2012年ILSVRC ImageNet訓練集中使用自信學習發現的標簽錯誤示例。研究人員將CL發現的問題分為三類:
1、藍色:圖像中有多個標簽;
2、綠色:數據集中應該包含一個類;
3、紅色:標簽錯誤。
通過自信學習,就可以在任何數據集中使用合適的模型來發現標簽錯誤。下圖是其他三個常見數據集中的例子。

△目前存在于Amazon Reviews、MNIST和Quickdraw數據集中的標簽錯誤的例子,這些數據集使用自信學習來識別不同的數據模式和模型。
這么好的方法,還不速來嘗鮮?
什么是自信學習?
自信學習已然成為監督學習的一個子領域。

從上圖不難看出,CL需要2個輸入:
1、樣本外預測概率;
2、噪聲標簽;
對于弱監督而言,CL包括三個步驟:
1、估計給定的、有噪聲的標簽和潛在的(未知的)未損壞標簽的聯合分布,這樣就可以充分描述類條件標簽噪聲;
2、查找并刪除帶有標簽問題的噪聲(noisy)示例;
3、進行消除錯誤的訓練,然后根據估計的潛在先驗重新加權示例。
那么CL的工作原理又是什么呢?
我們假設有一個數據集包含狗、狐貍和奶牛的圖像。CL的工作原理就是估計噪聲標簽和真實標簽的聯合分布(下圖中右側的Q矩陣)。

△左:自信計數的示例;右:三類數據集的噪聲標簽和真實標簽的聯合分布示例。
接下來,CL計數了100張被標記為“狗”的圖像,這些圖像就很可能是“狗”類(class dog),如上圖左側的C矩陣所示。
CL還計數了56張標記為狗,但高概率屬于狐貍的圖像,以及32張標記為狗,但高概率屬于奶牛的圖像。
而后的中心思想就是,當一個樣本的預測概率大于每個類的閾值時,我們就可以自信地認為這個樣本是屬于這個閾值的類。
此外,每個類的閾值是該類中樣本的平均預測概率。
輕松上手Clean Lab
剛才也提到,本文所說的廣義CL,其實是一個Clean Lab Python包。而它之所以叫Clean Lab,是因為它能“clean”標簽。
Clean Lab具有以下優勢:
速度快:單次、非迭代、并行算法(例如,不到1秒的時間就可以查找ImageNet中的標簽錯誤);
魯棒性:風險最小化保證,包括不完全概率估計;
通用性:適用于任何概率分類器,包括 PyTorch、Tensorflow、MxNet、Caffe2、scikit-learn等;
獨特性:唯一用于帶有噪聲標簽或查找任何數據集/分類器標簽錯誤的多類學習的軟件包。
1行代碼就查找標簽錯誤!
3行代碼學習噪聲標簽!
接下來,是Clean Lab在MNIST上表現。可以在這個數據集上自動識別50個標簽錯誤。

原始MNIST訓練數據集的標簽錯誤使用rankpruning算法進行識別。描述24個最不自信的標簽,從左到右依次排列,自頂向下增加自信(屬于給定標簽的概率),在teal中表示為conf。預測概率最大的標簽是綠色的。明顯的錯誤用紅色表示。
傳送門
項目地址:
https://github.com/cgnorthcutt/cleanlab/
自信學習博客:
https://l7.curtisnorthcutt.com/confident-learning






























