?
引言:?從 GPT 模型說起
23 年科技界最大的熱點,無疑是自然語言處理的 GPT 模型,起初有人還對 ChatGPT 不屑一顧,質(zhì)疑其缺乏獨立思考,考試成績不好。結(jié)果新 GPT-4 模型,在律師資格考試成績排名前 10%,在 SAT 數(shù)學考試中排名前 11%。這些成績背后的分析綜合、邏輯推理、歸納總結(jié),不正是父母們煞費苦心,給人類幼崽們培(灌)育(輸)的能力嗎?
一、大模型,還是小模型?
然而巨型自然語言模型成功背后,也是以驚人算力為代價的。據(jù) Semafor 披露, GPT-4 語言模型有 1 萬億模型參數(shù)。巨型模型有其固有特點:
01
海量數(shù)據(jù)集
海量模型參數(shù),就需要海量的訓練數(shù)據(jù)。海量數(shù)據(jù)的采集、標注成本高昂。這也是為什么之前的巨型模型,大都源于像谷歌、微軟等方便獲得海量數(shù)據(jù)的互聯(lián)網(wǎng)/科技巨頭。
然而“足夠”的數(shù)據(jù),在很多醫(yī)療領(lǐng)域是不存在。如罕見先心病,Ebstein 異常三尖瓣畸形,6000 多萬人口的意大利,一年只有 30 例左右。且臨床致病因素復雜、隱私保護、壁壘等種種原因,醫(yī)療領(lǐng)域并沒有像互聯(lián)網(wǎng)一樣,唾手可得且標注完善的海量數(shù)據(jù)集。多數(shù)需要解決的問題,恰恰是如何在小型數(shù)據(jù)集上,高質(zhì)量解決實際臨床應用。
02
落地部署
GPT-4 語言模型據(jù)說有萬億級模型參數(shù),一旦大規(guī)模實際部署,將是驚人的算力成本。高昂的算力成本,也許對 NVIDIA 是好消息,對 AI 醫(yī)療設備落地推廣卻未必。因此真正有應用前景的醫(yī)療設備,不僅僅要做得出來(模型精度),更重要的是用得起(輕量級模型)。
而輕量級模型的低算力成本、低功耗、低延遲特性,則明顯便于小型便攜醫(yī)療設備的實現(xiàn),無論是醫(yī)院臨床應用,還是對于術(shù)后家用監(jiān)護,都是最佳選項。如心電監(jiān)護、呼吸監(jiān)護、哮喘監(jiān)測、可穿戴設備、腦機接口等醫(yī)學信號處理應用,輕量級模型都更便于部署和使用。
綜上,AI 在醫(yī)學信號處理中的應用落地來說,有很不同的需求差異,即小型數(shù)據(jù)集以及輕量化模型的部署。也因此,吳恩達這位來自斯坦福的 AI 大咖,近年來致力于 AI 的落地,一改前十幾年中在谷歌、百度的思路,即以模型為中心,模型越來越大,越來越復雜的傾向;開始推廣輕量級落地 AI(Unbiggen AI)。去解決大多數(shù)實際工程化落地應用中,真正要面對的“小數(shù)據(jù)集”(small data)問題【1】。

二、輕量級模型的工程化實現(xiàn)
簡潔,并不簡單。比如,AI 業(yè)內(nèi),大家傳統(tǒng)認為模型精度會隨數(shù)據(jù)集增大,也一起提高。而當數(shù)據(jù)集有限時,如何持續(xù)優(yōu)化模型,使其具備不亞于巨型模型的精度?再比如,小數(shù)據(jù)集通常的過擬合問題,如何解決?
實際上,如果僅僅是進行純學術(shù)研究,使用完善的開源數(shù)據(jù)集,那么僅需要關(guān)注模型本身。但如果要做的是 AI 模型的工程化實現(xiàn),則與純學術(shù)研究不同,AI 工程化實現(xiàn)的性能,并不僅僅由模型本身決定(下圖中紫色框)。而是由從左到右的四個過程共同決定的,這也是為什么若只關(guān)注模型本身的優(yōu)化,不斷用更大規(guī)模、更復雜到的模型,其結(jié)果往往是逼迫擁有海量參數(shù)的模型在舊數(shù)據(jù)集上,以死記硬背的方式記住“正確答案”;而在新數(shù)據(jù)集就差強人意。

? ?
對于數(shù)據(jù)集準備、模型開發(fā)和部署實現(xiàn),MATLAB 中提供了系列的自動化 APP,可以幫助大家以高度自動化的方式,快速完成耗時費力的數(shù)據(jù)集標注、模型的快速搭建和訓練、模型的裁剪和量化、嵌入式代碼生成等,具體內(nèi)容,大家可以參考這里的介紹:將深度學習用于信號處理【2】和創(chuàng)建標注數(shù)據(jù)來訓練和驗證模型【3】。
三、輕量化模型的點睛之筆——預處理及特征提取
本文將主要關(guān)注于預處理及特征提取。臨床實際應用情況千變?nèi)f化,難以想象一臺臨床醫(yī)療設備,監(jiān)測分析的結(jié)果飄忽不定、忽好忽壞。而預處理及特征提取,這個部分恰恰為工程化實現(xiàn),提供了重要的魯棒性;而信號特征的提取,將稀疏、復雜的原始數(shù)據(jù)進行提煉,尤其投影在變換域上,得到精干的描述,這才使輕量級 AI 模型的使用成為可能。
可能有小伙伴覺得,AI 時代了,應該是:
AI vs. Signal Processing
其實業(yè)內(nèi)的成功案例,恰恰是各取所長,即:
AI + Signal Processing
讓我們看兩個成功實例,一個是 Respiri 開發(fā)用于喘息檢測和哮喘管理(如下圖)。他們將采集的喘鳴聲,進行預處理轉(zhuǎn)換為頻譜圖,然后分析頻譜圖,根據(jù)其能量模式和其他常見特征識別潛在的哮喘患者。
將復雜的哮喘預測和管理問題,轉(zhuǎn)化為頻譜圖,并選取恰當特征,取得了四兩拔千斤的效果。輕松在手持便攜設備上實現(xiàn),使哮喘監(jiān)測,從醫(yī)院臨床走進千家萬戶,提高哮喘患者生活質(zhì)量,同時也獲得健康管理這個龐大的市場。

另一個例子(如下圖),德州大學奧斯汀分校的腦機語言轉(zhuǎn)化試驗。希望幫助肌萎縮癥晚期患者,通過腦機接口,仍保持與外界的溝通。借助? Wavelet Toolbox,使用小波多分辨率分析技術(shù)將腦磁圖 MEG 信號降噪,并分解為特定的神經(jīng)振蕩帶(高伽馬、伽馬、阿爾法、貝塔、西塔和德爾塔腦波)。
然后從去噪和分解的信號中提取特征。包括均值、中位數(shù)、標準差、四分位數(shù)和均方根。當嘗試的 SVM 和 ANN 方法,得到大約 80% 的分類準確率,而當結(jié)合小波和深度學習時,這個準確率提高到了 96 %以上。AI + Signal Processing?的神奇合力。

? ? ?
四、AI + Signal Processing 實例——無接觸式病人監(jiān)測
故事講完了,下面就為大家舉一個實例,讓大家眼見為實,體會到 AI + Signal Processing 的神奇合力,以達到小模型,大效果的目標。
【實例】

無接觸式病人監(jiān)測。術(shù)后病人往往渾身插滿大大小小的管線,其中除了輸液和供氧,大都是心跳和呼吸監(jiān)控的。翻身和活動都受限,尤其術(shù)后,會很難受。因此,臨床產(chǎn)生墻裂的無接觸式病人監(jiān)控設備需求。如下圖所示,在病人上方設置一個功率很小的雷達,通過檢測心跳的胸腔起伏,對連續(xù)波雷達波的影響,從回波中還原出病人的心跳。
數(shù)據(jù)準備:1.從志愿者身上以傳統(tǒng)方式采集準確的心電圖,2.同時從雷達上采集回波數(shù)據(jù)。
目標:從下圖中,上面一行的雷達回波中,得到下面一行的ECG心電圖。

?
?
01
Test?1:
首先嘗試將 Raw Signal 雷達回波原始數(shù)據(jù),直接提供給神經(jīng)網(wǎng)絡。

構(gòu)建 1D 卷積網(wǎng)絡 +BiLSTM 的神經(jīng)網(wǎng)絡如下:

心中默念“芝麻開門”,等待不到一個世紀后,得到訓練后模型,對輸入雷達回波,還原出的心電圖如下圖所示,第一行是雷達回波,第二行是實測心電圖,第三行是還原出的心電圖。第二、三行信號天壤之別,是不是神經(jīng)網(wǎng)絡的神力消失了?第一反應,是用更大的更高級的模型?

且慢。想到小模型,大效果的目標。讓我們試試 AI + Signal Processing 的神奇合力。
02
Test?2:
這次,我們希望嘗試添加一些預處理和特征提取功能,看看能否化腐朽為神奇??赡芎芏嘈』锇槿狈π盘柼幚肀尘?,對信號處理望洋興嘆。確實,過去我們設計信號處理算法,還需要查手冊、記語法、寫代碼、調(diào) Bug,想想處處是坎,步步有坑。T-T
而 MATLAB 提供了非常豐富、好用的信號處理算法設計功能。還有一系列圖形化界面的 APP,可以快速嘗試各種算法設計,設置調(diào)整各種參數(shù)和配置,并可視化效果,達到要求后,所有在圖形化 APP 中完成的操作,自動轉(zhuǎn)化為對應 MATLAB 函數(shù)/代碼。
下面,給大家展示,如何快速設計用“高深”的小波分解和信號重構(gòu),來設計這里的預處理和特征提取模塊。注意哦,我們不看手冊、不記語法、不寫代碼,更不調(diào) bug。
基本思路:根據(jù)物理原理,我們知道心跳胸腔起伏,會在雷達回波中,引發(fā)微多普勒效應,因此回波中應該包含了心跳信號,我們先對回波進行小波分解,然后再基于有效成分,進行信號重構(gòu)。
我們打開信號多分辨率分析器,這個圖形化 APP。在左上角可以設置小波基及分解層數(shù)等。中間窗口,可看到分解的各個成分。左下角可勾選用于最終重構(gòu)的成分。最右邊窗口,用不同顏色顯示原始信號和重構(gòu)信號。

將回波導入 APP 后,在中間窗口看到如下各分解成分。將其與目標 ECG 心電信號比對,發(fā)現(xiàn) level1、level2、level6 及 scaling coefficients 與目標 ECG 相關(guān)度很小。于是僅將 level3-5,在左下角勾選,用于 ECG 信號重構(gòu)。滿意后,做的所有操作,可以點擊 export,自動生成 MATLAB 函數(shù),不必寫代碼,不必調(diào) bug。

03
算法模型搭建:
基于上面的分析,設計的網(wǎng)絡如下。傳統(tǒng)預處理模塊,通常獨立于神經(jīng)網(wǎng)絡之外,而 MATLAB 中專門提供了離散小波分解的層,并支持選擇小波基和信號重構(gòu)的成分。這一層的可理解成固定系數(shù)的層,不需要參與學習。放在網(wǎng)絡模型中的預處理層,大大簡化模型搭建;在訓練時,也不必單獨先對數(shù)據(jù)成批預處理,將預處理后的特征向量,存在本地,再分批讀取訓練;MATLAB 支持合并在同一個模型中,就可以像普通網(wǎng)絡模型一樣,直接提供數(shù)據(jù)訓練即可(生活多美好)。類似的層,MATLAB 也提供cwtLayer、 stftLayer 層,分別可支持連續(xù)小波變換和短時傅里葉變換。

心中再次默念“芝麻開門”,得到訓練后模型,對輸入雷達回波,還原出的心電圖如下圖所示,第一行是雷達回波,第二行是實測心電圖,第三行是之前未使用小波變換,還原出的心電圖,第四行是使用小波分解和信號重構(gòu)的預處理后,還原出的心電圖。第四行和第二行高度一致,驚不驚喜,意不意外?還是那個毫不起眼的輕量小模型,在與 AI + Signal Processing 的結(jié)合,產(chǎn)生出神奇的效果。

五、總結(jié)
請慢慢品味算法中的美感,我們簡單總結(jié)下所展示的。最初直接將原始信號輸入 1D 卷積 +BiLSTM 神經(jīng)網(wǎng)絡,經(jīng)過漫長訓練,還原出的信號,完全看不出目標心電信號的影子;而采用信號多分辨率分析器快速探索設計的,基于離散小波分解和信號重構(gòu)的預處理算法,與最初這個輕量級模型結(jié)合,就馬上化腐朽為神奇。從一片嘈雜的回波中,準確還原出了目標心電信號。這個 Demo 已被發(fā)布在 MATLAB shipping demo 中。心動不如行動,感興趣的小伙伴?【4】。
細細品味后,好的預處理及特征提取,是高性能、輕量化模型成為可能的點睛之筆。臨床實際應用千變?nèi)f化,這個部分恰恰為醫(yī)療設備的工程化落地,提供了重要的魯棒性和可靠性;而信號特征的提取,將稀疏、復雜的原始數(shù)據(jù)進行提煉,尤其投影在變換域上,得到精干的描述,這才使輕量級 AI 模型的使用成為可能。
編輯:黃飛
?
電子發(fā)燒友App






















評論