3
算法设计
算法设计应当考虑算法选择、算法训练、网络安全防护、算法性能评估等活动的质控要求。建议数据驱动与知识驱动相结合进行算法设计,以提升算法可解释性。
1. 算法选择
算法选择应当明确所用算法的名称、结构(如层数、参数规模)、流程图、现成框架(如Tensorflow、Caffe)、输入与输出、运行环境、算法来源依据(或注明原创)等信息。同时应当明确算法选择与设计的原则、方法和风险考量,如量化误差、梯度消失、过拟合、白盒化等。
若使用迁移学习技术,除上述内容外还应当补充预训练模型的数据集构建、验证与确认等总结信息。
2. 算法训练
算法训练需要基于训练集、调优集进行训练和调优,应当明确评估指标、训练方法、训练目标、调优方法、训练数据量-评估指标曲线等要求。
评估指标建议根据临床需求进行选择,如敏感性、特异性等。训练方法包括但不限于留出法和交叉验证法。训练目标应当满足临床要求,提供ROC曲线等证据予以证实。调优方法应当明确算法优化策略和实现方法。训练数据量-评估指标曲线应当能够证实算法训练的充分性和有效性。
3. 网络安全防护
网络安全防护应当结合软件的预期用途、使用场景和核心功能,基于保密性、完整性、可得性等网络安全特性,确定软件网络安全能力建设要求,以应对网络攻击和数据窃取等网络威胁。相关要求详见网络安全指导原则。
此类软件常见网络威胁包括但不限于框架漏洞攻击、数据污染,其中框架漏洞攻击是指利用算法所用现成框架本身漏洞进行网络攻击,数据污染是指通过污染输入数据进行网络攻击。
4. 算法性能评估
算法性能评估作为软件验证的重要组成部分,需要基于测试集对算法设计结果进行评估,应当明确假阴性与假阳性、重复性与再现性、鲁棒性/健壮性等评估要求,以证实算法性能满足算法设计要求。
同时,应当分析算法性能影响因素及其影响程度,如采集设备、采集参数、疾病构成、病变特征等因素影响,以提升算法可解释性,并作为软件验证、软件确认的基础。
4
验证与确认
1. 软件验证
软件验证是指通过提供客观证据认定软件开发、软件更新某一阶段的输出满足输入要求,包括软件验证测试(单元测试、集成测试、系统测试)、设计评审等系列活动。
软件验证应当明确法规、标准、用户、产品、数据、功能、性能、接口、用户界面、网络安全、警示提示等测试要求,以验证软件的安全性和有效性,并作为软件确认的基础。
2. 软件确认
软件确认是指通过提供客观证据认定软件满足用户需求和预期目的,包括软件确认测试(用户测试)、临床评价、设计评审等系列活动,其中软件确认测试应当基于软件需求在真实或模拟使用场景下予以实施。
(1)基本原则
临床评价是此类软件进行软件确认的主要方式,相关要求详见《医疗器械临床评价技术指导原则》。根据软件指导原则要求,软件应当提交基于临床试验的临床评价资料,即提交申报产品的临床试验资料,或者与申报产品核心算法具有实质等同性的同品种产品或同类软件功能的临床试验资料。
进口软件应当提供中外人种、流行病学特征、临床诊疗规范等方面差异影响的临床评价资料,若不足以证实申报产品在中国使用的安全性和有效性,应当在中国开展临床试验。使用境外临床试验数据应当满足《接受医疗器械境外临床试验数据技术指导原则》要求。
(2)临床试验
临床试验应当符合《医疗器械临床试验质量管理规范》要求。可参照《医疗器械临床试验设计指导原则》,基于软件的预期用途、使用场景和核心功能进行试验设计,确定观察指标、样本量估计、入排标准、随访以及实施机构等要求,以确认软件的安全性和有效性。
建议优先选择同品种产品或临床参考标准(即临床金标准)进行非劣效对照设计,若无同品种产品且难以获取临床参考标准(如违背伦理学要求)可选择替代方法,如选择用户结合软件联合决策与用户单独决策进行优效对照设计。非劣效界值或优效界值的确定应当有充分的临床依据。此外考虑到用户的差异性,可选择多阅片者多病例(MRMC)试验设计。
建议结合适用人群、病变等层面选择观察指标,原则上选择敏感性、特异性、ROC/AUC作为主要观察指标,亦可在此基础上根据软件特点选择敏感性/特异性衍生指标、ROC/AUC衍生指标、组内相关系数、Kappa系数、时间效率、数据有效使用率等指标作为观察指标。
入排标准应当基于目标疾病流行病学特征,保证阳性样本和阴性样本选取的合理性和充分性。
建议临床试验结果由第三方独立评价。
实施机构应当具备代表性和广泛性,不同于训练数据主要来源机构,地域分布尽可能广泛,机构数量尽可能多,以确认算法泛化能力。
例如,预期以提高辅助诊断时间效率为首要目标的某软件,无同品种产品且难以获取临床参考标准,其临床试验设计可选择用户结合软件联合决策与用户单独决策进行交叉对照设计,以敏感性、特异性、时间效率作为主要观察指标,其中敏感性、特异性可为非劣性对照,时间效率指标应当为优效对照。
(3)回顾性研究
临床评价可采用基于现有历史数据的回顾性研究。回顾性研究应当在设计时考虑并必须严格控制偏倚,如选择偏倚、临床参考标准偏倚、测量偏倚、记忆偏倚等。回顾性研究原则上应当包含多个不同地域临床机构(非训练数据主要来源机构)的同期数据,结合分层分析、第三方独立评价等方法控制偏倚,以保证真实、准确评价软件的安全性和有效性。
回顾性研究应当基于软件安全性级别考虑使用问题。对于安全性级别为C级的高风险软件,原则上应当开展临床试验,此时回顾性研究可用作临床预试验,为临床试验设计提供参考依据,或者在少见亚组病例入组时间过长等情况下,用作临床试验的补充。对于安全性级别为B、A级的中低风险软件,回顾性研究可用作临床预实验或替代临床试验。
软件安全性级别应当基于软件的预期用途、使用场景和核心功能进行综合判定,判定方法详见软件指导原则。例如,预期用于病理图像辅助筛查或者危重疾病辅助识别的软件,其安全性级别通常为C级。
三、软件更新
1
基本原则
软件更新应当考虑对软件安全性和有效性的影响,包括正面影响和负面影响。若为重大软件更新(即影响到软件安全性或有效性的软件更新)应当申请许可事项变更,若为轻微软件更新(即未影响软件安全性和有效性的软件更新)则无需申请许可事项变更,通过质量管理体系进行控制。