7x24快讯 ·

深度教练:深度学习模拟人类教学过程,减少训练数据和时间

DeepMind日前公开了他们首款医疗AI落地产品,能诊断50多种眼疾,精度超越人类医生。为了训练这个系统,DeepMind 用了近1.5万个人工标注的数据。尽管这项工作非常了不起,但从更广阔的视角看,从不会学习的电子计算机,到需要大数据才能“教会”的深度学习,有没有可能更进一步,实现像人类一样只需要小数据就能学习的方法?本文作者复星集团AI首席科学家、大数医达创始人邓侃博士认为,Deep Coaching 或许是一种可行之道。

?

?

DeepMind 是 Google 旗下专注于人工智能研究的公司,DeepMind 最出名的成就是 AlphaGo 系统,它战胜了当今世界所有围棋高手。

2018年8月13日,DeepMind 一组研究员,在 Nature Medicine 上发表了一篇论文,题为 “Clinically applicabledeep learning for diagnosis and referral in retinal disease”,用深度学习算法,学习视网膜疾病的诊断和转诊,并付诸临床实践。

这篇论文的内容,媒体上已经有不少报导,似乎没有必要进一步读解。但是我们不妨退后几步,用更广阔的视角,审视从电子计算机到智能机器的演进。我们已经实现了哪些成就,目前主要的障碍有哪些,并探讨如何解决这些问题。

三位大师成就电子计算机,但只能服从指令不会学习

说到电子计算机,就必须仰望三位大师:图灵、冯·诺依曼、香农。

?

?

电子计算机与传统机器的本质区别是,计算机把指令与操作分离,机器预先不知道要进行哪些操作,根据实时下达的指令完成操作。而且,计算机还可以把一系列指令,编制成程序,动态地生成指令,让机器完成更复杂的复合操作。

计算机的原理,由图灵首创。用电子器件完成计算机的工程实现,由冯·诺依曼首创。而数码信息的通讯,包括编码解码和传输通道,由香农首创。

但是,电子计算机只是机械地执行程序赋予的指令,并不会像人类那样思考,尤其是不会像人类那样学习。

神经网络会“学习”,但需要大数据,与人脑思考方式不符

那什么是“学习”?

有一种观点认为,学习 = 函数拟合。如果把函数表达为 y = f(x),又有一大堆训练数据,也就是一大堆 (x,y) 数组,那么学习过程,就是从训练数据中,得出对原函数的近似模拟

1940年代,科学家们模仿神经元的解剖学构造,发明了一种数据结构——神经元 perceptron。科学家们发现,把多个神经元组合在一起,构成神经网络,神经网络能够表达几乎任何函数。换而言之,神经网络是通用的函数,学习的过程,等同于猜测神经网络的参数。海量训练数据的用途,在于不断地优化对神经网络参数的猜测,使神经网络能够更好地模拟目标函数。

?

?

“学习”等于猜测神经网络的参数,大数据用于不断优化对参数的猜测

但是,要表达复杂函数,需要规模庞大的神经网络,神经网络包括上百层神经元,每层包含几千个神经元。Geoffrey Hinton 教授,给这种超大规模的神经网络取了一个名字——深度神经网络。

深度学习(Deep Learning)也是由此而来。

深度学习是一种通用的方法,能够应用在很多领域,尤其在图像识别、语音识别、自然语言处理三大领域的应用,与传统方法相比较,深度学习取得了突破性的进展。

但是,深度学习经常遭人诟病的弱点有三:

1. 需要大量训练数据。譬如 DeepMind 昨天发表的论文中提到,他们用 14,884 个经过人工标注的训练数据(医学图像),学习 50 多种视网膜疾病的诊断。人工标注 14,884 张医学图像,工作量不小。但对于深度学习来说,经常需要百万级训练数据。从百万数量级,降低到 14,884 张标注图片,已经是很了不起的进步了。

2. 黑盒子。神经网络的内部参数,没有明确的物理意义,无法用人类听得懂的语言,解释深度学习的结果。

3. 没有仿生学基础。人类不需要几万张图片的训练,就能学习掌握读片的诀窍。很显然,人类大脑的学习过程,与深度学习并不相符。

DeepMind的方法:分两步降低数据量,符合人类医生诊断习惯

DeepMind 的改进方法,是把读片分成两步:第一步从原始图像中,提取病灶特征,类似于人类医生读片报告中 “检查所见” 的段落内容;第二步根据检查所见的病灶特征,用分类的办法,诊断出罹患的疾病,类似于人类医生撰写的读片报告中 “检查结论” 的段落内容。

把读片分成两步,好处有三:

1. 把一大步分解为两小步,每一小步的复杂度降低,导致神经模型的规模降低,导致训练神经模型所需的训练数据的数量降低。

论文自豪地声称,他们只用了 14,884 个经过人工标注的训练数据,就训练出了图像识别系统,其精度媲美人类医生对视网膜疾病的诊断精度。

不同设备拍摄出的图像效果不同,因此每一种设备,最好都配有自己专用的深度学习模型(也即N种设备有N个模型)。但是,这些模型的输出,却都是标准化的 “检查所见” 的病灶特征。从标准化的病灶特征,到 “检查结论” 的疾病诊断,只需要一个模型(因此,总共需要 N+1 个模型)。

虽然不同设备的专属模型,理论上各不相同。但是在生成新设备的专属模型时,可以在已经生成了的其它设备的专属模型的基础上,做进一步调优。调优需要的训练数据,数量大大降低。

2. 通过分析诊断模型的参数,可以窥探到哪些输入的病灶特征,对诊断结果的影响更大。也就是说,可以基于从输入到输出的敏感性分析,来解释深度学习模型的内在逻辑。

3. 把读片的过程,从一个大步,分解为两个小步(检查所见与检查结论),符合人类医生读片的习惯。

遗留的问题,是如何进一步降低对训练数据(人工标注过的医学图片)的数量要求,尤其是第一步,从不同设备拍摄的照片中,提取病灶特征。

深度教练:让深度学习模仿人类教学过程,大幅减少训练数据

假如我们把深度学习(Deep Learning),改进为深度教练(Deep Coaching),或许可以大幅度降低对训练数据的数量要求。

深度教练(Deep Coaching)模仿人类老师指导人类学生的过程。

? 人类老师指着一张医学图片说:“看这里,这里是某种病灶。注意,某种病灶的形状和纹理,具有这些特点。”

? 学生指着图片中另一个区域说:“老师,这里也是病灶吗?”

? 老师说:“不是的,因为病灶的面积太小。”

? 学生又指着图片中第三个区域说:“老师,这里应该是病灶了吧?”

? 。。。

如何用深度学习模型,模仿人类的教练过程?需要解决以下几个问题:

1. 如何识别形状、纹理和大小?

形状、纹理、大小,是图像识别中的通用特征,有大量已经被人工标注过了的图片,可以用于模型的训练。问题在于如何窥探深度学习模型中哪一层的哪些神经元,分别代表形状、纹理和大小。这个问题,有多种解决方案,譬如 dropout 等等。

2. 如何让深度学习模型,理解 “看这里,这里是某种病灶。注意,某种病灶的形状和纹理,具有这些特点”。

沿用 CNN 的办法,把整个图像分割成若干小区域。然后对深度学习模型进行调参,尽可能放大病灶区域,与其它区域的差别,假设其它区域是无病灶区域。如果老师明确说,形状和纹理是关键特征,那么对于深度学习模型而言,等同于先验地放大相关参数的初始设置。

3. 如何让深度学习模型模仿学生,指着图片中另一个区域说:“老师,这里也是病灶吗?”

用第二步训练出来的模型,扫描整个图像,标记出其它疑似病灶区域。

4. 如何让深度学习模型理解老师的纠正,“不是的,因为病灶的面积太小。”

等同于对深度学习模型进行调参,尤其是与病灶面积相关的参数,使得模型的输出正确。

完成深度教练的全部过程,应该最多只需要几十个回合。所需的训练数据,也就是标注过的图片,估计不超过十张。而且每张标注的图片,不需要把所有病灶都标注出来。

深度学习 vs 深度教练的比较研究,似乎值得探讨。

有志者,不妨来合作。

参考文献:

Clinically applicable deep learning for diagnosisand referral in retinal disease:

https://www.nature.com/articles/s41591-018-0107-6

参与评论