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

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

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

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

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

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

不平衡類會有什么問題?

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

舉例

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

2.自然災害預測(不好的事情遠遠小于好的事情)

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

為什么這是個問題呢?

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

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

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

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

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

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

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

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

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

圖像分類中的不平衡類

在本節(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)和公共貢獻者。 通過您的貢獻,將會幫助打開有關(guān)全球海洋哺乳動物種群動態(tài)豐富的理解領(lǐng)域。」

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

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

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

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

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

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

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

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

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

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

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

640

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

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

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

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

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

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

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

學習速率探測器 -我們決定將學習率定為0.01,正如學習速率探測器所示。

640

我們用 Resnet50 模型進行了很少的迭代(先凍結(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)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 人工智能
    +關(guān)注

    關(guān)注

    1791

    文章

    47279

    瀏覽量

    238511
  • 深度學習
    +關(guān)注

    關(guān)注

    73

    文章

    5503

    瀏覽量

    121170
收藏 人收藏

    評論

    相關(guān)推薦

    原創(chuàng)手把手教你學習FPGA視頻教程,不看后悔喲

    很多囊中羞澀的初學者只能望板興嘆。針對現(xiàn)狀,推出了此款初學者能買得起的開發(fā)板,并以此開發(fā)板為硬件平臺,推出手把手教你學習FPGA原創(chuàng)視頻教程,帶領(lǐng)初學者輕松走進FPGA設(shè)計開發(fā)的大門,手把手
    發(fā)表于 08-14 16:24

    手把手教你學習STM32

    手把手教你學習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 ?1467次閱讀

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

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

    手把手教你學習FPGA—LED篇

    電子專業(yè)單片機相關(guān)知識學習教材資料——手把手教你學習FPGA—LED篇
    發(fā)表于 08-08 17:19 ?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編程

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

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

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

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

    手把手教你學習Spyglass工具

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

    手把手教你學FPGA仿真

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