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

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

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

一種通用的圖像分類方法

DPVg_AI_era ? 來源:未知 ? 作者:李倩 ? 2018-06-27 14:31 ? 次閱讀

這篇文章介紹了作者在Kaggle植物幼苗分類比賽使用的方法,該方法連續(xù)幾個月排名第一,最終排名第五。該方法非常通用,也可以用于其他圖像識別任務。

任務概述

你能區(qū)分雜草和作物幼苗嗎?

有效做到這一點的能力意味著更高的作物產(chǎn)量和更好的環(huán)境管理。

奧爾胡斯大學信號處理小組與南丹麥大學合作發(fā)布了一個數(shù)據(jù)集,其中包含大約960種不同生長階段的植物的圖像,這些植物屬于12個物種。

樣本植物之一:繁縷樣本[3]

該數(shù)據(jù)集包含有標注的RGB圖像,物理分辨率約為每毫米10個像素。

為了規(guī)范對數(shù)據(jù)集獲得的分類結(jié)果的評價,研究者提出了基于F1分數(shù)的基準。

下面的圖是數(shù)據(jù)集中所有12個類的樣本:

圖像分類任務可以分為5個步驟:

步驟1

機器學習中的第一個也是最重要的任務是在繼續(xù)使用任何算法之前對數(shù)據(jù)集進行分析。這對于理解數(shù)據(jù)集的復雜性非常重要,最終將有助于設計算法。

圖像和類的分布如下:

如前所述,共有12個類,4750張圖像。但是,從上面的圖中可以看出,數(shù)據(jù)的分布不均勻,類的分布從最大有654張圖像到最小只有221張圖像。這表明數(shù)據(jù)不均衡,數(shù)據(jù)需要均衡才能獲得最佳結(jié)果。我們將在第3個步驟講這一點。

每個類的圖像分布

為了更好地理解數(shù)據(jù),對圖像進行可視化非常重要。因此,每個類中會拿出一些示例圖像,以查看圖像之間的差異。

從上面的圖中得不到什么理解,因為所有的圖像看起來都差不多。因此,我決定使用被稱為t分布隨機鄰域嵌入(t-SNE)的可視化技術(shù)來查看圖像的分布。

t-SNE是降維的一種技術(shù),特別適用于高維數(shù)據(jù)集的可視化。該技術(shù)可以通過Barnes-Hut近似實現(xiàn),使其可以應用于大型真實世界的數(shù)據(jù)集[14]。

數(shù)據(jù)集的t-SNE可視化

現(xiàn)在,仔細觀察后,我們幾乎看不出不同類之間的差異。數(shù)據(jù)的差異是只對人類來說很難區(qū)分,還是不管對人類還是對機器學習模型來說都很難區(qū)分,了解這一點很重要。因此,我們將做一個基本的benchmark。

訓練集和驗證集

在開始使用模型基準之前,我們需要將數(shù)據(jù)劃分為訓練數(shù)據(jù)集和驗證數(shù)據(jù)集。在模型在原始測試集上進行測試之前,驗證集扮演測試數(shù)據(jù)集的角色。因此,基本上一個模型在訓練數(shù)據(jù)集上進行訓練,在驗證集上進行測試,然后在驗證集上對模型進行改進。當我們對驗證集的結(jié)果滿意,我們就可以將模型應用到真實測試數(shù)據(jù)集上。這樣,我們可以在驗證集上看到模型是過擬合還是欠擬合,從而幫助我們更好地擬合模型。

對有4750張圖像的這個數(shù)據(jù)集,我們將80%的圖像作為訓練數(shù)據(jù)集,20%作為驗證集。

分開訓練數(shù)據(jù)和驗證數(shù)據(jù)

步驟2

有了訓練集和驗證集后,我們開始對數(shù)據(jù)集進行基準測試。這是一個分類問題,在給出一個測試數(shù)據(jù)時,我們需要將它分到12個類中的一個。我們將使用卷積神經(jīng)網(wǎng)絡(CNN)來完成這個任務。

創(chuàng)建CNN模型有幾種方法,但對于第一個基準,我們將使用Keras深度學習庫。我們將在Keras中使用現(xiàn)有的預訓練好的模型,我們將對其進行微調(diào)以完成我們的任務。

從頭開始訓練CNN是低效的。因此,我們使用一個在有1000個類的ImageNet上預訓練的CNN模型的權(quán)重,通過凍結(jié)某些層,解凍其中一些層,并在其上進行訓練,對其進行微調(diào)。這是因為頂層學習簡單的基本特征,我們不需要訓練那些層,它們可以直接應用到我們的任務中。需要注意的是,我們需要檢查我們的數(shù)據(jù)集是否與ImageNet相似,以及我們的數(shù)據(jù)集有多大。這兩個特性將決定我們?nèi)绾芜M行微調(diào)。

在這個例子中,數(shù)據(jù)集很小,但有點類似于ImageNet。因此,我們可以首先直接使用ImageNet的權(quán)重,只需添加一個包括12個類的最終輸出層,以查看第一個基準。然后我們將解凍一些底部的層,并且只訓練這些層。

我們將使用Keras作為初始基準,因為Keras提供了許多預訓練模型。我們將使用ResNet50和InceptionResNetV2來完成我們的任務。使用一個簡單的模型和一個非常高的終端模型對數(shù)據(jù)集進行基準測試是很重要的,可以了解我們是否在給定模型上過擬合/欠擬合數(shù)據(jù)集。

此外,我們可以在ImageNet數(shù)據(jù)集上檢查這些模型的性能,并檢查每個模型的參數(shù)數(shù)量,以選擇我們的基準模型。

對于第一個基準測試,我刪除了最后一個輸出層,只添加了一個帶有12個類的最終輸出層。此外,還打印了模型摘要和參數(shù)的數(shù)量,下面是最后幾層的截圖。

添加一個dense層以得到第一個基準

模型運行了10個epochs,6個epochs后結(jié)果達到飽和。訓練精度達到88%,驗證精度達到87%。

為了進一步提高性能,我們從底部解凍了一些層,并以指數(shù)衰減的學習率訓練了更多的層。這個過程將精度提高了2%。

從底層開始訓練幾層后的結(jié)果

此外,該過程中還使用了以下超參數(shù):

步驟3

準備好基本的基準后,就可以改進它了。我們可以從增加更多數(shù)據(jù)開始,增加數(shù)據(jù)集中圖像的數(shù)量。

沒有數(shù)據(jù),就沒有機器學習!

但首先這個數(shù)據(jù)集不均衡,需要進行均衡,以便每批都使用偶數(shù)個圖像作為模型的訓練數(shù)據(jù)。

現(xiàn)實生活中的數(shù)據(jù)集從來都不是均衡的,模型在少數(shù)類上的性能也不是很好。因此,將少數(shù)類的樣本錯誤地歸類到正常類樣本的成本通常要比正常類錯誤的成本高得多。

我們可以用兩種方法來均衡數(shù)據(jù):

1.ADASYN采樣方法:

ADASYN為樣本較少的類生成合成數(shù)據(jù),其生成的數(shù)據(jù)與更容易學習的樣本相比,更難學習。

ADASYN的基本思想是根據(jù)學習難度的不同,對不同的少數(shù)類的樣本使用加權(quán)分布。其中,更難學習的少數(shù)類的樣本比那些更容易學習的少數(shù)類的樣本要產(chǎn)生更多的合成數(shù)據(jù)。因此,ADASYN方法通過以下兩種方式改善了數(shù)據(jù)分布的學習:(1)減少由于類別不平衡帶來的偏差;(2)自適應地將分類決策邊界轉(zhuǎn)移到困難的例子[5]。

2.合成少數(shù)類過采樣技術(shù)(SMOTE):

SMOTE涉及對少數(shù)類進行過采樣(over sampling),并對大多數(shù)類進行欠采樣(under sampling)以獲得最佳結(jié)果。

對少數(shù)(異常)類進行過采樣和對大多數(shù)(正常)類進行欠采樣的方法的組合,相比僅僅對大多數(shù)類進行欠采樣可以得到更好的分類器性能(在ROC空間中)。

對于這個用例,SMOTE的結(jié)果被證明更好,因此SMOTE比ADASYN更受歡迎。一旦數(shù)據(jù)集達到平衡,我們就可以繼續(xù)進行數(shù)據(jù)增強(data augmentation)。

有幾種方法可以實行數(shù)據(jù)增強。比較重要的一些是:

縮放

裁剪

翻轉(zhuǎn)

旋轉(zhuǎn)

平移

添加噪音

改變照明條件

先進的技術(shù),如GAN

已經(jīng)有一些很好的博客解釋了這些技術(shù)[8][9],所以本文不再詳細解釋。在這個任務中,除GAN外,以上所有數(shù)據(jù)增強技術(shù)都使用到。

步驟4

現(xiàn)在,為了進一步提高成績,我們使用了學習率,包括周期性學習率(cyclical learning rate)和熱重啟學習率(learning rate with warm restarts)。但在此之前,我們需要找到模型的最佳學習率。這是通過繪制學習率和損失函數(shù)之間的圖,來檢查損失從哪里開始減少。

學習率與損失的關(guān)系圖

在我們的例子中,1e-1看起來是一個完美的學習率。但是,隨著我們越來越接近全局最小值,我們希望采取更短的步驟。一種方法是學習率退火(learning rate annealing),但是我采用了熱重啟學習率,啟發(fā)自SGDR: Stochastic Gradient Descent with Warm Restarts[10]這篇論文。同時將優(yōu)化器從Adam改為SGD,實現(xiàn)SGDR。

現(xiàn)在,可以使用上述技術(shù)來訓練多個架構(gòu),然后將結(jié)果合并在一起。這稱為模型融合(Model Ensemble),是流行的技術(shù)之一,但是計算量非常大。

因此,我決定使用一種稱為snapshot ensembling[12]的技術(shù),通過訓練單個神經(jīng)網(wǎng)絡,使其沿著優(yōu)化路徑收斂到多個局部最小值,并保存模型參數(shù),從而實現(xiàn)集成的目的。

一旦確定了學習率的方法,就可以考慮圖像的大小。我用64 * 64大小的圖像(微調(diào)了ImageNet)訓練模型,解凍了一些層,應用 cyclic learning rate和snapshot ensembling,采用模型的權(quán)重,改變圖片尺寸為299 * 299,再以64*64圖像的權(quán)重進行微調(diào),執(zhí)行snapshot ensembling和熱重啟學習率。

如果我們改變圖像大小,需要再次運行學習率vs損失函數(shù)以獲得最佳學習率。

步驟5

最后一步是將結(jié)果可視化,以檢查哪些類具有最佳性能,哪些表現(xiàn)最差,并且可以采取必要的步驟來改進結(jié)果。

理解結(jié)果的一個很好的方法是構(gòu)造一個混淆矩陣(confusion matrix)。

在機器學習領域,特別是統(tǒng)計分類問題中,混淆矩陣(也稱為誤差矩陣)是一種特定的表格布局,能夠可視化算法的性能,通常是監(jiān)督學習(在無監(jiān)督學習中通常稱為匹配矩陣)。矩陣的每一行表示預測類中的實例,而每列表示實際類中的實例(反之亦然)。這個名字源于這樣一個事實:它可以很容易地看出系統(tǒng)是否混淆了兩個類別。

真實類vs在混淆矩陣中預測類

我們可以從混亂矩陣中看出模型預測標簽與真實標簽不同的所有類,我們可以采取措施來改進它。我們可以做更多的數(shù)據(jù)增強來嘗試讓模型學習這個類。

最后,將驗證集合并到訓練數(shù)據(jù)中,利用所獲得的超參數(shù)對模型進行最后一次訓練,并在最終提交之前對測試數(shù)據(jù)集進行評估。

最終提交后排名第一

注意:在訓練中使用的增強需要出現(xiàn)在測試數(shù)據(jù)集中,以獲得最佳結(jié)果。

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

    關(guān)注

    42

    文章

    4717

    瀏覽量

    100006
  • 圖像分類
    +關(guān)注

    關(guān)注

    0

    文章

    89

    瀏覽量

    11887
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1197

    瀏覽量

    24538

原文標題:從0上手Kaggle圖像分類挑戰(zhàn):冠軍解決方案詳解

文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    一種新的粘連字符圖像分割方法

    一種新的粘連字符圖像分割方法針對監(jiān)控畫面采樣圖像中數(shù)字的自動識別問題,提出一種新的粘連字符圖像
    發(fā)表于 09-19 09:19

    區(qū)分圖像分類方法是什么

    區(qū)分圖像分類方法
    發(fā)表于 05-07 09:37

    一種新的圖像定位和分類系統(tǒng)實現(xiàn)方案

    首先簡單介紹了圖像定位和分類系統(tǒng)的基本概念。然后分析了幾種圖像定位和分類系統(tǒng)的實現(xiàn)方式與性能。在此基礎上,提出了一種新型
    發(fā)表于 07-30 16:29 ?25次下載

    基于Brushlet和RBF網(wǎng)絡的SAR圖像分類

    針對SAR圖像紋理特征豐富的特點,本文提出一種新的SAR圖像分類方法:通過提取Brushlet變換的能量及相位信息作為SAR
    發(fā)表于 12-18 16:20 ?20次下載

    一種基于Web挖掘的音樂流派分類方法

    本文提出一種基于web 挖掘的音樂流派分類方法,以Last.fm2音樂網(wǎng)站的用戶標簽為特征進行音樂藝術(shù)家的相似性比較,并依據(jù)藝術(shù)家間的相似度進行流派分類。其中,藝術(shù)家間的相似
    發(fā)表于 01-27 13:48 ?18次下載

    一種改進的小波變換圖像壓縮方法

     針對傳統(tǒng)小波變換過程復雜的缺點和S PIH T 算法編碼過程重復運算、存儲量大的問題,提出了一種改進的小波變換圖像壓縮方法。該方法首先對紋理豐富的
    發(fā)表于 08-10 11:49 ?23次下載

    一種具有反饋機制的名片信息分類方法

    文中介紹了商務名片識別系統(tǒng)的工作流程,分析其存在的不足,提出了一種具有反饋機制的名片信息分類方法。在傳統(tǒng)基于語義理解的信息分類方法上加入版面
    發(fā)表于 01-11 10:17 ?26次下載
    <b class='flag-5'>一種</b>具有反饋機制的名片信息<b class='flag-5'>分類</b><b class='flag-5'>方法</b>

    一種Spark高光譜遙感圖像稀疏表分類并行化方法

    為了實現(xiàn)大數(shù)據(jù)量遙感圖像分類,提出了一種Spark平臺下高光譜遙感圖像稀疏表示分類并行化方法P
    發(fā)表于 11-02 16:55 ?6次下載
    <b class='flag-5'>一種</b>Spark高光譜遙感<b class='flag-5'>圖像</b>稀疏表<b class='flag-5'>分類</b>并行化<b class='flag-5'>方法</b>

    基于數(shù)據(jù)挖掘的醫(yī)學圖像分類方法

    一種深度學習的新方法卷積受限玻爾茲曼機模型,并且采用改進的快速持續(xù)對比散度算法對模型進行訓練。該方法直接從乳腺X光圖像中自主學習特征并利用學習到的特征對
    發(fā)表于 11-22 16:32 ?8次下載

    一種新的基于全局特征的極光圖像分類方法

    提出了一種新的基于全局特征的極光圖像分類方法,在該方法中,極光圖像通過Radon變換投影到Rad
    發(fā)表于 11-30 14:13 ?1次下載
    <b class='flag-5'>一種</b>新的基于全局特征的極光<b class='flag-5'>圖像</b><b class='flag-5'>分類</b><b class='flag-5'>方法</b>

    一種旋正圖像使用中心點進行指紋分類方法

    為了提高在大容量指紋數(shù)據(jù)庫中指紋識別率的速度和正確率,也為了提取出更多的細節(jié)特征,提出了一種旋正圖像并使用中心點特征進行指紋分類方法。首先,根據(jù)指紋
    發(fā)表于 12-12 18:32 ?0次下載
    <b class='flag-5'>一種</b>旋正<b class='flag-5'>圖像</b>使用中心點進行指紋<b class='flag-5'>分類</b>的<b class='flag-5'>方法</b>

    一種堅固特征級融合和決策級融合的分類方法

    針對單特征在場景分類中精度不高的問題,借鑒信息融合的思想,提出了一種兼顧特征級融合和決策級融合的分類方法。首先,提取
    發(fā)表于 12-19 11:21 ?2次下載
    <b class='flag-5'>一種</b>堅固特征級融合和決策級融合的<b class='flag-5'>分類</b><b class='flag-5'>方法</b>

    一種基于人臉圖像陰影集的二級分類模型

    準確率較低。提岀一種基于陰影集的二級分類模型。采用深度卷積神經(jīng)網(wǎng)絡對大規(guī)模圖像集進行階段分類;結(jié)合陰影集理論,將
    發(fā)表于 03-30 09:29 ?4次下載
    <b class='flag-5'>一種</b>基于人臉<b class='flag-5'>圖像</b>陰影集的二級<b class='flag-5'>分類</b>模型

    一種全新的遙感圖像描述生成方法

    遙感圖像描述生成是同時涉及計算機視覺和自然語言處理領域的熱門研究話題,其主要工作是對于給定的圖像自動地生成個對該圖像的描述語句。文中提岀了一種
    發(fā)表于 04-20 11:21 ?2次下載
    <b class='flag-5'>一種</b>全新的遙感<b class='flag-5'>圖像</b>描述生成<b class='flag-5'>方法</b>

    一種無參考彩色噪聲圖像質(zhì)量評價方法

    噪聲失真是一種最常見且種類最多的失真類型,但目前針對除高斯噪聲外的噪聲失真類型的研究較少。文中提出了無需學習的且能同時評價5噪聲失真的無參考彩色噪聲圖像質(zhì)量評價
    發(fā)表于 05-08 16:42 ?1次下載