[Kaggle] NDSB1: Predict Ocean Health

這篇主要介紹Kaggle的第一屆年度數(shù)據(jù)科學(xué)競賽:Predict ocean health, one plankton at a time。關(guān)于Kaggle平臺本身的相關(guān)內(nèi)容,可以參考:[Kaggle] 數(shù)據(jù)建模分析與競賽平臺介紹。

Kaggle除了作為平臺來幫助組織者們舉辦數(shù)據(jù)分析比賽之外,其本身從2014年開始每年也會(huì)和Booz Allen Hamilton(一家著名的咨詢公司)舉辦一次年度的數(shù)據(jù)分析競賽Annual Data Science Bowl,從名字上來看就有點(diǎn)類似Super Bowl的意味,所以說也相當(dāng)于是數(shù)據(jù)科學(xué)的一大年度盛事吧。每次比賽從當(dāng)年12月開始一直持續(xù)到第二年的3月份,總共三個(gè)月的時(shí)間。

第一屆Assessing Ocean Health at a Massive Speed & Scale,要求搭建一個(gè)圖像識別系統(tǒng)來處理由水下圖像傳感器收集的微觀高像素照片,以分析海水中浮游生物的種類和數(shù)量;第二屆Transforming How We Diagnose Heart Disease,要求搭建一個(gè)系統(tǒng),通過處理超過1000個(gè)患者的心臟核磁共振成像(MRI)來估計(jì)患者的舒張壓和收縮壓,以此來幫助診斷心臟病。

Data Science Bowl

這里介紹的是第一屆比賽的相關(guān)內(nèi)容。

Task Description


Predict ocean health, one plankton at a time

海洋中有許許多多的浮游生物,他們的數(shù)量可以很好的反映出海洋生態(tài)系統(tǒng)甚至整個(gè)生物圈的健康狀況(是的我就是把上面這張富有深意的圖毫無信息量的概括了出來)。然而,傳統(tǒng)的浮游生物監(jiān)測和估計(jì)的方法是非常費(fèi)時(shí)的,而且難以擴(kuò)展到大規(guī)模的環(huán)境中(這就是Kaggle為什么要舉辦這個(gè)比賽來找到更好的方法)。

有一種很好的改進(jìn)方法是使用水下圖像傳感器(underwater imagery sensor,應(yīng)該就是類似水下照相機(jī)之類的東西)來收集大量的微觀、高像素的圖片,借此來分析浮游生物的情況。然而這個(gè)大量高清圖片的分析過程如果人工來做的話就太??了,因此要用機(jī)器學(xué)習(xí)的方法來自動(dòng)對圖像進(jìn)行分類……

是的!這是一個(gè)分類問題!前面雖然描述了那么多浮游生物的事,最后看了Datasets你就會(huì)發(fā)現(xiàn)其實(shí)這就是個(gè)大規(guī)模的圖像分類問題。

Datasets


NDSB1提供的數(shù)據(jù)集可以在這里下載(相比起NDSB2要小得多)。
由俄勒岡州立大學(xué)的Hatfield Marine Science Center提供的數(shù)據(jù)集包含了在18天內(nèi)收集的5000萬張浮游生物圖像(超過800TB)。其中有大約30,000張的labeled圖像作為訓(xùn)練集,訓(xùn)練集每條記錄都是將原始圖像自動(dòng)切分出的值得關(guān)注的部分(也就是浮游生物在的地方),因此相比之下都要小一些,每條記錄只包含一個(gè)“實(shí)體”。

數(shù)據(jù)集里的浮游生物們
數(shù)據(jù)集里的浮游生物們

處理數(shù)據(jù)集的難點(diǎn)主要體現(xiàn)在以下幾個(gè)方面:

  • 生物的種類太多,從小到大什么都有
  • 對于一種生物來說,拍攝圖像的角度是任意的
  • 海洋中有太多沒辦法識別成某種生物的碎屑和排泄物,然而這些“雜質(zhì)”在其他的海洋分析中是很重要的
  • 有些圖像太模糊不清,即使是專家也很難對其labeling,因此數(shù)據(jù)集中肯定有一些“噪聲”
  • 由于分類還有所謂的“unknown"類別,因此需要對不能區(qū)分的東西進(jìn)行特別處理

訓(xùn)練集中已經(jīng)由專家按照類別將圖片放到了不同的文件夾下,為了更好的理解類別之間的聯(lián)系還提供了一份類似關(guān)系圖的介紹:


Plankton Relationships

測試集中為了打消人工標(biāo)注的念頭,Kaggle往里面添加了"ignored"的圖片,在最后的評分中不會(huì)計(jì)算在內(nèi)。

Evaluation Metrics


NDSB1使用multi-class logarithmic loss作為評價(jià)標(biāo)準(zhǔn),公式為:
![][1]
[1]: http://latex.codecogs.com/svg.latex?logloss=-\frac{1}{N}\sum_{i=1}N\sum_{j=1}My_{ij}\log(p_{ij}),

其中N是待分類圖片總數(shù);M是類別總數(shù);y表示的是對于第i張圖片,其是否屬于第j個(gè)類別,是則y=1,否則y=0;p表示的是參賽者對第i張圖片屬于第j個(gè)類別的預(yù)測概率。這種評價(jià)方式首先會(huì)對錯(cuò)誤分類給出相應(yīng)的懲罰;同時(shí)使用取對數(shù)再求和的方式可以把連乘運(yùn)算變?yōu)檫B加運(yùn)算,避免連乘運(yùn)算帶來的數(shù)值過小無法計(jì)算的問題。

MXnet Sample Solutions


既然是圖像分類問題,MXnet已經(jīng)有非常完整的支持,其方法基本上就是遵循了圖像分類問題的套路。首先將數(shù)據(jù)集進(jìn)行一些壓縮、切割的預(yù)處理;然后將數(shù)據(jù)集加載到MXnet中;接著定義NDSB1的訓(xùn)練網(wǎng)絡(luò);最后調(diào)用MXnet提供的接口進(jìn)行訓(xùn)練即可。

A Little Thoughts


按照MXnet提供的example做下來得到的結(jié)果,雖然據(jù)其所說只能排到325名左右(也不是最終的排名),但由于這個(gè)樣例應(yīng)該只是為了展示MXnet能夠非常方便的處理圖像分類問題,并沒有進(jìn)行什么調(diào)優(yōu),也基本上沒有用到domain相關(guān)的知識(比如之前提到的浮游生物之間的關(guān)系圖),因此如果是真正為了比賽來做的話應(yīng)該還有相當(dāng)大的提升空間。

另外,Kaggle官方還提供了一個(gè)基于隨機(jī)森林分類的教程,如果有興趣可以參看。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容