自1956 年在达特茅斯学院召开的会议上正式提出“人工智能”一词至今,人工智能技术发展已经经历了三起三落。最早的医疗人工智能系统是1972 年英国利兹大学研发的用于腹部剧痛辅助诊断的AAPHelp,随后又有多个研究机构尝试使用人工智能技术进行辅助诊断系统的开发,但由于算法性能和数据量的问题,都没有真正在临床广泛使用。在这一过程中,很多传统的机器学习算法被大量应用在图像重建、后处理等医疗器械软件中,帮助医生实现了更高质量的图像重建和一些自动/ 半自动的图像后处理功能(如图像分割、定量分析等)。
进入21 世纪后,伴随着算法、算力的再一次升级,各行业多年数字化、信息化积累下了海量的数据,以深度学习为代表的新一代人工智能技术再次兴起,一大批研究机构与创新企业开始探索如何将这些技术应用于医疗领域。本文根据作者多年来从事医疗器械开发、临床研究的经验,分析和讨论新一代人工智能技术在医学影像分析类产品开发过程中的应用。
选择一个适合使用新一代人工智能技术来解决的临床实践问题,是医疗器械产品研发的第一步。医疗产品的开发离不开科研成果的转化,但临床科研与生产一款医疗器械产品还是存在着较大差别的。临床科研是为了探索临床实践中的问题,并给出可能的解决方案。很多科研结果只是在相对理想的条件下进行的尝试,与实际临床应用中面临的复杂环境还存在差距。
一些企业选择解决目前还没有明确科研成果和结论的方向进行尝试,这种创新方向的尝试既有可能创造较大的正向收益,也有可能造成较大的负面损失。一方面,对于还没有明确科研结果的问题,如果这种尝试能够解决,会形成较高的技术壁垒,而且,在科研的过程中会发现许多生产中可能遇到的问题,这有利于积累解决问题的经验。另一方面,从科研开始做起会延长产品的研发周期,对于初创企业来讲会产生较大的压力。这因为,科研课题有可能成功,有可能失败,对于没有固定营收的初创企业来讲,风险较大。
算法、算力、数据是深度学习算法的三要素,在选择产品开发方向的时候,需要考虑到目前各方面资源在这三个维度是否能够达到生产产品的要求。目前的算力主要依赖于GPU 显卡,在大多数的项目开发中,算力不会是项目开发的瓶颈,相关问题可以通过购买更多的计算资源解决。算法方面,一般来说,一个可以用深度学习解决的医学图像处理问题,之前都会有使用传统机器学习的相关研究论文发表。因此,通过文献调研的方式,可以了解采用传统机器学习的准确性,以此作为深度学习算法研发的一个基础标准,通过增加数据量的方式,利用深度学习算法提升算法的准确性。如果之前在该方向没有传统机器学习的算法文章发表,则需要进行更多的调研,从调研中了解没有文章发表的真实原因。尤其是当该类问题的数据很容易搜集,且临床问题看上去很简单直接的时候,更应当深挖这其中的问题,以免重蹈前人的覆辙。
数据是基于新一代人工智能技术研发产品的基础,在开始一款人工智能医疗器械的研发之前,我们应当充分调研数据——作为生产材料,是否能够获取我们希望得到的质量与数量。与交通、安防等行业动辄以TB 为单位的海量数据相比,医疗行业的信息化、数字化进程相对滞后,病例数能够达到上万或者数十万的量级已经是十分困难。通过了解头部医院对于相关病例数的积累,可以大致了解数据量是否充足,同时结合之前机器学习文章中数据集的积累情况,可以基本判断出研发所需的数据集是否有可能获取到,或是需要多长时间的积累才可以达到比较理想的状况。
除了做信息调研,与临床医生进行密切的合作也是选择正确研发方向的一个重要环节。医学专家不仅有着丰富的临床经验,清楚临床需求,还有多年的临床科研经验,对很多新的方向都有所尝试,这些经验是十分宝贵的。从临床专家那里获取真实的临床需求,了解科研中遇到的问题、困难以及取得的成果,可以避免走弯路,有利于更好地寻找到适合自身的研发方向。
研发医疗器械产品,需要研发负责人对产品形态在整个医疗过程中扮演的角色、产品可以解决临床工作中的什么问题有着清晰的理解和认识,切忌盲目地“拿着锤子找钉子”。相比大众消费领域的需求可以被大多数人所理解,产品定义者本身作为一名消费者能够理解消费者群体的需求,而医疗等行业具有较高的专业知识壁垒,医生和患者之间存在着极大的专业知识的不对称性,使得我们无法从一个患者的角度,来创造一个作为患者所理解的医疗需求,而是应该更多地站在专业医生的角度来思考问题。
临床需求大体上可以分为两类,一类是提升诊断和治疗的准确性,也就是更好地看病;另一类是提升医疗效率,使得医生在同样的工作时长中能够治疗更多的患者。解决不同的需求所面临的用户也是不同的。由于我国医疗资源分配不均、医生水平不等等问题,导致在不同的应用场景下,实际需要实现的算法需求是不同的。例如,对于一个疾病筛查的任务,需要尽量降低假阴性及漏诊率。而对于一个需要在大型三甲医院进行确诊的病例,特异性、误诊率可能是需要被首先考虑的指标。由于人工智能算法的特性,使得即使是在同样的数据和算法条件下构建的最优模型,在最终输出结果时,阈值的选择还是决定了敏感性、特异性两个性能指标肯定是一升一降。而医疗器械要求算法具有极高的可重复性,不能随意改动算法参数,影响输出结果。因此,需要根据不同场景和使用者的不同需求情况,分别开发适用于这些场景的产品。
由于人工智能技术最早被应用于互联网产业之中,所以在医疗人工智能产品的开发中,除了传统的医疗器械开发人员之外,也引入了很多具有互联网产品开发背景的人员。互联网产品的开发讲求快速迭代,不断更新,根据用户的使用情况,及时反馈和修正,以实现最好的用户体验。很多互联网产品的功能迭代是以月、周甚至天为周期的,而传统的医疗软件的更新频率通常是以年为单位。之所以医疗软件更新的周期长,是因为整个研发过程需要进行严格的质量控制,以保证最终输出的产品不会在临床使用过程中发生意外或产生风险,而且医疗产品的每一次迭代都会产生巨大的研发成本。与很多互联网产品选择先上线供客户试用,再不断修正错误的过程不同,对于直接关系到人体生命健康的产品,医生也不敢在有潜在风险的情况下,贸然尝试将该产品在临床使用。
因此,对于刚刚进入医疗行业的公司来讲,建议加强企业对医疗器械质量文化的研究和实践,认真分析并理解“互联网思维”和“医疗器械质量文化”的差异,在发挥自己优势的同时,也要提升自己在医疗器械领域的研发水平。当然,互联网公司所擅长的敏捷开发,也是医疗器械公司所追求的,但这非照搬“盲目提出功能需求、先开发后修改”的模式。一个经济且高效的开发方式,应当是在最初进行产品整体设计之时,对技术可行性、用户需求、市场规模等多个方面进行充分的调研,确定产品的适用范围和最终功能形态之后,通过敏捷开发的形式,不断向着最终的目标前进,快速解决研发过程中遇到的各种问题。在保证产品质量的同时,尽快推进产品的研发上市进度。
与生产其他的人工智能产品不同,生产一款医疗器械产品,要同时关注安全、有效这两个方面,国家相关部门对于产品的审批,也主要考察这两个方面。国家药监局医疗器械技术审评中心发布的《深度学习辅助决策医疗器械软件审评要点》(以下简称《审评要点》)中提到:“从发展驱动要素角度讲,深度学习实为基于海量数据和高算力的黑盒算法。本审评要点重点关注软件的数据质量控制、算法泛化能力、临床使用风险,临床使用风险应当考虑数据质量控制、算法泛化能力的直接影响,以及算力所用计算资源(即运行环境)失效的间接影响。”可见数据质量控制在新一代人工智能医疗产品的开发中发挥着重要作用。
在新一代人工智能医疗软件的开发中,数据扮演着生产原材料的角色,因此对于生产原材料的质量需要严格把关。《审评要点》中提到:“数据收集应当考虑数据来源的合规性和多样性、目标疾病流行病学特征、数据质量控制要求。数据来源应当在合规性基础上保证数据多样性,以提高算法泛化能力,如尽可能来自多家、不同地域、不同层级的代表性临床机构,尽可能来自多种、不同采集参数的采集设备。”也就是说在获得数据的时候,既要考虑到数据的来源,也需要完整记录数据相关的信息。
研发人员要根据产品功能定义的内容,来确定该产品所需数据的完整性应包含的具体内容。而产品功能的定义要参照目前公认的临床指南、专家共识、检查规范等业界规范标准进行设定。在功能设计的时候,要保证功能的实现符合目前临床的常规操作流程。例如:一款医疗器械软件的功能定义为确定病灶位置,而病灶位置以及外观属性是可以通过影像数据准确判断的,医生在临床诊断时,无需其他辅助信息单纯获取影像数据即可。如果该软件功能定义为判断病灶良恶性,而临床上良恶性是通过病理结果确定的,则完整的数据至少应包括影像+ 病理报告。同时,如果是分类问题,每一类的数据量应当符合相应算法的最低要求。
数据标注是人类借助计算机等工具,对各种类型的数据包括文本、图片、语音、视频等,完成分类、画框、注释、标记并打上说明其某种属性的标签的工作。整个加工过程都应该在严格的质控下进行。除了在招募医生时应有较高的招募标准外,在招募完成后,还要对医生重新进行标注能力的评估和考核。建议由医学专家组对参与考核的医生进行标注规范培训,之后由医学专家组统一制作一批具有正确答案的标注数据作为考试库数据。在筛选医生时,根据病种类型选择相应比例的考试题,测试应保证覆盖产品功能中要分辨的每一类病例。
在医生资质测试考核中,不仅要检测医生对病例判读的准确性,还要考察该医生两次诊断的一致性。标注关注的重点是一致性,也就是说同一病例由不同标注者或同一标注者进行两次观测,其结果在误差允许范围内是一致的。评价一致性程度的方法很多,比如说Kappa值、Kendall 一致性系数、组内相关系数(ICC)等。对于不同的数据类型和标注方式,需要选择合适的评价方式。
通过标注资格筛选考试的医生,可以认为其专业水平达到项目的要求。但是在实际标注中,无论是现场集中标注还是远程在线标注,标注人员的工作状态都有可能会出现波动。所以需要对医生每天的标注状态进行实时监测,以保证数据标注的质量不会出现大幅度波动。监测方式主要有以下几种:
第一,标注时间监测。在培训测试阶段,可以通过记录测试过程中医生对于每一个病例的标注时间,建立每一位标注者的标注时间分布。在实际标注阶段,可以通过不断比对每一个病例的标注时间、该时间在该标注人员标注时间分布中的位置来判断标注的状态。若标注时间多次出现过长或过短的情况,则需要对标注人员的状态和数据的质量同时进行评估。
第二,标注一致性监测。在标注过程中,引入部分病例,让同一名标注人员进行二次标注,并计算同一个人两次标注之间的一致性,以确保标注人员的标注一致性水准始终能够达到项目的要求,保证整体标注的一致性。第三,标注准确率监测。在标注过程中,引入部分医学专家提供的带有标准标注答案的病例,计算标注人员对于带标准答案病例标注的准确性,用以评估标注人员的实时状态。
由于开发深度学习类产品所需的数据标注量极大,标注过程的时长、费用都会十分高,因此控制标注过程的质量以及设计合理的标注方法和流程,能够控制标注成本,大大降低由于设计不合理造成的返工和成本增加。
为了避免在大量数据标注后才发现问题,推荐进行小批量标注预实验,用以检验方案的可行性。即在大批次数据标注之前,先选取少量病例数进行标注预实验,以检验标注培训效果和标注医生水平,检验标注方案和标注策略是否可行,为确立最终的标注策略提供数据分布以及标注质量评定的参考,同时预估标注耗时和成本。标注预实验阶段,应选取超量的医生(与最终实际标注相比)进行重复标注,以便评价不同标注质量控制和标注医生的能力。如果在小样本测试中发现多名医生标注一致率不高等问题,则应当重新回顾产品需求的设计和功能定义,确定该问题是否可以通过该种标注形式来达到预期效果。
构建一个人工智能产品,把算法模型从0训练到可以达到临床实际应用的程度,需要严格管理每一个环节质量。好的标注数据质量就像营养丰富、均衡、干净卫生的美食一样,输入进模型可以帮助人工智能模型健康、茁壮的成长。但是如果输入了质量不达标的训练数据,则会造成严重的“先天不足”,影响后天的成长。“磨刀不误砍柴工”,正确的产品设计、高质量的数据、准确的标注是一个医疗人工智能产品能够成功的重要条件。我们既要做到快速迭代,又要保证资源的合理利用。我们可以通过前期的充分调研论证与思考,配合小批量的预实验来验证方案的可行性。这既可以实现快速的多轮迭代,又可以避免资源的大量非必要支出,增加每轮迭代的有效性。我们在研发过程中既要充分学习互联网行业快速迭代开发的机动性,又要保证遵循传统医疗器械行业审评中“安全、有效”的基本要求,只有这样,才能设计出好的基于新一代人工智能技术的医疗器械软件。