【妄言板磚】傳統(tǒng)中醫(yī)和機器學習
大家好,我是弗禮free。本期我想對比一下傳統(tǒng)中醫(yī)和機器學習。這兩樣東西的本質是一樣的,都是從經(jīng)驗教訓中找規(guī)律,屬于經(jīng)驗主義的范疇。那既然本質一樣,為什么傳統(tǒng)中醫(yī)飽受詬病,被不少人認定是糟粕;而機器學習,缺被奉為數(shù)據(jù)科學,是人工智能,是未來的發(fā)展方向呢?我認為,傳統(tǒng)中醫(yī)在實踐中比機器學習少了兩個關鍵的思路。而缺少的這兩個思路也許能幫助傳統(tǒng)中醫(yī)解決一些問題。接下來,我想先從中醫(yī)爭論的落腳點聯(lián)系到機器學習,然后展開對比一下這兩者,最后再討論一下傳統(tǒng)中醫(yī)該如何借用機器學習來進步。
大家對于中醫(yī)的爭論已經(jīng)有一段時間了。從方法論的角度來看,中醫(yī)的理論模型談的是陰陽五行,不能被證偽,因此不能被稱為現(xiàn)代自然科學。但是符不符合自然科學的方法論跟我們是否應該摒棄一門學科沒有必然的聯(lián)系。支持中醫(yī)的聲音大致分為兩種。一種聲音覺得中醫(yī)是傳統(tǒng)文化的一部分,不能丟棄。這是價值觀上的爭論,涉及的范圍也超過中醫(yī)一門學科。這種爭論我們先擱置一下,留到以后再討論。另一種支持中醫(yī)的聲音覺得,中醫(yī)在治病救人或者養(yǎng)生保健方面是有實用效果的,有時還能解決一些西醫(yī)解決不了的病癥。這是從實用的角度來評判中醫(yī)。我相信對普通人來說,一門醫(yī)學能不能解決實際的問題往往是最重要的。如果有人完全搞清了月球上的地質結構,里里外外能給我們分個三千五百三十層,我猜大眾可能連被科普的興致都不高。但如果誰發(fā)明了一種家禽按摩手法,能讓母雞每天多下一個蛋,搞不好這一下就被奉為只因大師了。既然支持或者反對的聲音大多取決與實用效果,我們理所應當先搞清中醫(yī)是否實際有效。
那么如何能夠搞清中醫(yī)是否有效呢?如果這個有效指因果關系的話,那我們就需要做大樣本雙盲對照實驗,這也是很多反對中醫(yī)的人對中醫(yī)提出的挑戰(zhàn)??伤幏教嗔耍S便取一本傷寒雜病論,就有三百九十七法,一百十二方。那么多古籍加民間偏方,全都臨床實驗一遍代價太高了?,F(xiàn)在不是舊社會了,不好光天化日吃人了,這大樣本人體實驗是不好做的。所以因果性的有效,我看暫且是搞不清的。那么這個爭論的出路是什么呢?好像只能看籠統(tǒng)性的有效了。不管這中藥是不是在病理上有效,我只管把這個藥吃下去人能不能好。這種籠統(tǒng)性的有效研究了有意義嗎?我想還是有的。至少對現(xiàn)階段的普羅大眾來說,籠統(tǒng)性的有效往往是指導選擇的主要標準。你別管讀大學是不是真的能學到什么知識或者提升了什么能力,你讀了畢業(yè)了拿了文憑好找工作就行了。相信很多人是這樣想的。類似的,如果一個藥對一種病能穩(wěn)定有效,那即便是安慰劑效應,只要沒什么副作用,靠這藥治病也算是個切實的手段。要是服個烏雞白鳳丸就臉色紅潤了,嗑個六味地黃丸就覺得自己又行了,說這些藥有效也不為過。我這里只是打個比方,這兩味藥有沒有效果我是不清楚的。不過我們要清楚的是,籠統(tǒng)性包含了因果性,卻不能推導出因果性?;\統(tǒng)性的有效可以指導我們的做法,但是不能幫我們理解原理。好了,總之話說回來,由于現(xiàn)實原因,我們是不大好做大樣本雙盲對照實驗來評判中醫(yī)的因果性有效的,那么我們可不可以退而求其次,考慮一下中醫(yī)是否籠統(tǒng)性有效。
那我們怎么評判籠統(tǒng)性有效呢?終于談到了這一期的正題,靠機器學習。我們先來粗略地看一下機器學習的原理。機器學習是干什么的呢?通俗地講,就是從經(jīng)驗中找教訓。從目的上來看,機器學習要達成的的目標是做出有效的推測以及決策。一個常見的例子就是猜你喜歡。購物網(wǎng)站將各色各樣的貨物推送給感興趣的買家,視頻網(wǎng)站將五花八門的視頻推送給感興趣的觀眾。這些應用的本質就是給出準確的推測,用來支持決策。推測和決策正好也是醫(yī)療的目的,我們不就想找到有效的辦法解決病癥嘛。所以從目的上來看,機器學習是可以用作醫(yī)療的。那么方法上呢?想要做出有效的推測和決策,機器學習需要大量的數(shù)據(jù),根據(jù)不同的算法,從中找出規(guī)律,再用這個規(guī)律來給出推測。進一步說,機器學習只關心最后的判斷準不準,根本不管這種判斷有沒有道理可言,是不是因果關系,講不講科學。這是不是正符合我們想要檢驗的籠統(tǒng)性有效呢?再退一步講,機器學習是不是就跟中醫(yī)一樣,是所謂的經(jīng)驗智慧。神農嘗百草,然后說這草能止血,那個草能止瀉,然后沒有草能生發(fā)。這就是通過主管經(jīng)驗來總結用途。到底是什么營養(yǎng)物質,又或者病毒微生物,一概不知。所以說,傳統(tǒng)中醫(yī)和機器學習都屬于經(jīng)驗主義,本質上是一樣的。
那既然傳統(tǒng)中醫(yī)和機器學習本質上一樣,為什么兩者的可信度差那么多呢?中醫(yī)在很多人眼中是糟粕,但機器學習卻是未來。我想這種差別源于兩者實踐思想的不同。注意我這里講的是實踐思想,不是實踐條件。雖說在客觀條件上,中醫(yī)在漫長發(fā)展中大部分時間是沒有強大算力的,可是在算力大幅提高的過去幾十年里,我們也沒有見到中醫(yī)像其它學科那樣的進步。所以,我強調傳統(tǒng)中醫(yī)和數(shù)據(jù)科學的差別,在于實踐思想,而不是條件。那么這具體的差別是什么呢?我認為主要有兩方面。一是忽略了預測偏差,沒有控制過度擬合。二是缺少系統(tǒng)性的迭代進步。下面我們展開說說這兩個實踐思想上的差別。
我們想要從經(jīng)驗中總結教訓,做出準確預測,是要客服自身認知偏差的。復雜事物的預測總是會有誤差的,相似的,醫(yī)生的判斷也是會有差錯的。假設一個醫(yī)生的一個判斷有誤,理想的情況是我們能分清這個誤判是因為醫(yī)生的水平不行還是因為一些不可控的隨機因素。這個概念區(qū)分中醫(yī)里是有的。人們會分神醫(yī)庸醫(yī),這說的是醫(yī)生的水平,而不可控的因素就是所謂的天命。但是光有這樣的概念還不夠,我們還需要合理地區(qū)分這兩種誤差??墒侵嗅t(yī)在實踐中幾乎沒有對這兩類誤差進行區(qū)分。舉一個例子,扁鵲見蔡桓公。每隔十天,扁鵲見了蔡桓公就說他有病,見了三次,蔡桓公都不理。第四十天,扁鵲見到蔡桓公沒提有病的事就走了,而是判斷蔡桓公沒救了。第四十五天,蔡桓公身體疼痛,病死了。這個例子本意是告誡大家不要諱疾忌醫(yī),所以在常規(guī)的解讀里扁鵲是神醫(yī),做的所有判斷完全都是正確。但是我們光看對這個病例的敘述 ,也有另一種可能。扁鵲誤判了三次,第四次自暴自棄不看了,五天之后蔡桓公不巧突然得了什么急性病死了。僅憑這個故事的描述,我們判斷不了到底是哪種情況。這就是在實踐中,我們沒有辦法分辨那兩種誤差,到底是因為人的水平不行,還是有一些隨機的因素。舉這個例子,并不是想質疑扁鵲的醫(yī)術。我只是想指出,中醫(yī)在流傳的時候,往往只說成功的病例,而且把成功都算作人或者方子的功勞。不止如此,中醫(yī)還往往會過分神話一些醫(yī)生或者藥方,神醫(yī)是不會犯錯的,神藥是百試百靈的。就說扁鵲有沒有失敗的病例呢?好像沒怎么聽說過。講道理,如果中醫(yī)要健康發(fā)展的話,應當流傳所有的病例,不論成功失。在總結經(jīng)驗教訓的時候也不能把失敗都歸為天命,或者把成功全都歸為水平。在一個區(qū)域或者一代人中,人們也許能通過多個案例來判斷一個醫(yī)生的質量。但是在跨地區(qū)跨時代的交流中,中醫(yī)往往避開了失敗的案例,也沒有試圖辨析成功案例中的偶然性。預測偏差是普遍的,可是中醫(yī)沒有正視過這個偏差。除了忽視預測偏差之外,中醫(yī)實踐也常有過度擬合的問題。什么是過度擬合呢?就是在構建預測模型的時候,試圖創(chuàng)造額外的概念或者因素來解釋隨機的現(xiàn)象。說五臟虛實不夠,就配個陰陽,陰虛陽虛陰陽兩虛都不夠用了,就再提一個氣虛。提了這么多概念,也許最后就只是為了解釋被石頭絆了一下之后的心率變化。雖然這樣說起來是更頭頭是道了,但是過度追求預測模型的精度會導致更差的預測能力。如果大道至簡,那就不要裝得高深莫測。誤差跟擬合都是統(tǒng)計學的概念,是判斷預測模型好壞的標準,機器學習也是以這些為基礎的。那么機器學習如何訓練出預測能力更好的模型呢?一個重要的方法是交叉驗證。我們可以把數(shù)據(jù)分成兩組,一組用來當學習的經(jīng)驗,一組用來檢驗最后的學習成果。這跟模擬試卷很像。平時搞點模擬卷練習,留一套卷子不練,最后用來做測驗,看自己學習的成果怎么樣。如果所有的卷子都拿來練習,那就不好判斷學習的成果了。畢竟做練過的一摸一樣的題,正確率高是理所應當?shù)?。我想這就是中醫(yī)可以借鑒的地方。中醫(yī),如果能不論成敗保留病例,然后從一部分病例中總結經(jīng)驗,再在剩下的病例中驗證經(jīng)驗,相信對其判斷能力會有所提升。這就是第一個中醫(yī)和機器學習實踐思想上的差別。
除了缺乏對誤差跟擬合這些統(tǒng)計概念的認知,中醫(yī)的發(fā)展還缺少迭代進步。所謂的迭代進步,就是學科的翻陳出新,要么提高了成果效率,要么解決了之前解決不了的問題。對中醫(yī)來說,迭代進步就是指提高了治愈率或者解決了之前搞不定的疑難雜癥。這里強調一下迭代這個概念,它有持續(xù)不斷的意思在里面。我們即便以世紀這樣的大尺度來看,中醫(yī)也并沒有迭代進步。眼下的中醫(yī)跟上世紀上上世紀比,認知上沒有什么大的差別,至多是煎藥熬藥被一些中成藥代替了。這里再打一個比方,中醫(yī)里廣為流傳信奉的神醫(yī)到底誰是最強的?岐伯,扁鵲,華佗,張仲景,孫思邈,李時珍。我們能不能說這些神醫(yī)是一代強過一代?能不能治更多的病?治同樣的病能不能更有效?我們也許能拿一兩個病例說事,但總體來說,沒有辦法比較。那既然這些沒有辦法比較,我們也就不好談是進步踏步還是退步了。和其它傳統(tǒng)文化相似,中醫(yī)整體的學習方向是尚古,是經(jīng)典崇拜。這不是說中醫(yī)發(fā)展中沒有糾錯,或者沒有進步。只不過所謂的進步并不是迭代持續(xù)的,而是充滿了隨機性,有時還得多虧一些大逆不道欺師滅祖的行徑。一味經(jīng)典崇拜是一種盲目,如果所謂的經(jīng)典還是選擇性地只記錄成功病例。。。細思極恐。那么機器學習是怎么確保迭代進步的呢?首先機器學習有明確的進步方向,想主要是模型的準確率,準確率越高越好,毫不含糊?;蛘咴跍蚀_率相同的情況下,比較模型訓練的運算量,需要運算的量越少越節(jié)能節(jié)時間,代表效率越高。中醫(yī)能不能像這樣設立明確的進步方向呢?治愈率不就是一個很直觀的衡量標準嘛。那怎么進步呢?機器學習的做法是嘗試不同的算法,或者調整超參數(shù),然后比較最后的預測率。用中醫(yī)的比方來說,就是我用扁鵲的思維總結一堆病例,然后對測試組的病例做出預測,按準確率評個甲乙丙丁。然后再用華佗,張仲景,孫思邈,李時珍的思維如法炮制,最后誰的準確率高就用哪個。這只是個比方,我們當然不用主觀地去整理各派的思想,數(shù)據(jù)自己會告訴我們哪個方法更好。訓練出來的模型倒是可以用這些名醫(yī)的名字來命名,浪漫一點。浪漫歸浪漫,我們最終追求的還是更為有效的醫(yī)療手段。
以上兩點是我認為機器學習值得中醫(yī)借鑒的實踐方式。那么如果我們真的要用機器學習來嘗試推進傳統(tǒng)醫(yī)學的話,需要怎么做呢?首先就是搞數(shù)據(jù)。機器學習最重要的就是數(shù)據(jù),數(shù)據(jù)越豐富越準確,訓練出來的模型就越實際有效。在已發(fā)表的學術論文里,已經(jīng)有嘗試將機器學習用到中醫(yī)研究的?,F(xiàn)有的論文主要集中在診斷這一階段,或者說如何用ai模型代替望聞問切。其中用來訓練的數(shù)據(jù)有兩種,一個是讀取現(xiàn)有的文字病例,然后看機器的判斷與醫(yī)生的判斷是否相符。另一類研究數(shù)據(jù)是直接對患者進行面部掃描,聲聞采集,作為機器的望和聞,然后還是比較ai模型和醫(yī)生的判斷。這類論文的本質是在看能否用ai代替人工診斷,這是一個切實的出發(fā)點,成熟之后可以幫助減少診斷時的人工錯誤。但是要實現(xiàn)ai診斷的話,這些還是不夠的。畢竟中醫(yī)的診斷結論用的仍是中醫(yī)的理論話術,電腦推測個五行陰陽跟算命網(wǎng)站也沒什么太大區(qū)別。真正的ai診斷需要用診斷信息直接推斷到用藥用量,這些數(shù)據(jù)還是可以獲取的。不過ai代診仍然只是是一個用計算機代替人力的過程,并不能回答我們最關心的問題。中醫(yī)到底有沒有效?要回答這個問題,我們需要病人受診之后的數(shù)據(jù)。是否按時按量服藥,是否康復,是否有其它反應。這一塊的數(shù)據(jù)并不好采集,至少要等到體征檢測器普及之后才能大范圍得采集到?,F(xiàn)階段可用的只有復診的數(shù)據(jù)。如果病人選擇不復診的話,這數(shù)據(jù)也不完整,所以這樣的研究還得鼓勵病人都進行復診。只要能合理采集數(shù)據(jù),不僅中醫(yī)的有效性可以有個答案,中西醫(yī)的有效性的對比也是做得的。這些研究說起來不難,不過真的要搞起來還是費時費力的。風涼話這里就先打住了。
最后做一個小結。本期我將傳統(tǒng)中醫(yī)與機器學習做了一個對比。雖然本質上兩者都是經(jīng)驗主義的應用,不過傳統(tǒng)中醫(yī)缺少了統(tǒng)計學的誤差與擬合的理念,也不能像機器學習那樣迭代進步。所以大家對這兩者的態(tài)度會截然相反。以現(xiàn)階段的條件,我們研究不了中醫(yī)的因果有效性,不過機器學習是可以幫助我們研究傳統(tǒng)中醫(yī)的籠統(tǒng)性的有效的。這樣的研究必定是跨學科的合作,需要些機緣,不過倒是切實可行的。希望在不久的將來,我們能看到一些研究成果。也相信到時候,大家對于中醫(yī)的爭論也能達成共識。