編者按:機器學習本質上是門工程學,把實驗室里的算法、技術帶入實際應用,這是很多科研人員、數據科學家的夢想。美國灣區(qū)有一個培訓機構insight,它專門招收名校PhD,通過短期強化課程把初出茅廬的學生培養(yǎng)成符合企業(yè)需求的數據工作者,而在這個過程中,這些接收培訓的學生也留下了一些非常有價值的應用。
本文介紹的Carlos Atico Ariza是2018年秋季的insight health研究員,在加入insight之前,他在一家公司擔任數據科學顧問,負責構建端到端機器學習解決方案,比如無需人為監(jiān)督的異常檢測系統(tǒng)。雖然從事的是數據方面的工作,但Ariza在大學獲得的學位是化學和生物工程博士,他一直想為醫(yī)學領域作出貢獻。
在insight培訓期間,Ariza部署了一個WebApp,能利用圖像分析技術診斷患者是否患有瘧疾,并列出治療優(yōu)先等級。這個應用成功讓臨床醫(yī)生的瘧疾診斷工作量降低了85%。
微小而致命的敵人
對世界上超過半數的人來說,蚊子遠不僅僅是一種滋擾:除了會引發(fā)皮膚瘙癢、敏感和失眠,它們也是瘧疾、登革熱等疾病的傳播媒介。以瘧疾為例,這是一種由瘧原蟲引起傳染病,當感染子孢子經蚊蟲叮咬進入人體血液后,它們會在肝細胞內進行裂體增殖,然后釋入血液感染紅細胞……借助蚊子強大的繁殖能力,2015年,全球已經有2億多人新感染瘧疾,每年因此死亡的人數超過40萬!
瘧疾診斷的瓶頸
在諸多瘧疾診斷方法中,鏡檢法是許多醫(yī)院的支柱,它的具體流程是先把患者血液涂抹在載玻片上,用造影劑染色以區(qū)分血紅細胞內的寄生蟲,然后經專業(yè)訓練的臨床醫(yī)生再在100倍的顯微鏡下,從5000個細胞里一個個計數包含寄生蟲的血紅細胞數(WHO方案)。
厚血涂片制作流程
可以想象,手動計數5000個細胞絕對會是個緩慢的過程,這對醫(yī)療人員來說也是個沉重的負擔,尤其是在瘧疾爆發(fā)的地區(qū)。面對這種情況,Ariza認為圖像分析和機器學習會有很大的應用前景。
什么是F-beta
考慮到醫(yī)療領域對檢測準確率的嚴格要求,如果機器要自動化瘧疾診斷過程,它絕不能從看似不含寄生蟲的樣本中遺漏哪怕一個寄生蟲。為了降低誤診(假陰性)人數,Ariza希望模型在輸出最終結果前,能重復進行三次檢查:如果第一遍沒發(fā)現,每隔8小時再采集一份厚血涂片并計數細胞數;如果三次都沒發(fā)現寄生蟲,則判定患者未受感染。
現在,這個任務就有了一個很直接的目標:減少假陰性。
事實上,假陰性不止能被作為降低誤診率的一個度量,它也能充當監(jiān)督機器的指標。試想一下,如果我們訓練了一個模型,它在實際進行圖像分析時準確率奇低,這時醫(yī)生就不得不需要抽更多時間來手動檢查機器預測結果。在機器學習領域,我們有一些能評估分類器分類性能優(yōu)劣的指標,這里我們先回顧兩個概念:
精確率(Precision):被分類器判定為正類的樣本中,真正屬于正類樣本的比例
召回率(Recall):被分類器正確判定為正類的樣本數占正類樣本總數的比例
精確率越高,召回率越低;反之,召回率越高,精確率越低。而平衡精確率和召回率的指標就是F-beta(Fβ)。這里β的取值意味著兩者在分類器性能評估中的相對重要性,在瘧疾診斷這個問題中,Ariza設β=2,即最小化假陰性的重要性是假陽性的2倍。
細胞開源數據
這個WebApp能成功的關鍵是Ariza幸運地找到了一個優(yōu)質數據集,里面包含27,558幅經醫(yī)學專家手動注釋的單細胞圖像,感染的/未感染的各占一半。這些細胞來自200名患者,每四名患者中有三名患有瘧疾。圖像都分割自顯微鏡視野原始圖像,而且都是手機拍攝,沒有用需要連接到顯微鏡的特制相機。
數據集地址:ceb.nlm.nih.gov/repositories/malaria-datasets/
可解釋的特征工程
有了任務目標,有了數據集,之后就是大家常常忽視的特征工程環(huán)節(jié)。提到構建圖像分類器,每一個學過機器學習的人都知道CNN是最好的。但是在實際應用中,構建模型的正確做法是先從一個簡單的模型開始,然后根據模型性能快速迭代。
所以Ariza首先做的是著眼于視覺上的顯著特征,用一個簡單模型測量特征與整體分類的相關性。
利用OpenCV API提取Blob特征:染色的寄生蟲為Blob
他設計了一系列能指示細胞顏色、面積、凸度和圓度的特征,還創(chuàng)建了一些用來確定寄生蟲是否在細胞中可見的特征。由于寄生蟲的顏色和細胞質不一樣,這時它們可以被看作是圖像中的Blob。由于一個細胞內可能有多個寄生蟲,每個細胞包含的Blob數可以被記入特征集。
所謂Blob,指的是圖像中的一組連接像素,它們共享一些共同屬性(例如灰度值)。OpenCV提供了一種檢測Blob的便捷方法,能按顏色、大小和形狀過濾我們想要的Blob類型,只需設置相應參數。
構建模型
完成特征工程后,Ariza保留了20%的數據用于測試,并對剩余的80%進行了3折交叉驗證。之后,他又比較了四個機器學習分類器,從中選了一個F2得分為0.8的隨機森林模型。
流程:從感染(藍)和未感染(橙)單細胞圖像中提取特征—訓練模型—比較模型—選擇
但這不是最終結果。之前我們提到了,CNN模型在圖像分類上的性能是最好的。Blob檢測雖然操作方便,但性能卻很一般,如下圖所示,它在細胞邊緣和周邊位置表現很差。再加有些寄生蟲可能沒有被造影劑徹底染色,這時它們和細胞的顏色差異微乎其微,會影響分類器的輸出結果。
被模型錯誤分類的感染細胞(假陰性),其中中間細胞的右下角有一個未被徹底染色的寄生蟲
此外,一些受感染的細胞在圖像上本身就難以表征。比如下面這幅圖,在人類專家眼里,左側這個細胞很可能被感染了,因為上面有很多奇怪的白色突起(藍圈),它們可能是感染細胞上才有的黏連結節(jié)(knob)。
但無論是不是黏連結節(jié),當前這個簡單分類器都難以提取這些指示寄生感染的微妙特征。于是Ariza放棄繼續(xù)手動添加特征,轉而用CNN生成特征。
讓事情變得更復雜
他選取的CNN是Inception v3。我們都知道,初始Inception v3已經在ImageNet數據集上經過訓練,能分辨什么是人,什么是狗,但它肯定沒法分類瘧疾感染細胞。為了進行重新設計,Ariza刪除了分類層,為每個圖像生成了2048個特征,之后又用PCA把特征降維到100個。在經過3折交叉驗證訓練、測試和比較四種ML分類器后,他最后得到了一個F2得分為0.92的logistic regression分類器(L2正則)。這相比初代的隨機森林模型顯然是個巨大進步,而性能提升的關鍵就是用CNN做后端。
把CNN提取的圖像特征用于模型訓練
把模型變成WebApp
最后就是模型的部署——Ariza把它稱為“瘧疾英雄”。這個WebApp的潛在用戶是臨床醫(yī)生和患者,所以當他們上傳單個細胞圖像后,APP要返回每個細胞被歸類為感染或未感染的結果。我們可以用三個正則表達式從每個圖像中提取元數據,包括患者ID號,然后將結果按患者分組并根據感染率分類。
“瘧疾英雄”界面
根據Ariza的個人體驗(在校期間培養(yǎng)干細胞時的數細胞經驗),“瘧疾英雄”可以在診斷瘧疾時,為臨床醫(yī)生節(jié)省85%的診斷用時。這意味著按照朝九晚五的工作時長,每個醫(yī)生每月可以多接診1400名患者。
手動、自動速度對比
由于結果是根據感染率進行分類的,模型產生的結果也能幫助臨床醫(yī)生根據感染率對患者進行優(yōu)先排序,加快對病情加重的患者的治療。
考慮到瘧疾多發(fā)地都是經濟欠發(fā)達區(qū)域,優(yōu)質醫(yī)療資源非常受限,而“瘧疾英雄”使用的數據集圖像都是手機拍攝的,這個APP其實也為“移動問診”提供了可能性。只要臨床醫(yī)生能拍攝足夠清晰的單細胞圖像,他就能隨時隨地高效診斷。同時,一些新臨床醫(yī)生也能利用模型的結果,進一步提高自己的鏡檢水平。
-
機器學習
+關注
關注
66文章
8418瀏覽量
132646 -
數據集
+關注
關注
4文章
1208瀏覽量
24703 -
圖像分析
+關注
關注
0文章
82瀏覽量
18679
原文標題:瘧疾WebApp:用深度學習加快瘧疾診斷
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論