當前位置:
首頁 > 科技 > 從基因診斷到醫療影像分析,11個案例幫你讀懂深度學習的應用

從基因診斷到醫療影像分析,11個案例幫你讀懂深度學習的應用

主講導師 | 羅晟

本文編輯 | 梁家祥

7月24日,智東西公開課推出的超級公開課NVIDIA專場進行完第十二講,由NVIDIA深度學習解決方案架構師羅晟主講,主題為《醫療領域的深度學習》。羅晟老師系統講解了深度學習在醫療影像、基因分析、藥物研發及疾病診斷等醫療領域的應用及其背後所使用的深度學習技術特點。

以下是羅晟老師的主講實錄和提綱,共計13549字,預計14分鐘讀完。

大綱:

1.深度學習在醫療領域發展現狀及常見應用場景

2.深度學習加速藥物研發

3.深度學習加速基因研究

4.深度學習加速疾病診斷

5.醫療領域英偉達解決方案平台

主講實錄

羅晟:大家好,我叫羅晟,來自NVIDIA的深度學習解決方案架構師。今天很高興能夠在這裡和大家分享醫療領域的深度學習應用,以及NVIDIA為醫療領域提供的解決方案平台,希望今天的分享能給大家帶來幫助,也希望本次分享可以起到拋磚引玉的作用,讓各位能夠為整個行業帶來新的創意,幫助大家用AI和GPU加速醫療行業的應用,為醫療領域提供新的方案。

在正式開講之前,我想先給大家分享一個關於醫療領域創業的故事,為什麼要用深度學習做醫療呢?大家知道現在深度學習很火,但是並不是火什麼,我們就應該做什麼,我們用深度學習來做醫療,肯定有其背景原因,有它帶來的好處。在美國,有這樣一個深度學習應用的案例,就是一個工程師,帶著自己的父親去看病,醫生診斷出他父親是癌症的第四期,也就是尾期,醫生直接讓他父親進行化療,之後大概經歷了一到兩個禮拜的化療期,化療之後,他父親也掉了很多頭髮,人也覺得很辛苦。後來,他正好有一個朋友是醫生,然後這個醫生就為他爸爸做了第二次診斷,才發現上一個醫生的診斷是錯誤的,其實他父親只是在癌症的第一期。而癌症第一期不需要化療,只通過藥物就可以控制住。這位AI工程師就下定決心,要用AI技術來改善醫療領域,去解決由於醫生的一些失誤導致的醫療問題,這也是為什麼我們要用AI做醫療的原因。

對NVIDIA不熟悉的朋友,可能對NVIDIA的印象還停留在GPU的計算卡和遊戲卡上,但其實從2007年NVIDIA提出CUDA用於作為GPU計算的編程語言開始,我們已經在醫療行業耕耘了十年。可以應用的領域除了計算之外,還有可視化,而現在,我們還可以用來做深度學習。有寶寶的小夥伴應該知道,做嬰兒三維超聲波檢查的時候,看到嬰兒的那些圖像,其實從2009年西門子的超聲波機器已經用NVIDIA的GPU來做渲染方面的工作。

不僅如此,GE的CT掃描儀,也用到了GPU的技術,實現實時重建,直接把感測器的數據映射到圖像上,這樣帶來的好處就是我們能直接去看到相關的圖像,不僅如此,還能夠對圖像進行優化,我們可以使用更低劑量的x射線來實現相同質量的圖像,從而減少診斷對健康帶來的損害。

2012年,由於AlexNet的出現,深度學習證明了其在計算機視覺方面具有非常好的性能,也就是從這個時候開始醫療行業的各個領域也逐漸開始利用深度學習,也擴展了GPU的應用領域,比如在2013年,GPU驅動的深度學習的方法,在病理切片上檢測並統計有絲分裂數,擊敗了其他所有的技術,這個統計數據是癌症的早期指標,換句話說,用GPU之後我們能夠獲得更好的準確性,同時也能降低漏診的風險。

隨著技術的發展,DL在醫學影像領域獲得過很多的成功,其實我們現在聽到的大多數關於深度學習的應用都是在醫療領域。比如2014年,我們做的大腦腫瘤分析,2016年肺癌檢測,這些都是在醫療領域的應用。而這些深度學習應用不僅是在商業應用、搜索裡面取得的成功,而且在一些數據科學競賽方面也取得了很好的成績,並且兩次打敗其他隊伍,成功完成了任務。

這兩次成功,一次是基於心臟MI成像自動注射量的計算,可以用來衡量心臟的運行狀態。另一次是關於CT掃描中肺癌的早期檢測。這些都是DL在醫學影像領域取得的成功。不僅如此,最讓我興奮的是在去年NVIDIA首次參加北美放射學會,吸引了大概五萬名的與會者,大部分都是放射科醫師,其中有四十八個初創公司都在用深度學習或者機器學習進行醫學成像。而且其中百分之九十的公司都在使用GPU。在本次會議上,DL相關文章的數量,相比往年增加了十倍,NVIDIA在會議期間進行了為期5天的DLI(NVIDIA深度學習學院)培訓,平均每天培訓200人。

2018年NVIDIA發起了Project Clara,它的名稱來源於紅十字會的創立人,他的名字就是Clara 。我們希望通過Clara項目 ,幫助醫療行業利用NVIDIA GPU技術,改善人們的生活。

大家知道,2012年AlexNet網路出來之後,首先在ImageNet上取得了非常好的結果,戰勝了傳統記憶學習的方法,當時AlexNet性能有10%的提升。而在往年,每年都是1%的性能提升。這樣飛躍的性能提升確實能夠豐富我們的應用種類,比如人臉識別,自然語言處理。同時對於一些商業應用來說,能夠獲得更精準的推薦,比如大家平時使用的今日頭條新聞推薦,系統會根據你自身的的喜好為你推薦相應的內容,這就是基於深度學習來做的。對於深度學習來說,這樣的精確意味著什麼呢?

對於其他的行業來說,準確度確實很重要,但也不是很關鍵,因為推薦錯了,並不會對生命造成影響,但在醫療行業則不然,用更好的方法不僅僅只是提高準確度。比如在藥物發現領域,可以縮短藥物的整個研發周期,在醫療診斷領域,可以在最早期進行醫療診斷,減少病人的痛苦。而此時能夠提高的準確度,不只是數字上的十個百分點,在醫療領域,可能會為每一個人帶來更好的生活,為整個社會帶來更好的未來。

整個深度學習的流程,就如右邊這張圖所示,通過訓練數據和深度學習網路訓練生成一個深度學習的模型,之後對模型進行評估,再用一些新的數據來確認,驗證以及測試,從而得知模型是否準確,而且通過這樣一個模型,可以解決醫療領域的很多問題,至於怎麼解決、未來怎麼做,我會在後面詳細給大家介紹。

深度學習在醫療領域的應用不僅為個人帶來了新的變化,同時也為社會和人類未來的發展帶來了新的動力。對整個行業和研究社區來說也有一些新的變化。我們也可以看到一些趨勢,也是我們所謂的深度學習動量,上圖左邊展示的是SPIE、ISBI、MICCAI這三個頂級會議醫學影像圖片領域使用深度學習文章數量這幾年的比例變化,從2014年不到5%,到2017年,尤其是在ISBI上面,其比例已經超過20%,從而證明了深度學習確實能夠為研究社區帶來新的幫助,也確實成為了一個有用的工具。

研究機構利用AI帶來了新的應用和思路,解決了之前在醫療方面遇到的問題,現在有一百零六個初創公司,他們也在推動整個醫療行業去使用AI。他們可能在各個領域,比如藥物發現、醫學圖像以及相關的自然語言處理等,豐富了整個生態環境,也希望今天的分享能夠給大家帶來一些新的思路,去打造在中國醫療行業的人工智慧生態環境,幫助改善在未來醫療服務。

說起醫療行業的深度學習,不得不考慮對醫生和病人來說,他們在哪些方面可以用到深度學習。比如在看病的時候,醫生怎麼為病人制定治療方案。一方面,可以了解病人的基因,因為很多疾病其實是基因的變異引起的,如果知道有基因變異的情況,就可以在最開始做一些人為干預和早期的治療。在看病時,醫生會去看病人以前的健康記錄,了解病人以前的健康狀況,從而幫助醫生診斷病情。

對患者來說,要去了解病人之間的差異,以及為什麼會患病。比如有些人會患一種疾病,另外一些人不會患這種病,這樣就可以用深度學習做一些基礎的研究,加速藥物的發現過程,因為這些疾病只出現在了一些病人身上,通過篩選,以達到更好的治療效果。

其實醫生在工作期間不僅僅是為病人看病,也要去了解一些文獻和法規、寫論文,因為他們也需要去了解醫療行業最新的出版物,才能知道一些新的治療方式。今年關於癌症的出版物有93393篇,到目前為止已經有350萬篇論文,此時我們可以用深度學習從論文里挖掘出跟我們相關的信息,幫助醫生更好的了解到一些最新的研究動態,尤其是在臨床方面,可以了解到最新的論文和研究狀態,以及一些最新的治療方法,從而提出新的治療方案,來研究能不能通過新的方法,或者一些驗證過的方法去幫助病人獲得更好的治療效果。

醫生和病人之間是應該有互動的,醫生每天會看非常多的病人,他們看病的時候,其實也是一個經驗學習的過程,醫生可能從A病人的治療過程得到這樣一個經驗,從B病人的治療過程中得到另一個經驗。對於醫生來說,他們看到了這麼多東西,並不是每一個都會記住,因為人都會慢慢忘記以前的一些事情,因此我們可以用深度學習去記錄以前所有的經驗,並通過以前醫生在看病時候的情況,去收集這些病人的信息,從而輔助醫生在下一次判斷中做出最優的決定,幫助醫生更好把以前所看過病的經驗利用起來,而不是會因為太過忙碌忘記了以前的經驗去翻醫療記錄。

現在來看下深度學習在醫療領域的應用有哪些。首先在放射科領域,我們希望通過早期的篩選和檢測,減輕病人因為放療承受的痛苦。在國外,大家每年都會做體檢,希望在早期了解自己的身體狀況,把疾病治療提到早期階段,降低整個社會的負擔,同時也減輕個人痛苦。Zebra就在做這樣的工作,通過深度學習提高篩選的準確率,降低檢測整體的誤報率,獲得更好的早期判斷結果。早期診斷只是告訴我們有和無的問題,下一步要解決的問題就是有多少,如上圖中間照片所展示,當診斷出腫瘤之後需要去判斷腫瘤所在的部位、大小等情況,即是定量的分析,這種方式,也可以用深度學習來獲得更準確的結果,並且可以降低病人治療時的痛苦。

另外一個讓人非常興奮的領域是精準醫學,上圖右邊展示的是腦部掃描圖片。在面對某些腦癌的時候,醫生有能力去判斷需要什麼藥物,問題是醫生不可能在大腦上打個洞,然後去切片,再去分析,現在通過腦部的MI掃描方式,用深度學習神經網路去判斷和預測患者腫瘤突變的概率,目前準確度也超過了90%,使得醫生可以用精準的藥物去幫助病人做治療,減輕他們的痛苦。

第二個領域是深度學習在診所里的應用,三星和通用的掃描儀已經在使用深度學習來優化整個工作流,提高準確性。比如嬰兒三維超聲波檢測時,可以凍結一些圖像進行測量。第二個ARTERYS公司,也是首批通過FDA認證的公司。通過與GE合作,把他們的工具帶到了心臟病專家那邊,進行所有相關的一些檢測,能夠進一步提高護理質量。最後一個是PATHAI與飛利浦合作,也是第一個由FDA批准的掃描儀診斷,通過將病理圖片與熱力圖結合,幫助病理學家分析腫瘤的情況,進一步降低病理學家診斷錯誤率,大約降低50%,使得病理學家在看圖的時候能夠更加方便。

第三個是深度學習在藥物發現方面的應用,第一個是deep genomics公司。他的成立要追溯到2002年,當時Brendan Frey的妻子懷孕了,在做檢查的時候發現孩子有遺傳缺陷,雖然只是可能,但是他們不得不終止妊娠。Brendan Frey是計算機工程的教授,所以他開始嘗試把深度學習和醫療結合到一起,要解決的痛點是人群中的DNA的變異數,突變概率大於1的SNP(單核苷酸多態性)有三百萬個左右,要完全的挨個調查SNP和疾病的關聯非常困難,因此要建立一個數學模型導入全部的健康基因組序列和SNP序列,對模型進行訓練,讓模型能夠學習到健康的RNA(核糖核酸)的裁剪模式,然後用分子生物學的方法驗證模型,並加以校驗,同時用病理數據,判斷模型輸出的準確性,從而理解有害基因和基因突變病理之間關係,再做一些初步篩選,把有害基因和基因突變病理關係建立起來。

第二個是做分子系統的研究,在做新葯研究時遇到很多挑戰,HCS是指在保持細胞結構和功能完整性的前提下,同時檢測被篩樣品對細胞形態、生長、分化、遷移、凋亡、代謝途徑及信號轉導各個環節的影響, 在單一實驗中獲取大量與基因、蛋白及其他細胞成分相關的信息, 確定其生物活性和潛在毒性的過程,就是PHENOMIC AI要解決的。

第三個也是PathAI做的,通過熱力圖以及藥理的圖片,去幫助醫生更好的觀測現象。最後一個是CLOUD MEDX,他們拿到了很多醫療記錄,通過這些醫療的記錄,實時分析病人的信息,同時通過真實的病例數據和實驗數據,做健康診斷的推薦,從而幫助醫生更好的做診斷,併合理進行藥物的配發。

在各個方面的應用講完之後,我想深入的講一下,目前這幾個領域,用到了什麼樣的技術或者方法,可以幫助醫生改善診斷效果。最近有一部很火的電影叫《我不是葯神》,談到了醫藥公司的問題現狀,在最開始的專利期,他們的葯會價格非常高以收回投資成本。

因為在醫藥研發的領域,需要非常大的投資,需要非常多的人才,做非常多的實驗,這些都是非常昂貴的成本。為了彌補企業成本並且達到盈利,只能在最開始的專利期收取高價,這也是為了讓藥物研發公司有動力繼續投入研發。如果可以用深度學習的方式,或者用GPU加速整個藥物的研發過程。將能夠在一定程度降低藥物的價格,從而去幫助整個醫療行業進入更加良性的發展階段。

既然可以用GPU和深度學習來加速,到底該怎麼具體操作呢?如果有做視覺的同學,可能知道是從CNN開始,能夠取得一個好的效果,其實就是從圖片的分類開始。結果很簡單,就是用卷積核在圖片上面做卷積,然後經過各種隱藏層的計算之後,可以判斷圖片內容。圖片是一個很簡單、很規整的RGB數據 ,但是對於藥物發現來說,藥物的結構並不是一個規整的矩陣,該怎麼來做呢?

這個時候就有了所謂的Graph convolution,即圖卷積。通過圖卷積的方式,可以把藥物的結構映射成卷積結構,映射成一個矩陣。然後就可以用CNN來做一些檢測判斷或者藥物的發現。那麼圖上的卷積網路從卷積方式來說,可以分為兩種,圖卷積和空間域卷積,在此只對空間域卷積進行簡單的介紹。圖卷積是將卷積網路的濾波器和圖信號,同時搬到傅立葉域之後再處理,而空間域卷積是用圖中的節點在空間域進行相連達到層積的結構,從而進行卷積,獲得一個好的效果,具體怎麼來操作呢?

跟傳統方法相比,圖卷積有更低的計算開銷和更少的計算時間,但是也有一個難點,就是很難保證準確性。常見的圖卷積演算法包括NFP、Weave、GGNN以及SGCN。這些方法都已經應用到了醫療領域,並進行了一些基本的研究。

空間域的卷積相對來說比較簡單。以藥物分子為例,其實每一個分子,都可以看成一個節點,對每個結點去尋找最開始旁邊的域,一個分子會有非常多的節點,到底哪個節點,對這個分子比較重要,那肯定是連接數越多的越重要,通過這樣的方式篩選出很多節點,找到每個節點鄰近的幾個分子;第二步,把臨近的分子拼成一個感知域,之後用卷積神經網路,在感知域上做卷積操作,從而獲得該卷積域的特徵。

做卷積時,會執行一些非線性的操作,生成一些新的特徵,然後應用到節點上,圖卷積的過程之後加上Batch normalization、Dropout和Relu,重複四次,就是整個圖卷積的結構。通過這樣的結構,就能把分子的狀態應用到CNN領域。不像以前,由於分子的結構是非矩陣型的,不能夠進行應用,而和應用相比能不能帶來加速呢,下面我就會給大家講一下。

這個是CPU和GPU在Tox21上使用GCN方法的性能比較,可以看到圖上最多有132個節點,每個節點有六十四個feature(特徵),跑了二十個Epoch,Batchsize是一百二十八,使用Tesla V100 GPU或Xeon E5-2698CPU,在準確率達到90%的情況下,用CPU訓練的時間是260秒,而GPU只用了32秒,也就意味著GPU是10倍快於CPU,因此我們能夠更好地利用GPU來加速藥物的研究,從而降低藥物研發成本和社會負擔,讓所有的患者用良心的價格獲得更好的藥物,其實還有很多方式可以把AI應用到藥物發現領域。AI除了在藥物發現方面的應用,也可以應用於基因領域。

很多疾病是由於基因突變或者基因缺陷引起的。人類曾經有一個非常大的工程叫做基因測序,把人類的兩對染色體進行基因測序。具體怎麼做基因測試的,不知道大家有沒有了解。那麼我給大家介紹一下,首先將待測序的DNA進行擴增,複製出很多DNA,之後進行加熱變性,由於基因是雙螺旋結構,把雙鏈DNA分開之後,在裡面加入引物,從而讓聚合酶發揮作用,這樣就可以複製這一段基因的信息。

把DNA聚合酶加入到反應容器,每個反應容器裡面放的都是前面所提取出來的單鏈DNA,利用ATGC基本的鹼基酶原料,就可以複製整個基因序列,同時放一個特殊的鹼基A進去,能夠停止複製。此時就可以開始進行整個DNA的反應。

在完成了DNA的反應之後,因為有一個特殊的鹼基A可以停止DNA的複製,在四個不同的樣本里,他們有很大的概率是在不同的時間停止,可以根據不同的停止情況,對其通電,較輕的DNA會在通電之後進行移動,通過熒游標記的方式就可以在膠片上留下記號,從而得到整個DNA的順序。對於DNA測序有兩個難點需要解決,首先,染色體三十億對鹼基,怎麼去測序?其次是用什麼辦法進行加速。

對於人來說,兩對染色體包含30億個鹼基對,包括了鳥嘌呤、胞嘧啶、腺嘌呤、胸腺嘧啶,組成二十三對染色體。但是我們這些儀器能夠產生十一個短序列,我們稱之為Read,每個read僅代表了三十億個鹼基中的一百個,每個鹼基的錯誤概率在0.1%-10% 之間,把單一的、小的基因序列完整而準確的拼起來是很困難的。這個時候Google cloud platform提出了開源的方案叫做DeepVariant,通過以編碼HTS儀器數據的方式,生成了數千萬個訓練樣本,然後用這個訓練樣本,基於TensorFlow做圖像分類,以便從儀器生成的實驗數據中識別出真實的基因組序列。通過這樣的方式,可以很簡單的判斷哪個基因組序列是正確的。在右邊的圖上,有四種基因組序列:正常的染色體、有一個鹼基出現問題的染色體、兩個染色體對都被刪除,還有一種情況就是由於一些其他因素,比如在最開始做生成的時候複製出錯等相關問題,就會出現最後一種圖像,通過這樣的方式,就能加速基因測試的過程。

加速完基因測試之後,把每一個read的結果拼到一起,中間會有一個比對過程,把每一個小的單元都跟其對應的序列作比對,從而判斷是否準確,此時就有了新的Parabricks,他們在做加速DNA測序的工作,比如說用BWA MEM (比對的工具庫),支持較長的Read,然後做一些剪切性的比對。通過這樣的方式,用GPU來加速,可以看到跟32個CPU相比,其性能達到了25倍的提升,結果的準確率達到100%。

接下來跟大家分析下AI在醫療記錄分析方面的應用,醫療記錄分兩個部分:醫療文本記錄和醫療圖片記錄,這兩個領域分別有怎樣的研究,他們具體是怎麼操作的呢?

第一個是依靠Icahn School提供的解決方案,他們通過12年的積累,總計700萬的醫療記錄,訓練了一個深度學習模型,可以實現多疾病的預測,以前傳統的方法是收集醫療記錄做預測模型,但是只能預測一種疾病,現在可以預測七十八種疾病,並且能夠做到預防疾病的發生,可以很大程度上降低病人的痛苦。

第二個應用是CLOUD MEDX做的,他們做的內容跟之前幾家公司不一樣。前面幾家公司是基於已有的醫療記錄,生成預測模型,去預測病人患病的可能性。CLOUD MEDX則是拿到了一些電子健康記錄,比如病史、藥物測試報告等數據,裡面有兩部分數據,一部分是來自醫生記錄的,跟國內一樣,大家都知道我們看自己的病例是看不懂的,當拿到這些非結構化數據之後,做數據結構化的分析,然後直接結合NLP自然語言處理技術;另一部分是實驗室的數據,或者生命統計的數據,通過這兩部分的數據,開發了一個新的AI平台。

利用該平台分析患者的整個病史、關聯的癥狀以及人口統計的數據和診斷,就可以看到該癥狀以及對應其他臨床上的情況,從數據判斷患某種疾病的可能性,幫助醫生做一些推薦測試、藥物治療的方案以及輔助醫生修改治療方案等。

第二個領域就是醫療圖片,大多是指圖片分割和檢測判斷,這裡大概有五個例子,我會詳細給大家介紹一下他們是怎麼做的。

第一張圖是PathAI做的,把拿到的病例圖片以及識別出的結果做熱點圖,幫助醫生更好的判斷;第二個是由凱斯西儲大學做的,致力於常見的乳腺癌的研究,正常來說,女性發現乳腺癌之後,最開始醫生都會建議做化療,另一種方式是做病理切片,拿到切片的細胞信息之後才能判斷,該測試需要花費四千美金,對於大多數非發達國家的人來說,他們是付不起的,那這個時候怎麼做,他們又提出可以用MRI的一些照片,依據現在的病理學照片做風險評估。

這張圖展示的是一個library,即醫學圖像資料庫,醫學圖像由於其敏感性和工作量,正規的註冊數據集很難得到,但在診斷和治療中非常關鍵, 是美國的國立研究院提出的一個註冊系統,其實這就是一個獲得數據集的方法。

上圖展示的是用SocialEyes,基於我們的NVIDIA SHIELD 平板電腦上,可以利用裡面的GPU,運行深度學習的模型,去判斷眼部疾病,因為在一些偏遠地區看眼科是非常難的,通過這樣一些模型,就能夠解決這些問題。

另外可以用深度學習做骨齡測試,傳統做法是用X射線圖片,和傳統的書裡面的照片或者以前的圖像進行比對,從而判斷骨齡。現在可以用深度學習的方式,使用了大概七千四百個X光射線的記錄訓練了一個深度學習的模型,能夠很快地進行訓練,通過這樣的方式,能夠很快的取得很好的結果,其實骨齡測量對小孩來說非常重要。尤其是在國內,很多時候小孩的發展跟他的骨齡完全是不一樣的,怎麼選擇更快的獲得結果並進行干預是很重要的。

最後一個是用ML發現腦腫瘤,以前的做法可能需要直接打開頭顱,然後打個孔,去看拿到的切片,看看裡面是不是有腫瘤,及腫瘤狀況。現在MAYO CLINIC使用GPU加速,可以用MRI的信息,以前用非深度學習方法發現不了的數據信息,去做一些比對,進而判斷到底裡面是不是有腫瘤,準確率也超過了90%,所以通過這樣的方式,不僅可以把以前的結果做得更好,同時也可以做以前不能做的,而對於medical image(醫學圖像)我們需要怎樣的一個平台呢?

NVIDIA在2018年提出了CLARA平台,我們叫做虛擬、通用、遠程、可擴展的平台,所有的合作夥伴都可以加入進來,利用NVIDIA GPU計算資源和加速庫,為醫院和合作夥伴提供新的演算法和方案,CLARA平台可以做基於DL-BASED的Image重建、深度學習的圖像分割、圖像渲染等操作,該平台最底層用的是DGX以及NVIDIA的GPU,也會提供非常多的軟體庫,包括CUDA、cuDNN、TensorRT加速庫以及Image和各種虛擬化的APP,幫助大家利用這個平台,開發出各種各樣的應用。

首先從硬體開始,平台底層需要做計算,我們使用了世界上第一台GPU超級計算機DGX-1,裡面配置了八塊32G Tesla V100 GPU以及NVLink Mesh。整個系統具有1 PetaFLOPS的計算性能,在做深度學習訓練的同時,提供300 Gb/s的NVLink通信帶寬。從而保證在訓練時能夠最快的取得效果。當然這只是硬體方面,除了硬體之外,NVIDIA也提供了一整套的軟體支持。

硬體沒有軟體的支撐,是運行不了的,雖然硬體達到了加速,軟體該如何操作呢?NVIDIA提供了一整套軟體棧,底層有我們的操作系統,上面有英偉達的GPU驅動以及容器的Runtime,以保證在底層能夠調用GPU計算資源。

在GPU之上,NVIDIA還提供各種GPU Docker容器,比如Caffe,Caffe2,TensorFlow,PyTorch,Chainer等,這些容器和驅動以及Docker,包括精簡過的OS,驅動都是專門為DGX配置的,而且上面的容器都基於GPU的特性做過優化,從而保證大家能夠用到最好的計算性能,訓練出自己的GPU模型,為客戶提供應用。

在DGX之上,我們有NGC(NVIDIA GPU Cloud),可以提供各種各樣容器鏡像,DGX也接入到了NGC,這樣用戶不需要再去配置硬體環境,通過NGC把容器鏡像拉下來,就可以開展深度學習的訓練和Inference(推理)。

目前NGC提供的容器鏡像有35個,分別在不同的領域,包括深度學習、HPC、HPC的視覺、Kubernetes以及我們的合作夥伴提供的各種容器鏡像。

NGC提供的深度學習容器鏡像包括caffe、caffe2、CNTK,CUDA等,CUDA是NVIDIA提供 的一個基礎鏡像,包括DIGITS,對深度學習不熟悉的朋友,可以嘗試使用DIGITS,它是一個Web UL的界面,底層調用TensorFlow或者Caffe,在裡面可以直接開始深度學習的訓練,inference server是我們提供的一個Inference的API,它是一個推理的web框架範例。因為我們要做的就是把訓練好的模型交付給客戶去使用,比如幫助醫生去做一些檢測。那麼如何部署訓練好的模型呢?就是使用inference server,它的作用就是把模型放進去,相當於一個web框架,此時會對外暴露出一個API以供調用,從而簡化模型開發的過程。

另外一個重要的容器鏡像叫做TensorRT,是NVIDIA提供的一個容器加速庫,裡面已經完成了相應的配置,可以直接使用,能夠為深度學習模型帶來幾倍的加速,下面我會詳細介紹。

所以基於DGX的硬體,我們提供了專用的OS以及Linux Kernel和CUDA驅動,在上面做各種各樣的容器化應用,包括優化好的TensorFlow、CNTK、caffe2、PyTorch等模型,以及各種各樣的軟體,包括之前提到的inference_ server,這樣一整套的軟體可以幫助大家更好的去開展深度學習訓練,去應用深度學習演算法,或者開展一些演算法的研究,同時大家也可以利用這些容器鏡像進行自己的演算法部署。

當然除了DGX和NGC之外,還要考慮怎麼使用GPU為深度學習加速?這裡NVIDIA提供了DIGITS、深度學習框架以及深度學習的SDK。

深度學習的SDK主要包括cuDNN、NCCL、cuBLAS、cuSPARSE、TensorRT以及DeepStream6個部分。cuDNN是用CUDA寫的DNN加速器。NCCL用於做多GPU的通信,一般來說,訓練的時候會有參數伺服器,因為GPU之間的數據是要通信的。怎麼去加速GPU的通信呢?我們做了演算法的實現,做了底層的優化,比如說使用NVLink,多節點之間用了RDMA等,通過這樣的方式加速了通信。cuBLAS做一些線性代數的計算;cuSPARSE用於做稀疏矩陣的計算,TensorRT是做inference的加速引擎,可以做到inference的加速,最後一個是DeepStream,提供視頻分析的一些方案,提供整套的pipeline,底層調用GPU裡面硬體核心、解碼器以及CUDA核,從而完成一整套的計算過程。

cuDNN是一個高性能深度學習神經網路加速庫,被利用到所有的深度學習框架中,包括Caffe、Caffe2、CNTK、TensorFlow、PyTorch等,都在用cuDNN做加速。當然如果需要寫自己的軟體,也可以用cuDNN來加速,從上圖可以看到從最開始的8個K80,到8個Maxwell,再到DGX-1和DGX-1V,在不同的cuDNN版本和不同的硬體上,其性能差距是非常大的。在深度學習的訓練方面,從最開始的1000張不到,現在可以訓練的圖片大概超過10000張,能夠進一步加速訓練,帶來10倍的加速提升,而這樣的加速對於開發成熟的產品是非常重要的。

NCCL用於多GPU之間的通信,使用通信演算法,底層採用NVLink,PCIe和 InfiniBand,同時能夠去檢測到整個系統的拓撲結構。從上圖可以看到最開始的Maxwell,以及兩個P100的比較,然後到1024個P100,可以看到用NCCL在GPU通訊方面能夠達到線性的加速,也意味著通信的開銷不會導致訓練的延時,這個是非常難做的。有HPC (高性能計算) 背景的朋友都知道,能達到線性的加速是非常難的一個任務,而NCCL在通信方面取得了這樣的效果。

最後一個我想講的是TensorRT,訓練好一個模型,最重要的是模型的準確性和怎麼把模型交付給客戶使用?推理和訓練其實是不一樣的,訓練時可能用的是FP32的精度,但在推理的時候,可以用更低的精度。訓練時,各層之間的關係是固定的,而且需要把中間參數保存下來,從而進行反向迭代。但推理時,只有正向的迭代,此時可以通過使用TensorRT達到免費加速的效果。TensorRT可以做一些Layer fusion,同時也可以做些精度校準,對於不同的GPU卡,可以實現模型的自動調整,動態分配內存,不管是在內存、計算、網路結構以及參數精度方面,都可以用TensorRT達到更好的效果,取得一更好的性能。以P4為例,如果使用FP32精度的參數算力可以達到5.5T,如果使用Int 8精度的參數算力可以達到22T,所以說硬體的性能提升也需要通過軟體的優化才能夠完成。

最後我想講的是deep learning的菜單,在醫療領域最重要的就是數據,當然也需要強大的計算力。在此基礎上,我們可以用監督學習,或者增強學習,訓練各種模型。關於數據來源,我們有各種合作夥伴和研究機構,他們會為我們提供各種數據集。我們也在跟很多醫院展開合作,能夠提供這樣的數據。我們為大家提供最快的計算平台,以保證拿到這些數據之後,能夠最快的取得結果。而在演算法方面,現在深度學習社區,每年大概有幾萬甚至十幾萬篇論文發出來,他們提供了各種各樣的思路,比如做圖像分割,最開始從一個很簡單的網路開始,後來用FCN來實現,現在可能用GAN來做。

通過不同的演算法,完成各種各樣的應用,解決醫療上各種各樣的難題。不管是對個人來講,還是對社會來講,都能帶來很大的幫助。

以上就是我今天關於AI在醫療領域應用的一些分享,謝謝大家!

提問環節

問題一

郭家豪-上海應用技術大學-研究助理

針對傳統的在校醫學生,畢業後希望轉型到醫療領域的深度學習中,在這一轉型中,優勢有哪些?劣勢有哪些?針對深度學習的技術,最關鍵的核心技術是哪一塊兒?

羅晟:你現在是在醫療行業,如果你想要轉型到深度學習,我們是非常歡迎的,同時我們也非常希望有專業的醫療行業的人才加入到深度學習的隊伍當中,因為對於深度學習來說,它只是一個工具,怎麼用這個工具,在哪個方向能夠用這個工具才是最關鍵的。你的優勢在於知道怎樣應用深度學習技術,用在什麼方向,你只要去加強深度學習方面的技術,甚至可以讓專業的技術人員幫你做加速。我相信未來也會有相應的工具,能夠讓人很快的使用,所以方向才是最重要的。

其實,在深度學習領域,想要知道怎麼應用,確定好要用的醫療技術及方向之後,就可以用GPU技術來實現,NVIDIA提供了所有框架的優化,你可以使用這些框架來做數據整理,確認好方向之後,有各種各樣的research community提供的網路,都可以去嘗試,從而在確定的方向取得一定的成果,我相信在確定了方向之後,一切的技術,都不會成為你的阻礙,而且這樣的技術肯定會隨著未來的發展也變得越來越普及,越來越有用。

問題二

高蓉彬-甘肅畜牧工程職業技術學院-教師

深度學習對藥物藥理學研究能起到什麼作用?

羅晟:我前面的內容已經涉及到了怎麼用深度學習做藥理學的研究以及在分子方面的研究。比如做藥物發現時使用GCN網路,通過該方法,可以去把藥物分子結構做映射,從而知道不同的藥物之間互相的聯繫,同時也可以判斷藥物之後的結果是什麼樣的,這些都可以用深度學習來完成。

問題三

羅力川-大唐電信-晶元設計工程師

該平台是否用到了英偉達的 DLA加速器了嗎?如果用到了,可否詳細介紹下?

羅晟:很高興聽你提到NVIDIA的DLA,DLA是一個深度學習加速器,目前實現是在Jetson Xavier上面,Xavier現在是在申請試用中。當然不管是DLA也好, Xavier也好,Tesla GPU也好,還是Tensor Core也好,各種軟體在NVIDIA平台都是統一的。任何軟體都可以運行在NVIDIA任何版本的GPU上,並且都可以取得很好的效果。

同時這部分的加速都是用TensorRT來實現,TensorRT可以去感知不同硬體的區別,比如P4有Int8的支持,而在P40和v100上有FP16的支持,這樣TensorRT就可以屏蔽底層任何硬體的信息來使用。但另一個方面,因為Xavier現在是剛開發出來。相信在未來,比如我有一個平板電腦,就跟我前面案例提及的平板電腦,提供這樣的解決方案,幫助貧困地區的人們使用到GPU加速,在醫療行業為邊遠地區的人民帶來新的希望。

問題四

秦智勇-北京微電子所-工程師

醫療領域信息比較私密,訓練怎樣解決數據源的問題?

羅晟:這個問題問的非常好,醫療行業數據是比較私密的,怎麼解決數據源的問題呢?其實我是這麼理解的,首先在最開始訓練的時候,會有各種各樣的開放的數據集,可以去使用。另一方面,也可以嘗試跟一些重要的醫療機構進行合作,我相信隨著深度學習的發展,他們未來會需要用到深度學習的技術,而通過合作,他們可以提供各種各樣的數據,就像我前面的提到一個案例,美國的一個研究所,就在展開這樣的一個合作項目,去收集各樣各種各樣的數據,並開放給大家,幫助大家把深度學習的技術更好的的應用在醫療方面。

問題五

張承龍-中科院計算所-程序員

醫療領域主要採用哪種深度學習模型,為什麼這種模型效果要好,怎麼進行小樣本學習?

羅晟:深度學習模型有很多種,主要還是取決於應用的領域。比如藥物發現領域,可能會用圖卷積的網路,兩種圖卷積的模型都可以使用。如果是一些文本的記錄,肯定會用到NLP以及相關的模型;而對於醫療圖片,目前來說比較前沿的都會用GAN(生成時對抗網路)來做,訓練一個圖像分割器,以及一個生成器,來訓練一個更好的模型。

當然對於medical image來說,現在是比較容易做的。但是因為GAN有一個很大的問題,就是訓練比較難。對於圖像分割,用FCN可以取得一個好的效果。小樣本的學習,可以通過數據增強的方式,把數據集擴大,同時訓練時不要選擇太過複雜的網路,以避免一些問題,同時也可以進行一些數據的收集,以便在未來獲得一個通用性更強的模型。

問題六

潘宇-北航-微電子專業學生

目前要實現深度學習在醫療領域更好的應用還有哪些問題需要解決

羅晟:我覺得有非常多的問題需要解決,比如拿到了數據如何解釋。很多年前我在跟清華的一個教授合作的時候,使用一些醫療的信息,比如用深度學習去挖掘診脈的信息,怎麼讓診脈的結果出來之後可以做判斷?之前去拍MI和CT照片的時候,為什麼醫生可以說這樣是有問題的,那樣是沒問題的呢?

我相信在當時也是通過數據統計的方法,因為有些病人MI和CT的照片裡面有這樣的情況,所以我們就理解這個地方有這樣的問題。對深度學習或者在醫療行業做medical image來說,解決這個問題很簡單,我們能夠對最後的結果給出一定的解釋。不管是經驗也好,還是怎樣,我們能夠把它還原成類似MRI的照片從而告訴醫生這個地方是有問題的,通過這樣的方式,把可解釋性解決。從另一個方面就是我們的技術還有更多方面需要挖掘,在藥物發現裡面怎麼去做進一步的加速,在診斷系統裡面,怎樣更好的提高系統的準確性等,這些都是未來技術需要去解決的,也需要我們去為之努力。

問題七

喬冠超-電子科技大學-微電子專業學生

深度學習在醫療領域的應用在技術方面和其他領域有什麼區別?主要是演算法的創新還是硬體平台的創新?

羅晟:從技術根本來說,很多領域,比如圖片與圖像領域是一樣的,沒有太多的區別,在深度學習領域,我們談論的是通用型的模型,雖然不是通用人工智慧。像前面的例子,一個模型可以預測七十八種疾病,而之前只能識別一種,這樣一個通用的模型最重要一點就是數據,能提供這樣的數據,就需要一些數據的創新,也需要演算法的創新和更強的算力。

因為更多的數據,意味著需要更強的算力來支撐計算,有更好的模型能夠提供更好的精確性,但是在一定程度上模型的複雜度肯定是在增加的,也是需要更大的算力來支持的。所以更強的算力能夠保證可以去做一些迭代和測試,從而推動模型的發展,收集更多的數據,其實三者是相輔相成的。

問題八

劉汝洲-北京精真估-NLP技術部負責人

NLP在疾病診斷方面有哪些落地的應用

羅晟:前面已經講過關於NLP相關內容,可以用NLP對一些病例的信息分析,對於病例的分析主要有兩個方面,首先我們可以拿到一些疾病的信息,去做預測,當我們拿到一個最新的病人信息,把它放到模型裡面,可以通過病歷記錄訓練出一個模型,從而去判斷是否有潛在的疾病風險;另一方面,拿到這些信息之後,跟真實的信息進行比對,可以去做些推薦,獲得更好的推薦結果,這兩方面也已經落地應用了。

當然還有很多,現在有各種各樣的機器人在醫院裡面提供服務,比如問診機器人,去醫院就診時,可以去問一下機器人,它會根據你的描述給出相應的診斷反饋,這些都是未來需要提供的,也有一些項目已經落地,我覺得是非常好的。現在的三甲醫院是非常擁擠的,有了最開始的定位,才能更準確的選擇相應的科室,或者根據這些基本信息推薦解決方案等。

新課預告

#智東西公開課#9月13日晚8點,超級公開課IBM專場將開講,由IBM中國晶元設計部門高級經理尹文主講,也是首次公開線上講解POWER 9處理器!

課件獲取

第一講,NVIDIA大中華區高性能計算及Applied Deep Learning部門技術總監主講賴俊傑,主題為《如何搭建適合自己的深度學習平台》

第二講,NVIDIA高級系統架構師吳磊主講,主題為《如何為深度學習和HPC提供更高算力》

第三講,NVIDIA DLI認證講師侯宇濤主講,主題為《不需要寫代碼,如何用開源軟體DIGITS實現圖像分類》(線上實踐課程,無課件)

第四講,圖瑪深維首席科學家陳韻強、NVIDIA高級系統架構師付慶平共同主講,主題為《深度學習如何改變醫療影像分析》

第五講,NVIDIA DLI認證講師侯宇濤主講,主題為《手把手教你使用開源軟體DIGITS實現目標檢測》(線上實踐課程,無課件)

第六講,西安交大人工智慧與機器人研究所博士陶小語、NVIDIA高級系統架構師易成共同主講,主題為《智能監控場景下的大規模並行化視頻分析方法》

第七講,清華大學計算機系副教授都志輝、NVIDIA高級系統架構師易成共同主講,主題為《GPU加速的空間天氣預報》

第八講,希氏異構人工智慧首席科學家周斌主講,主題為《如何利用最強GPU搭建醫療人工智慧計算平台——醫學圖像AI領域最強超級計算機首次解密》

第九講,NVIDIA中國GPU應用市場總監侯宇濤主講,主題為《揭秘深度學習》

第十講,NVIDIA高級系統架構師張景貴主講,主題為《在你的桌面端通過NVIDIA雲端GPU開展深度學習》

第十一講,百度AI技術生態部高級演算法工程師趙鵬昊主講,主題為《如何藉助GPU集群搭建AI訓練和推理平台》

第十二講,NVIDIA 深度學習解決方案架構師羅晟主講,主題為《醫療領域的深度學習》


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 智東西 的精彩文章:

超級公開課NVIDIA專場7月開講,4場免費講解不可錯過!

TAG:智東西 |