人工智能医疗器械软件可靠性评测研究进展

  • 2021-09-08 16:07
  • 作者:王晨希 李佳戈 李静莉
  • 来源:


  随着计算机技术在医疗领域的广泛应用,软件在医疗服务中的地位和作用越来越突出,对公众生命、健康、财产、信息安全的影响也越来越大。同时,人工智能技术与医疗器械软件的结合,使针对产品的有效性与安全性的评估日趋复杂,其中可靠性是衡量人工智能医疗器械软件质量的一个重要维度。


  一方面,目前的软件规模与内部架构日趋复杂,计算框架、组件、数据充满变化,产品的可靠性越来越难保证。根据国外公布的数据,每年由于软件原因导致的医疗器械召回事件有上百次,影响临床对产品的接受度,也为监管和质量评价敲响警钟;另一方面,临床应用场景对软件运行的可靠性要求越来越高,随着软件智能化、自主化程度的提升,软件可靠性对患者和操作者的安全及权益的影响程度也越来越大。医疗器械软件可靠性的评测已经成为人工智能医疗器械软件质量评价的重要环节之一。本文旨在概述人工智能医疗器械软件可靠性的评测现状,为业内提供参考。


  人工智能医疗器械软件可靠性概念


  根据2020年起草的行业标准《人工智能医疗器械质量要求和评价第1部分:术语》中的定义,可靠性是指在规定时间间隔内和规定条件下,系统或部件执行所要求功能的能力。人工智能医疗器械软件的可靠性关注产品在规定的条件下和规定的时间区间完成指定临床功能的能力。规定的条件是指直接与软件运行相关的使用该软件的计算机系统的状态和软件的输入条件,或统称为软件运行时的外部输入条件;规定的时间区间是指软件的实际运行时间区间;指定临床功能是指为用户提供给定的医疗服务。


  人工智能医疗器械软件功能的可靠性包含成熟性、可用性、容错性、易恢复性等方面。成熟性是指软件产品在满足要求的软/硬件环境或其他特殊条件下(如一定负载压力下)使用时,为用户提供相应服务的能力,如软件的故障密度、缺陷严重程度、完整性级别等。可用性是指软件在使用时能够进行操作和访问的程度,它是成熟性、容错性和易恢复性的组合。容错性是指软件在由于非法数据、非法操作、误操作等原因导致无法正常运行和参数传递错误的情况下,软件能否为用户提供相应临床功能服务的能力。易恢复性是指软件发生失效的情况下,采取何种措施重建为用户提供相应临床服务和恢复直接受影响医疗器械数据的能力。


  人工智能医疗器械算法的可靠性强调算法在规定条件下的可重复性,即对同一输入的响应和输出保持不变。根据相关文献,聚类分析、深度学习等算法分支都报道过可重复性方面的问题,因此在测试阶段需要引起重视,不能掉以轻心。


  人工智能医疗器械软件可靠性的技术实现


  人工智能医疗器械软件可靠性,建立在以下四方面的活动和有关技术基础上:


  (1)软件可靠性分析:进行软件可靠性的需求分析、指标分配、故障树分析、故障模式和影响分析、软件开发过程中有关软件可靠性的特性分析等;


  (2)软件可靠性设计和实现:进行防错设计、容错设计、检错设计、纠错设计、故障恢复设计、软件可靠性增长等;


  (3)软件可靠性测量、测试和评估:在软件生存周期各阶段进行有关软件可靠性的设计、制造和管理方面的属性测量,进行软件可靠性测试、软件可靠性预计、软件可靠性估计、软件可靠性验证等;


  (4)软件可靠性管理:确定影响软件可靠性的因素,制定必要的设计和实现准则以及对软件开发各阶段软件可靠性相关的过程和产品的要求,对有关测试数据和分析结果控制和改进开发过程,进行风险管理要考虑安全性等技术风险,对采购或重用的第三方软件进行可靠性管理等。


  上述活动也包含着对人工智能算法模型本身的可靠性评价。制造商需要根据临床应用场景,在研发和产品验证阶段评估人工智能算法正确执行临床功能的运行时间和运行条件,积累先验的数据。


  人工智能医疗器械软件可靠性的测试路径


  人工智能医疗器械软件的可靠性验证方法是为了验证在给定的统计置信度下,软件当前的可靠性水平是否满足临床用户的要求而进行的测试,即临床用户在接收软件时,确定它是否满足软件规格说明书中规定的可靠性指标。该种方法一般是在软件验收阶段进行的,在软件需求方参与的情况下实施。其主要过程是根据实际临床使用场景测试的故障情况,利用某种或某些软件供需双方都认可的可靠性验收模型进行可靠性的定量评价,以判断该软件是否达到了其需求说明书中约定的可靠度。


  人工智能软件可靠性测试活动包括:构造运行剖面、选取测试用例、测试环境准备、可靠性测试运行、数据收集、数据分析和失效纠正等步骤。


  (1)构造运行剖面:软件的运行剖面一般是指对软件使用条件的定义,把软件的输入按时间的分布或按它们在可能输入范围内的出现概率的分布来定义。由于人工智能算法的特殊性,软件的输入样本需要考虑数据格式、内容、对算力的消耗和临床的典型性,兼顾阴性样本、阳性样本和流行病学统计。


  粗略地说,运行剖面是用来描述软件的实际使用情况的。运行剖面是否能代表、刻画软件的实际使用取决于可靠性工程人员对软件的系统模式、功能、任务需求及相应的输入激励的分析,取决于他们对用户使用这些系统模式、功能、任务的概率的了解。运行剖面构造的质量将对测试、分析的结果是否可信产生最直接的影响。


  (2)选取测试用例:软件可靠性测试采用的是按照运行剖面对软件进行可靠性测试的方法。因此,可靠性测试所用的测试用例是根据运行剖面随机选取得到的,宜依托标准化的测试集进行抽样。


  (3)测试环境的准备:为了得到尽可能真实的可靠性测试结果,可靠性测试应尽量在真实的临床环境下进行,但是在许多情况下,在真实的环境下进行软件的可靠性测试很不实际,因此需要开发软件可靠性仿真测试环境。比如,对于智能硬件产品包含的嵌入式软件,由于与之交联的环境的开发常常与软件的开发是同步甚至是滞后的,因此无法及时进行软件可靠性测试。有些软件中,由于交联的环境非常昂贵而无法用于需要进行大量运行的可靠性测试。


  (4)可靠性测试运行:即在真实的测试环境中或可靠性仿真测试环境中,用按照运行剖面生成的测试用例对软件进行测试。


  (5)数据收集:收集的数据包括软件的输入数据、输出结果,以便进行失效分析和进行回归测试;软件运行时间数据,可以是CPU执行时间、日历时间、时钟时间等;可靠性失效数据包括每次失效发生的时间或一段时间内发生的失效数,失效数据可以实时分析得到,也可以事后分析得到。数据收集的质量对于最终的可靠性分析结果有着很大的影响,应尽可能采用自动化手段进行数据的收集,以提高效率、准确性和完整性。


  (6)数据分析:主要包括失效分析和可靠性分析。失效分析是根据运行结果判断软件是否失效,以及失效的后果、原因等:而可靠性分析主要是指根据失效数据,估计软件的可靠性水平,预计可能达到的水平,评价产品是否已经达到要求的可靠性水平。


  (7)失效纠正:如果软件的运行结果与需求不一致,则称软件发生失效。通过失效分析,找到并纠正引起失效的程序中的缺陷,从而实现软件可靠性的增长。软件可靠性增长测试是为了满足用户对软件的可靠性要求、提高软件可靠性水平而对软件进行的测试。是为了满足软件的可靠性指标要求,对软件进行测试——可靠性分析——修改——再测试——再分析——再修改的循环过程。


  人工智能医疗器械软件可靠性测试面临的挑战


  开展人工智能医疗器械软件可靠性测试的关键是要建立测试模型,但目前尚未形成统一规范。到目前为止,软件可靠性模型的研究已有几十年的历史,国内外已发表软件可靠性模型有近百种,但由于对软件可靠性模型的研究还处在初步阶段,软件可靠性模型的分类方法很多,笔者采用综合模型的假设、测试环境以及数理统计的分类方法,将模型大致分为:随机过程类模型和非随机过程类模型。随机过程模型包括马尔可夫过程二项模型、非齐次泊松过程模型等分支。非随机过程模型包括运用贝叶斯估计的模型、基于输入域的模型和其他方法模型。对于具体的人工智能产品,软件的固有错误数、错误之间的关联性、错误发生的间隔时间、软件失效率等关键参数还在积累过程中,可靠性测试的理论模型目前不唯一,属于质量评价的薄弱环节。软件可靠性模型的不足也使得软件可靠性模型并不能完全描述软件的故障行为。


  由于人工智能算法的复杂性和随机性,软件的故障具有离散性和偶发性,部分软件产品的测试缺乏直观的测试准则。此时对可靠性的评价可借助蜕变测试等手段,把输入、输出之间的关系作为依据,用于验证和捕捉算法的缺陷,作为对前述方法的补充。


  人工智能医疗器械软件的可靠性是产品安全有效的关键要素之一,影响着产品未来的使用质量。本文对人工智能医疗器械软件可靠性的实现与测试现状进行了概述,为测评活动提供参考。鉴于行业目前的技术现状,测评规范的建立与实施还存在一些问题,将在产品的质量研究过程中进一步完善。


  (作者单位:中国食品药品检定研究院)


(责任编辑:辛悦然)

分享至

×

右键点击另存二维码!

网民评论

{nickName} {addTime}
replyContent_{id}
{content}
adminreplyContent_{id}