我是一名消化內科醫生,平日的工作是消化內鏡的診療,統計學是愛好,近年來,我常常在思考我們以前在研究生時學的統計學和現在火得一塌糊塗的人工智能有什麼聯繫,我們年輕醫生有沒有可能利用這方面的知識爲研究增添亮點。

任正非曾說過,人工智能就是統計學。我們醫生在做臨牀研究的時候,會接觸到諸如t檢驗、方差分析、各種迴歸建模等常見的統計方法,這些方法在醫咖會的SPSS全套教程(【合集】75篇SPSS統計操作教程,全在這裏!)中都有詳細的講解。那麼這些統計學方法可以和高大上的人工智能扯上關係嗎?

今年6月,國內的《中華消化雜誌》還專門設了一期人工智能的專欄,然而這些綜述羅列了一些列的研究成果與晦澀的概念,理解門檻較高。我試試從一個一線臨牀醫生的角度談談我對傳統醫學統計學到人工智能的理解,因水平有限,文章不會涉及太多的公式原理,只講自己一些較爲通俗的理解。

傳統醫學統計學:P值的侷限

環顧各式各樣醫學統計學的書籍,你會發現到處都是無效假設、備擇假設、α、β、P值這些繞得要死的概念,前一天或許你還清清楚楚背了下來,不用幾天,又不記得具體含義了。之所以這些概念那麼繞口,我認爲是因爲醫學統計學所涉及的大都屬於“頻率學派”的內容,其基石是假設檢驗,而這假設檢驗又是需要用到繞口的反證法。

舉個簡單的例子,甲發明了一種新藥物,想了解它是否對治療感冒有效,於是找了100個人喫藥,作爲藥物組,另100個人喫安慰劑,作爲對照組。甲的試驗發現藥物組的治療有效人數是60個,對照組是40個,60%對40%,所以甲認爲是有效的;

乙也發明了一種藥物,也做了同樣的試驗,發現有效率分別是60%和50%。乙看了甲的試驗結果想了想,反正藥物組有效率都差不多,只是對照組的結果有點區別而已,那我的藥物也是有效的。

看到這裏,有一定統計學基礎的你肯定知道單看百分比是不對的,需要進行卡方檢驗。通過簡單的SPSS操作,可以知道甲組試驗的卡方值爲8,P=0.005,乙組的的卡方值爲2.02,P=0.155。

我們設定無效假設(H0):新藥物和安慰劑無治療差異;備擇假設(H1):新藥物和安慰劑有治療差異;設定顯著性水平α爲0.05;那麼P=0.005的意思就是說,假設H0真的成立的話,甲要重複1000次的話纔能有5次得到新藥物無效的結果,P值遠遠小於0.05,這麼低概率的事件肯定是不成立的,所以拒絕H0,接受H1,認爲新藥物是有效的。

對於乙來說,假如H0成立的話,它的試驗重複100次就有15-16次出現H0的結果了,這個概率還是挺高的,高於α,所以就不拒絕H0了,也就是說差異無統計學意義,暫不能認爲乙的新藥物是有效的。

注意,p值並不能描述無效假設和備選假設本身爲真的概率,p值只描述樣本與無效假設的相悖程度,P=0.05代表100次試驗纔出現5次無效假設的結果。這個概率實在太小了,所以我們認爲無效假設是假的。

那麼我們有沒有什麼方法可以知道出現無效假設和備擇假設的概率是多少呢?有沒有可能知道每個試驗個體有多少概率會對藥物有效呢?機器學習或許能打開你新的思路。

機器學習:從另一個角度看logistic迴歸

什麼是機器學習?卡內基梅隆大學(Carnegie Mellon University)的Tom Michacl Mitchell教授在其1997年出版的《Machine Learning(機器學習)》一書中對機器學習給予了非常專業的定義:如果一個程序可以在特點任務上,隨着經驗的增加,效果也可以隨之增加,則稱這個程序可以從經驗中學習。

這一關於機器學習的定義在學術界內被廣泛引用。打個比方,機器學習就像一羣要準備高考的學生,他們的名字分別是“logistic迴歸”、“決策樹”、“隨機森林”、“支持向量機”、“神經網絡”等等,他們各有各的獨特的解題技巧,但都有一個共同的特點:你給的訓練試卷越多、越有代表性,那麼他們在高考的表現就越好。

在這羣學生中,就數小羅同學(logistic迴歸)最熟悉最經典了,他是我們病例對照研究中的常客。在傳統醫學統計學方面,他可以幫我們篩選預測變量、校正混雜因素、算出OR值,從機器學習的角度,他還可以幫我們做預測、判別。

我們回顧一下醫咖會SPSS教程《SPSS操作:多項測量指標的ROC曲線分析》,案例收集了85例肺癌患者,259例非肺癌患者,結局變量爲二分類變量:是否患肺癌;預測變量有5個:年齡、性別、BMI、COPD病史、吸菸史,這次的統計任務就是通過這5個預測變量,推算患肺癌概率

概率P爲結局變量,取值範圍在0-1;5個預測變量參照線性迴歸模型的結構:β0+β1X1+……βpXp,取值範圍在負無窮到正無窮。結局變量和預測變量是無法直接聯繫起來的,需要經過Logit變換,以下也就是logistic迴歸模型的表達:

Logit P=β0+β1X1+……βpXp

一通轉換操作下來,可以得到P=1/1+e-β0+β1X1+……βpXp,這也是鼎鼎大名的sigmoid函數,在後面的神經網絡還會提到。

Sigmoid函數

公式中的β0、β1這些係數通過極大似然估計得到的,通過這個公式就可以算出每個個體得肺癌的概率。我們按照教程,可以看到每個案例個體後都生成了一個概率值。

但這還遠遠不是機器學習的體現,因爲這個簡單的教程中缺少了訓練集與測試集的劃分,還有模型的評價。這個數據有300多個案例,小羅同學全拿來做訓練,但缺少了最終的考試,平時訓練的成績再好也說明不了什麼。

所以最好劃分出70%的訓練集,30%的測試集,評價測試集的成績。看到這裏,你或許會想,這怎麼和目前流行的臨牀預測模型那麼像?其實,現在遍地開花的臨牀預測模型培訓班也正是從機器學習領域中吸取了一部分精華。

這就是小羅同學在二分類任務中的體現,作爲機器學習中經典的分類器,他常常被用來和其他同學比較。

深度學習:神經網絡的蓬勃發展

剛纔說過,機器學習這個班上有各色各樣的同學。小羅同學是個規規矩矩的學生,每道題他都能清清楚楚地說出它的每個係數、每個概率是怎麼算出來的。而大神同學(神經網絡)似乎只注重結果不注重過程,給他一份試卷,他或許可以做得很好,但是他就是講不清楚他爲什麼這麼做,久而久之,人們覺得他腦子像個黑箱(可解釋性差),考試全憑直覺。

但是大神有個很厲害的技能,他會反覆對每個錯題都仔細覈對,糾正做題方法(損失函數)。有時這會取得很好的效果,但有時他把一些無關因素都當做做錯題的原因(過擬合),例如握筆的力度太輕了,讓人哭笑不得。20世紀40年代,大神同學就已經來到了機器學習這個班上,比小羅同學都早30年,但是就是因爲他古怪的性格一直被歧視。直到21世紀初至今,隨着大數據的湧現和計算機能力的提升,他的能力突然呈爆發性增長,成爲班裏最矚目的一個學生,甚至獨創了“深度學習”這個門派。

神經網絡是模擬神經元的創造出來的,然而我們醫生羣體理解起來還是略困難,筆者試圖翻了幾本有關機器學習和深度學習的書籍也沒有找到通俗易懂的解釋,這裏借用周志華《機器學習》中的定義:神經網絡是由具有適應性的簡單單元組成的廣泛並行互連的網絡,它的組織能夠模擬生物神經系統對真實世界物體所作出的交互反應。

要在短的篇幅說清楚神經網絡是很困難的,簡單來說神經網絡分成3個部分:輸入層、隱藏層和輸出層;以上述肺癌的數據爲例,輸入層就是5個預測變量,輸出層就是是否患肺癌。隱藏層和每層的節點可以有很多,典型的深度學習模型就是很深層的神經網絡。

隱藏層中的節點就如同神經元,一方面處理輸入的信息,一方面進一步加工輸出到輸出層,他們之間通過權重w聯繫。輸入層的信息來到節點會進行加總,通過激活函數(譬如sigmoid函數)傳到下一層。在迭代訓練的過程中,上次訓練輸出的預測值會與真實值對比,產生損失函數(Loss Function)逆向傳播,重新調整隱藏層每個神經元的權重參數與激活的閾值。所以神經網絡的學習就是不斷調整權重的過程。

這麼高大上的算法,SPSS很早就有了,打開分析菜單欄就可以看到神經網絡選項,裏面有兩個簡單的神經網絡:多層感知器和徑向基函數,裏面的隱藏層只能設置一到兩個,

具體的操作可以參考張文彤老師的《SPSS統計分析高級教程》。R語言中也有多個關於神經網絡的學習包,包括nnet、AMORE、neuralnet和RSSNS包,可以創建更復雜的神經網絡。

那麼這個高大上的算法是不是就比經典的logistic迴歸預測得更好呢?有興趣的同學可以回到剛纔的肺癌數據集中,用SPSS跑一遍。你會發現,神經網絡在這個數據集中表現得並不怎麼好,有時甚至還不如logistic迴歸。

再回顧國內外的文獻,也有些研究試圖用神經網絡預測臨牀事件,它們有的發現效果不如logistic迴歸,有的則發現神經網絡模型的AUC會稍高,但如果深究下去,這種AUC的差異很可能是沒有統計學意義的。造成這個現象的原因有很多,包括數據本身的分佈性質、樣本量不夠、收集的預測變量代表性不足、模型的過擬合等等。

其實神經網絡並不一定適用於普通的數據分析。我們臨牀研究中的數據集,一般都在幾百例左右,稍大一點的多中心研究可能達到數千例,預測變量也不會很多。對於這種級別的數據量,神經網絡設置1-3個隱藏層就差不多了,再多也難以提高預測準確率,反而增加了過擬合的風險。

相比之下,圖像識別領域中的神經網絡結構動輒數十上百層結構,實在不是一個級別。在大數據時代到來之前,人們覺得神經網絡不好解釋,預測能力也不怎麼好,它被冷落也是情理之中了。

人工智能:從數據分析到工程領域

2016年,AlphaGo的橫空出世把人工智能的概念帶到千家萬戶。與此同時,越來越多的人工智能技術應用在醫療領域:病理圖片的識別、CT病竈的分割、眼底疾病的診斷等等,在我們的消化內鏡領域也出現了很多諸如腸道息肉的目標識別、息肉類型的分類、早癌病竈範圍的發現及分割等等,就在2019年初,奧林巴斯公司官方宣傳他們已經開發出具有AI功能的內窺鏡了,很快就能進入量產。這些技術和上面提到的神經網絡有什麼聯繫呢?

有沒有想過,其實圖片也是數據的一種呢?譬如一張2.5cm*3.5cm的標準一寸黑白照片,若分辨率爲300dpi,就可以理解成295×413像素點(作者注:若要嚴謹換算可參考工具網頁https://www.gaitubao.com/tools/pixel2cm.html)。

現在我們手上有1000張一寸照片,想做AI程序分辨照片裏的人是男是女。爲了便於理解,換成我們常用的表格,那麼這個數據集就有1000行,295×413列,然而輸入的圖像是一個矩陣,不能平鋪成這麼多列,所以及計算的方法也和上文提到的不一樣了。對於這種規模的數據,經典的logistic迴歸和簡單的神經網絡恐怕是捉襟見肘了。這時候更高級的神經網絡——卷積神經網絡出現了,我們開始從數據分析走到工程領域。

我嘗試從一個醫生的角度來談談卷積神經網絡的工作原理。決定是否得肺癌的原因(預測變量)有很多,但有些重要有些不重要,我們臨牀研究會利用多因素分析去提取重要的預測變量。同樣的,我們也需要從照片中295×413個像素點(預測變量)提取或總結出重要的特徵,來判斷照片裏的是男還是女。

如下圖所示,輸入的圖像是一個矩陣,經過中間的框框運算處理,就得到了新的特徵圖(卷積的過程)。新的特徵圖我們通過一定的函數運算(譬如取矩陣內最大值、最小值等)最終得出一個分數(池化的過程),這個分數經過激活函數的轉化就可以成爲一個0-1的概率表示了。如果預測錯了,裏面的權重就會根據損失函數自動調整,重新再來,直到找到合適的權重。當然,大部分卷積神經網絡都是有很多層的,遠遠不是這麼簡單。

現在AI圖像識別領域中已經湧現出非常多優秀的複雜的卷積神經網絡了,譬如U-net用於CT圖像的病竈識別,Segnet用於消化道早癌的識別等等。對於一般的研究者來說,我們可以站在巨人的肩膀上,收集好數據,利用並優化好合適的神經網絡模型,那麼一個AI程序或許就能產生了。

大時代下的小醫生該何去何從

醫生單靠個人力量是無法開展一個像樣的AI研究的。

其一,AI程序的質量非常依賴高質量的原始數據,就拿華西醫院2019年8月在GIE上發表了一篇關於食道早癌AI圖像識別程序的文章來說,裏面就收集了1480張早癌圖片,5191張正常圖片,這是一個很大的工作量。

其二,術業有專攻,本來就很繁忙的臨牀醫生沒有時間專攻AI技術。要運用好這些高級神經網絡模型,需要學習python語言和tensorflow、Keras、Torch等主流深度學習框架,這比學習SPSS和R語言難得多。這個學習難度就像是要程序員重新學醫一直學到能上臺做手術一樣。所以,醫工結合是開展AI研究的最好方式。

或許你會問,我只是個在基層醫院的小醫生,手裏沒這麼多數據,也找不到人和我合作,那這個AI技術又和我有什麼關係呢?或許這個例子可以給你啓發:90後的中南大學特聘教授齊沖沖專業研究領域是礦業工程,同時還致力於將人工智能以及機器學習的技術應用於礦業領域,所發表的論文不少與機器學習/神經網絡相關。

有人評論,或許這些論文應用的人工智能技術在專業AI人士角度是微不足道的,但在礦業工程領域卻是很大的創新,這就是跨行業的降維打擊。同樣的,AI技術在未來會下沉到更多的醫生羣體,去填補這個領域的空白。

這麼想來,近幾年的臨牀預測模型火爆是有一定的時代背景的,說不定未來會有更多的結合了機器學習、深度學習的醫學研究方法出現。讓我們成爲跨學科的人才,一起去迎接這個嶄新的時代吧!

1.AI與臨牀研究:研究設計、加速患者招募...AI如何提高研究效率?

由醫咖會與心聯喬治心臟健康研究中心(HHRC)聯合建立的心血管研究協作網絡及數據共享平臺(CDS)已經上線!

目前開放共享的數據爲“中國房顫註冊研究”,共有2.5萬多房顫數據,歡迎來申請使用數據,發表SCI論文!

平臺網址:

相關文章