丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號(hào)安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能 正文
發(fā)私信給AI研習(xí)社-譯站
發(fā)送

0

我贏得 Kaggle 競(jìng)賽的第五名,這些經(jīng)驗(yàn)分享給你

本文作者: AI研習(xí)社-譯站 2018-08-02 10:04
導(dǎo)語(yǔ):我的這些經(jīng)驗(yàn)通用性很好,可以應(yīng)用到其他的圖片分類(lèi)任務(wù)中。

雷鋒網(wǎng)按:本文為AI研習(xí)社編譯的技術(shù)博客,原標(biāo)題 Kaggle #1 Winning Approach for Image Classification Challenge,作者為 Kumar Shridhar 。

翻譯 |  京鵬  張小恬  蔣華烈  程磊       校對(duì) |  余杭       整理 | MY


我贏得 Kaggle 競(jìng)賽的第五名,這些經(jīng)驗(yàn)分享給你植物幼苗分類(lèi)比賽冠軍

這篇文章記錄了我參加 Kaggle 植物幼苗分類(lèi)比賽所采用的方法。我曾連續(xù)幾個(gè)月占據(jù)榜首,并最終名列第五。這些方法通用性很好,可以應(yīng)用到其他的圖片分類(lèi)任務(wù)中。

Kaggle 是一個(gè)預(yù)測(cè)建模分析競(jìng)賽的平臺(tái),在這里,統(tǒng)計(jì)人員和數(shù)據(jù)挖掘者參與競(jìng)爭(zhēng),以產(chǎn)生預(yù)測(cè)和描述公司和用戶(hù)上傳數(shù)據(jù)集的最佳模型。這種眾包的方式依賴(lài)于這樣一個(gè)事實(shí),即有無(wú)數(shù)的策略可用于任何預(yù)測(cè)性建模任務(wù),并且事先不可能知道哪種技術(shù)或分析最有效。[1]


任務(wù)概覽

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

有效的解決方案意味著更好的作物產(chǎn)量及更好的環(huán)境管理。

奧胡斯大學(xué)信號(hào)處理組與丹麥南方大學(xué)合作,發(fā)布了一個(gè)數(shù)據(jù)集,其中包含不同生長(zhǎng)階段的 12 個(gè)種類(lèi)大約 960 種植物的圖像 [1] [2]。

我贏得 Kaggle 競(jìng)賽的第五名,這些經(jīng)驗(yàn)分享給你

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

上述圖像數(shù)據(jù)庫(kù)已公開(kāi)發(fā)布。它包含帶注釋的 RGB 圖像,分辨率約為每毫米 10 個(gè)像素。

采用基于 F1 分?jǐn)?shù)的指標(biāo)對(duì)分類(lèi)結(jié)果進(jìn)行評(píng)估。數(shù)據(jù)集鏈接在 URL 里 [13]

以下圖像是描述數(shù)據(jù)集中所有 12 個(gè)類(lèi)的示例:

我贏得 Kaggle 競(jìng)賽的第五名,這些經(jīng)驗(yàn)分享給你


圖片分類(lèi)任務(wù)包含以下5個(gè)步驟:

步驟 1:

機(jī)器學(xué)習(xí)中的首要任務(wù)是分析數(shù)據(jù)集,然后才能進(jìn)行任意算法。為了解數(shù)據(jù)集的復(fù)雜性,這一步很重要,這最終將有助于該算法設(shè)計(jì)。

圖像和類(lèi)的分布如下:

我贏得 Kaggle 競(jìng)賽的第五名,這些經(jīng)驗(yàn)分享給你

如上所述,此包含 12 個(gè)類(lèi)共 4750 個(gè)圖像。但是,以上可以看出,各類(lèi)值分布不平均,圖像類(lèi)數(shù)值分布從最大 654 張到最小的 221 幅不等。這清楚地表明數(shù)據(jù)是不平均的,但為獲得最好的結(jié)果我們需要權(quán)衡數(shù)據(jù)。步驟 3 中我們將達(dá)成此任務(wù)。

我贏得 Kaggle 競(jìng)賽的第五名,這些經(jīng)驗(yàn)分享給你

 每類(lèi)的圖像分布

現(xiàn)在對(duì)圖像進(jìn)行可視化十分重要,以便能更好了解數(shù)據(jù)。因此,我們將展示每個(gè)類(lèi)中的部分示例,查看圖像的不同之處。

我贏得 Kaggle 競(jìng)賽的第五名,這些經(jīng)驗(yàn)分享給你

所有的圖像看起來(lái)都相差無(wú)幾,幾乎沒(méi)有什么內(nèi)容可以從上面的圖像群中獲得。因此,我決定使用一個(gè)稱(chēng)為 t 分布隨機(jī)鄰域嵌入(t. SNE)的可視化技術(shù)觀察圖像分布。

t 分布隨機(jī)鄰域嵌入(t. SNE)是一種特別適合于高維數(shù)據(jù)集的可視化降維技術(shù)。該技術(shù)可以通過(guò)巴恩斯-小屋逼近模型實(shí)現(xiàn),這允許該技術(shù)應(yīng)用于現(xiàn)實(shí)世界的大型數(shù)據(jù)集。[14] 

我贏得 Kaggle 競(jìng)賽的第五名,這些經(jīng)驗(yàn)分享給你

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

在仔細(xì)觀察后,我們幾乎看不出各類(lèi)間差異。所以,掌握是僅僅對(duì)人類(lèi)而言這些數(shù)據(jù)是難以分辨的,還是對(duì)于機(jī)器學(xué)習(xí)模型同樣如此十分重要。為此,我們將為它做一個(gè)基本的基準(zhǔn)。


訓(xùn)練以及驗(yàn)證集合 

在模型基準(zhǔn)開(kāi)始之前我們需要將數(shù)據(jù)劃分為訓(xùn)練數(shù)據(jù)和驗(yàn)證數(shù)據(jù)集,對(duì)原始測(cè)試集進(jìn)行測(cè)試之前驗(yàn)證集起到測(cè)試數(shù)據(jù)集作用。所以,模型基本上在訓(xùn)練數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),并在驗(yàn)證集上進(jìn)行了測(cè)試,之后模型隨著集合的多次驗(yàn)證得以改進(jìn)。一旦我們對(duì)驗(yàn)證集的結(jié)果感到滿(mǎn)意,就可將模型應(yīng)用于實(shí)際測(cè)試數(shù)據(jù)。我們能夠以此看到模型在我們的驗(yàn)證集上為超擬合或是欠擬合,這可以幫助我們更好地調(diào)整模型。

我們通過(guò)保持 80% 圖像作為訓(xùn)練數(shù)據(jù)集及 20% 作為驗(yàn)證集來(lái)劃分 4750 圖像的數(shù)據(jù)集。

我贏得 Kaggle 競(jìng)賽的第五名,這些經(jīng)驗(yàn)分享給你

訓(xùn)練和驗(yàn)證數(shù)據(jù)拆分


步驟 2:

一旦我們得到了訓(xùn)練集和驗(yàn)證集,我們就從數(shù)據(jù)集的基準(zhǔn)開(kāi)始著手。這是一個(gè)建立在測(cè)試集上的一個(gè)分類(lèi)問(wèn)題,我們需要把測(cè)試集中的每一個(gè)實(shí)例劃分為 12 類(lèi)中的一類(lèi)。所以我們將會(huì)用一個(gè)卷積神經(jīng)網(wǎng)絡(luò)(CNN)去完成這個(gè)任務(wù)。

有很多途徑去創(chuàng)建一個(gè) CNN 模型, 但是作為初學(xué)者, 我們最好使用 Keras 深度學(xué)習(xí)庫(kù). 我們也將使用 Keras 上提供的預(yù)訓(xùn)練模型, 這些模型是在 ImageNet 數(shù)據(jù)集上訓(xùn)練過(guò)的并且我們可以通過(guò)微調(diào)這些模型以用于我們這里的任務(wù)。

從頭開(kāi)始去訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)實(shí)際上是非常低效的。所以,我們采用在有著 1000 類(lèi)的 ImageNet 數(shù)據(jù)集上預(yù)訓(xùn)練過(guò)的 CNN 模型參數(shù),并且在微調(diào)時(shí),我們固定住一些層的參數(shù),其他層的參數(shù)繼續(xù)在我們這里的數(shù)據(jù)集上繼續(xù)訓(xùn)練。這樣做的原因是因?yàn)楸容^前面的一些層是用來(lái)學(xué)習(xí)圖像的基本特征的,我們沒(méi)有必要去訓(xùn)練并且可以直接在我們的任務(wù)里直接采用。一個(gè)值得我們注意的重要事情是,我們要去檢查我們這里的數(shù)據(jù)集跟 ImageNet 相似性如何以及有多大。這兩個(gè)數(shù)據(jù)集的特性決定了我們?cè)撊绾芜M(jìn)行網(wǎng)絡(luò)微調(diào)。想要獲取關(guān)于網(wǎng)絡(luò)微調(diào)的詳細(xì)資料,請(qǐng)參考 Andrej Karpathy 的博客:

對(duì)于我們這里的例子,數(shù)據(jù)集是很小的,并且還跟 ImageNet 有點(diǎn)相似。所以我們首先直接用 ImageNet 上的權(quán)重,并加上有著 12 個(gè)類(lèi)別的最終輸出層來(lái)構(gòu)建我們的第一個(gè)基準(zhǔn)程序。接著,我們?nèi)グ岩恍┖竺娴膶咏o「松開(kāi)」并只訓(xùn)練這些層。

因?yàn)?Keras 提供很多的預(yù)訓(xùn)練模型,我們將用 Keras 去完成我們最初基準(zhǔn)程序,我們將在我們的任務(wù)上用 ResNet50 和 InceptionResNetV2 這兩個(gè)模型。為了理解在給定模型下,我們是過(guò)擬合還是欠擬合數(shù)據(jù)集,為數(shù)據(jù)集準(zhǔn)備一個(gè)簡(jiǎn)單模型和一個(gè)復(fù)雜模型作為基準(zhǔn)是非常重要的。

我贏得 Kaggle 競(jìng)賽的第五名,這些經(jīng)驗(yàn)分享給你

我們也可以檢查這些模型在 ImageNet 數(shù)據(jù)集上的性能或者這里的每一個(gè)模型的參數(shù)數(shù)量來(lái)選擇我們的基準(zhǔn)模型。

我贏得 Kaggle 競(jìng)賽的第五名,這些經(jīng)驗(yàn)分享給你

對(duì)于第一個(gè)基準(zhǔn)模型,我去掉了最后的輸出層,并且只增加了對(duì)應(yīng)著 12 個(gè)類(lèi)別的輸出層。模型總結(jié)貼在這里了,我們可以看到參數(shù)量,接著是最后幾個(gè)層的截屏。

我贏得 Kaggle 競(jìng)賽的第五名,這些經(jīng)驗(yàn)分享給你

 我們加了一個(gè)稠密的層來(lái)得到第一個(gè)基準(zhǔn)

模型總共訓(xùn)練了 10 輪,6 輪以后結(jié)果飽和了。訓(xùn)練集上的準(zhǔn)確度達(dá)到了 88%,驗(yàn)證集上也有 87% 的準(zhǔn)確度。

我贏得 Kaggle 競(jìng)賽的第五名,這些經(jīng)驗(yàn)分享給你

為了提高性能,一些前面的層被「松開(kāi)」,我們以一個(gè)指數(shù)下降的學(xué)習(xí)率去訓(xùn)練這些層。這個(gè)可以進(jìn)一步得到 2% 的提升。

我贏得 Kaggle 競(jìng)賽的第五名,這些經(jīng)驗(yàn)分享給你

訓(xùn)練一些前面的層的結(jié)果

這個(gè)過(guò)程中使用到的一些超參數(shù):

我贏得 Kaggle 競(jìng)賽的第五名,這些經(jīng)驗(yàn)分享給你


步驟 3: 

在具備相關(guān)知識(shí)的基礎(chǔ)下,我們可以嘗試著增加圖像數(shù)據(jù)的數(shù)量以改進(jìn)上述模型。

沒(méi)有數(shù)據(jù),就沒(méi)有機(jī)器學(xué)習(xí)!

但需要注意的是我們所擁有的數(shù)據(jù)往往存在數(shù)據(jù)類(lèi)別不平衡的情況。我們首先應(yīng)該處理這一問(wèn)題,從而使得模型的每批樣本即便擁有少量圖像數(shù)據(jù),也能達(dá)到較好的分類(lèi)效果。

現(xiàn)實(shí)生活中的數(shù)據(jù)集很少能夠達(dá)到數(shù)據(jù)平衡,而且模型對(duì)少數(shù)類(lèi)樣本的分類(lèi)效果并不好。錯(cuò)誤地分類(lèi)一個(gè)少數(shù)類(lèi)樣本往往比錯(cuò)誤分類(lèi)一個(gè)正常數(shù)量樣本會(huì)付出更大的代價(jià)。

我們可以用以下兩種算法來(lái)解決數(shù)據(jù)不平衡問(wèn)題:

1. 不均衡學(xué)習(xí)的自適應(yīng)合成抽樣算法(ADASYN):ADASYN 通過(guò)更多地合成更難學(xué)習(xí)的數(shù)據(jù)集,從而為少數(shù)類(lèi)樣本合成更多數(shù)據(jù)。

ADASYN 算法的基本思想是根據(jù)數(shù)據(jù)的學(xué)習(xí)難度,對(duì)不同的少數(shù)類(lèi)樣本進(jìn)行加權(quán)分布。相比那些容易學(xué)習(xí)的少數(shù)類(lèi)樣本,為那些更難學(xué)習(xí)的少數(shù)類(lèi)樣本合成更多的數(shù)據(jù)。因此,ADASYN 算法通過(guò)以下兩種方式來(lái)改善數(shù)據(jù):1)減少類(lèi)不平衡引起的偏差,2)自適應(yīng)地將分類(lèi)決策邊界轉(zhuǎn)向?qū)W習(xí)困難的樣本。[5]

2. 合成少數(shù)類(lèi)過(guò)采樣算法 (SMOTE):SMOTE 通過(guò)對(duì)少數(shù)類(lèi)的過(guò)度采樣和對(duì)多數(shù)類(lèi)的采樣,從而獲得最佳結(jié)果。

相比于對(duì)多數(shù)類(lèi)樣本進(jìn)行欠采樣,通過(guò)把對(duì)少數(shù)(異常)類(lèi)樣本進(jìn)行過(guò)采樣和對(duì)多數(shù)(正常)類(lèi)進(jìn)行采樣相結(jié)合的方式,從而實(shí)現(xiàn)更好的分類(lèi)效果(在 ROC 空間中)。[6]

我贏得 Kaggle 競(jìng)賽的第五名,這些經(jīng)驗(yàn)分享給你

針對(duì)這個(gè)實(shí)例,SMOTE 算法相比 ADASYN 算法表現(xiàn)得更加出色。一旦數(shù)據(jù)達(dá)到平衡,我們便可以把這些數(shù)據(jù)用于數(shù)據(jù)集的擴(kuò)充。

另外有一些數(shù)據(jù)增強(qiáng)方法,其中比較重要的有:

  • 縮放

  • 裁剪

  • 翻轉(zhuǎn)

  • 回轉(zhuǎn)

  • 翻譯

  • 增加噪聲

  • 改變照明條件

  • 像 GAN 這樣的先進(jìn)技術(shù)

現(xiàn)在已經(jīng)有一些非常好的博客可以解釋以上所有技巧。[8] [9] 因此這里不再細(xì)述。這里用到了上面提到的除 GAN 之外的所有數(shù)據(jù)增強(qiáng)技術(shù)。


步驟 4:

......

想要繼續(xù)閱讀,請(qǐng)移步至我們的AI研習(xí)社社區(qū):https://club.leiphone.com/page/TextTranslation/618

更多精彩內(nèi)容盡在 AI 研習(xí)社。

不同領(lǐng)域包括計(jì)算機(jī)視覺(jué),語(yǔ)音語(yǔ)義,區(qū)塊鏈,自動(dòng)駕駛,數(shù)據(jù)挖掘,智能控制,編程語(yǔ)言等每日更新。

手機(jī)端可以?huà)呙瓒S碼訪(fǎng)問(wèn):


我贏得 Kaggle 競(jìng)賽的第五名,這些經(jīng)驗(yàn)分享給你


雷鋒網(wǎng)雷鋒網(wǎng)

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。

我贏得 Kaggle 競(jìng)賽的第五名,這些經(jīng)驗(yàn)分享給你

分享:
相關(guān)文章

知情人士

AI研習(xí)社(yanxishe.com)譯站頻道,傳播前沿人工智能知識(shí),讓語(yǔ)言不再成為學(xué)習(xí)知識(shí)的門(mén)檻。(原雷鋒字幕組)
當(dāng)月熱門(mén)文章
最新文章
請(qǐng)?zhí)顚?xiě)申請(qǐng)人資料
姓名
電話(huà)
郵箱
微信號(hào)
作品鏈接
個(gè)人簡(jiǎn)介
為了您的賬戶(hù)安全,請(qǐng)驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請(qǐng)驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號(hào)信息
您的賬號(hào)已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說(shuō)