深度教练:让深度学习模拟人类教学过程,大幅减少训练数据和时间!-阿里云开发者社区

开发者社区> 新智元> 正文
登录阅读全文

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

简介:

3af06231093cc1c0a491af5eadd908ee41b747f3

cfff64d4984076b52437a6510a51881776cbf598




  新智元专栏  

作者:邓侃,复星集团AI首席科学家、大数医达创始人

编辑:闻菲


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


933677392d4dccf0ca20287d15b38d439e26e595


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

 

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

 

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


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

 

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


35022a7e8a070104ef351cb8e16c010152fe0782


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

 

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

 

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


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


那什么是“学习”?


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

 

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


ec48c8e1859ecfcf0d3a698f4f7c25c1fcb75a32

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

 

但是,要表达复杂函数,需要规模庞大的神经网络,神经网络包括上百层神经元,每层包含几千个神经元。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. 人类老师指着一张医学图片说:看这里,这里是某种病灶。注意,某种病灶的形状和纹理,具有这些特点。
  2. 学生指着图片中另一个区域说:老师,这里也是病灶吗?
  3. 老师说:不是的,因为病灶的面积太小。
  4. 学生又指着图片中第三个区域说:老师,这里应该是病灶了吧?
  5. 。。。

 

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

 

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


原文发布时间为:2018-08-16

本文作者:邓侃

本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“新智元”微信公众号

原文链接


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: