朱宪忠校对|有10亿人本可以得到预防或仍在接受治疗。在眼保健方面,世界面临许多挑战,包括预防、治疗和康复服务的覆盖面和质量不平等。缺乏训练有素的眼保健人员,眼保健服务与主要卫生系统的整合不力。我的目标是激发人们共同应对这些挑战的行动。本文中介绍的项目是Iluminado的一部分,Iluminado是我目前正在从事的数据科学顶点项目。Capstone项目的设计目标我创建这个项目的想法是训练一个深度学习集成模型,该模型最终将非常适合低收入家庭,并以低成本进行初始疾病风险诊断。使用我的模型程序,眼科医生可以根据视网膜眼底照相确定是否需要立即进行干预。项目数据集来源OphthAI提供了一个公开可用的图像数据集,称为视网膜眼底多疾病图像数据集(“RFMiD”),其中包含3,200张眼底图像。使用三个不同的眼底相机拍摄,并由两位资深视网膜专家根据裁定的共识进行注释。这些图像是从2009年至2010年期间进行的数千次检查中提取的,并且选择了一些高质量图像以及许多低质量图像,使数据集更具挑战性。数据集分为三部分,包括训练集(60%或1920张图像)、评估集(20%或640张图像)和测试集(20%或640张图像)。平均而言,训练集、评估集和测试集中分别有60±7%、20±7%和20±5%的患者患有这种疾病。该数据集的基本目的是解决日常临床实践中出现的各种眼部疾病,共确定了45种疾病/病理类别。这些标签可以分别在三个CSV文件中找到,RFMiD_Training_Labels.CSV、RFMiD_Validation_Labels.SSV和RFMiD_Testing_Labels.CSV。图片来源下图是使用称为眼底照相机的工具拍摄的。眼底照相机是一种连接到闪光照相机的专用低倍显微镜,用于拍摄眼底(眼睛后部的视网膜层)的照片。如今,大多数眼底照相机都是手持式的,因此患者只需直视镜头即可。其中,亮闪部分表示眼底图已拍完。手持式摄像机有其优势,因为它们可以携带到不同的位置,并且可以适应有特殊需要的患者,例如轮椅使用者。此外,任何接受过必要培训的员工都可以操作摄像机,使服务不足的糖尿病患者能够快速、安全、高效地进行年度检查。眼底视网膜成像系统拍摄的照片:图2:根据各自的视觉特征拍摄的图像:(a)糖尿病视网膜病变(DR),(b)年龄相关性黄斑变性(ARMD)和(c)中度混浊(MH).最终诊断在哪里进行?最初的筛查过程可以借助深度学习,但最终的诊断是由眼科医生使用裂隙灯检查做出的。这个过程,也称为生物显微镜,涉及对活细胞的检查。医生可能会进行显微镜检查,看看患者的眼睛是否有任何异常。图3:裂隙灯检查图。深度学习在视网膜图像分类中的应用与传统的机器学习算法不同,深度卷积神经网络(CNN)可以使用多层模型从原始数据中自动提取和分类特征。最近,学术界发表了大量关于利用卷积神经网络(CNN)识别各种眼病的文章,如糖尿病视网膜病变和结果异常的青光眼(AUROC>0.9)。数据指标AUROC分数将ROC曲线聚合成一个数字,描述模型在同时处理多个阈值时的性能。值得注意的是,AUROC得分为1对应于完美得分,而AUROC得分为0.5对应于随机猜测。图4:显示所用方法的ROC曲线示意图-交叉熵损失函数交叉熵通常用作机器学习中的损失函数。交叉熵是信息论领域中建立在熵定义之上的一种度量,通常用于计算两个概率分布之间的差异,而交叉熵可以认为是计算两个分布之间的总熵。交叉熵也与逻辑损失有关,称为对数损失。尽管这两个指标来自不同的来源,但当用作分类模型的损失函数时,两者计算的数量相同并且可以互换使用。(具体可以参考:https://machinelearningmastery.com/logistic-regression-with-maximum-likelihood-estimation/)什么是交叉熵?交叉熵是对给定随机变量或事件集的两个概率分布之间差异的度量。您可能还记得,信息是通过编码和传输事件所需的位数来量化的。低概率事件往往包含更多信息,而高概率事件包含较少信息。在信息论中,我们喜欢描述事件的“意外”。事件的可能性越小,它就越令人惊讶,这意味着它包含更多信息。低概率事件(令人惊讶):更多信息。高概率事件(毫不奇怪):信息较少。给定事件P(x)的概率,可以按如下方式计算事件x的信息h(x):h(x)=-log(P(x))图4:完美的插图(图片来源:VlastimilMartinek)熵是传输从概率分布中随机选择的事件所需的位数。偏态分布的熵较低,而事件概率相等的分布通常具有较高的熵。图5:目标概率与预测概率之比的完美图示(图片来源:VlastimilMartinek)偏态概率分布具有较少的“意外”,随着可能事件占主导地位,这反过来又具有较低的熵。相对而言,平衡分布更令人惊讶,并且具有更高的熵,因为事件发生的可能性相同。偏斜概率分布(毫不奇怪):低熵。平衡概率分布(令人惊讶):高熵。对于具有x个离散状态的一组x及其概率P(x)的随机变量,可以计算熵H(x),如下图所示:图6:多级交叉熵公式(图片来源:VlastimilMartinek)类分类——我们使用多类交叉熵——是交叉熵的一个具体应用,其中目标是一个单热编码向量方案。(有兴趣的读者可以参考VlastimilMartinek的文章)图7:熊猫和猫损失计算的完美分解图(图片来源:VlastimilMartinek)图8:损失值1的完美分解图(图片来源:VlastimilMartinek)图9:完美损失值的分解图2(图片来源:VlastimilMartinek)图9:概率和损失的可视化表示(图片来源:VlastimilMartinek)二元交叉熵如何?图10:分类交叉熵公式示意图(图片来源:VlastimilMartinek)在我们的项目中,我们选择使用二元分类——二元交叉熵方案,即目标为0的交叉熵方案或1.如果我们将目标分别转化为[0,1]或[1,0]的one-hotencodedvector方式进行预测,则可以使用交叉熵公式进行计算。图11:二元交叉熵计算公式示意图(图片来源:VlastimilMartinek)使用非对称损失算法处理不平衡数据在典型的多标签模型环境中,数据集的特征可能有数量不成比例的正标签和负面标签。标签的情况。此时,数据集偏向负标签的倾向对优化过程具有主导影响,最终导致对正标签梯度的重视不足,从而降低预测结果的准确性。这正是我目前选择的数据集面临的问题。在这个项目中,BenBaruch等人开发的非对称损失算法。(参见图12)被使用。这是一种解决多标签分类的方法,但是类别也存在严重的不平衡分布。我想到的方式是:通过不对称修改交叉熵中的正负分量,从而降低负标签部分的权重,最终实现更难处理的正标签部分的权重。图12:对要测试的非对称多标签分类算法(2020,作者:Ben-Baruch等)的架构进行了总体总结。本项目使用的架构如图:图13(图片来源:思绪)上述架构使用的关键算法主要有:DenseNet-121InceptionV3XceptionMobileNetV2VGG16另外,上述算法的相关内容我完成后肯定会更新本文中的Capstone项目!感兴趣的读者敬请期待!译者介绍朱宪忠,社区编辑,专家博主,讲师,潍坊某高校计算机教师,自由编程资深人士。原标题:DeepEnsembleLearningforRetinalImageClassification(CNN),作者:CathyKam
