追着幸福跑|写给医生的人工智能体验课(六):零代码!10分钟带你做出自己的AI识别医学图像

人工智能和大数据结合的系列课程我们已经出了五期 , 大家可以直接点击下方题目查看:
1、写给医生的人工智能体验课(一):作为医生 , 怎么跟进人工智能不落伍?
2、写给医生的人工智能体验课(二):用比喻的方式形象讲解神经网络
3、写给医生的人工智能体验课(三):利用SPSS、R、python建立简单的神经网络
4、写给医生的人工智能体验课(四):基于scikit-learn识别导入的图像
5、写给医生的人工智能体验课(五):基于TensorFlow识别MNIST手写数字
今天我们讲解第六课:零代码!10分钟带你做出自己的AI识别医学图像
想要课程代码的小伙伴 , 可点击文末的链接获取 。
前面的几节课我们对医咖会原有的肺癌表格集建立了简单的神经网络分析 , 对MNIST手写数字图片也用了scikit-learn和TensorFlow建立了一些稍复杂的神经网络 。 这节课我们尝试利用一些少量的病理图片训练一个视觉识别模型 , 掌握这个套路后 , 大家也可以尝试用一些简单的图片搭建自己的视觉识别模型 , 把想要训练的图片在对应的文件夹替换就可以了 。 这次推文比较短 , 我们不再讲具体的代码 , 先简单了解一下迁移学习和Inception V3这两个概念 。
迁移学习我们上节课的MNIST数据集有6万张图片 , 用TensorFlow建立的卷积神经网络识别准确率达到99%以上 , 但是现实世界我们通常会有这样的困境:
①数据量少;如果我们开展某类医学图像识别的研究 , 很难通过单中心搜集到上万级别的图片数据;
②不知道怎么构建性能优异的深度神经网络;上节课的卷积神经网络只有两层 , 那是因为数据图片非常简单 , 如果需要识别的图片更复杂 , 分类更多 , 这么简单的神经网络效果肯定不好 。
面对这两个问题 , 目前业界针对小数据集进行卷积神经网络训练提出的主流方式是迁移学习 。 简单理解就是 , 我们找到一个别人早已搭建好的权威的深度神经网络模型 , 这个模型可能有几十甚至几百层隐藏层 , 前期已经使用大数据集完成了模型训练 , 大部分参数已经训练好了 。 我们使用训练好的参数对小样本进行参数微调 , 这样使得最终训练出来的模型具有小数据集和高精度的双重优势 。
Inception V3这样已经训练好的神经网络有很多 , 其中Inception V3是很常用的一个 , 它的诞生是个有趣的故事 。 说起Inception V3就不能不提ImageNet这个比赛 。 深度学习发展起来有几个关键的因素 , 一个就是庞大的数据(比如说ImageNet) , 一个是GPU的出现 。
为了推动计算机视觉识别技术的发展 , 斯坦福的李飞飞团队从2007年开始 , 耗费大量人力 , 通过各种方式(网络抓取 , 人工标注 , 亚马逊众包平台)收集各种类别的图片 , 制作成ImageNet数据集 。 截至 2016 年 , ImageNet 中含有超过 1500 万由人手工注释的图片网址 , 也就是带标签的图片 , 标签说明了图片中的内容 , 超过 2.2 万个类别 。
在2010年开始 , 学术界展开了基于ImageNet的计算机视觉识别技术竞赛(ILSVRC) 。 大家有兴趣进一步了解背景知识可以看李飞飞教授在TED的演讲:#t-5787
在开始的时候 , 大家采用传统的机器学习方法 , 错误率高达28.2% , 后来人们开始建立更复杂的深度卷积网络 , 错误率开始显著降低 。 其中2014年的冠军GoogleNet在之后不断升级 , 演变成今日的Inception模型 , 复杂程度也进一步提高 。 我们后面要用的是Inception V3模型 , 里面的详细结构需要一定基础才能理解 , 不是本次课的内容 , 我们只需要了解怎么调用这个黑箱 , 做一个调包侠就好 。
追着幸福跑|写给医生的人工智能体验课(六):零代码!10分钟带你做出自己的AI识别医学图像ILSVRC比赛历年模型
追着幸福跑|写给医生的人工智能体验课(六):零代码!10分钟带你做出自己的AI识别医学图像Inception V3结构