0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

手把手教你解決-深度學(xué)習(xí)訓(xùn)練數(shù)據(jù)不平衡問題

人工智能實訓(xùn)營 ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-07-24 13:34 ? 次閱讀

當(dāng)我們解決任何機器學(xué)習(xí)問題時,我們面臨的最大問題之一是訓(xùn)練數(shù)據(jù)不平衡。不平衡數(shù)據(jù)的問題在于學(xué)術(shù)界對于相同的定義、含義和可能的解決方案存在分歧。我們將嘗試用圖像分類問題來解開訓(xùn)練數(shù)據(jù)中不平衡類別的奧秘。

不平衡類會有什么問題?

在一個分類問題中,如果在所有你想要預(yù)測的類別里有一個或者多個類別的樣本量非常少,那你的數(shù)據(jù)也許就面臨不平衡類別的問題。

舉例

1.欺詐預(yù)測(欺詐的數(shù)量遠(yuǎn)遠(yuǎn)小于真實交易的數(shù)量)

2.自然災(zāi)害預(yù)測(不好的事情遠(yuǎn)遠(yuǎn)小于好的事情)

3.在圖像分類中識別惡性腫瘤(訓(xùn)練樣本中含有腫瘤的圖像遠(yuǎn)比沒有腫瘤的圖像少)

為什么這是個問題呢?

不平衡類別會造成問題有兩個主要原因:

1.對于不平衡類別,我們不能得到實時的最優(yōu)結(jié)果,因為模型/算法從來沒有充分地考察隱含類。

2.它對驗證和測試樣本的獲取造成了一個問題,因為在一些類觀測極少的情況下,很難在類中有代表性。

解決這個問題有哪些不同方法?

現(xiàn)在有三種主要建議的方法,它們各有利弊:

1.欠采樣-隨機刪除觀測數(shù)量足夠多的類,使得兩個類別間的相對比例是顯著的。雖然這種方法使用起來非常簡單,但很有可能被我們刪除了的數(shù)據(jù)包含著預(yù)測類的重要信息

2.過采樣-對于不平衡的類別,我們使用拷貝現(xiàn)有樣本的方法隨機增加觀測數(shù)量。理想情況下這種方法給了我們足夠的樣本數(shù),但過采樣可能導(dǎo)致過擬合訓(xùn)練數(shù)據(jù)。

3.合成采樣( SMOTE-該技術(shù)要求我們用合成方法得到不平衡類別的觀測,該技術(shù)與現(xiàn)有的使用最近鄰分類方法很類似。問題在于當(dāng)一個類別的觀測數(shù)量極度稀少時該怎么做。比如說,我們想用圖片分類問題確定一個稀有物種,但我們可能只有一幅這個稀有物種的圖片。

盡管每種方法都有各自的優(yōu)點,但沒有什么特定的啟發(fā)式方法告訴我們什么時候使用哪種方法。我們現(xiàn)在將使用深度學(xué)習(xí)特定的圖像分類問題詳細(xì)研究這個問題。

圖像分類中的不平衡類

在本節(jié)中,我們將選取一個圖像分類問題,其中存在不平衡類問題,然后我們將使用一種簡單有效的技術(shù)來解決它。

問題-我們在 kaggle 網(wǎng)站上選擇「座頭鯨識別挑戰(zhàn)」,我們期望解決不平衡類別的挑戰(zhàn)(理想情況下,所分類的鯨魚數(shù)量少于未分類的鯨類,并且也有少數(shù)罕見鯨類我們有的圖像數(shù)量更少。)

來自 kaggle :「在這場比賽中,你面臨著建立一個算法來識別圖像中的鯨魚種類的挑戰(zhàn)。您將分析 Happy Whale 數(shù)據(jù)庫中的超過25,000張圖像,這些數(shù)據(jù)來自研究機構(gòu)和公共貢獻(xiàn)者。 通過您的貢獻(xiàn),將會幫助打開有關(guān)全球海洋哺乳動物種群動態(tài)豐富的理解領(lǐng)域。」

我們來看看數(shù)據(jù)

由于這是一個多標(biāo)簽圖像分類問題,我想首先檢查數(shù)據(jù)在各個類別間的分布情況。

上面的圖表表明,在4251個訓(xùn)練圖片中,有超過2000個類別中只有一張圖片。還有一些類中有2-5個圖片。現(xiàn)在,這是一個嚴(yán)重的不平衡類問題。我們不能指望用每個類別的一張圖片對深度學(xué)習(xí)模型進(jìn)行訓(xùn)練(雖然有些算法可能正是用來做這個的,例如 one-shot 分類問題,但我們現(xiàn)在忽略先這一點)。這也會產(chǎn)生一個問題,即如何劃分訓(xùn)練樣本和驗證樣本。理想情況下,您會希望每個類都在訓(xùn)練和驗證樣本中有所體現(xiàn)。

我們現(xiàn)在應(yīng)該做什么?

我們特別考慮了兩個選項:

選項1- 對訓(xùn)練樣本進(jìn)行嚴(yán)格的數(shù)據(jù)增強(我們可以做到這一點,但因為我們只需要針對特定類的數(shù)據(jù)增強,這可能無法完全達(dá)到我們的目的)。因此,我選擇了看起來很簡單的選項2。

選項2-類似于我上面提到的過采樣選項。我僅僅使用不同的圖像增強技術(shù)將不平衡類的圖像在訓(xùn)練數(shù)據(jù)中復(fù)制了15次。這受到了杰里米·霍華德(Jeremy Howard)的啟發(fā),我猜他在一次深度學(xué)習(xí)講座(fast.ai course課程的第1部分)里提到過這一點。

在開始選項2之前,我們先看看訓(xùn)練樣本中的一些圖像。

特別的是,這些圖像都是鯨魚的尾巴。因此,識別很可能與特定的圖片方向有關(guān)。

我也注意到在數(shù)據(jù)中有很多圖像是黑白圖片或只有R / B / G通道。

根據(jù)這些觀察結(jié)果,我決定編寫下面的代碼,對訓(xùn)練樣本中不平衡類的圖像進(jìn)行小幅改動并保存它們:

640

以上代碼塊對不平衡類(數(shù)量小于10)中的每個圖像都進(jìn)行如下處理:

1.將每張圖片的 R、G、B 通道分別保存為增強副本

2.保存每張圖片非銳化的增強副本

3.保存每張圖片非銳化的增強副本

在上面的代碼中可以看到,我們在這個練習(xí)中嚴(yán)格使用 pillow (一個 python 圖像庫)。

現(xiàn)在在每個不平衡類中都至少有了10個樣本。我們繼續(xù)進(jìn)行訓(xùn)練。

圖像增強 -我們簡單考慮這個問題。我們只想確保我們的模型能夠獲得鯨魚尾的詳細(xì)視圖。為此,我們將變焦圖包含到圖像增強中。

學(xué)習(xí)速率探測器 -我們決定將學(xué)習(xí)率定為0.01,正如學(xué)習(xí)速率探測器所示。

640

我們用 Resnet50 模型進(jìn)行了很少的迭代(先凍結(jié)模型,再解凍)。發(fā)現(xiàn)凍結(jié)的模型對于這個問題也非常有用,因為 imagenet 中有鯨魚尾圖像。

640

在測試數(shù)據(jù)上表現(xiàn)如何?

最終我們在 kaggle 排行榜上獲得了真相。我們的提出的解決方案在本次比賽中排名34,前五的平均精確度為0.41928 :)

結(jié)論

有時,最簡單的方法是最合理的(如果你沒有更多的數(shù)據(jù),只需稍加變化地拷貝現(xiàn)有的數(shù)據(jù),假裝對模型來說這一類別的大多數(shù)觀測與它們基本類似)。它們最有效并且可以更容易和直觀地完成工作。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 人工智能
    +關(guān)注

    關(guān)注

    1787

    文章

    46124

    瀏覽量

    235413
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5424

    瀏覽量

    120629
收藏 人收藏

    評論

    相關(guān)推薦

    手把手教你學(xué)習(xí)STM32

    手把手教你學(xué)習(xí)STM32
    發(fā)表于 12-17 07:18

    手把手教你構(gòu)建一個完整的工程

    手把手教你構(gòu)建一個完整的工程
    發(fā)表于 08-03 09:54 ?33次下載
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>構(gòu)建一個完整的工程

    手把手教你寫批處理-批處理的介紹

    手把手教你寫批處理-批處理的介紹
    發(fā)表于 10-25 15:02 ?69次下載

    美女手把手教你如何裝機(中)

    美女手把手教你如何裝機(中) 再來是硬碟的部份,這款機殼還不錯,可以旋轉(zhuǎn)支架~
    發(fā)表于 01-27 11:14 ?1429次閱讀

    美女手把手教你如何裝機(下)

    美女手把手教你如何裝機(下) 接著下來就是今天的重頭戲,開核蘿!~
    發(fā)表于 01-27 11:16 ?2907次閱讀

    手把手教你學(xué)習(xí)FPGA—LED篇

    電子專業(yè)單片機相關(guān)知識學(xué)習(xí)教材資料——手把手教你學(xué)習(xí)FPGA—LED篇
    發(fā)表于 08-08 17:19 ?0次下載

    手把手教你學(xué)電子書制作

    手把手教你學(xué)電子書制作,可以自己DIY電子書
    發(fā)表于 09-13 11:26 ?0次下載

    手把手教你安裝Quartus II

    本章手把手把教你如何安裝 Quartus II 軟件 ,并將它激活 。此外 還有USB -Blaster下載器的驅(qū)動安裝步驟 。
    發(fā)表于 09-18 14:55 ?9次下載

    手把手教你在家搭建監(jiān)控系統(tǒng)

    手把手教你在家搭建監(jiān)控系統(tǒng)
    發(fā)表于 01-17 19:47 ?25次下載

    手把手教你做電子時鐘---前言

    手把手教你做彩鈴電子時鐘
    發(fā)表于 11-14 16:53 ?11次下載

    手把手教你如何開始DSP編程

    手把手教你如何開始DSP編程。
    發(fā)表于 04-09 11:54 ?12次下載
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>如何開始DSP編程

    手把手教你學(xué)LabVIEW視覺設(shè)計

    手把手教你學(xué)LabVIEW視覺設(shè)計手把手教你學(xué)LabVIEW視覺設(shè)計手把手教你學(xué)LabVIEW視
    發(fā)表于 03-06 01:41 ?3016次閱讀

    手把手教你開關(guān)電源PCB排板

    手把手教你開關(guān)電源PCB排板(新型電源技術(shù))-分享一下開關(guān)電源PCB排板的基本要點及分析,以及例子講解。絕對的手把手
    發(fā)表于 09-18 12:27 ?57次下載
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>開關(guān)電源PCB排板

    手把手教你學(xué)習(xí)Spyglass工具

    作為IC設(shè)計人員,熟練掌握數(shù)字前端語法檢查工具Spyglass的重要性不言而喻,本文手把手教你學(xué)習(xí)Spyglass工具。
    的頭像 發(fā)表于 04-03 10:46 ?2410次閱讀

    手把手教你學(xué)FPGA仿真

    電子發(fā)燒友網(wǎng)站提供《手把手教你學(xué)FPGA仿真.pdf》資料免費下載
    發(fā)表于 10-19 09:17 ?2次下載
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>學(xué)FPGA仿真