近期,由Kaggle主辦,Leica Microsystems和NVIDIA贊助的HPAIC(Human Protein Atlas Image Classification)競賽正式結(jié)束。比賽為期三個月,共有來自全球的2236個隊伍參加,極鏈AI研究院與工程院最終獲得挑戰(zhàn)賽金牌。
比賽介紹
蛋白質(zhì)是人體細(xì)胞中的“行動者”,執(zhí)行許多共同促進(jìn)生命的功能。蛋白質(zhì)的分類僅限于一種或幾種細(xì)胞類型中的單一模式,但是為了完全理解人類細(xì)胞的復(fù)雜性,模型必須在一系列不同的人類細(xì)胞中對混合模式進(jìn)行分類。
可視化細(xì)胞中蛋白質(zhì)的圖像通常用于生物醫(yī)學(xué)研究,這些細(xì)胞可以成為下一個醫(yī)學(xué)突破的關(guān)鍵。然而,由于高通量顯微鏡的進(jìn)步,這些圖像的生成速度遠(yuǎn)遠(yuǎn)超過人工評估的速度。因此,對于自動化生物醫(yī)學(xué)圖像分析以加速對人類細(xì)胞和疾病的理解,需要比以往更大的需求。
雖然這是生物學(xué)方面的競賽,但是其本質(zhì)是機器視覺方向的圖像多標(biāo)簽分類問題,參賽隊伍也包括許多機器視覺和機器學(xué)習(xí)領(lǐng)域的競賽專家。
數(shù)據(jù)分析
官方給我們提供了兩種類型的數(shù)據(jù)集,一部分是512x512的png圖像,一部分是2048x2048或3072x3072的TIFF圖像,數(shù)據(jù)集大概 268G, 其中訓(xùn)練集:31072 x 4張,測試集:11702 x 4張。
一個蛋白質(zhì)圖譜由4種染色方式組成(red,green,blue,yellow),圖像示例如下:
我們將4個通道合并成3通道(RYB)可視化的圖像如下所示:
在本次競賽中一共有28個類別,比如 Nucleoplasm、Nuclear membrane等,每個圖譜圖像都可以有一個或者多個標(biāo)簽。標(biāo)簽數(shù)量統(tǒng)計如下:
可以發(fā)現(xiàn)標(biāo)簽數(shù)量集中在1-3個,但是仍然會有圖像有5個標(biāo)簽,給比賽增加了一定的難度。
另一方面的難點是數(shù)據(jù)集中樣本數(shù)量很不均勻,圖像最多的類別有12885張,而圖像最少的類別只有11張圖像,這給競賽造成很大的困難,樣本數(shù)量分布情況可以在圖中看出。
在比賽過程中逐步有參賽者發(fā)現(xiàn)官方的額外數(shù)據(jù)集HPAv18,并得到官方授權(quán),這些數(shù)據(jù)集有105678張,很大程度的擴(kuò)大了樣本數(shù)量,同時給我們提供了很大的幫助。
環(huán)境資源
硬件方面我們使用了4塊NVIDIA TESLA P100顯卡,使用pytorch作為我們的模型訓(xùn)練框架。
圖像預(yù)處理
HPAv18 圖像與官方給出的圖像有一定的差別,雖然也是由4中染色方式組成,但是每個染色圖像是一個RGB圖像,而不是官方的單通道圖像,而且RGB三個通道的值差別較大,我們對這些圖像做了預(yù)處理,對每個RGB圖像只取一個通道(r_out=r,g_out=g,b_out=b,y_out=b),并將這些圖像縮放到512x512和1024x1024兩種尺度。
對于TIFF文件,我們用了一周的時間把這個數(shù)據(jù)集下載下來,然后將所有圖像縮放到1024x1024。
數(shù)據(jù)增廣
我們比賽中使用的增廣方式有Rotation, Flip 和 Shear三種;因為我們不知道一張圖像中的多個細(xì)胞之間是否有關(guān)聯(lián)關(guān)系,所以比賽中沒有使用隨機裁剪的增廣方式。
模型
我們最終使用的基礎(chǔ)模型有Inceptionv3,Inceptionv4以及Xception三種,比賽前期我們測試了VGG,ResNet,ResNext,SeNet,但是效果不是很好,因此比賽末期沒有再進(jìn)行進(jìn)一步測試。
我們使用了512,650和800三種尺度來增加網(wǎng)絡(luò)對圖像的理解,另外每個尺度進(jìn)行10折交叉驗證,保證驗證集的劃分對網(wǎng)絡(luò)整體的影響,以及用驗證集來評估模型預(yù)測的好壞和選擇模型及其對應(yīng)的參數(shù)。不同模型交叉驗證時使用不同的隨機種子劃分驗證集和訓(xùn)練集,以盡可能多的學(xué)到不同的樣本組合。
Inceptionv3和Inceptionv4的512的結(jié)果不好(0.55+ public leaderboard 閾值0.15),因此沒有做交叉驗證,只是用512尺度訓(xùn)練了基礎(chǔ)模型,并用在650和800的微調(diào)中。
模型修改:
1.第一層卷積的輸入通道數(shù)由3修改為4,保持其他卷積參數(shù)不變,從而使網(wǎng)絡(luò)應(yīng)對4通道輸入;
2.修改最后一的池化層為全局池化層,保證在多尺度時可以使用同一個網(wǎng)絡(luò);
3.全局池化后增加一層128的全連接,然后接一層28的全連接。
訓(xùn)練
訓(xùn)練過程的參數(shù)如下:
loss: MultiLabelSoftMarginLoss
lr: 0.05(512,imagenet 預(yù)訓(xùn)練),0.01(650和800,512預(yù)訓(xùn)練);
lrscheduler: steplr(gamma=0.1,step=6)
optimizer: SGD (adam,rms not well)
epochs: 25, 600和800一般在12-20直接提前結(jié)束,取loss最低的模型
10 folds CV
sampling weights:[1.0, 5.97, 2.89, 5.75, 4.64, 4.27, 5.46, 3.2, 14.48, 14.84, 15.14, 6.92, 6.86, 8.12, 6.32, 19.24, 8.48, 11.93, 7.32, 5.48, 11.99, 2.39, 6.3, 3.0, 12.06, 1.0, 10.39, 16.5]
scale:512,600,800
獨立閾值
為每一個類別找到一個合適的閾值是一件很困難的事,但是多閾值是提升分?jǐn)?shù)的關(guān)鍵,對我來說,大概可以提升0.005~0.008。 我們使用驗證集來找閾值,我們訓(xùn)練單模型xception 512 ,驗證集占13%。調(diào)整每一類的閾值使得f1 score達(dá)到最優(yōu),不過我們發(fā)現(xiàn)稀有類別的閾值普遍很高,public lb會變差,因此我們只調(diào)整了驗證集1000張以上的類別,稀有類別控制閾值為0.15 通過這種方法找到的閾值在其他模型或者集成的時候同樣有效。
測試
比賽結(jié)束以后我們將比賽中訓(xùn)練的模型重新提交查看private leaderboard成績,得到如下結(jié)果:
比賽過程中我們發(fā)現(xiàn)做了10 fold ensemble不一定比single fold好,因此我們在最終集成的時候部分模型只選擇了部分fold (根據(jù)loss選擇)。
檢索
我們使用檢索的方法(特征使用inceptionv4 800 的128維特征)查找test與hpa相似的圖片,使用余弦相似度進(jìn)行度量,我們發(fā)現(xiàn)了許多相似的甚至相同的圖片,直接使用相似度最高的300張圖片的結(jié)果進(jìn)行替換,分?jǐn)?shù)在public lb上提升0.01~0.015,不過在private LB中并沒有效果,官方在比賽過程中也說明部分test圖像由于與HPA中部分圖像重合,不再進(jìn)行分?jǐn)?shù)計算。
集成
我們將inceptionv3 inceptionv4以及xception 800的10fold 模型的特征進(jìn)行concat(先進(jìn)行l(wèi)2),得到3840維的新特征,并在此基礎(chǔ)上設(shè)計了2層的全連接網(wǎng)絡(luò)進(jìn)行訓(xùn)練, 并做10 fold CV,訓(xùn)練過程中使用不容參數(shù)訓(xùn)練過程如圖所示,我們?nèi)×薼oss最低的參數(shù)。結(jié)果融合后private lb:0.55150 public lb:0.62791。
雖然上面方法在public lb上分?jǐn)?shù)較高,但是當(dāng)與其他模型結(jié)果融合時,public LB的分?jǐn)?shù)反而降了,因此我們降低了這個模型的權(quán)重。
最后的結(jié)果是通過加權(quán)融合的方式得到的,權(quán)重根據(jù)模型的public lb分?jǐn)?shù)設(shè)置, inceptionv4 800和inceptionv3 800的權(quán)重最高,xception 650 最低,同時也用到了inceptionv4、xception其他尺度的部分fold。
-
AI
+關(guān)注
關(guān)注
88文章
35137瀏覽量
279797
發(fā)布評論請先 登錄
e絡(luò)盟社區(qū)聯(lián)合 TDK 發(fā)起超聲波傳感器挑戰(zhàn)賽

華為依托昇騰AI打造蛋白結(jié)構(gòu)預(yù)測工具
平頭哥半導(dǎo)體亮相AICAS 2025挑戰(zhàn)賽技術(shù)研討會
微軟AI開發(fā)者挑戰(zhàn)賽即將開啟
芯華章持續(xù)助力EDA精英挑戰(zhàn)賽
EDA精英挑戰(zhàn)賽賽果公布!思爾芯“戰(zhàn)隊”薪火相承斬獲“麒麟杯”

e絡(luò)盟社區(qū)攜手恩智浦發(fā)起智能空間樓宇自動化挑戰(zhàn)賽

2024年ICPC與華為挑戰(zhàn)賽冠軍杯圓滿落幕
PI助力aCentauri車隊在太陽能車挑戰(zhàn)賽中大放異彩

50萬獎金池!開放原子大賽——第二屆OpenHarmony創(chuàng)新應(yīng)用挑戰(zhàn)賽正式啟動
差示掃描量熱儀測試蛋白質(zhì)的應(yīng)用案例

創(chuàng)客中國AIGC專題賽冠軍天鶩科技:AI蛋白質(zhì)設(shè)計引領(lǐng)者

NVIDIA為AI城市挑戰(zhàn)賽構(gòu)建合成數(shù)據(jù)集
EvolutionaryScale推出基于NVIDIA GPU模型的新型蛋白質(zhì)研究方案
思爾芯賽題正式發(fā)布,邀你共戰(zhàn)EDA精英挑戰(zhàn)賽!

評論