0
本文作者: AI研習(xí)社-譯站 | 2018-07-12 14:22 |
雷鋒網(wǎng)按:本文為雷鋒字幕組編譯的技術(shù)博客,原標(biāo)題 Deep learning unbalanced training data ? Solve it like this,作者為 Shubrashankh Chatterjee 。
翻譯 | 葉青 整理 | MY
當(dāng)我們解決任何機(jī)器學(xué)習(xí)問(wèn)題時(shí),我們面臨的最大問(wèn)題之一是訓(xùn)練數(shù)據(jù)不平衡。不平衡數(shù)據(jù)的問(wèn)題在于學(xué)術(shù)界對(duì)于相同的定義、含義和可能的解決方案存在分歧。我們將嘗試用圖像分類(lèi)問(wèn)題來(lái)解開(kāi)訓(xùn)練數(shù)據(jù)中不平衡類(lèi)別的奧秘。
不平衡類(lèi)會(huì)有什么問(wèn)題?
在一個(gè)分類(lèi)問(wèn)題中,如果在所有你想要預(yù)測(cè)的類(lèi)別里有一個(gè)或者多個(gè)類(lèi)別的樣本量非常少,那你的數(shù)據(jù)也許就面臨不平衡類(lèi)別的問(wèn)題。
舉例
1.欺詐預(yù)測(cè)(欺詐的數(shù)量遠(yuǎn)遠(yuǎn)小于真實(shí)交易的數(shù)量)
2.自然災(zāi)害預(yù)測(cè)(不好的事情遠(yuǎn)遠(yuǎn)小于好的事情)
3.在圖像分類(lèi)中識(shí)別惡性腫瘤(訓(xùn)練樣本中含有腫瘤的圖像遠(yuǎn)比沒(méi)有腫瘤的圖像少)
為什么這是個(gè)問(wèn)題呢?
不平衡類(lèi)別會(huì)造成問(wèn)題有兩個(gè)主要原因:
1.對(duì)于不平衡類(lèi)別,我們不能得到實(shí)時(shí)的最優(yōu)結(jié)果,因?yàn)槟P?算法從來(lái)沒(méi)有充分地考察隱含類(lèi)。
2.它對(duì)驗(yàn)證和測(cè)試樣本的獲取造成了一個(gè)問(wèn)題,因?yàn)樵谝恍╊?lèi)觀(guān)測(cè)極少的情況下,很難在類(lèi)中有代表性。
解決這個(gè)問(wèn)題有哪些不同方法?
現(xiàn)在有三種主要建議的方法,它們各有利弊:
1.欠采樣 - 隨機(jī)刪除觀(guān)測(cè)數(shù)量足夠多的類(lèi),使得兩個(gè)類(lèi)別間的相對(duì)比例是顯著的。雖然這種方法使用起來(lái)非常簡(jiǎn)單,但很有可能被我們刪除了的數(shù)據(jù)包含著預(yù)測(cè)類(lèi)的重要信息。
2.過(guò)采樣 - 對(duì)于不平衡的類(lèi)別,我們使用拷貝現(xiàn)有樣本的方法隨機(jī)增加觀(guān)測(cè)數(shù)量。理想情況下這種方法給了我們足夠的樣本數(shù),但過(guò)采樣可能導(dǎo)致過(guò)擬合訓(xùn)練數(shù)據(jù)。
3.合成采樣( SMOTE )-該技術(shù)要求我們用合成方法得到不平衡類(lèi)別的觀(guān)測(cè),該技術(shù)與現(xiàn)有的使用最近鄰分類(lèi)方法很類(lèi)似。問(wèn)題在于當(dāng)一個(gè)類(lèi)別的觀(guān)測(cè)數(shù)量極度稀少時(shí)該怎么做。比如說(shuō),我們想用圖片分類(lèi)問(wèn)題確定一個(gè)稀有物種,但我們可能只有一幅這個(gè)稀有物種的圖片。
盡管每種方法都有各自的優(yōu)點(diǎn),但沒(méi)有什么特定的啟發(fā)式方法告訴我們什么時(shí)候使用哪種方法。我們現(xiàn)在將使用深度學(xué)習(xí)特定的圖像分類(lèi)問(wèn)題詳細(xì)研究這個(gè)問(wèn)題。
圖像分類(lèi)中的不平衡類(lèi)
在本節(jié)中,我們將選取一個(gè)圖像分類(lèi)問(wèn)題,其中存在不平衡類(lèi)問(wèn)題,然后我們將使用一種簡(jiǎn)單有效的技術(shù)來(lái)解決它。
問(wèn)題 - 我們?cè)?kaggle 網(wǎng)站上選擇「座頭鯨識(shí)別挑戰(zhàn)」,我們期望解決不平衡類(lèi)別的挑戰(zhàn)(理想情況下,所分類(lèi)的鯨魚(yú)數(shù)量少于未分類(lèi)的鯨類(lèi),并且也有少數(shù)罕見(jiàn)鯨類(lèi)我們有的圖像數(shù)量更少。)
來(lái)自 kaggle :「在這場(chǎng)比賽中,你面臨著建立一個(gè)算法來(lái)識(shí)別圖像中的鯨魚(yú)種類(lèi)的挑戰(zhàn)。您將分析 Happy Whale 數(shù)據(jù)庫(kù)中的超過(guò)25,000張圖像,這些數(shù)據(jù)來(lái)自研究機(jī)構(gòu)和公共貢獻(xiàn)者。 通過(guò)您的貢獻(xiàn),將會(huì)幫助打開(kāi)有關(guān)全球海洋哺乳動(dòng)物種群動(dòng)態(tài)豐富的理解領(lǐng)域。」
我們來(lái)看看數(shù)據(jù)
由于這是一個(gè)多標(biāo)簽圖像分類(lèi)問(wèn)題,我想首先檢查數(shù)據(jù)在各個(gè)類(lèi)別間的分布情況。
上面的圖表表明,在4251個(gè)訓(xùn)練圖片中,有超過(guò)2000個(gè)類(lèi)別中只有一張圖片。還有一些類(lèi)中有2-5個(gè)圖片?,F(xiàn)在,這是一個(gè)嚴(yán)重的不平衡類(lèi)問(wèn)題。我們不能指望用每個(gè)類(lèi)別的一張圖片對(duì)深度學(xué)習(xí)模型進(jìn)行訓(xùn)練(雖然有些算法可能正是用來(lái)做這個(gè)的,例如 one-shot 分類(lèi)問(wèn)題,但我們現(xiàn)在忽略先這一點(diǎn))。這也會(huì)產(chǎn)生一個(gè)問(wèn)題,即如何劃分訓(xùn)練樣本和驗(yàn)證樣本。理想情況下,您會(huì)希望每個(gè)類(lèi)都在訓(xùn)練和驗(yàn)證樣本中有所體現(xiàn)。
我們現(xiàn)在應(yīng)該做什么?
我們特別考慮了兩個(gè)選項(xiàng):
選項(xiàng)1 - 對(duì)訓(xùn)練樣本進(jìn)行嚴(yán)格的數(shù)據(jù)增強(qiáng)(我們可以做到這一點(diǎn),但因?yàn)槲覀冎恍枰槍?duì)特定類(lèi)的數(shù)據(jù)增強(qiáng),這可能無(wú)法完全達(dá)到我們的目的)。因此,我選擇了看起來(lái)很簡(jiǎn)單的選項(xiàng)2。
選項(xiàng)2 - 類(lèi)似于我上面提到的過(guò)采樣選項(xiàng)。我僅僅使用不同的圖像增強(qiáng)技術(shù)將不平衡類(lèi)的圖像在訓(xùn)練數(shù)據(jù)中復(fù)制了15次。這受到了杰里米·霍華德(Jeremy Howard )的啟發(fā),我猜他在一次深度學(xué)習(xí)講座(fast.ai course 課程的第1部分)里提到過(guò)這一點(diǎn)。
在開(kāi)始選項(xiàng)2之前,我們先看看訓(xùn)練樣本中的一些圖像。
特別的是,這些圖像都是鯨魚(yú)的尾巴。因此,識(shí)別很可能與特定的圖片方向有關(guān)。
我也注意到在數(shù)據(jù)中有很多圖像是黑白圖片或只有R / B / G通道。
根據(jù)這些觀(guān)察結(jié)果,我決定編寫(xiě)下面的代碼,對(duì)訓(xùn)練樣本中不平衡類(lèi)的圖像進(jìn)行小幅改動(dòng)并保存它們:
以上代碼塊對(duì)不平衡類(lèi)(數(shù)量小于10)中的每個(gè)圖像都進(jìn)行如下處理:
1.將每張圖片的 R、G、B 通道分別保存為增強(qiáng)副本
2.保存每張圖片非銳化的增強(qiáng)副本
3.保存每張圖片非銳化的增強(qiáng)副本
在上面的代碼中可以看到,我們?cè)谶@個(gè)練習(xí)中嚴(yán)格使用 pillow (一個(gè) python 圖像庫(kù))。
現(xiàn)在在每個(gè)不平衡類(lèi)中都至少有了10個(gè)樣本。我們繼續(xù)進(jìn)行訓(xùn)練。
圖像增強(qiáng) - 我們簡(jiǎn)單考慮這個(gè)問(wèn)題。我們只想確保我們的模型能夠獲得鯨魚(yú)尾的詳細(xì)視圖。為此,我們將變焦圖包含到圖像增強(qiáng)中。
學(xué)習(xí)速率探測(cè)器 - 我們決定將學(xué)習(xí)率定為0.01,正如學(xué)習(xí)速率探測(cè)器所示。
我們用 Resnet50 模型進(jìn)行了很少的迭代(先凍結(jié)模型,再解凍)。發(fā)現(xiàn)凍結(jié)的模型對(duì)于這個(gè)問(wèn)題也非常有用,因?yàn)?imagenet 中有鯨魚(yú)尾圖像。
在測(cè)試數(shù)據(jù)上表現(xiàn)如何?
最終我們?cè)?kaggle 排行榜上獲得了真相。我們的提出的解決方案在本次比賽中排名34,前五的平均精確度為0.41928 :)
結(jié)論
有時(shí),最簡(jiǎn)單的方法是最合理的(如果你沒(méi)有更多的數(shù)據(jù),只需稍加變化地拷貝現(xiàn)有的數(shù)據(jù),假裝對(duì)模型來(lái)說(shuō)這一類(lèi)別的大多數(shù)觀(guān)測(cè)與它們基本類(lèi)似)。它們最有效并且可以更容易和直觀(guān)地完成工作。
雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。