眼底疾病诊断的系统框架
使用人工智能算法对眼底彩照进行处理是一个非常复杂的工程,需要选择合适的工具,正所谓“工欲善其事,必先利其器”,因此,在使用人工智能算法时可以借助一些系统框架,下面将介绍目前常见的几种框架的基本情况。
Tensor Flow是谷歌公司基于DistBelief研发的人工智能学习系统,它可以应用在图形分类、音频处理、推荐系统和自然语言处理等场景中,可以将复杂的数据结构传输至人工智能神经网络中进行分析和处理。Tensor Flow是一个使用数据流图表进行数值计算的开源软件,这个框架允许在任何CPU或GPU上进行计算,无论是台式机、服务器还是移动设备,这个框架的编程语言是易于学习的Python语言。
Keras是一个用Python编写的开源的神经网络库,与Tensor Flow、CNTK和Theano不同,Keras不是一个端到端的机器学习框架,相反,它作为一个接口,提供了一个高层次的抽象化。这使得它无论坐落在哪个框架上,神经网络的配置都会变得容易。
Torch是一个用于科学和数字操作的开源机器学习库,这是一个基于Lua编程语言而非Python语言的库。Torch的封装少,简单直接,前期学习和开发时的思维难度都比较低,具有比较好的灵活性和速度。Torch通过提供大量的算法,使得深度学习研究更容易,并且提高了效率和速度。它有一个强大的N维数组,这有助于切片和索引等操作。此外,它还提供了线性代数程序和神经网络模型。由于封装少和Lua本身的限制,工程性不好,导致Torch更加适合于探索性研究开发,而不适合做大项目的开发。另外,由于Torch采用的是并不十分流行的Lua语言来操作,不熟悉的用户要进行新语言的学习。
Py Torch是在2017年1月由Facebook人工智能研究院在Torch基础上提出的。Py Torch和Torch都是用C语言进行底层编写的。Torch的调用需要使用Lua语言,相较于Lua语言而言,Python语言的使用更为广泛。Py Torch是一个基于Python的可续计算包,除了具有强大的GPU加速的张量计算。如Numpy,它还包含自动求导系统的深度神经网络。这两个高级功能使得Py Torch在处理深度学习的问题上更加方便。
基于以上的框架,我们可以搭建满足不同需求的人工智能算法模型。疾病诊断系统即是使用Py Torch作为框架搭建的图像多分类算法模型。与质量分析模型相似,疾病诊断模型在训练与测试前同样需要对图像进行归一化处理,并且在训练时也需要用到数据扩增的手段。输入的图像通过多层卷积、池化等操作,提取出数量巨大的特征图。使用最大池化将这些特征图压缩为特征点,并将这些特征使用全连接层连接在一起,输出七个数值。这七个值即为诊断模型判断输入的眼底图像为正常眼底、高度近视、静脉阻塞、黄斑病变、糖尿病视网膜病变、青光眼以及其他病种的概率,并选取概率最大的结果作为诊断结果。