干货来了!HealthX Talk回顾 | AI如何向医生解释?以临床用户为中心的可解释人工智能
随着人工智能(AI)在医疗的技术进展,AI有潜力为临床用户提供医学辅助决策意见,以提升临床决策质量和医疗服务效率。然而AI在实际的临床落地中仍面临着诸多挑战,其中之一便是AI的可解释问题,因为AI本身是黑箱模型,即给定一个输入,AI提供一个预测,而这中间的决策过程对于人类来说是个黑箱,即便是创造出AI的工程师也很难弄清楚AI是怎么做出预测的。在使用AI模型时,临床用户仅仅从AI那里得到一个预测结果是远远不够的,还需要AI能够解释它的决定,以便医生能够判断AI决策的可信度,提高人与AI协作决策的质量。这次分享中,我将概述可解释AI在医疗领域中的研究,并结合我在临床、人机交互、人工智能研究的跨学科背景,介绍自己在以临床用户为本的可解释AI用于医学图像分析的一些初步工作。
本文总结了8月27日HealthX Talk中金巍娜博士的分享。我们欢迎对于生物医疗科技、医疗人工智能等研究领域感兴趣的朋友关注HealthX Club公众号,并联系负责人加入HealthX Club社群,共同探讨医疗科技的未来发展。
主讲嘉宾介绍
金巍娜,北京大学医学博士,加拿大西蒙菲莎大学计算机博士在读。研究方向是可解释人工智能在医学图像分析中的应用。
Weina Jin is a Computer Science Ph.D. student at the Medical Image Analysis Lab, Simon Fraser University, supervised by Professor Ghassan Hamarneh. Weina received her Doctor of Medicine degree from Peking University, and underwent neurological residency training at Peking University First Hospital. She also received research training in human-computer interaction at Simon Fraser University. Weina's research combines her multidisciplinary research experience in medicine, machine learning, and human-computer interaction, and focuses on developing physician-centered explainable artificial intelligence for clinical decision-support. She uses a human-centered approach in the technical development and evaluation to make AI more clinically applicable. Her work has published in AAAI 2022, and received the best poster presentation award in IEEE VIS 2019. She is also the recipient of Borealis AI Global Fellowship 2022.
金博士个人网站weina.me
1. 向医疗人工智能转型的背景和动机
Weina博士首先介绍了自己向医疗人工智能转型的故事。最开始,Weina博士学习并且从事的是临床医学的一些工作,并且做过神经科的住院医师。在发现自己与临床的工作并不太适合后,毕业后她开始了转型,在经历不断的尝试后,自己开始重新接触编程,并且开始自学,在相关领域不断探索,并申请了SFU的Interactive Art & Tech的研究。来到这个平台后,Weina博士开始思考如何将自己所学的知识与自己的兴趣结合起来,于是自己开始学习可穿戴设备、虚拟现实、可视化等知识,将人工智能与医疗科技相结合,并且致力于可解释人工智能在医学图像分析中的应用领域的研究与探索。
2. 什么是人工智能和可解释人工智能
接下来,Weina博士与观众进行了互动,让大家一起谈谈自己印象中的AI,例如机器学习、深度学习、语音助手、自动驾驶等等。而人工智能与传统的一些技术相比,更加智能、便捷,能够解放劳动力。
关于人工智能的基本知识:所谓智能,它就是我们能能直接推理信息。你从这个信息中来获取对我们有用的知识,来调整我们的行为来更好地适应环境,所以这就是智能,包括人,动物,有很多智能。然后人工智能,顾名思义,就是人工的智能吧,也就是说机器能表现出来这种智能的行为。那通俗一点说,computer program就是计算机程序或者这种软件,它能够自己像智能一样根据环境,这些信息来做出决定。那这个大概就是人工智能一个非常模糊的定义,那具体来说什么是智能,那可能每个人他有不同的理解,然后这个可能就影响到我们在人工智能一些研究方面不同的发展。就比如说,这个符号的智能,还有目前的大语言的模型,large language model那么它这这些就是研究方向的分化,那可能就是体现了不同人对这个智能的理解。
然后对于我们为什么要研究智能,智能可能就是因为可能让我们的生活能够更便捷,更解放劳动力,其实我们就是在现阶段,可能更多的是啊,用来支持人类,辅助人类,辅助医生,然后辅助自动驾驶,或者辅助我们能在比如说在购买的时候,推荐一些我们感兴趣的东西,这些就是来更加好来优化的这些角色,然后另外一个可能也是很多做人工
智能的人,他的一个初衷就是他们很想了解,人脑是怎么工作的,通过这种逆工程的方法,通过制造出一些有智能的机器来了解我们人到底是怎么思考,我们大脑到底是怎么运转的,那这个就有点偏神经科学的这种动机,然后可能还有每个人有不同动机去进入到这个领域。
人工智能如何工作:首先从这个定义我们来说智能,它是能获取外界信息,然后它有一个学习的过程,然后变成他自己的内化的对于世界的理解,我们叫做知识。其实可以类比我们在医学院怎么学习的,医学的就我们可能首先要上课,然后了解一些医学的知识,然后我们把这些知识把这些信息,包括我们临床实实践中的一些信息对应起来,然后通过一个学习的过程,变成我们这个医学的临床的经验。然后学完这个之后呢,我们有了这个知识,主要还是要用在这个临床的实际的工作中,那我们可能在看病人的时候,遇到一个新的病人,那我们也可以把临床知识用到这个病人,我们了解到他有一些症状,有一些体征,我们可以通过这些给他一个最有可能的诊断,然后就达到了帮助这个病人解决问题的一个过程。那其实AI也是类似的一个过程,简单来说,它这个信息主要是我们人去给它的,就是包括一些标注的数据,用监督学习,然后给他一些一些正确的答案,然后让这个AI它就自己就能从这个过程中来提出来一些知识,或者是一些模式,它自己能够识别出来,这是一个训练的过程,接下来训练完了之后,我们就要用这个AI模型来解决实际的问题,那接下来,比如说给这个AI相似的病人的X光啊,他可能之前训练的时候已经了解了怎么做这个疾病分类,然后他用这个训练好的模型,我们就可以帮助影像科的医生或者帮助临床医生辅助诊断,这样一些辅助决策,这个就是我们在临床中叫testing或者叫perdiction,就是这个模型分两个块儿,一个是训练,一个是使用或者是测试。
AI在最近的十年,它有了一个非常大的进步,那主要是一些,比如说算法算力,一些数据的一些原因。算法方面就是抛弃了之前可能用手工提取数据、知识的方法,我们就直接把原始的数据或者是医学图像直接给到AI,让他自己去学,他自己就能学到这个知识了。然后基本上现在的ai都是做一些模式识别,当然它这个模式识别能力是非常强大的,然后包括我们也可以看到像Alpha Fold呀,可以帮助科学家直接发现新的一些蛋白折叠的一些规律,这些都是从之前的给他提供的这些生物学的数据中他学习出来这些模式。简单来说怎么理解这个模式识别,那我们可能在都大家可能或多或少都接触过拟合,用我们的数据,然后我们想拟合出来一个模型来描述这些数据。然后一些诊断什么的,那我们现在有了这些观察,然后我们想建立一个模型,如果是一个线性模型的话,我们就可以直接用线性回归的方法,然后直接算出来。那如果是比较复杂的这种数据的模式的话,那AI它是一个比较好的拟合的工具,它可能就给你拟合出一条比较符合这个数据分布的曲线来。可以简单理解ai其实做的就是这样一个事情,包括我们看到这个医学,你让它识别出来,诊断,那它可能也是从这些数据中找出来一些模式,然后导向它这个诊断。
那它的内部具体是怎么工作的,我们最常用的叫做deep neural network或者deep learning,它有一个名字叫neural network的东西,如果有医学背景的人可能对这个neural network比较熟悉,这个是大脑里的,或者是人体的一个神经元的一个示意图。然后它有这个细胞体,它有这个轴突还有树突,比如说这个轴突就是接受一些外界的信号,然后把这些信号综合起来,然后然后再传出一个新的信号。那我们分开看一个神经元那它这个人工神经元它这个功能就更简单一些,更简化的。他一个神经元接受外界不同的信号,我们可以把这些X1X2,比如说看成了是患者的病历里的不同的项目。比如说这个人有没有发烧,有没有咳嗽,他的血细胞他的化验值是多少,就每一个都代表病人特征值,或者是图像方面,可以是一个像素,或者是一个像素点的那个数值,然后把这些信息,每一个都给它一个权重,给它综合起来用一个加权的值把它们的和加起来,然后经过一个简单的非线性的叫做激活函数的一个转换,就得到一个这样的输出。其实现在的这些很多的神经元,都是这样一个非常简单的模型来模拟这个人工神经元。那我们说ai为什么有很强的模式识别能力,主要是它把这些很多的这种简单的的点,把它叠加起来了。我们的一个医学图像的输入,然后它怎么来预测出来,这个患者的疾病呢?我们把这个输入给到它之后,就像我们刚才说的,可能就是一个图像上的一个像素点,然后这个像素点,经过一个这样叠加,然后结构一个非线性的激活,然后它得到一个输出,然后我们现在给他很多很多这样的神经元,十几个或者几百个这样的,然后每个神经元都做这个同样的,这样一个运算。然后每一层里有,比如说有几百个神经元,然后我们叠加很多很多层,比如说十几层或者是几百层的这样一个结构,最后给它一个输出,所以它有这么多非线性的叠加,有这么多变换,它可能就把最开始这个隐藏在图像里或者是病例的模式,它就可能就自动的就识别出来了。然后通过最后我们给的信号就是一个患者,他有什么病,那它最后给到一个预测,可能这个预测是准的,或者是不准的,但是我们用一个损失函数来规范它,最后这个学习的结果,然后把这个损失函数的这个信号再给到他,然后他可能用这个来调整自己的内部的神经元的权重。然后通过这种方式,不断的给他不同的例子啊,不同的患者的不同的的图像,然后他不断的学,通过这个训练,然后他调整最后权重。他通过这样一个给定输入,然后一个反馈,这样一个过程,就学到了不同的数据中的一些模式。
人工智能在临床中的挑战:AI在临床中、在研究中发展的非常非常迅速,最近有很多很多这样的研究进展,但是有一个问题就是他在临床的这个落地过程中,遇到的很多挑战,并不是我们想象中那么顺利。这是我们之前的一个综述的,然后就看在我们临床不落地的过程中,有可能有哪些挑战,我们就总结出了几个,包括有数据方面的,那我们刚才显示这个ai它必须要学习,不像我们人学习,可能你看几个病例就够了,那ai可能要成百上千个数据,那它才能补助出来数据中的这些模式,那如果我们在临床中数据少或者缺乏标注的这些数据可能对ai的学习会造成一些问题,然后我们总结出了一些研究进展,比如说数据的一些生成,或者一些怎么让数据可以多中心一起采集,然后用比如说监督的方法,怎么从这种少的数据的标注中能学到一些知识,这个是数据方面。然后是模型的训练方面,因为数据可能少,那模型训练可能要采取不同的策略。最后一点就是因为我们的ai它现在可能完全没法代替医生,还远不到这种程度,因为我们刚才说了,它只是模式识别的这个能力,那我们医生在临床的工作可能要比这个复杂很多嘛,尤其是你要跟不同的人交流,然后跟病人交流这些。所以ai在目前呢,可能最主要也就是给医生辅助一下做一个他的辅助决策这方面的一个工作。
那我们可以看几个临床的场景啊,比如我们现在有一个训练好的AI给到一个影像科医生,然后他告诉医生说这个是一个肺炎,医生说,我可能觉得这个像肿瘤,不像肺炎。那这种情况下AI该怎么办呢?如果医生的意见和AI的意见不一致,AI它就是做临床预测诊断的时候,你给图像,它给你一个输出。那基本上目前的AI,就是给一个输入可以说出基本上发生了什么,我们人很难知道,不仅医生很难知道,包括AI的一些研究者啊,包括程序员,训练AI的这些人,也很难搞清楚发生了什么,因为我们刚才显示它有几百万个这样的神经元,包括他们的的参数就是人其实很难了解出这样的模式,它里面到底是怎么学习的。这个这个就是一个比较抽象的场景,当然临床的实际应用,我想可能各位比较有经验的。
然后比如说再想象另外比较简化的一个场景,AI给到医生一个诊断,这可能是那个二级的一个肿瘤,那医生说我可能会觉得这个有道理,但是我想说你能不能给我提供一些更多的信息,因为我要放到医学报告里面或者是病历里面,我可能不仅要一个诊断,我可能还要一些列举一些其他的理由,或者是你能不能给我一些理由,这样我可以也可以跟病人和家属啊,或者是跟我的同事同事讨论。那这种情况面对医生的这种需求呢?AI该怎么办?
然后还有一个,比如说AI给到一个医生一个诊断,那医生可能最开始因为他没有用过这个,或者他没有什么经验,他想我到底要不要采纳你目前对我的这个建议?就算他可能用了一段时间,他觉得这个AI可能确实啊,经过之前的临床认证验证它正确率超过的医生,但是即使这样,这样一个错误的概率,但是我们医生可能希望每一个决策,我们都希望能做到最好,那我们怎么避免这种错误呢?
医生可能还想知道更多关于AI能够提供临床诊断的证据。就可能对于一个实习医生或者做住院医的医生,那他可能需要AI,AI的知识是不是能够转化给医生啊?医生他是否可以从AI中获获得一些新的知识,用于他的一个临床技能的提升,或者是他可以做出一些新的研究,或者是新的医学的发现。那这些都是可能在临床应用过程中,我们叫医生和AI的一个合作,他可能有更多这样的需求,但是这些需求可能我们目前的这个AI可能很难满足,因为我们讲它都是一个黑盒子模型你给一个输入,它给你一个输出,它中间的过程谁也不知道到底发生了什么。
划重点,干货来了!
可解释人工智能:那这个就是我接下来要重点谈的这个可解释AI,因为我们讲AI就是一个黑盒子,人类很难知道这个中间到底发生了什么,或者说我们人脑的那个神经元可能我们已经比较了解了,但是这些怎么让我们人有意识,有这种智能的行为的,我们对自己的脑子也是知之甚少的。那其实这个可解释医疗它就是一个领域,就是帮助人,尽量的能够打开这个黑箱,然后看看里面发生了什么,然后通过同时把这种AI这个决策的过程,用人类可以理解的方式来解释给人类,然后由此来帮助更好优化人和机器合作,可能更有提升人类的临床表现。
AI的解释,它可能有很多的临床的用途,比如说刚才我们提到这些临床应用中,当医生跟他AI他这个意见不一致的时候,他可以给到医生一些解释,然后帮助医生来辅助来决策,然后呃可以给到医生更多的一些临床决策的证据。呃,然后比如说可以帮助医生来调整,他的对AI信任的水平,比如说这个病例,那AI可能给一个完全不合理的解释,那医生可能觉得啊,在这个病例上可能我不应该采纳AI的意见,我应该自己去看一下这个片子到底是怎样的。可解释AI也可以帮助医生有更多的临床发现,然后提升医生的这个学习的水平。然后这个就是可解释AI用于临床的一些具体的需求。
那接下来就是偏技术方面,我们怎么让这个AI变得可解释让人能够更理解。因为我刚才讲这是一个黑盒子模型,那我们先想一下,因为我们的大脑其实也是一个黑盒子,我们人类花了几百年的时间来理解我们大脑。其实就是类比我们怎么理解大脑的的过程,那不同的是这个人工神经网络,它其实更简单,因为每一步它都是透明的,你都可以看到每个神经元它是怎么它的数值,它的激活它的变化是多少,然后你也不用像人脑一样用很多费力的方法进行测量,你这个人工神经网络它就在那里。那我们这个了解大脑的过程,就是我们已经有一个训练好的模型,我们来看模型到底它为什么要做出这样的决策,这个叫事后的一个解释。然后另外一种就是说我在设计这个AI模型的的时候,我就把它变得非常容易解释,比如说传统的机器模型,包括线性回归,刚才我们讲那个线性拟合,我们对于每个因素,它都有权重,我们就可以直接用那个权重来看它到底是哪个因素,它的权重多少,我们可以用把那个当做一个非常便利的一个解释的方法。但是那个也只能做一些简单的线性的关系的拟合。那我们刚才看到那个AI它主要是做一些在这种高维度或者非线性的这个空间内,它是怎么做这个拟合的?其他的一些传统的模型,比如说包括决策树,它可以可以告诉你,如果这个特征是这样的话,那它可能导出这个诊断,有这些机器学习的算法。那包括很多尝试设计怎么让深度神经网络,能够变得更加能够解释自己的决定,不光有预测,然后还要给他输出一个预测,还要输出一个解释,然后这个就是呃,我们在设计的时候就考虑到可解释这个性能了,我我今天介绍简要介绍几个比较简单或者是比较常用的一些方法。
第一个方法就是就像我刚才说的,就是这是每一层的神经元,给它可视化了一下,然后看这个神经元学到了哪些特征,就是我们可以看每一个神经元,它到底学到了什么东西。但是这个可能对于临床并不是很适用,可能更适用于这个AI工程师做一些模型的微调,或者测试。因为可能很多医生,他并不了解什么是神经元,那这个主要就是用在这个工程调试。我们可以看一下神经元网络中内部的一些数值,然后通过这些数值或者参数来间接的了解,他是怎么做这个决策了,那这个其实有点像我们神经科学或者心理学的方法。
AI临床评估的四个阶段:这个是我们之前提出来临床评估四个期,就是有点类似于我们在新药研发的四个期。第一期是临床前期啊,我们这个类比就是我们只要做一些临床前期的工作,就是做一些安全性的一些考量,那这个类比就是我们只做一些算法上的评估,我们这在这个基础上这一期我们不加入这些人的因素。然后第二期我们初步来评估它的临床有效性,那类似的,我们就是初步的评估,这个AI的算法和医生,他有没有可以帮助到临床医生在这些临床的这些任务中,在这一步我们开始引入了医生,包括以上我们决策中会有医生的加入,因为我们最终的目的,他是要辅助诊断,所以我们不光要检测算法了,可能还要看到它具体在临床实施中,它是不是真的的对临床是有益的,然后第三期就是我们比较熟悉的这个R C T,这个学习对照实验,可能有一些更严格的这个实验的方法,用一些对照啊,来看AI使用在真正的临床的实际的效果是不是有这个影响。那第四个类比,这个药物它就是post marketing它可能是做临床落地之后的,比如说监测或是模型的更新啊。这个是一个大概的评估的一个框架。
为什么现有的AI可解释性的工作没有理想中的那么有效:
目前的可解释AI的工作,他并没有像我们想象中那么有效。那么我们就回到最开始的那个话题就是关于人机交互归因到底它还是一个以人为中心的这样一个因素,因为最后解释还是给人看的,不是说我光设计这些算法,那我们看到目前的这个可解释AI这个研究中它其实更多的是这种工程师觉得我应该需要什么,或者是用户需要什么,他可能就设计去了。算法很多,但是我们不知道哪些算法有用哪些算法没用,我们就形容就是有很多的锤子,但是我们找不到可以用这些锤子的钉子就造成的,大概是这样一个局面。所以说,如果我们真的想切实的让这个可解释AI能够真正帮到的医生,而不像我们刚才这个临床这些实验看的其实没什么用处那我们可能还需要了解人这个因素。
根据这个,我就提出了这样一个框架,就是说这个研究是不是可以从以工程师为中心转移到以用户为中心的,这样一个观念来,然后我们最近刚提出来这样一个文章投出去。然后这个工作它其实主要就是我怎么把这个观点从这个以工程师为中心转到以用户为中心呢?那我们提出了,一个非常简单的一个可视化的东西,我们把这些算法总结起来,这些算法哪些是真正这个临床用户或者是其他没有AI背景的人可以能理解的,然后我们就把这些算法用最终的视觉的表现形式给他们。总结出来每一种视觉,每一种分类,其实背后有不同的X AI就是可解释的算法在在背后,我们有对应的一个表格,比如说用户可能喜欢这种feature attribution, 然后我们有一堆feature生成这样的解释,那一个用户可能他想要我用一个类似的一个例子,那我们就总结出来有不同的算法就相当于说我们总结出来可解释的这些形式,它是可以基本上追踪用户是可以理解的。然后用这些形式,我们又有对应的算法,那我们就提出来这种非常简单的方法,我也应用到刚才那个临床实验上。比如说病理科医生需要这样一些可解释的一些形式,然后让他选这些都是已经打印好的卡片,然后我让他选,他可能会觉得哪个可能更符合我的临床需求。Feature attribution这个高亮的一个图加上一个,比如说一个决策的,这样一个规则,我可能觉得这两个就比较符合我的一个隐藏的需求的,然后可能不同的用户或者针对不同的场景,它有不同的需求,那我们就把这个东西方便的总结出来,可以在我这个网站上看到,也可以自己拿去用,比如说如果你想给医生设计出来一个这样一套可解释的这个系统的话,你可以先去了解一下医生到底需要什么东西。
以上就是本期HealthX Talk的回顾,您可以通过回放更详细地观看本场Talk,如您对医疗科技、人工智能感兴趣,并且想了解更多内容,欢迎关注HealthX Club官方公众号,也欢迎添加负责人微信,进入HealthX交流社群,共享更多医疗人工智能的内容。我们期待您的加入!
关于HealthX Club
HealthX医疗科技俱乐部是上海交大的学生组织,成立于2021年。俱乐部志在探索人工智能、基因工程等前沿科技对医疗行业的颠覆性革命。从生物医学和工程技术两个角度出发,跨界探索未来医疗的无限可能,推动医疗与前沿科技的深度交叉。HealthX俱乐部成员有来自上海交通大学、复旦大学、卡内基梅隆大学、斯坦福大学、麻省理工大学、北京大学、清华大学等顶尖高校的博士研究生、本科生,上海交大附属医院如新华医院、瑞金医院、仁济医院、上海市第一人民医院、上海市第六人民医院、上海市第九人民医院、上海市儿童医院等医院的医生。同时,HealthX俱乐部也吸引汇聚了一批医疗科技行业的研究专家、创业者和投资人。欢迎志同道合的你加入我们!关注HealthX公众号,菜单栏点击「加入我们」进入俱乐部交流群!
请添加HealthX Club成立人微信,提供一段简短的自我介绍及感兴趣的生物医疗科技方向,加入HealthX Club社群。