透彻影像王书浩:三易其辙与功不唐捐
作为透彻影像的技术总监,王书浩的经历可谓「不走寻常路」:本科的背景是量子物理,博士生阶段从「分布式系统的性能优化」方向入门计算机科学;他在深度学习一途上的尝试也非常多元化:医疗影像、计算机围棋、用户行为分析 …… 均有涉猎,亦有建树。
最终,他选择了 AI 医疗,选择了「病理」这个医疗诊断的「金标准」,医疗图像中极为困难的领域。然而我们回顾他的进程,却发现这一条不寻常的路径上看似独立的每一步路,如今却都成为了落地 AI + 病理影像过程里的「功不唐捐」。
从物理到病理:那些更加接近客观真相的选项
「我本科是学物理的,2012 年博士入学的时候也是去了清华的物理系,研究方向是从数学角度找到一个『量子关联』的合理度量,为量子计算提供一个基础。」
而引导这位物理学研究者转向 AI 领域的第一步,是大数据。「我想做一些更能够贴近人的生活、更加社会化的一些研究,能够亲自看到我的研究改变一些东西。」
他先是创建了一个名为 Quantum Computer Club 的兴趣团体,让物理系的 、数学系的、自动化系的学生一起去思考与讨论未来量子计算的可能用途。2014 年,他还与物理系的导师一起发表了国内第一篇量子计算与大数据关联的综述文章,探讨如何用统计规律或者深度学习模拟去解决量子的问题,以及如何用量子计算的思想解决大数据问题。
虽然一步步走向社会化与实用,但「物理思维」仍然影响着王书浩的许多重大选择:「在面对选择的时候我会倾向于那个更加接近客观真相的选项。这是我为什么选择了病理。」
病理是把人体可能发生病变的组织制成切片,通过在显微镜下观察来进行一些判断。
「病理更加接近诊断。」王书浩这样概括道。换言之,在「发现症状」到「确诊疾病」的这条路线上,影像会早早出现,而病理通常是肿瘤患者确诊前的最后一道关卡。病理在医学中被称为「金标准」:包括癌症和一些肿瘤的最终治疗方案都需要受病理的报告结果指导,而病理科医生也被称为「医生的医生」。
然而想让 AI 帮助病理「减负」,仍然远比其他图像问题困难,因为病理科甚至是一个尚未实现数字化的学科。
「在 301,我们仍然保留着从 1953 年建院至今的所有病理切片。」301 医院病理科副主任宋志刚介绍道。如今放射科室已经被俗称为「GPS」(GE, Phillips, Siemens)的巨头设备公司们带入数字化时代,许多医生们已经习惯了在电脑上阅读 CT 与 MRI 影像,而出于成本、保存难易度等考量,病理科医生的工作界面数十年如一日,仍然是光学显微镜+切片。在病理信息中心里,医生们在显微镜下观察病理切片,然后在电脑上撰写病理报告。每天,他们要将这个过程要重复 200 到 300 次,加班乃至通宵都是日常生活的一部分。
图:301 病理信息中心
因此,AI 辅助病理诊疗系统的建立,要从把实体切片扫描为数字化文件开始。然而医生与算法工程师们对于 AI 辅助病理诊疗的必要性坚信不疑:「病理医生的短缺程度是超乎想象的。」宋志刚说,2014 年,卫生部要求「每 100 张病床至少配备一个病理医生」,而拥有近 800 万张床位的我国,目前仅有 1 万名病理医生。而从政策的角度,仍然有类似「两癌筛查」的需求源源不断地出现,无法用人力方法解决的客观供需矛盾,是 AI 病理的出发点。
那么 AI 能帮助病理医生做些什么?
在宋志刚的办公桌上里,除了显微镜与切片、开着未完成病理报告的显示器之外,还有一台额外的显示器:屏幕上是一张放大后的数字病理切片,在图片之上,透彻影像开发的 Thorough Insights 软件用红色的曲线沿着细胞的纹理勾勒出数块潜在的癌变区域,给出相应的病症预测和病变区域的面积。
宋志刚用显微镜观察了一会儿切片,又观察了软件分割出的曲线,确认软件的分割结果。「医生用显微镜的低倍镜看全貌,高倍镜看细节。对于在低倍镜下不确定的疑似病例,现在医生需要切换到高倍镜,逐块地把所有区域都观察一遍。如果系统把怀疑有癌的部分提前圈出来,医生相当于有针对性地进行细节检查,效率的提高很显著。」
辅助诊断系统不仅能够用于疑似病例的定位和确认:在筛查中,绝大部分的实例都是阴性的。以 2016 年北京市的两癌筛查数据为例,26 万人中检出有癌变者 700 余人,阴性比例超过 99.7%。如果机器可以在医生阅片时给出预测结果,筛查效率将显著提升。
从「深度学习的能力」到「深度学习的能力边界」
在创办透彻影像之前,王书浩也曾经在金融科技公司任职,主要通过研究用户的行为来分析用户是否为欺诈用户。
「我们在探索深度学习的能力。」当时深度学习还远没有今日为人熟知,人们只是定性地了解,当数据规模到达一定程度后,神经网络的能力会超过原有的决策树等方法。「后来我们在使用大量数据进行验证后发现,大概在几千万这个量级上,深度学习的效果开始远远超过机器学习模型。」千万量级的数据是深度学习模型效果超越 xgboost、随机森林等方法的充分条件。
而在透彻影像,他带着团队往前又走了一步,「我们在探索深度学习的能力极限。」
探索的过程从模型选型阶段就开始了。「通常,研究人员把病理问题当做一个分类问题来解决,或者说使用的工具是分类(classification)模型,但是我们选择用分割(segmentation)的路径,并且实验效果也证明,我们选择了一条正确的技术路径。」王书浩说。
在计算机视觉领域里,相比于自然图像,「大」是医疗领域内图像的共同特点。而相比于 X 光与 CT 这样的影像图像,「大」仍然是病理图像的显著特点。一张数字 X 光片大约由 2000 x 2000 个像素组成,一张 CT 大约由 512 x 512 x 截面数(大约 100-200)个像素组成,这样的图像保存后大小仍然在 MB 级别。而病理图像的大小在 120k x 200k 量级,通用计算机几乎无法打开,更别提在此基础上进行大规模的矩阵运算了。
因此,之前业界的常用作法,是把病理影像切成和普通图像差不多大的小块,然后对每一个小块做「是否癌变」的分类预测,然后再将分类结果组合起来,看似对整张图像做了「分割」。这种选型有一定的理由支撑:例如病理医生的主要工作是在切片中「找到癌」,至于癌细胞在病理图片上的哪个位置,看似并没有那么重要,在这样的前提下,选择用技术上更成熟的分类逼近难度系数更大的分割,是一个看似合理的选择。
但透彻的技术团队不这样认为。「如果模型不能准确地把癌变部位圈出来,那么它对癌的理解一定是不透彻的。区别病变与非病变只是第一步,是远远不够的。我们选择分割模型也是为下一步打基础,接下来我们还有区分不同类型的癌变等等其他任务,都需要模型对癌更深入的理解。」
图:热力图为模型预测的癌变像素及其概率,红色折线为医生标注
在分割模型构建过程中空洞卷积(dilated convolution)被大量使用。空洞卷积在维持输入输出大小的同时为分割保存了足够的信息。「原来用普通卷积层层压缩特征维度的方式是为了最后一步的 softmax 分类,并不完全适用于分割问题:分割问题需要给每一个像素点打标签,换言之需要对每一个像素点有感知,因此空洞卷积是一个合适的选择。」
除此之外,分割模型不要求训练与部署时输入大小一致的特点还有助于性能优化:「分割模型的另外一个好处是不受训练样本的大小的约束,这样做的另一个好处是把 GPU 的性能发挥到极致。我们可以把它的显存用满。」
想要搭建一个部位的分割模型,301 的病理医生使用透彻的 ThoroughWisdom 标注了数千张 400 倍放大的数字切片,每张切片在去掉背景等无效区域后,可以得到数千到数万个样本(Patch)。在没有进行数据扩增的前提下,训练集规模就可以达到千万量级。
王书浩着重强调了「数据扩增必须符合医学逻辑」。对图像进行左右和上下的翻转是合理的:因为在制片和观察的时候,方向不会影响医生的判断;图像颜色的任意变化就是不合理的:因为用于切片染色的 HE 染色剂就是紫色的,切片几乎不会变成绿色。
最终训练好的模型拥有相当可观的准确率,宋志刚的评价是,「效果不错。软件和报告系统联动后,这边打开要写的报告,那边自动打开病理图像,可能就不用再拿实体切片了。」
探索了病理图像的分割之后,团队打算挑战的下一个极限问题是癌症的分型。仅仅乳腺癌的分型就有上百种,这似乎超出了现有的单纯基于图像的分割模型的能力范围。因此透彻希望构建一个「全脑智能」。「AlphaGo 就是典型的全脑智能,既有策略价值网络,又有一个逻辑推理或检索的过程。」而一个医疗影像的全脑智能也应当如此。「即使堆再多的数据训练机器的感觉,其『感觉』也是有极限的,我们希望换一种思路,提取每一种分型的特征,构建一个知识库。」
凭「感觉」的右脑和凭「逻辑」的左脑合作,共同找出最有可能的分型。
「我们的系统从第一天起就是分布式的」
在成为一名 AI 工程师之前,王书浩首先接触到的计算机领域是系统架构,他也曾经扮演过系统工程师的角色,致力于帮助大公司的数据中心在给定空间与电力限制下找出最优的机架配置方案,以及设计了能够基于功率进行任务调度的算法。
「做系统的人有一个毛病,就是凡事起码要考虑到三步之后 :所有的东西要有三个备份,以及从第一天起就为几年后的分布式集群做准备。」
透彻用于推理运算的机器里,每台机器有多 个 GPU,每个 GPU 作为一个运算节点,由调度器统一负责任务分配。在现有的机器配置下,完成一张病理图像的预测需要不到 20 秒,单台服务器能够支撑 301 每天的全部分析需求。
图:透彻的分布式微服务架构
在上线无虞的情况下,透彻仍然在同步测试分布式的集群。「我们开发的所有的系统都采用微服务架构,从 AI 分析系统到后端存储,自然都是分布式的:支持单机和分布式集群的部署。」
在王书浩看来,分布式是迟早要做的事情:「单机模式存储量受限、运算速度受限,随着业务的拓展,分布式是唯一的选择,所以从第一天起就要打好基础。」
除了分布式系统之外,透彻还有另一样「从第一天就开始做」,而且花了大力气的东西:给医生用的标注系统 ThoroughWisdom。「在 301 的医生开始大规模标注前,我们花了半年时间研发了一个非常好用的标注系统。」医生可以拿着 Apple Pencil 在 iPad 上完成标注工作,可以不用一口气圈出整块病变区域,分成几笔,甚至几百笔都没有问题,公司有专门的专利算法解决如何把一堆零碎的线段变成一个线框的问题。
图:左图为医生标注,右图为经过算法调整的训练用标注
对于现在的深度学习模型来说,在开始训练之前先组织人力进行大量数据标注工作已经是常规操作了,但是在标注数据前先投入如此大量精力研发标注工具则不常见。对于王书浩来说,这又是一个「兵马未动,粮草先行」的故事:「我们做的不是标注工具,而是未来的产品。」
「我们的定位是做一家在技术上和商业上都想得很长远的公司」,透彻影像从 logo 到公司宣传品都有相同的浅紫色主色调,也就是病理切片制片时所用的 HE 染色剂的颜色,「我们不会走一步看一步,活不下去了再换个方向。」
给了他们这样信心的除了核心模型本身的效果,还有团队「从前端到最底层硬件的一体化定制能力」。「从 js 前端与 iOS 代码,到 AI 系统,到存储,都是一体的。」
既创造价值,又回报社会
从物理到分布式系统,从分布式系统到 AI,虽然最终每一步路都成为了「功不唐捐」,但在面临选择 的时候,即使坚信自己的选择是正确的,压力也仍然不会缺席。
「最开始也面临很大的挑战」,如今的王书浩可以当做逸事一样谈起当年,「有时候凌晨四点醒了睡不着,在那边写代码。」