针对医学人工智能产品的对抗测试技术平台设计

2023-03-11 11:44王光宇蒋泽宇杨国兴石剑宇刘晓鸿
医疗卫生装备 2023年1期
关键词:扰动模态医学

王光宇,蒋泽宇,杨国兴,石剑宇,刘晓鸿

(1.北京邮电大学信息与通信工程学院网络与交换技术国家重点实验室,北京 100876;2.清华大学计算机系,北京 100084)

0 引言

在医学领域中,人工智能发挥着重要作用[1]。然而已有的研究表明,针对目前人工智能产品采用的深度学习技术,在原始样本中增加微量扰动即可生成对抗攻击样本,使产品输出错误的结果,而人类几乎察觉不到对抗样本相对原始数据的变化[2]。鲁棒性差的人工智能模型很容易被攻击,得到错误结果,在医学领域中,这往往会造成严重后果。但目前围绕新兴医学人工智能产品的检测需求,不同模态数据下通用性能评价技术和对抗测试技术严重不足,且未形成互补,不能从基础指标、泛化指标和安全指标全方位进行产品评价,这阻碍了人工智能产品落地,不利于产业发展和国家安全。基于此,本研究提出针对医学人工智能产品的对抗测试技术平台,旨在针对医学人工智能产品检测需求和监管需求,开发产品通用评价和对抗测试技术,扩展对产品鲁棒性和泛化能力的科学验证,并设计临床在用产品的性能动态追踪与风险预警工具,实现不良事件监测。

1 平台设计

针对医学人工智能产品的对抗测试技术平台(如图1 所示)采用浏览器/服务器(Browser/Server,B/S)架构进行设计,包括2 个核心服务后端,分别为业务服务和算法服务。业务服务负责处理、转换和存储数据,认证检验,封装结果;算法服务负责运行所有算法。此外,数据库采用MySQL 系统,用来存储和维护测试集数据和测试产品数据。

图1 针对医学人工智能产品的对抗测试技术平台架构图

2 平台实现

针对医学人工智能产品的对抗测试技术平台包括数据集管理、人工智能产品模型管理和人工智能性能监控3 个模块,模块结构如图2 所示。

图2 针对医学人工智能产品的对抗测试技术平台模块结构图

2.1 数据集管理模块

数据集管理模块使用React 框架进行搭建。该模块负责测试数据集的存储和维护。由用户在平台上传测试数据集,已完成上传的测试数据集可以在平台界面查看。此外,用户可以对自己上传的测试数据进行更新、删除等维护操作。

2.2 人工智能产品模型管理模块

人工智能产品模型管理模块使用React 框架进行搭建。该模块负责管理待评测的医学人工智能产品。由用户在平台中录入产品名称、产品型号、版本、生产厂家、注册证号、有效期、临床使用机构、临床科室及数据格式等内容,并在模块中为产品建档。针对已录入的产品,该模块会进一步对在用运行环境进行对接,针对产品在用运行环境所在的IP 地址、端口、登录用户名及密码进行接口配置。此外,已录入产品的临床结果的导出与上传所涉及的数据格式及存储地址均在该模块中完成收集配置。用户可在该模块中查看已完成信息录入及数据对接的产品的全部内容。此外,用户可以更新已上传的产品及其型号、版本等信息。

2.3 人工智能性能监控模块

人工智能性能监控模块基于Nodejs 框架进行设计,包括对抗测试技术子模块和性能动态追踪与风险预警子模块。该模块中的所有算法均采用Python进行开发。

2.3.1 对抗测试技术子模块

对抗测试技术子模块针对不同模态下的医学人工智能产品采用了多种对抗测试技术进行分析和评价,具体实现如图3 所示。首先,将待测模型上传。其次,选择合适的测试数据集。之后,根据不同医学模态选择合适的测试算法生成对抗测试数据集。其中针对医学影像的人工智能产品,用户可以选择扰动类型(通用扰动或者对抗攻击),通用扰动包括选择亮度影响、对比度影响、模糊影响和噪声影响[3-4];对抗攻击需要选择攻击算法、攻击方式(黑盒或白盒[5])和攻击强度。攻击强度根据添加扰动的最大阈值分为1级(0.007)、2 级(0.014)和3 级(0.021)。对于针对医学文本的人工智能产品,用户可以选择攻击算法,设置攻击方式(黑盒或白盒)和攻击强度。攻击强度按攻击成功的目标标签数量分为1 级(1 个)、2 级(3 个)和3 级(5 个)。最后,将原始数据集和测试数据集分别输入测试模型中得到测试结果。本平台通过灵敏度、特异性、ROC 和FROC 4 个指标比较原始数据集和测试数据集测试结果之间的差异来评价测试模型的鲁棒性。

图3 针对不同模态医学人工智能产品的测试算法流程图

2.3.2 性能动态追踪与风险预警子模块

本平台设计了性能动态追踪与风险预警子模块,对产品进行周期性性能评估,确保了产品使用时的性能稳定和使用安全。如图4 所示,首先,平台会周期性地收集目标追踪产品在应用运行环境上的使用情况,以每月或每季度为周期,收集人工智能产品处理的病例数量信息、病例平均处理时间等在用情况的数据结果。其次,针对目标追踪产品的预期用途,基于在用运行环境下的数据集,以灵敏度、特异性、ROC、FROC 等参数周期性展示产品的性能结果,直观体现产品在不同时间节点的性能情况。使用性能动态追踪与风险预警子模块可以对目标追踪产品进行周期性地监测和分析,确保产品的性能稳定。当目标追踪产品出现问题时,该产品的各项参数会同时出现异常,本平台可以通过参数的变化快速发现问题并及时解决,为人工智能产品上市后的使用提供支持和保障。

图4 人工智能产品周期性性能评估界面

3 关键技术

本平台针对不同模态部署了多种对抗测试方法,检测医学人工智能产品的鲁棒性能。

3.1 针对医学图像模态人工智能产品的对抗测试算法

针对医学图像模态人工智能产品,本平台部署了3 种对抗测试方法:快速梯度符号法(fast gradient sign method,FGSM)[2]、投影梯度下降(projected gradient descent,PGD)算法[6]以及本平台结合医学图像的特点设计的投影梯度下降(medicine projected gradient descent,MedPGD)算法。FGSM 是一种常用的对抗测试方法,通过在真实图像上添加一个扰动最大化损失函数,使得模型诊断错误。而PGD 算法将FGSM 的1 次攻击改为多次攻击,通过多次的扰动和迭代生成对抗测试样本。医学影像不同于自然图像,医学影像对细节要求高,尤其是病灶扰动可能会改变影像医生阅片结果。本平台设计的MedPGD 算法能够保护重要的医学语义如病灶信息,并产生平滑的攻击噪声,使对抗样本相对于原有图像的差异尽可能地小,同时能够成功攻击目标模型,降低目标模型的分类准确率。该算法主要分为医学语义保护模块和周围感知的平滑模块2 个部分:

(1)医学语义保护模块:该模块通过使用少量具有病灶标注的图像训练一个针对病灶的分割模型,采用该模型对被攻击图像中的病灶位置进行提取,然后对图像中的病灶区域进行梯度保护,使生成的对抗攻击样本在病灶位置不会产生噪声,保护了病灶区域的医学语义。

(2)周围感知的平滑模块:本平台基于PGD 攻击算法[6],利用卷积核融合像素点的周围信息,实现了平滑PGD 攻击。PGD 攻击通过限定每一轮扰动的上限和迭代后总的扰动上限来控制生成的对抗样本质量,这种迭代方法攻击范围为整张图片,具有很大的不确定性。MedPGD 算法采用了周围感知的平滑操作,利用卷积的方法使得对抗噪声更加平滑,通过对测试图像加入迭代多次的对抗噪声使得攻击成功。在该算法中,采用可控平滑区域的设定,通过控制卷积核的大小和权重可以很好地控制噪声的平滑效果。其中权重矩阵为wf,假设距离对噪声的影响随着距离在横纵向以相同的正态分布衰减,wf具体计算公式如下:

本平台选取FGSM[2]和PGD 2 种最常用的对抗攻击算法与MedPGD 算法进行对比实验,验证MedPGD算法的性能。本研究将MedPGD 算法的卷积核设置为7。因为卷积核大小x 一般取3、5、7,MedPGD 算法卷积只有1 层,x 取7 时感受野最大,权重会更加平滑。

本平台使用FGSM、PGD 和MedPGD 这3 种攻击算法对一个预先训练好的Resnet50 糖尿病视网膜病变分类模型进行攻击,结果见表1。由表1 可知,MedPGD 算法的攻击成功率最高,平均成功率达到了99.49%,其2 级攻击和3 级攻击更是达到了100%的成功率。同时MedPGD 算法生成的对抗样本的结构相似指数(structural similarity index,SSIM)值最高,3 种攻击下的平均值为0.981。即使在3 级攻击中,MedPGD 算法生成的对抗样本的SSIM 的值也达到了0.955,而FGSM 算法和PGD 算法在3 级攻击中降低到了0.909 和0.939。MedPGD 算法1 级攻击效果如图5 所示,通过MedPGD 算法生成的1 级攻击对抗样本和原图差异非常小,扰动几乎不可见,保护了医学图像的医学语义完整性。

表1 不同对抗攻击算法在3 种攻击强度下的攻击效果和对抗样本的图像质量

图5 MedPGD 算法1 级攻击效果图

由实验结果可知,本平台提出的MedPGD 算法优于FGSM 与PGD 算法,提高了对抗测试效率,并且在同等攻击强度下生成的对抗样本质量也优于FGSM 和PGD 算法,保护了医学语义信息的完整性。

3.2 针对医学文本模态人工智能产品的对抗测试算法

本平台部署了多种常用的文本对抗测试方法,分别为PWWS(probability weighted word saliency)[7]、TextFooler[8]、HotFlip[9]和Clinical-Attacker[10],现分别介绍如下:

(1)PWWS 是一种黑盒攻击,该算法在同义词替代策略的基础上,引入了一种由单词显著性和分类概率决定的新的单词替换顺序,并提出了一种概率加权单词显著性用于文本对抗攻击。

(2)TextFlooler 是一种黑盒攻击,该算法提出了一种简单并且强大的对抗模型,并引入了一种单词重要性排序方法用于单词替换。

(3)HotFlip 是一种白盒攻击,主要是通过极大化计算损失函数的方向导数来选取候选词或字符进行交换、插入、删除等操作来修改输入样本,从而生成对抗样本,并且该算法使用了Beam Search 方法来增强修改效果。

(4)Clinical-Attacker 是本课题组前期提出的一种针对医学自动诊断模型的文本对抗样本通用算法[10]。它由2 个主要部分组成,一是攻击目标词识别,二是攻击目标词扰动。在第一部分中,通过反向传播来计算识别目标词;在第二部分中的攻击策略包括医学词替换、词嵌入替换和副词移除。在医学词替换中,该算法应用MetaMap[11]定位文本的所有医学概念,在统一医学语言系统(unified medical language system,UMLS)[12]中搜索同义词。对于词嵌入替换,该框架使用预训练[13]的GloVe[14]单词嵌入来构建近似同义词的候选单词池,然后从中进行选择。本研究设计了实验以验证Clinical-Attacker 算法中的医学概念替换模块,记为实验一(有医学概念替换)和实验二(移除医学概念替换)。每个实验生成100 个对抗样本,由专业医生进行人工评分,分数越高表示对抗样本质量越高。实验结果见表2。实验一平均得分更高,≥4 分的高质量样本的比例为61%,相比实验二的29%提高了32%,说明本研究提出的方法能够有效保护医学语义特征,生成质量更高的对抗样本。

表2 针对实验一和实验二的100 个对抗样本的人工评估结果 单位:个

4 创新点

目前医学人工智能产品检测存在巨大需求,但是相关检测技术匮乏,这阻碍了医学人工智能产品的发展和推广。针对医学人工智能产品的对抗测试技术平台针对不同模态设计和部署了多种检测方法,能够合理并全面地分析和检测医学人工智能产品。本平台在应用方面具有如下优势:(1)本平台针对不同模态部署了多种对抗测试方法,此外还根据医学数据特点设计了针对医学图像的对抗攻击方法,用户可以根据自己需求选择算法测试产品的鲁棒性。(2)本平台采用B/S 架构,用户只需通过浏览器就能登录平台进行测试产品、上传下载结果等操作。

5 结语

本文提出的针对医学人工智能产品的对抗测试技术平台为医学人工智能产品提供了鲁棒性评价和性能监测手段。本平台将赋能于医学人工智能产品的检测服务能力,建成覆盖产品研发、检测、临床应用、监管的全方位评价体系。本平台不仅保障了相关产品的科学监管和智慧监测,同时有力支撑了测试和审评,解决了目前医学人工智能产品检测薄弱的问题,保证了医用人工智能产品高质量发展。然而,目前平台部署的多数对抗测试算法来自通用领域,在医学数据上可能不是最优的。在未来,将设计和部署更多针对医学领域的对抗测试方法,此外还将加强检测模型在可解释性和鲁棒性方面的研究,增加算法的可信度和稳定性。

猜你喜欢
扰动模态医学
Bernoulli泛函上典则酉对合的扰动
医学的进步
预防新型冠状病毒, 你必须知道的事
(h)性质及其扰动
小噪声扰动的二维扩散的极大似然估计
车辆CAE分析中自由模态和约束模态的应用与对比
医学
国内多模态教学研究回顾与展望
用于光伏MPPT中的模糊控制占空比扰动法
基于HHT和Prony算法的电力系统低频振荡模态识别