如何用深度學(xué)習(xí)檢測(cè)女性的第一殺手“乳腺癌”?
原創(chuàng)【51CTO.com原創(chuàng)稿件】乳腺癌是女性最常見的浸潤(rùn)性癌癥,也是僅次于肺癌致女性死亡的第二大癌癥。
在本文中我將構(gòu)建一個(gè)基于 WideResNet 的神經(jīng)網(wǎng)絡(luò),并將幻燈片圖像分為兩類,一類使用深度學(xué)習(xí)來檢測(cè)乳腺癌,另一類是不使用深度學(xué)習(xí)來檢測(cè)。
浸潤(rùn)性導(dǎo)管癌(IDC)是最常見的乳腺癌類型。美國(guó)癌癥協(xié)會(huì)估計(jì),每年美國(guó)超過 18 萬婦女發(fā)現(xiàn)患有浸潤(rùn)性乳腺癌,并以 IDC 居多。
準(zhǔn)確識(shí)別和分類乳腺癌類型是一項(xiàng)重要的任務(wù),基于人工智能的自動(dòng)化方法可大大節(jié)省時(shí)間,減少誤診。
關(guān)于數(shù)據(jù)集
俄亥俄州克利夫蘭凱斯西部?jī)?chǔ)備大學(xué)的研究人員收集了這個(gè)問題的數(shù)據(jù)集。原始數(shù)據(jù)集由Kaggle的工作人員預(yù)先處理,作為我們工作的起點(diǎn)。
詳見:http://gleason.case.edu/webdata/jpi-dl-tutorial/IDC_regular_ps50_idx5.zip
圖 1:每張幻燈片大約得到 1700 張 50x50 像素的小片
數(shù)據(jù)集有 162 個(gè)大切片(whole mount)幻燈片。這些幻燈片以 40 倍分辨率加以掃描。最后,它們被分成了 275215 個(gè) 50x50 像素的小片。
然后將 0 或 1 的標(biāo)簽分配給每個(gè)小片,其中包括 IDC 的小片的標(biāo)簽為 1,不包括 IDC 的小片的標(biāo)簽為 0。
圖 2:陽性和陰性 IDC 組織的 3 個(gè)例子
用 WideResNet 對(duì)幻燈片進(jìn)行分類
使用殘差連接的 ResNet 架構(gòu)非常擅長(zhǎng)處理圖像分類任務(wù)。ResNet 的核心思想是,引入跳過一層或多層的所謂的“身份快捷方式連接”。
WideResNet 架構(gòu)表明只有 16 層深度也可以獲得類似的性能。這有助于解決非常深的與 ResNet 有關(guān)的各種問題,比如爆炸/消失的梯度和退化。
使用 Vincent Fung(https://medium.com/@vincent.fung13)和 Apil Tamang(https://medium.com/@apiltamang)所寫博文中的詳細(xì)信息,我們就能對(duì) ResNet 的實(shí)際用途有一番了解。
圖 3:殘差塊
假設(shè)讓疊加層擬合殘差映射比讓它們直接擬合所需的底層映射來得容易。這表明,更深層的模型應(yīng)該不會(huì)得出比淺層模型更高的訓(xùn)練錯(cuò)誤。
由于出色的實(shí)踐結(jié)果,ResNet 迅速成了各種計(jì)算機(jī)視覺任務(wù)中最流行的架構(gòu)之一。
另外,WideResNet 的存在是有它的理由的:精確度每提高一點(diǎn),層數(shù)就要幾乎翻番,所以訓(xùn)練很深的殘差網(wǎng)絡(luò)存在特征重用逐漸減少的問題,這使得網(wǎng)絡(luò)訓(xùn)練起來非常慢。
圖4:WideResNet 訓(xùn)練
為了解決這些問題,Zagoruyko 和 Komodakis 對(duì) ResNet 塊的架構(gòu)進(jìn)行了詳細(xì)的實(shí)驗(yàn)研究,在此基礎(chǔ)上提出了一種新的架構(gòu):我們可以減少殘差網(wǎng)絡(luò)的深度,增加寬度。他們稱之為寬殘差網(wǎng)絡(luò)。
現(xiàn)在我們將介紹用 WideResNet 架構(gòu)逐步解決這個(gè)問題的過程。我們使用 Deep Learning Studio,迅速構(gòu)建神經(jīng)網(wǎng)絡(luò),無需操心編程、語法和數(shù)據(jù)集的攝取。
項(xiàng)目創(chuàng)建
登錄到本地或云端運(yùn)行的 Deep Learning Studio 后,點(diǎn)擊+按鈕,即可創(chuàng)建一個(gè)新項(xiàng)目。
數(shù)據(jù)集攝取
然后,我們?cè)?ldquo;數(shù)據(jù)”選項(xiàng)卡中為該項(xiàng)目創(chuàng)建數(shù)據(jù)集。通常,訓(xùn)練和驗(yàn)證之間 80% 和 20% 是個(gè)不錯(cuò)的比例,但如果你愿意,也可以使用其他設(shè)置。
如果機(jī)器的內(nèi)存足夠多,可以將整個(gè)數(shù)據(jù)集加載到內(nèi)存中,別忘了將“將數(shù)據(jù)集加載到內(nèi)存中”設(shè)為“整個(gè)數(shù)據(jù)集”。
創(chuàng)建神經(jīng)網(wǎng)絡(luò)
你可以通過拖放層來創(chuàng)建神經(jīng)網(wǎng)絡(luò),如下圖所示:
確保將 WideResNet 設(shè)置成完全可以利用右邊的屬性來加以訓(xùn)練。另外,第一個(gè)密集層(Dense_3)應(yīng)該有 20 個(gè)左右的神經(jīng)元,ReLU 作為激活函數(shù)。
最終密集層(Dense_1)應(yīng)該將輸出維度設(shè)為 1,將激活設(shè)為 sigmoid。這么做的原因是,我們將這個(gè)問題設(shè)置為回歸而不是分類。
如果回歸輸出低于 0.5,那么我們可以說輸入屬于類 0(即沒有 IDC 癌癥),否則它就有 IDC 癌癥。
超參數(shù)和訓(xùn)練
我們使用的超參數(shù)如下圖所示,你可以隨意更改試用這些超參數(shù)。
最后,你可以從“訓(xùn)練選項(xiàng)卡”來開始訓(xùn)練,并借助訓(xùn)練儀表板來關(guān)注進(jìn)度。
一旦完成了訓(xùn)練,你可以在結(jié)果選項(xiàng)卡中查看結(jié)果。我們?cè)诔杀緸槊啃r(shí) 0.90 美元的 K80 GPU 上,在幾小時(shí)內(nèi)獲得了 85% 以上的精確度。
有了 Deep Learning Studio,作為 Web 應(yīng)用程序或 REST API 來部署就輕而易舉,這可以使用部署選項(xiàng)卡來完成,如下所示:
部署模型
部署的模型可以作為 Web 應(yīng)用程序或 REST API 來加以訪問,如下所示:
結(jié)束語
借助 Deep Learning Studio,短短幾分鐘就能構(gòu)建好深度學(xué)習(xí)模型,只需要短短幾秒鐘就可以完成部署。
這種便利將讓開發(fā)人員能夠解決復(fù)雜的問題,不必?fù)?dān)心編程和 API 等其他方面。
【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文作者和出處為51CTO.com】