醫(yī)學(xué)領(lǐng)域深度學(xué)習(xí)模型訓(xùn)練的挑戰(zhàn)!
在醫(yī)學(xué)數(shù)據(jù)集的訓(xùn)練算法過程中面臨的諸多問題中,這三個(gè)是最常見的:多任務(wù)數(shù)據(jù)集規(guī)模不均衡。
對(duì)于這些問題,我會(huì)分享一些技巧來解決。類別不平衡挑戰(zhàn)
在現(xiàn)實(shí)世界中,我們看到健康的人比患病的人多,這也體現(xiàn)在醫(yī)學(xué)數(shù)據(jù)集上。并且健康和疾病類別的例子的數(shù)量是不均衡的。這反映了現(xiàn)實(shí)世界中疾病的發(fā)生頻率。在醫(yī)療數(shù)據(jù)集和信用卡欺詐數(shù)據(jù)集,你可能會(huì)看到正常樣本的數(shù)量是異常樣本的一百倍。
這樣一來,很容易被誤認(rèn)為是車型性能優(yōu)異,其實(shí)不然。如果使用諸如accuracy_score accuracy之類的簡(jiǎn)單測(cè)量,就會(huì)發(fā)生這種情況。對(duì)于這類數(shù)據(jù)集,準(zhǔn)確率并不是一個(gè)很好的衡量標(biāo)準(zhǔn),因?yàn)闃?biāo)簽傾斜嚴(yán)重,所以一個(gè)只輸出正常標(biāo)簽的神經(jīng)網(wǎng)絡(luò)的準(zhǔn)確率甚至可以略高于90%。解決方案:
我們可以定義更有用的指標(biāo),比如F1指標(biāo)或& # 34;準(zhǔn)確率/召回率& # 34;。準(zhǔn)確度被定義為& # 34;真實(shí)病例數(shù)/(真實(shí)病例數(shù)加上假陽(yáng)性病例數(shù))& # 34;。當(dāng)有很多錯(cuò)誤的例子時(shí),這是一個(gè)很好的措施。另一方面,召回率被定義為& # 34;真實(shí)案例數(shù)/(真實(shí)案例數(shù)+錯(cuò)誤反例數(shù))& # 34;。這是一個(gè)很好的措施,當(dāng)有很多錯(cuò)誤的反例。醫(yī)療域中的大多數(shù)模型都是這種情況。而我們往往需要同時(shí)考慮假陽(yáng)性樣本和假陰性樣本的數(shù)量,這就是F1測(cè)量的作用。它實(shí)現(xiàn)了精度和召回率的平衡,由公式2 *(精度*召回率)/(精度+召回率)給出。
另一種處理階級(jí)不平衡的流行技術(shù)是& # 34;重采樣& # 34;。這是從大多數(shù)類(具有太多樣本的類)中刪除樣本(稱為欠采樣)或向少數(shù)類添加樣本(稱為過采樣)以實(shí)現(xiàn)兩個(gè)類之間的平衡的行為。雖然它們可以通過使用復(fù)雜的重采樣技術(shù)來解決,但它們有自己的缺點(diǎn),如信息丟失和過擬合。多任務(wù)挑戰(zhàn)
在現(xiàn)實(shí)世界中,預(yù)測(cè)健康或疾病通常是不夠的。我們經(jīng)常需要把醫(yī)療的數(shù)據(jù)分成多個(gè)類別或者標(biāo)簽。比如只從心律上檢測(cè)心律不齊就沒那么有市場(chǎng)了,對(duì)患者進(jìn)行分析來確定哪種心律不齊更有價(jià)值。例如,癥狀可以是心房纖維性顫動(dòng)、室上性心動(dòng)過速或任何其他類型。
理論上,可以為每個(gè)需要分類的標(biāo)簽訓(xùn)練單獨(dú)的神經(jīng)網(wǎng)絡(luò)模型,但是這對(duì)于編碼來說是非常不切實(shí)際的。如果我們能夠?qū)⑺羞@些分類模型結(jié)合到一個(gè)返回多個(gè)預(yù)測(cè)的單一深度神經(jīng)網(wǎng)絡(luò)中,將會(huì)更有價(jià)值。解決方案:
我們使用一種叫做& # 34;多類別分類& # 34;或者& # 34;多標(biāo)簽分類& # 34;方法來應(yīng)對(duì)這一挑戰(zhàn),它們略有不同。在多類別中,數(shù)據(jù)樣本的類別是互斥的,而在多標(biāo)簽中,數(shù)據(jù)樣本可以屬于多個(gè)類別。在醫(yī)學(xué)領(lǐng)域,我們通常采用多標(biāo)簽分類,因?yàn)槿绻粋€(gè)患者被診斷為肺不張(肺功能不全),并不意味著他/她不會(huì)出現(xiàn)心臟肥大。我們將模型最后一層的分?jǐn)?shù)傳遞給Sigmoid激活函數(shù)。這將把最后一級(jí)的每個(gè)分?jǐn)?shù)轉(zhuǎn)換為0到1之間的值,而不考慮其他分?jǐn)?shù)。
對(duì)于多標(biāo)簽分類,我們選擇的損失函數(shù)變成了binary_crossentropy,其中每個(gè)標(biāo)簽都被視為一個(gè)獨(dú)立的伯努利分布,因?yàn)槲覀兪褂昧薙igmoid激活函數(shù)。如果需要多個(gè)類,Sigmoid激活函數(shù)可以替換為softmax激活函數(shù),其損失函數(shù)設(shè)置為categorical _ crossentropy。數(shù)據(jù)集大小挑戰(zhàn)
處理醫(yī)學(xué)數(shù)據(jù)集的主要挑戰(zhàn)是這些數(shù)據(jù)集的大小。除了好的架構(gòu),大規(guī)模的訓(xùn)練數(shù)據(jù)對(duì)模型的性能也有重要作用,疾病可用的患者數(shù)據(jù)數(shù)量往往不足。低數(shù)據(jù)集大小是高偏差和高方差的主要原因。這給模型的推廣和優(yōu)化帶來了困難。解決方案:
為了解決模型優(yōu)化的困難,我們使用一種叫做& # 34;學(xué)習(xí)& # 34;方法,在該方法中,我們使用從相關(guān)網(wǎng)絡(luò)的較低層學(xué)習(xí)來訓(xùn)練較高層,而不需要它們從頭學(xué)習(xí)。由于之前的訓(xùn)練,下層可以作為很好的特征提取器,所以我們可以根據(jù)數(shù)據(jù)集進(jìn)行微調(diào)。這項(xiàng)技術(shù)優(yōu)化速度更快,并減少了訓(xùn)練新模型所需的數(shù)據(jù)量。
為了解決模型泛化的困難,我們使用了一種叫做& # 34;數(shù)據(jù)增強(qiáng)& # 34;技術(shù),在向模型提供數(shù)據(jù)之前,不是復(fù)制同一個(gè)例子,而是對(duì)例子進(jìn)行一些隨機(jī)的變換。通過這種方式,我們可以保持模型不變,例如大小或亮度的小變化。諸如水平或垂直翻轉(zhuǎn)圖像、改變圖像的亮度或?qū)Ρ榷纫约霸谝欢ǔ潭壬闲D(zhuǎn)或縮放圖像等做法有助于數(shù)據(jù)擴(kuò)展。這種技術(shù)對(duì)于避免小數(shù)據(jù)集中的過度擬合非常有用。