深度教练:让深度学习模拟人类教学过程,大幅减少训练数据和时间
【新智元导读】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.如何识别形状、纹理和大小?