影赞助诊断紧张做两件事情:
医学知识图谱构建;基于疾病的诊断。本日我们来剖析如何用AI技能做食道癌识别和赞助诊断。
食道癌是天下五大恶性肿瘤之一,我国又是食道癌的高发地区。这个项目的目标是通过影像判别病人是否可能患有癌症。
项目的整体流程如下:
全体流程大致可以分为这样三个阶段,接下来我会大略先容每个阶段的难点。
图像数据集少、表现不一
常日的图像分类任务动辄几十万、上百万,乃至上千万的数据量比较,医疗影像它的数据量是非常少的。同时,由于设备参数、年夜夫的拍照手腕或拍摄角度、光照的明暗不同,食管的表不雅观变革非常繁芜。
那么,我们若何才能在这样的条件下得到一个可靠稳定的模型?
采取Feature map。Feature Map是卷积核卷出来的,你用各种情形下的卷积核去乘以原图,会得到各种各样的feature map。你可以理解为你从多个角度去剖析图片。而不同的特色提取(核)会提取不同的feature,模型想要达成的目的是解一个最优化,来找到能阐明征象的最佳的一组卷积核。
在同一层,我们希望得到对付一张图片多种角度的描述,详细来讲便是用多种不同的卷积核对图像进行卷,得到不同核(这里的核可以理解为描述)上的相应,作为图像的特色。
他们的联系在于形成图像在同一层次不同基上的描述。下层的核紧张是一些大略的边缘检测器(也可以理解为生理学上的simple cell)。
在拿到食管数据之后,如何判别这个食管属于康健正常食管还是病变食管呢?
这个问题跟前面的问题比较类似,也是一个判别模型。
它们的不同之处在哪呢?
当我们判断一个食管是否非常食管时,只须要找到一个病变区域,就能够解释这个食管是非常的。
但是反过来,在正常图像中,并不能说找到一个正常特色,就解释这个食管是正常的。只能说在这张图像中我们没有找到非常特色,它可能是见正常的。
因此,在正常特色和非常特色之间,我们更方向于提取病变特色,抑制正常特色。
我们是怎么做到呢?
病变和正常的case都会经由神经网络,以得到特色向量。对付这个向量,我们希望尽可能凸显非常特色,让正常特色趋近于0。
我们是如何把这种信息建模到模型中的呢?
我们对模型进行了重新建模,末了准确率大概在97%旁边。
前面的模型相对来说比较大略,第三个模型紧张是区分炎症和癌症,它与前两个问题不大一样。
一样平常情形下,病变的食管图像里都会伴随着一些炎症的特色。
我们对癌症的判断每每是通过一个纹理特殊小的区域得出的,因此须要提取出更加风雅化的特色。比较好的做法便是让很多专家把病灶区非常严谨地标注出来,这样我们只须要对这个区域进行识别就好了。
这个标注量非常大,因此数据非常匮乏。我们没有癌症区域的标注数据,但又希望得到非常风雅化的特色,如何办理这个抵牾呢?
幸运的是,我们虽然无法获取到非常精准的病变区域标注影像,却能够相对随意马虎地知道一张图像是否包含癌症,由于只须要跟病例对应关联起来就好了。这样一来,我们可以更随意马虎地得到图像全局的标签。
如果一张图像包含了癌症,一定会有一个或几个区域包含了癌症的特色。也便是说,如果我们把图像切分成几个patch,一定会有某个或某几个patch包含癌症特色。基于这样一种思路,我们采纳了多序列的学习办法。这个方法的内在思想很大略,便是把图像切分成多少个patch,然后对每个patch建模,判别这个patch发生癌症的概率。
我们末了把所有patch里面癌症概率最高的那块,作为图像是否包含癌症的标签。
做的过程当中,我们会逐渐积累精准标注的数据,这些数据非常少,不敷以虚拟一个模型。但图像中的特色都是最精准的,是经由人为校验和标注的。
我们若何才能把这种少量的、精准的数据强化到癌症识别中去呢?
这是个非常故意思的问题,如果能办理这个问题,纵然只有少量标准数据,我们也能不断提升。
这里紧张采取了多任务学习的方法,这个方法须要完成两个任务:
基于有病变区域标注的数据建立有监督的学习任务;对付没有病变区域标注的数据,建立前面提到的多序列学习任务。这两个模型共享特色提取网络,特色提取网络必须同时知足两大任务,这样才能把精准标注的特色强化到癌症识别中去。
以上是我们食道癌项目的大略先容,下面再大略先容一下我们在赞助诊断方面做的一些事情。
赞助诊断的目的是什么呢?
我们希望机器终极能够像临床年夜夫一样具备诊断疾病的能力。
在先容赞助诊断项目之前,我们先来看看一个年夜夫或者一个普通的学生是如何发展为一名专家的:一个学生从刚入学开始,学习了大量专业课程,阅读了大量专业医学文献后,就可以积累一定程度的医学知识。
当医学知识达到一定程度之后,就可以去医院里面演习,由临床年夜夫结合一些真实案例,辅导他去学习诊断的技能。
当我们具备了这些技能,就能够成为一名普通的年夜夫,年夜夫可以看到大量的病人,学习大量履历,履历足够丰富之后就成了专家。
机器发展的过程与人类大致相似。
我们可以将其分为三个阶段:
医学知识图谱的构建,也便是机器学习知识的过程;有了知识之落后修诊断的能力,也便是建立疾病判别的一些模型;让机器在与专家的博弈过程中,不断提升诊断水平,逐渐逼近乃至超过专家。医疗知识图谱的构建过程中,我们首先要对文本数据进行处理。文本数据分成两类,一类是半构造化数据,一类是非构造化数据。
这里我列举一个例子,解释我们如何把非构造化的文本变成构造化文本,也便是打算机可以理解的形式。
我们可以把病史分为几个部分:疾病的情形、入院的治疗经由、入院的依据等;把病史分为这样几部分信息后,再对每一类信息进行细化和提取;经由提取之后,非构造化的文本就变成了打算机能够理解的构造化文本;我们会把这些信息转化为医学知识图谱存在电脑里,于是打算机就把这个知识学会了。
以上便是医学知识图谱的构建过程。
第二步我们会有一个诊断模型。
诊断的过程是这样的,首先把一段人类措辞描述的病情转化成打算机可以理解的构造化知识。有了却构化的知识往后,机器就能理解这个人的情形,把知识推送到疾病诊断模型当中,模型将给出一个疾病列表,诊断模型的流程大致便是这样。
下面我们来看一个病情理解的实例。
通过技能对病人病情的理解可以得到一些基本信息,个中包含性别、年事,这个人的主动描述、现病史和既往史等。
主动描述里会提到症状以及持续的韶光,乃至一些更繁芜的信息,比如说唾沫是什么样子的,咳嗽是否带痰。这些信息都会详细刻画出来,按照前面提到的模式画出病历,完成对病情的理解。
理解病情往后,将其输入诊断模型当中。
诊断的demo包含几个部分:对病情的人类措辞的描述,通过病情理解后得到构造化的病情表示,之后得出机器诊断的结果,按照概率从高到低给出5个结果。
我们还给年夜夫留了一个接口,年夜夫可以对诊断结果评分,通过评分将结果反馈到模型当中。
通过年夜夫和机器之间的交互,可以将模型迭代得越来越好。
我们在实验室数据里选择了大概10万个真实病例进行测试,TOP1的结果与年夜夫的同等率大概是92%,TOP3是90%,但这种模型还须要更多临床病例做验证。
本文由 @pms-rolia 原创发布于大家都是产品经理,未经容许,禁止转载
题图来自 Unsplash,基于 CC0 协议