分類模型 +作業(yè)解讀

現(xiàn)在憋活,您已經(jīng)了解了深度學(xué)習(xí)在醫(yī)學(xué)圖像分類問題上的一些前沿應(yīng)用岂津。

本文將介紹第一課第一周6-10節(jié)的內(nèi)容。主要講解構(gòu)建一個分類模型去識別胸片的腫塊悦即。以及分類模型將面臨的三個挑戰(zhàn):類不平衡挑戰(zhàn)吮成、多任務(wù)挑戰(zhàn)和數(shù)據(jù)集大小挑戰(zhàn)。本節(jié)重點解決類不平衡挑戰(zhàn)盐欺。詳細介紹了loss的算法赁豆,以及為何要做加權(quán)l(xiāng)oss。以及在作業(yè)中冗美,手把手帶你寫加權(quán)l(xiāng)oss.

我們將介紹如何為使用胸部X光片檢測多個疾病的醫(yī)學(xué)成像任務(wù)構(gòu)建自己的深度學(xué)習(xí)模型魔种。

我們將介紹一個胸部X光解釋模型的訓(xùn)練過程,并看看在這個過程中你將面臨的關(guān)鍵挑戰(zhàn)粉洼,以及你如何成功地應(yīng)對這些挑戰(zhàn)节预。

我們先來看看胸部X光片的判讀任務(wù)叶摄。胸部X光片是醫(yī)學(xué)上最常見的診斷成像方法之一,大約一年有20億個胸部X光片安拟。

胸部X光檢查對于發(fā)現(xiàn)許多疾病至關(guān)重要蛤吓,包括肺炎和肺癌,這些疾病每年影響著全世界數(shù)百萬人糠赦。

現(xiàn)在会傲,一位接受過胸部X光片解釋訓(xùn)練的放射科醫(yī)生會查看胸部X光片,觀察肺部拙泽、心臟和其他區(qū)域淌山,以尋找可能提示患者是否患有肺炎、肺癌或其他疾病的線索顾瞻。

image

讓我們看看一個叫做腫塊(Mass)的異常泼疑。我不打算首先定義什么是腫塊,但讓我們看三張包含腫塊的胸部X光片和三張正常的胸部X光片荷荤。

image

所以退渗,你大概知道什么是腫塊了嗎?腫塊被定義為病變或換句話說蕴纳,在胸部X光片上看到的直徑大于3厘米的組織損傷会油。讓我們看看如何訓(xùn)練我們的算法來識別 mass。

Training, prediction, and loss

我們有胸部X光片的圖像袱蚓,想通過一個算法去識別它們是否含有腫塊钞啸。

這個算法可以有不同的名字几蜻。您可能聽說過深度學(xué)習(xí)算法或模型喇潘、神經(jīng)網(wǎng)絡(luò)或卷積神經(jīng)網(wǎng)絡(luò)等術(shù)語。

該算法以分數(shù)的形式生成輸出梭稚,分數(shù)是圖像包含腫塊的概率颖低。

image

上圖中第一幅圖像實際上有腫塊,但算法輸出的腫塊的概率為0.48弧烤,而下面那個正常的圖像腫塊的概率被輸出為0.51忱屑。

因此,當訓(xùn)練還沒有開始暇昂,這些分數(shù)莺戒,這些概率輸出將不符合期望的標簽。因此急波,我們要去訓(xùn)練它从铲。

假設(shè) mass 的期望標簽是1,normal的標簽是0澄暮。您可以看到0.48與1相距甚遠名段,而0.51與期望的0標簽相差甚遠阱扬。

我們可以通過計算一個損失函數(shù)來測量這個誤差。

image

損失函數(shù)測量我們的輸出概率和期望的標簽之間的誤差伸辟。第一幅圖像的誤差為0.32麻惶, 第二幅為0.31。損失值的計算之后會講信夫。

當我們算法迭代幾次后窃蹋,一組新的圖像和期望的標簽被呈現(xiàn)給該算法,因為它學(xué)會隨著時間的推移產(chǎn)生更接近所需標簽的分數(shù)静稻。

image

這里脐彩,第一幅圖像的概率增加到了0.6,越來越接近1姊扔, 第二幅圖像的概率降到了0.3惠奸, 越來越接近0。loss值也越來越小恰梢。

三個挑戰(zhàn)

我們將討論醫(yī)學(xué)圖像訓(xùn)練算法的三個關(guān)鍵挑戰(zhàn):類不平衡挑戰(zhàn)佛南、多任務(wù)挑戰(zhàn)和數(shù)據(jù)集大小挑戰(zhàn)。對于每一個挑戰(zhàn)嵌言,我們將介紹一到兩種應(yīng)對方法嗅回。

  • 類別不平衡:可以使用加權(quán)的 loss weighted loss, 或者是均衡采樣(resampling)
  • 多任務(wù): 多標簽loss
  • 數(shù)據(jù)集大小: 遷移學(xué)習(xí) + 數(shù)據(jù)增強
image

類別不平衡

我們更詳細的來討論一下類別不平衡摧茴。在醫(yī)學(xué)數(shù)據(jù)集中绵载,非疾病和疾病的例子并不相同。

這反映了現(xiàn)實世界中疾病的流行率或頻率苛白,在這里我們看到正常人的例子比腫塊的例子多得多娃豹,特別是當我們觀察健康人群的X光時。在一個醫(yī)學(xué)數(shù)據(jù)集中购裙,你可能會看到正常例子是腫瘤例子的100倍懂版。

image

損失函數(shù)的計算

繼續(xù)上邊的類別不平衡的例子,這就給算法學(xué)習(xí)帶來了一個問題躏率,即大多數(shù)情況下算法都會抓住正常的例子躯畴。如圖,剛開始model為每個人預(yù)測一個非常低的患病概率薇芝,并且不能確定一個例子什么地方有疾病蓬抄。

image

讓我們看看如何將這個問題追溯到我們用來訓(xùn)練算法的損失函數(shù)。我們還將了解如何在數(shù)據(jù)不平衡的情況下修改這個損失函數(shù)夯到。

這個損失叫做二進制交叉熵損失嚷缭,它衡量的是一個分類模型的性能,它的輸出在0到1之間黄娘,讓我們看一個例子峭状,看看這個損失函數(shù)是如何計算的克滴。

關(guān)于交叉熵損失函數(shù),我們之前也介紹過优床,歡迎閱讀

Pytorch & MONAI — 手擼各種loss

這里我們有一個胸部x光片的例子劝赔,其中包含一個腫塊,算法輸出的概率為0.2胆敞。這里的0.2是根據(jù)算法Y等于1的概率着帽,這個例子是腫塊的概率。現(xiàn)在移层,我們可以用損失函數(shù)來計算這個例子中的loss仍翰。

image

如圖所示,loss = -log0.2 = 0.7

image

上圖中观话,label=0,所以是一個陰性例子予借。我們計算loss使用 y=0 那一行的公式。網(wǎng)絡(luò)輸出的概率是0.7频蛔,但是我們要計算的y=0的概率灵迫,為1-0.7=0.3, 因此

loss=-log(1-0.7)=0.52

我們已經(jīng)學(xué)會了如何計算一個例子的loss,讓我們來看看它是如何應(yīng)用到一堆例子中的晦溪。

image

這里我們有六個正常的例子和兩個腫塊(mass)的例子瀑粥。 注意這里的P2、P3三圆、P4是患者id狞换,當訓(xùn)練還沒有開始時,假設(shè)算法對所有的例子產(chǎn)生了0.5的輸出概率舟肉,然后可以計算每個例子的損失修噪。

對于一個normal的例子,我們將使用log(1-0.5)度气,結(jié)果是0.3割按。對于一個mass例子膨报,我們將使用log0.5磷籍,也是0.3。

我們計算總的loss

loss = 2 mass * 0.3 + 6 noraml * 0.3

所以請注意现柠,大部分對損失的貢獻是來自 normal 的例子院领,而不是來自 mass 的例子。

因此够吩,該算法在不增加 mass 樣本的相對權(quán)重的前提下比然,對更新后的樣本進行優(yōu)化以得到正常樣本。實際上周循,這并不能產(chǎn)生很好的分類器强法。這就是類別不平衡的問題万俗。

解決類不平衡問題的方法是修改損失函數(shù),對正常類和 mass 類進行不同的加權(quán)饮怯。Wp是我們分配給 mass 例子的權(quán)重闰歪,Wn指正常例子的權(quán)重。

image
image

這里蓖墅。我們的 W_p=6/8 W_n=2/8

image

數(shù)量越多的類別權(quán)重越低库倘,數(shù)量越少的樣本權(quán)重越高。

然后论矾,你可以看到教翩,如果你把 2 個 mass 例子中的總損耗加起來,我們得到0.45贪壳,6個正常的例子的總loss也是0.45饱亿。

從正類和負類得到的損失貢獻是相同的。因此闰靴,這是一個使用權(quán)重修改損失的想法路捧,在這種方法中稱為加權(quán)損失,以解決類不平衡問題传黄。

學(xué)到這里杰扫,我們應(yīng)該完成第二次作業(yè)

本周作業(yè)解讀 加權(quán)l(xiāng)oss

作業(yè)文件:AI4M_C1_W1_lecture_ex_02

  • 首先,我們認為的構(gòu)造y_true, y_pred_1, y_pred_2.分別表示標簽膘掰,model1的輸出章姓,model2的輸出
y_true = np.array(
        [[1],
         [1],
         [1],
         [0]])
print(f"y_true: \n{y_true}")

# Make model predictions that are always 0.9 for all examples
y_pred_1 = 0.9 * np.ones(y_true.shape)
print(f"y_pred_1: \n{y_pred_1}")
print()
y_pred_2 = 0.1 * np.ones(y_true.shape)
print(f"y_pred_2: \n{y_pred_2}")

y_true:
[[1]
[1]
[1]
[0]]

y_pred_1:
[[0.9]
[0.9]
[0.9]
[0.9]]

y_pred_2:
[[0.1]
[0.1]
[0.1]
[0.1]]

  • 我們來計算兩個model的loss
loss_reg_1 = -1 * np.sum(y_true * np.log(y_pred_1)) + \
                -1 * np.sum((1 - y_true) * np.log(1 - y_pred_1))

注意: 從上面圖中的公式如何轉(zhuǎn)到這里的公式的。喜歡研究的同學(xué)可以深入探討一下识埋。頭疼的同學(xué)凡伊,可以直接調(diào)用這個的公式。

+ When the model 1 always predicts 0.9, the regular loss is 2.6187
- When the model 2 always predicts 0.1, the regular loss is 7.0131

我們這里遇到了類別不平衡窒舟,例子中有3個陽性系忙,1個陰性。當預(yù)測值始終為0.1時比始終為0.9惠豺,損失函數(shù)會產(chǎn)生更大的loss值(model2的結(jié)果)银还,因為數(shù)據(jù)是不平衡的。

當類不平衡具有更多正標簽時洁墙,正則損失函數(shù)意味著預(yù)測值高達0.9的模型比預(yù)測值低達0.1的模型表現(xiàn)更好

  • 設(shè)置類別權(quán)重

因此蛹疯,為了解決這個問題,我們需要給不同的類別不同的權(quán)重热监。

w_p = 1/4
w_n = 3/4

image
image
image

由圖可見捺弦,兩個model的loss一樣,由于您使用了加權(quán)損失,因此無論模型始終預(yù)測 0.9 還是始終預(yù)測 0.1列吼,計算出的損失都相同幽崩。

是不是很神奇。雖然加權(quán)損失很簡單寞钥,初學(xué)者都聽過歉铝。但是仔細去了解其中的原理,親自實踐凑耻,你會掌握的更牢靠太示。

思考:我們這里只計算了一個類別的loss, 當有多個類別時應(yīng)該怎么計算呢?

感興趣的朋友香浩,自行查看代碼类缤,這里及不介紹了~~

歡迎繼續(xù)閱讀下一次內(nèi)容~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市邻吭,隨后出現(xiàn)的幾起案子餐弱,更是在濱河造成了極大的恐慌,老刑警劉巖囱晴,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件膏蚓,死亡現(xiàn)場離奇詭異,居然都是意外死亡畸写,警方通過查閱死者的電腦和手機驮瞧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來枯芬,“玉大人论笔,你說我怎么就攤上這事∏” “怎么了狂魔?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長淫痰。 經(jīng)常有香客問我最楷,道長,這世上最難降的妖魔是什么待错? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任籽孙,我火速辦了婚禮,結(jié)果婚禮上朗鸠,老公的妹妹穿的比我還像新娘蚯撩。我一直安慰自己,他們只是感情好烛占,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般忆家。 火紅的嫁衣襯著肌膚如雪犹菇。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天芽卿,我揣著相機與錄音揭芍,去河邊找鬼。 笑死卸例,一個胖子當著我的面吹牛称杨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播筷转,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼姑原,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了呜舒?” 一聲冷哼從身側(cè)響起锭汛,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎袭蝗,沒想到半個月后唤殴,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡到腥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年朵逝,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片乡范。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡廉侧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出篓足,到底是詐尸還是另有隱情段誊,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布栈拖,位于F島的核電站连舍,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏涩哟。R本人自食惡果不足惜索赏,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一贴彼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧器仗,春花似錦童番、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽忽你。三九已至,卻和暖如春科雳,著一層夾襖步出監(jiān)牢的瞬間根蟹,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工糟秘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留简逮,地道東北人。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓蚌堵,卻偏偏與公主長得像,于是被迫代替她去往敵國和親吼畏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內(nèi)容