荣格工业资源APP
了解工业圈,从荣格工业资源APP开始。
2023年科技界最大的热点无疑是自然语言处理的GPT模型,然而巨型自然语言模型成功的背后,是以惊人算力为代价。据Semafor披露,GPT-4语言模型有1万亿模型参数。巨型模型有其固有特点:
1、海量数据集
海量模型参数就需要海量的训练数据。海量数据的采集、标注成本高昂。这也是为什么之前的巨型模型大都源于像谷歌、微软等方便获得海量数据的互联网/科技巨头。
然而“足够”的数据在很多医疗领域是不存在的。如罕见先心病,Ebstein 异常三尖瓣畸形,6000多万人口的意大利一年只有30例左右。且临床致病因素复杂、隐私保护、壁垒等种种原因,使得医疗领域并没有像互联网一样拥有唾手可得且标注完善的海量数据集。多数需要解决的问题,恰恰是如何在小型数据集上高质量解决实际临床应用。
2、落地部署
GPT-4语言模型据说有万亿级模型参数,一旦大规模实际部署,将是惊人的算力成本。高昂的算力成本也许对NVIDIA是好消息,对AI医疗设备的落地推广却未必。因此真正有应用前景的医疗设备不仅仅要做得出来(模型精度),更重要的是用得起(轻量级模型)。
而轻量级模型的低算力成本、低功耗、低延迟特性则明显便于小型便携医疗设备的实现,无论是医院临床应用,还是对于术后家用监护,都是最佳选项。如心电监护、呼吸监护、哮喘监测、可穿戴设备、脑机接口等医学信号处理应用,轻量级模型都更便于它们的部署和使用。
综上,从AI在医学信号处理中的应用落地来说,有很不同的需求差异,即小型数据集以及轻量化模型的部署。也因此,吴恩达这位来自斯坦福的AI大咖,近年来致力于AI的落地,一改前十几年在谷歌、百度的思路,即以模型为中心且模型越来越大、越来越复杂的倾向;开始推广轻量级落地AI(Unbiggen AI),去解决大多数实际工程化落地应用中真正要面对的“小数据集”(small data)问题。
轻量级模型的工程化实现
简洁,并不简单。比如,AI业内,大家传统认为模型精度会随数据集增大而一起提高。而当数据集有限时,如何持续优化模型,使其具备不亚于巨型模型的精度?再比如,如何解决小数据集通常的过拟合问题?
图1
实际上,如果仅仅是进行纯学术研究,使用完善的开源数据集,那么仅需要关注模型本身。但如果要做的是AI模型的工程化实现,则与纯学术研究不同,AI 工程化实现的性能,并不仅仅由模型本身决定(图1中紫色框),而是由从左到右的四个过程共同决定的。
这也是为什么若只关注模型本身的优化,不断用更大规模、更复杂的模型,其结果往往是逼迫拥有海量参数的模型在旧数据集上,以死记硬背的方式记住“正确答案”;而在新数据集就差强人意。
对于数据集准备、模型开发和部署实现,MATLAB中提供了系列的自动化APP,可以帮助大家以高度自动化的方式,快速完成耗时费力的数据集标注、模型的快速搭建和训练、模型的裁剪和量化、嵌入式代码生成等。
轻量化模型的点睛之笔——预处理及特征提取
本文将主要关注于预处理及特征提取。临床实际应用情况千变万化,难以想象一台临床医疗设备的监测分析结果飘忽不定、忽好忽坏。而预处理及特征提取,这个部分恰恰为工程化实现提供了重要的鲁棒性;而信号特征的提取,将稀疏、复杂的原始数据进行提炼,尤其投影在变换域上,得到精干的描述,这才使轻量级AI模型的使用成为可能。
可能有小伙伴觉得,AI 时代了,应该是:AI vs. Signal Processing。而其实业内的成功案例,恰恰是各取所长,即:AI + Signal Processing。
让我们看两个成功实例,一个是Respiri开发用于喘息检测和哮喘管理。他们将采集的喘鸣声进行预处理转换为频谱图,然后分析频谱图,根据其能量模式和其他常见特征识别潜在的哮喘患者。
将复杂的哮喘预测和管理问题转化为频谱图,并选取恰当特征,取得了四两拔千斤的效果。轻松在手持便携设备上实现,使哮喘监测从医院临床走进千家万户,提高了哮喘患者生活质量,同时也获得健康管理这个庞大的市场。
在另一个例子中,德州大学奥斯汀分校的脑机语言转化试验希望帮助肌萎缩症晚期患者,通过脑机接口保持与外界的沟通。借助Wavelet Toolbox,使用小波多分辨率分析技术将脑磁图MEG信号降噪,并分解为特定的神经振荡带(高伽马、伽马、阿尔法、贝塔、西塔和德尔塔脑波)。
然后从去噪和分解的信号中提取特征,包括均值、中位数、标准差、四分位数和均方根。当尝试的SVM和ANN方法得到大约80%的分类准确率,而当结合小波和深度学习时,这个准确率提高到了96%以上。这就是AI + Signal Processing的神奇合力。
AI + Signal Processing实例——无接触式病人监测
下面就举一个实例——无接触式病人监测,让大家眼见为实,体会到AI + Signal Processing的神奇合力,以达到小模型、大效果的目标。
术后病人往往浑身插满大大小小的管线,其中除了输液和供氧,大都用于心跳和呼吸监控。其翻身和活动都受限,尤其术后会很难受。因此,临床上有着极强的无接触式病人监控设备的需求。在病人上方设置一个功率很小的雷达,通过检测心跳的胸腔起伏对连续波雷达波的影响,从回波中还原出病人的心跳。
图2
数据准备:1)从志愿者身上以传统方式采集准确的心电图;2)同时从雷达上采集回波数据。目标:从雷达回波中得到ECG心电图。
1、Test 1:首先尝试将Raw Signal雷达回波原始数据直接提供给神经网络,再构建1D卷积网络+BiLSTM的神经网络。等待不到一个世纪后,得到训练后模型,对输入雷达回波,还原出的心电图如图2所示,第一行是雷达回波,第二行是实测心电图,第三行是还原出的心电图。第二、三行信号天壤之别,是不是神经网络的神力消失了?第一反应是应该用更大、更高级的模型?但是,想想小模型、大效果的目标,让我们试试AI + Signal Processing的神奇合力。
2、Test 2:这次,我们希望尝试添加一些预处理和特征提取功能,看能否化腐朽为神奇。可能很多人缺乏信号处理背景,而对信号处理望洋兴叹。确实,过去我们设计信号处理算法还需要查手册、记语法、写代码、调Bug,处处是坎,步步有坑。而MATLAB提供了非常丰富、好用的信号处理算法设计功能。还有一系列图形化界面的APP,可以快速尝试各种算法设计,设置调整各种参数和配置,并可视化效果,达到要求后,所有在图形化APP中完成的操作,自动转化为对应MATLAB函数/代码。
接下来将展示如何快速设计用“高深”的小波分解和信号重构,来设计这里的预处理和特征提取模块。此处,我们不看手册、不记语法、不写代码,更不调 bug。
基本思路是,根据物理原理,心跳胸腔起伏会在雷达回波中引发微多普勒效应,因此回波中应该包含了心跳信号,我们先对回波进行小波分解,然后再基于有效成分进行信号重构。
我们打开信号多分辨率分析器这个图形化APP。在左上角可以设置小波基及分解层数等,中间窗口可看到分解的各个成分,左下角可勾选用于最终重构的成分,最右边窗口用不同颜色显示原始信号和重构信号(图3)。
图3
将回波导入APP后,在中间窗口看到如下各分解成分。将其与目标ECG心电信号比对,发现level1、level2、level6及scaling coefficients与目标ECG相关度很小。于是仅将level3-5在左下角勾选,用于ECG信号重构。满意后,做的所有操作可以通过点击export自动生成MATLAB函数,不必写代码和调bug(第21页图4)。
3、算法模型搭建:基于上面的分析,设计的网络如下。传统预处理模块通常独立于神经网络之外,而MATLAB中专门提供了离散小波分解的层,并支持选择小波基和信号重构的成分。这一层的可理解成固定系数的层,不需要参与学习。放在网络模型中的预处理层,大大简化模型搭建;在训练时,也不必单独先对数据成批预处理,将预处理后的特征向量,存在本地,再分批读取训练;MATLAB支持合并在同一个模型中,就可以像普通网络模型一样,直接提供数据训练即可。类似的层,MATLAB也提供cwtLayer、stftLayer层,分别可支持连续小波变换和短时傅里叶变换。
图4
心中再次默念“芝麻开门”,得到训练后模型,对输入雷达回波,还原出的心电图中,第一行是雷达回波,第二行是实测心电图,第三行是之前未使用小波变换,还原出的心电图,第四行是使用小波分解和信号重构的预处理后还原出的心电图。如图5可见,第四行和第二行高度一致。还是那个毫不起眼的轻量小模型,在与AI + Signal Processing结合,产生出神奇的效果。
总结
最初直接将原始信号输入1D 卷积 +BiLSTM神经网络,经过漫长训练还原出的信号,完全看不出目标心电信号的影子;而采用信号多分辨率分析器快速探索设计的,基于离散小波分解和信号重构的预处理算法,与最初这个轻量级模型结合,就马上化腐朽为神奇,从一片嘈杂的回波中准确还原出了目标心电信号。
图5
好的预处理及特征提取是高性能、轻量化模型成为可能的点睛之笔。临床实际应用千变万化,这个部分恰恰为医疗设备的工程化落地,提供了重要的鲁棒性和可靠性;而信号特征的提取,将稀疏、复杂的原始数据进行提炼,尤其投影在变换域上,得到精干的描述,这才使轻量级AI模型的使用成为可能。
单博 MathWorks 中国
MathWorks 中国区生物医疗市场行业经理。在MathWorks负责图像/医学影像处理、人工智能及高性能嵌入式硬件实现的深度技术支持,近10年。加入MathWorks前,先后在研究院所与HARRIS公司,从事多年研发工作,在图像识别、计算机视觉、时间序列信号处理、FPGA与GPU高性能实现方面,具有丰富经验。毕业于哈尔滨工业大学,获得电子信息工程学士学位、信息与通信工程硕士学位。
本刊:涉及到AI在医学信号处理中的应用时,MathWorks的解决方案到目前为止帮助了哪些类型的医疗设备实现工程化落地,其中有没有在中国市场的产品?综合来看,你们的解决方案主要起到了哪些作用?
单博:首先对于工程化落地的应用,并不等价于产品化,也就是说并不局限于做出产品来。标准在于只要对AI应用来说,需要自己收集数据和标注,而非采用已处理好的开源数据集,那么这个工作就应当视为工程化实现,而非纯学术研究。因为只要你需要收集数据集,需要自己标注,那么最终结果就需要关注工程化实现的四个阶段,而非仅仅模型的搭建和训练。
身边最多的应用案例主要包括一些使用量最大的糖尿病管理设备,包括多家全球巨头发布的闭环胰岛素泵。因为胰岛素对血糖产生影响需要一段时间,所以对于患者体内胰岛素水平的提前预测,是关键的一步。而不同的饮食摄入、代谢水平、运动、年龄、性别都让这一问题更具挑战性。这一过程涵盖了原始数据的采集、半自动/自动标注、原始数据的降噪等一系列预处理、模型训练以及最终的嵌入式设备部署。面向工程化实现的AI开发流程,保证了高质量的数据和标注,以及高鲁棒性的预处理/特征提取,以及高安全、低功耗的小型嵌入式设备的部署实现,都得益于这套面向工程化实现的AI开发架构。另外,其中先进的胰岛素控制算法,也得益于Simulink环境。
另外,一些前沿领域的医疗设备,比如Battelle Neural Bypass以及德州大学奥斯汀分校的脑机接口,帮助残疾人康复的脑机接口。以及不可思议的Corify体外无创电生理设备,都得益于此。
本刊:AI在医疗设备中的应用,面临的障碍除了高质量的临床数据难以获取之外,还有哪些?能否为我们展望医学人工智能技术的应用和发展前景?
单博:AI在医疗设备中的应用有多种挑战,个人理解最大挑战在于如何检验其可靠性、高安全性,这一挑战不仅仅是对器械厂商,也是对于各国的医疗设备监管机构。人命关天,对于AI在医疗设备中应用而言,AI模型的可解释性和可验证性变得至关重要。这个领域,目前学术界和业界还在探索阶段,目前业界在基本原理和流程上取得了不少进展。MATLAB也提供了W型的高安全模型开发验证流程,从数据集管理、学习过程管理、模型训练、学习过程验证、模型验证与数据集验证等多个阶段,保证开发模型的安全性。
根据对行业应用的认知, 我个人理解AI的主流应用应该会有两大路线,一条是基于重量级大模型的应用,另一条是轻量级、嵌入式端的应用。
本刊:和人体相关的生物医学数据类型非常复杂多样,涵盖不同层面、不同因素、不同来源等,这会对利用小型数据集解决临床应用问题带来哪些挑战?
单博:AI的医学应用确实面临医学数据类型非常复杂多样的挑战,比如医生习以为常的根据血常规、生化指标、B超等影响结果,综合起来进行诊疗,对于AI的设计和验证来说,是一个目前业界的重大挑战。期待随着技术的进步,这一领域未来能够获得突破。
目前小型数据集大多聚焦于单一特定领域,通常不必考虑太多的多模态信息,像前面提到的血糖水平预测、哮喘预测、基于喘鸣的肺炎诊断、心电监测、基于脑电/脑磁信号的脑机接口等,这是目前以及未来几年最有希望落地实现、造福大众的领域。工程化实现的AI架构,以及产生出来的轻量化模型,能够助力在上面提到的众多领域的开发团队,得到计算量小、精度高的高可靠模型,造福于病患。
如有疑问,可电邮咨询:marketing_cn@mathworks.com
作者:单博
MathWorks 中国区生物医疗市场行业经理
来源:荣格-《医疗设备商情》
原创声明:
本站所有原创内容未经允许,禁止任何网站、微信公众号等平台等机构转载、摘抄,否则荣格工业传媒保留追责权利。任何此前未经允许,已经转载本站原创文章的平台,请立即删除相关文章。