很多機器學習分類器都需要對背景或其他類別的物體進行具體分類。這種分類器最大的難題就是在對背景進行分類時能否達到較高的準確率。它沒有可辨別特征,并且可用的訓練數據可能不會覆蓋所有的輸入分布。在這篇文章中,我們提出了幾種解決這一問題的方法。
在這篇文章里,我們將圖像樣本分類問題看做“狗狗種類的區分”問題(總共有9種狗狗):
我們解決了三個難題:
如何讓分類器預測目標是否為“背景”的概率
如何得到背景訓練數據之外的、并不符合真實背景分布的數據
如何修復背景分類的不平衡性
使用背景類別數據
想創建這個狗狗分類器,有兩種方法可用:
得到這些狗狗圖像和背景的所有數據(將背景也看作是可識別的一類對象),共有10類
創建一個能辨別9種狗狗種類的模型,如果模型在9個種類上都沒有足夠高的置信度,那么就將其判定為“背景”
從我的經驗來看,第二種方法表現不佳。我發現這樣的模型學會了以狗狗為中心進行嵌入(logit層和softmax之前的最后一層),并且閾值通常會將各種類別的邊界附近的嵌入映射到“背景”一類中:
但是事實上,狗狗們只是圖片的一個子空間,也許接近一個極值(與分類器需要學習的毛發特征等其他特征不同):
這樣的分類器在沒有狗狗的圖像上可以任意工作。接下來,我們會介紹只能預測背景概率的分類器。
控制背景分類的學習
假設我們現在已經收集到了足夠的有關背景分類的數據了,通常,我們的背景數據都是圖片的不完全分布。下面是一些家用電器和廚房用具:
如果我們僅在這些圖片上訓練一個模型,讓它把背景當做另外一個類別的東西,那么嵌入示意圖看起來很不完美:
我有一種能顯著改善這種情況的方法:不讓背景類別學習特征,只讓它學習一種可訓練變量,即它的logit。這樣一來,背景類別不會被嵌入到某個具體的區域中,給那些真正屬于背景的圖片更多的嵌入圖空間:
當然了,這種方法仍不完美。在某種程度上,狗狗分類可以學習在電器圖片上表現較弱,但在實際中一定比這種更好。
我用上面的9種狗和6種電器的數據訓練了一個模型,并完全的ImageNet驗證集上對它們進行驗證。我在訓練和驗證時加入了權重,以減輕分類的不平衡性(下一節我們會講到如何處理真正分布的不平衡)。在下方的驗證圖表中,綠色的折線是模型將所有類別都相同對待的結果,藍色折線是模型在學習時沒有學習背景類型的結果:
驗證精度vs訓練次數
沒有學習背景特征的模型在大多數訓練中都保持領先,在沒有訓練背景的情況下,精確度在15個類別的數據集上都有了提升(9種狗狗類別、6種電器類別和其中的背景類別),同時在有1000種數據集分類上也有進步(9個狗狗類別、991種電器類別和其中一個背景類別):
注意,這一結果表明這10種類別在驗證時都是一樣重要。
背景分類不平衡
最后,我們要考慮另一種情況,即背景類別實際上比測試時狗狗圖片的數量要多。假設測試時的分布都來源于ImageNet,我們的分類器在這些情況下表現較差,因為它在訓練時認為所有類別都是平均分布的。
解決這一問題最簡單的方法就是在每個肯定預測中加入更高的閾值,從而當概率超過這一值并且是最高的時,我們才能判斷這是某種類型的狗狗。由此,我們得到了以下的精確度與反饋曲線,如果分類器從9種狗狗中預測出了一種,那么每個樣本都都被看作是“正的”,如果預測結果為“背景”,那么就是“負的”。
例如,如果我們需要對狗狗的預測結果達到90%的置信度,我們會對85%的圖片進行正確標簽,大約有7%的預測是正確的。
不過,這一結果還能提高。我們可以用先驗和下面的貝葉斯公式,將概率分布從“統一”改變成“shifted”,前提是假設每個類別x都符合P(image|x,shifted) = P(image|x,uniform):
這樣做的好處是,它并不需要收集更多數據,甚至重新訓練模型,只需要一個簡單的數據公式,就能得出更好地預測結果。
結語
總的來說,在這篇文章中我提出了三種能夠在有背景的圖片中提高分類器精確度的技術:
在背景類別中添加一些數據,讓模型對其進行概率預測(而不是僅僅訓練一個無背景的類別,對背景類別映射低概率)
避免模型使用任何特征了解背景類別的活動
使用先驗調整類別不平衡問題
這些技術能改變模型對背景圖片的預測,從此前的混亂預測,到可以推斷出大量信息。
-
分類器
+關注
關注
0文章
152瀏覽量
13174 -
機器學習
+關注
關注
66文章
8377瀏覽量
132406
原文標題:如何用機器學習精準辨別“背景”和“目標”
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論