基于WEB的AD分类识别的系统

基于WEB的AD分类识别系统

摘要

随着世界人口老龄化趋势的不断加剧,阿尔茨海默症(AD)这种神经系统退化性疾病已成为全球公共卫生问题之一。尽管医学界已经对该病进行了长时间的研究,但目前仍无法系统性地揭示AD的确切发病原理,也尚未出现能够有效治疗该病的药物或手段。因此,早期诊断和干预显得尤为重要。

为了解决这个问题,我们使用了ADNI(阿尔茨海默症神经影像学计划)中的sMRI(结构性磁共振成像)数据集,开展了基于web的阿尔兹海默症风险预测研究。我们首先将样本影像转换为jpg格式图片,然后利用transform技术对数据集进行扩充和增强。我们建立了5种基于深度学习的神经网络模型,分别是vgg16,resnet18,MoblienetV3,Vision Transformer以及ConvNet4模型,对AD影像数据进行分类预测。通过比较不同模型的预测结果,选择出最优模型,并在此基础上对模型进行了改进。具体地,我们在骨干网络之后加入了cbam(通道注意力机制)注意力机制,从而提高了分类的准确率。

最终,我们的模型在AD、CN、EMCI分类上的正确率达到了93.33%。为了方便医生获取预测结果,我们使用保留的最优模型权重设计了一个基于WEB的AD分类识别系统,让医生可以方便地获得模型预测分类的分析结果。

关键词:阿尔兹海默症;深度学习;神经网路;注意力机制

第1章 绪论

1.1研究背景

阿尔茨海默病(Alzheimer's disease, AD)是一种神经退行性疾病,它是老年痴呆症的一种,被认为是智力衰退和认知能力下降的主要原因之一。随着人口老龄化的加剧,AD已成为全球关注的公共卫生问题。据统计,目前全球有超过5000万人患有AD,到2050年这个数字将达到1.52亿。在中国,60 岁及以上人群有1507万痴呆患者,其中阿尔茨海默病 983万,轻度认知障碍患病率为5.54%,患者人数达3877 万。我们预测了从2024年到2030年阿尔茨海默病的数量。

由于目前尚无有效的治疗方法,使得基于图像分析的AD分类识别系统成为了一种备受关注的研究方向。传统的AD诊断方法主要依赖医学检查和临床表现。但这种方式存在许多问题,如对医生的专业能力和经验要求较高、需要耗费大量时间和精力等。同时,由于AD早期的临床症状不明显、易混淆等因素,导致早期诊断面临很大的困难和挑战。因此,开发一种准确、快速、非侵入性的AD诊断方法显得尤为必要。

近年来,基于图像分析的AD分类识别系统已成为一种新兴的诊断方法。该系统可以通过对脑部MRI图像等医学影像进行分析,提取出患者脑部结构的特征信息,并进行分类识别。这种方法不仅可以辅助医生实现早期诊断,还能够建立AD患者的个体化诊断模型,为精准治疗提供指导。

基于WEB的AD分类识别系统可以在全球范围内实现数据的共享和远程诊断。这使得多地区之间的医学影像数据得以整合和交流,进而提高AD的研究和治疗水平。同时,基于WEB的AD分类识别系统还可以帮助医生更好地进行长期监测和跟踪,进一步深入了解AD的病理机制和治疗效果。

目前,深度学习技术已经被广泛应用于医学影像分析领域。例如,可以利用卷积神经网络(CNN)和循环神经网络(RNN)等深度学习模型对脑部MRI图像进行特征提取和分类识别。此外,还可以利用自然语言处理技术对患者的医疗记录进行文本挖掘,提取有用的特征信息。

未来,随着技术的不断发展和应用场景的进一步拓展,基于WEB的AD分类识别系统将会更加智能化和多样化。例如,可以结合生物标志物和基因分析等方法,建立更为准确的个体化诊断模型。同时,也需要加强数据质量的保证和隐私安全的保护,以确保系统的稳定性和可靠性。

所以设计和研究一种基于WEB的AD分类识别系统,将有助于提高AD的诊断准确性和效率,为早期诊断和治疗提供依据,同时也有助于推动医学影像分析技术的发展。未来,基于WEB的AD分类识别系统还可以实现更多的功能,如预测患者的病情发展、评估治疗效果、支持临床决策等。这些功能的实现将深化人工智能在医疗领域的应用,为AD的预防、治疗和管理提供更加全面和精准的支持。

除了技术层面的研究外,基于WEB的AD分类识别系统的发展还需要政策、法规和道德伦理等多方面的支持和保障。例如,需要建立相关的数据共享和隐私保护机制,明确用户的权利和责任,以确保系统的稳定性和安全性。同时,还需要加强对人工智能技术在医疗领域中的道德和伦理问题的探讨和引导,促进其健康发展与应用。

总之,基于WEB的AD分类识别系统是一项具有重要意义和价值的研究方向。通过技术创新和跨学科合作,可以实现系统的智能化、精准化和个性化,为早期诊断和治疗提供支持。同时,也需要加强政策、法规和道德伦理等方面的建设,保障系统的稳定性和安全性,推动人工智能在医疗领域的健康发展。

1.2研究意义

随着人口老龄化趋势的不断加剧,阿尔兹海默症(AD)这种神经系统退化性疾病已成为全球公共卫生问题之一。尽管医学界已经对该病进行了长时间的研究,但目前仍无法系统性地揭示AD的确切发病原理,也尚未出现能够有效治疗该病的药物或手段。因此,早期诊断和干预显得尤为重要。在正常人和AD之间有一个过渡性的阶段,即轻度认识功能障碍阶段(Mild Cognitive Impaired,MCI)。及早地诊断出MCI并施加干预可以减少MCI转换成AD的概率,以此来减轻老年AD患者的病情和患者家属的负担。

随着科技的不断进步,人工智能技术的应用对医学影像分析领域产生了巨大的推动作用。如今,通过影像组学的方法实现AD早期阶段的诊断受到了医师和科研人员越来越多的关注。影像组学是指使用计算机视觉、模式识别等技术,从多种医学影像中获取与疾病相关的影像特征数据,并将这些数据进行综合分析和建模,以实现对患者的分类预测。影像组学基本流程为:(1)感兴趣区域的分割(2)对分割出来的感兴趣区域进行特征提取(3)筛选提取到的影像特征(4)根据筛选出的影像特征建立模型(5)通过建立机器学习模型实现对于患者的分类预测。

基于此,本研究旨在设计和开发一种基于WEB的AD分类识别系统,利用机器学习和深度学习技术,通过分析脑部MRI图像等医学影像,实现AD的自动分类和诊断。具体而言,本研究将从以下几个方面展开:

首先,本研究将设计和开发基于WEB的医学影像管理系统,实现数据的采集、存储和管理。该系统将支持医生上传、管理和浏览多种医学影像数据,并提供数据处理和分析功能,以便后续的分类和诊断工作。

其次,采用机器学习和深度学习技术,本研究将训练AD分类模型,并优化模型性能。为了提高模型的准确性和泛化能力,本研究将使用多种机器学习方法和深度学习技术,如卷积神经网络(CNN)、循环神经网络(RNN)等,来对影像数据进行特征提取和建模。同时,本研究将采用一系列数据预处理、数据增强、模型调参等方法,以解决数据质量不稳定、模型过拟合等问题。

最后,本研究将设计和实现基于WEB的AD分类识别系统,实现AD的自动分类和诊断。该系统将支持医生上传患者的MRI图像等医学影像数据,自动进行分类和诊断,并显示相应的结果。

除此之外,在开发AD分类识别系统的过程中,本研究也会面临一系列挑战和问题。例如,数据质量不稳定可能导致模型的准确性下降,模型过拟合可能导致模型无法泛化到新的样本上,算法复杂度可能导致系统响应速度变慢。为了解决这些问题,本研究将采用一系列方法和策略,如数据预处理、模型优化、算法改进等,来提高系统的性能和可靠性。

总之,本研究旨在设计和开发一种基于WEB的AD分类识别系统,以实现对AD患者的自动分类和诊断,为早期发现MCI提供依据,并推动医学影像分析技术的发展。本研究将从多个方面入手,如医学影像管理系统的设计和开发、机器学习和深度学习技术的应用、性能测试和评估、解决系统中出现的问题等,来实现系统的高效、准确和可靠。我们相信,本研究的成果将对提高AD诊断的准确性和效率,保障老年人群体健康,推动医学影像分析技术的发展等方面产生积极的影响。

1.3研究现状

近年来,随着阿尔茨海默症的发病率不断上升,人们对该疾病的早期诊断和分类变得越来越重视。现在,许多科学家致力于研究如何利用fMRI技术进行早期诊断和分类,尤其是通过图像和拓扑测量来确定该疾病的不同阶段。

目前已经有多种机器学习算法应用于fMRI数据的分类。例如,支持向量机(SVM)和随机森林(RF)等算法可以很好地处理大脑皮层分区的时间序列相关性,并为早期轻度认知障碍患者的整体、节点和连接三个水平提供分类特征。Wang等人[1]使用基于小波变换的统计分析法将大脑皮层划分为1024个区域,并证明功能连接的中断与记忆丧失有关。他们的分类准确率达到了86.5%的敏感性和85.1%的特异性。

另外,Wee等人采用感兴趣区域(ROI)的时间序列,并以不同ROI的聚类系数之间的关系作为分类特征,利用SVM分类器结合非线性径向基函数(RBF)对病理发作引发的大胆信号变化进行MCI的分类。该方法的分类准确率为86.5%。Zhang等人使用fMRI数据基于皮尔逊相关系数来研究大脑的功能连接,并使用l2正则化逻辑回归分类器对ROI时间序列进行分类。他们的方法在诊断轻度认知障碍方面获得了87.5%的准确率。

此外,Jie等人提出了一种新的脑连通性分类方法,通过计算目标ROI中所有体素的fMRI平均值,将分类应用于每个ROI的平均时间序列,使MCI的诊断准确率达到91.5%。Koch等人比较了感兴趣体素的相关分析和独立成分分析两种方法,发现相关性分析更准确。两种方法结合使用,在CN组和AD组之间可以达到97%的分类准确率。在另一项研究中,先用SPM工具箱进行fMRI统计分析,再放入SVM和序列最小优化分类器中,CN与AD分类的准确率达到了97.14%。

最近的研究还表明,深度学习技术也可以应用于阿尔茨海默症的图像分类研究。例如,有研究人员使用基于卷积神经网络(CNN)的方法对fMRI数据进行分类,准确率高达96.6%。此外,还有一些研究利用深度学习技术分析多模态图像数据,如脑部MRI和PET扫描。这些研究为阿尔茨海默症的早期诊断和治疗提供了新的思路和方法。

Sarraf等提出了一种基于卷积神经网络(CNN)的方法,将预处理后的4D fMRI数据沿时间维度连接成2D图像,并探索fMRI数据的空间特征,以区分AD和NC[33]。Ramzan等也应用了类似的方法,将预处理后的4D fMRI数据转换为2D图像,在阿尔兹海默症的诊断中取得了良好的分类效果[34]。Farahana等人提出了一种端到端的CNN学习方法,通过研究不同特征图大小及其对分类准确性的影响,确定了功能图的大小,用于CNN在fMRI分类中的应用[35]。

近年来,还有一些研究人员采用了基于3D CNN的方法进行阿尔茨海默症的分类。Qureshi等人提出了一种基于3D CNN的深度学习分类框架,使用基于3D ICA的功能网络图作为3D CNN模型的输入,用于无阈值或脑模板情况下的精神分裂症分类[36]。Duc等人直接将3D CNN模型应用于由3D ICA回归创建的空间图,以诊断AD患者[37]。此外,还有一些研究利用多模态图像数据进行阿尔茨海默症的分类和诊断,如结合脑部MRI和PET扫描数据进行的研究表明,这种方法可以有效地识别阿尔茨海默症患者和正常人之间的差异[39]。

除了机器学习和深度学习技术外,最近还有一些研究使用传统的统计方法来分析fMRI数据。例如,有研究人员提出了一种新的基于高斯过程的方法来发现大脑中的功能联通性模式,并将其用于阿尔茨海默症的分类。该方法可以准确地区分早期轻度认知障碍患者和正常人,同时还可以预测患者的疾病进展。随着阿尔茨海默症研究的不断深入,越来越多的研究人员开始探索使用多模态图像数据进行该疾病的分类和诊断。例如,结合脑部MRI和PET扫描数据进行的研究表明,这种方法可以有效地识别阿尔茨海默症患者和正常人之间的差异,并为早期诊断和治疗提供了新的线索。

1.4系统实现目标

本文旨在开发一个基于WEB的AD分类识别系统,该系统主要目标如下:

  1. 实现对ADNI脑影像数据集的预处理,包括转换、扩充、增强等操作,以提高数据集质量和模型准确率。
  2. 搭建深度学习模型,为分类系统做准备。这个过程包括选择合适的网络结构,确定优化策略,以及参数调整等步骤。
  3. 利用训练集进行模型训练,不断提高模型的学习能力,并通过验证集优化和测试集评估模型性能。最后对比模型预测结果,通过得到的结果设计优化模型,进一步提高模型的准确率和稳定性。
  4. 构建交互友好的web界面,以方便医师查看预测的信息。该界面还支持用户登录注册,为患者提供阿尔兹海默症风险的预测服务。

1.5课题研究方案

本系统主要流程为:数据预处理、模型构建、模型训练、模型评估、模型改进和web界面显示。

(1)图像预处理:把下载好的ADNI数据集通过python对影像进行预处理,通过nibabel库对医学影像进行转换,使用pytorch中的transforms库对图像进行图像增强。

(2)模型构建:vgg、resnet、MobileNetV3 、Vision Transformer以及ConvNet4模型对AD影像数据进行分类预测。

(3)结果分析:通过分类预测准确率和loss评价指标对五种深度学习学习模型的预测准确度和稳定性进行分析。上述流程框架如图1-2所示。

Web网页端的目的是辅助医师查看模型比预测结果及相关的信息:

(1)用户注册功能:没有账号的用户首次进入平台时,输入相关信息后即可完成账号注册,同时,相关账号数据录入数据库。

(2)用户登录功能:用户只需要在页面相应的信息框内上键入账号信息即可实现登录。

(3)信息展示功能:将系统对于阿尔兹海默症风险预测的相关信息展示告知用户。

1.6论文结构

本课题的结构分为6章,内容如下所示。

第1章:绪论。本章主要阐述了基于影像组学的阿尔兹海默症风险预测研究的课题背景和意义、系统目标及其实施方案和论文的章节结构。

第2章:核心理论和技术。第2章主要介绍卷积神经网络模型、vgg、resnet、MobileNetV3 、Vision Transformer的深度学习相关理论。

第3章:数据预处理。本章将基于python对影像进行了预处理,通过nibabel库对医学影像进行转换,使用pytorch中的transforms库对图像进行图像增强。

第4章:算法研究和比较,综合第2章介绍的五个深度模型通过对3类数据集进行训练并测试和分析出分类效果最优的模型,根据最优模型来进一步设计AD分类模型。

第5章:系统设计和实现。本章介绍了网站页面的主要功能和网页端所使用的框架和技术。

第6章:总结和展望。总结本课题的主要流程和涉及到的技术概念,指出模型分类预测的不足和网页端需要完善的部分。

第2章 核心理论和技术

本章主要介绍基于影像组学的阿尔兹海默症风险预测研究的相关技术,包括涉及到的模型和使用的评价指标等。

2.1ADNI数据集介绍

ADNI(Alzheimer's Disease Neuroimaging Initiative)是一个由美国国家卫生研究院(NIH)发起的、跨学科的研究项目,旨在研究老年痴呆症的生物标记和病理生理学机制。

该项目自2004年开始,迄今已经进行了多个阶段的数据收集和共享。ADNI数据集包含了来自数千名受试者的临床、神经心理学、影像学和生物标记数据,包括结构和功能性磁共振成像(MRI和fMRI)、正电子发射断层扫描(PET)、脑脊液生物标记和基因组数据。

ADNI数据集的目标是提供一个公共资源,促进科学家们在老年痴呆症领域的研究,加速发现和开发治疗方法,提高老年痴呆症患者的生活质量。该数据集已经被广泛应用于机器学习、人工智能和神经影像分析等领域的研究中。2.1.1基于传统机器学习的AD分类ADNI(Alzheimer's Disease Neuroimaging Initiative)数据集包含的是脑部成像数据,如MRI和PET。因此,将其转换为.jpg格式的图片需要进行一些预处理和转换操作。以下是可能的流程:

1.下载ADNI数据集

2.选择需要的成像模态(如MRI或PET)和扫描时间点(如基线或随访时间点),并提取数据。

3.对数据进行预处理,例如使用磁共振图像处理软件(如FreeSurfer或FSL)进行配准、分割和标准化。

4.将数据转换为图像格式,例如使用NIfTI转换为DICOM,然后使用DICOM转换为JPEG格式。

5.将转换后的图像保存到指定文件夹中。

2.3基于深度学习的AD分类

深度学习通过构建神经网络模型自动对医学影像特征进行提取,通过样本训练得到的模型对于AD的分类预测准确率也较高。目前,在阿尔兹海默症方向主要使用卷积神经网络(Convolutional Neural Networks,CNN)对影像进行预测分类,如VGG16模型和ResNet50等模型都有着较为不错的准确率。如图2-2所示影像通过数据预处理后,通过得到影像的脑影像的灰质信息或白质信息然后将它们放入神经网络模型训练,最终得到分类模型。深度学习方法和传统的机器学习相比有着不用经过繁琐的感兴趣兴趣区(Region of Interest,ROI)分割这一步骤的优势,但是相较传统的机器学习,有关其的医学解释较为模糊。

基于深度学习的AD分类主要流程包括影像收集、数据预处理、模型训练和预测分类。相较于传统机器学习方法,基于深度学习的方法更加注重特征的自动学习和抽取,其主要流程如下:

影像收集:收集患者的结构影像和功能影像等医学影像数据。

数据预处理:对影像数据进行预处理,包括图像去噪、对比度增强、图像配准等操作,以保证后续处理的准确性和稳定性。

特征抽取和筛选:利用卷积神经网络(CNN)等深度学习模型,对ROI区域进行特征抽取和筛选,以提取具有代表性的特征。

模型训练:基于抽取的特征,训练深度学习模型,如多层感知器(MLP)、卷积神经网络(CNN)等,对患者的AD分类问题进行建模和训练。

预测分类:利用训练好的深度学习模型对新的患者进行预测分类,以判断其是否患有AD疾病。

相较于传统机器学习方法,基于深度学习的AD分类方法能够自动学习和抽取特征,具有更好的分类性能和鲁棒性,同时能够应对复杂的医学影像数据和不确定性因素,因此在医学影像分析领域得到了广泛应用。

图2-2 基于深度学习的影像组学的主要流程

2.3深度学习模型理论

2.3.1卷积神经网络

卷积神经网络(Convolutional Neural Network,CNN)是一种广泛应用于图像识别和处理领域的深度学习算法。在计算机视觉中,图像通常被表示为一个三维数组,其中包含了宽、高和通道数。CNN通过多层卷积层、池化层和全连接层的组合,实现对于图像的特征提取和分类。

相较于传统机器学习算法,CNN的优点在于可以自动学习特征,避免了手工特征提取的复杂性和主观性。在传统的机器学习算法中,需要花费大量的时间和精力去设计和选择适合问题的特征,这些手工特征的好坏将直接影响到模型的准确性。而使用CNN可以让模型自动学习特征,同时也能够提高模型的效率和准确性。

CNN的核心思想是卷积操作,通过滑动一个卷积核(filter)在输入图像上进行卷积操作,提取出不同尺寸的特征。卷积核通过学习得到,每个卷积核会学习到不同的特征,如边缘、纹理等。在卷积操作中,卷积核会对输入图像进行局部连接和权重共享。所谓的局部连接是指卷积核只与输入图像的一小块区域进行连接,而权重共享是指卷积核在不同位置上使用相同的权重,这样可以大大减少模型参数数量,从而提高模型的泛化能力。

池化层通过降采样的方式减小特征图的大小,提高模型的计算效率和泛化能力。常见的池化操作包括最大池化(Max Pooling)和平均池化(Average Pooling)。最大池化会在不重叠的区域内选择最大值作为输出,而平均池化则会计算不重叠区域内的平均值。通过池化操作,可以减少特征图的维度,同时也可以减少模型的参数数量,缩短训练时间,并且有助于防止过拟合现象的出现。

全连接层将池化层的输出作为输入,用于最终的分类。全连接层通常使用softmax激活函数将特征向量映射到类别概率分布上。在训练阶段,CNN通常使用交叉熵损失函数来评估预测值与真实标签之间的差异,并使用反向传播算法更新模型参数。在测试阶段,CNN将输入图像传递给模型进行前向传播,并根据预测值确定最终的类别标签。

除了卷积层、池化层和全连接层之外,CNN还可以通过使用不同的结构和技术,如残差网络(ResNet)、批归一化(Batch Normalization)、Dropout等,进一步提高模型的性能和稳定性。例如,在ResNet中,通过增加跨层连接(Skip Connection)来解决深度网络训练时出现的梯度消失和梯度爆炸问题;在Batch Normalization中,通过对每一层的输出进行归一化操作,来加速模型收敛,降低过拟合的风险;在Dropout中,通过随机抑制神经元的输出来降低模型的复杂度,避免模型对特定输入的过度依赖,提高模型的泛化能力。

CNN在图像识别、目标检测、语音识别等领域,已经取得了许多成功的应用。在图像识别方面,CNN已经超越了人类的表现,成为当前最先进的图像识别算法之一。在目标检测方面,CNN可以将图像中的目标位置和类别进行精确预测,并且还能够识别出不同尺度和旋转角度下的目标。在语音识别方面,CNN可以将声音波形转换为时频图像,并从中提取出相应的特征,用于识别不同的语音信号。

CNN作为一种深度学习算法,在计算机视觉和语音处理领域展现出巨大的优势。通过自动学习特征,避免了手工特征提取的复杂性和主观性,使得模型可以更好地适应不同的任务和数据集。未来,随着硬件技术的不断升级和算法的不断改进,CNN有望在更广泛的领域发挥更加重要的作用。

2.3.2 Softmax

softmax是一种用于将向量转换为概率分布的函数,通常应用于多分类问题中。它可以将一个k维向量(k表示类别数量)映射到一个概率分布,其中每个元素表示属于对应类别的概率。

Softmax函数的输入是一个向量,输出也是一个向量。设输入向量为,输出向量为其中k表示向量的长度,即类别的数目。Softmax函数的公式为:

                                                                                                                       

其中,e表示自然常数,即。Softmax函数将输入向量z中的每个元素取指数,然后再将结果除以所有元素的指数和。这样,得到的输出向量p的每个元素都在[0,1]之间,且所有元素的和为1,因此可以将其解释为概率分布,表示不同类别的预测概率。

需要注意的是,Softmax函数的输出值具有归一化的性质,即所有输出值的和为1。这一性质对于多分类问题非常重要,因为它保证了预测结果的概率分布合法性,使得我们可以使用交叉熵损失函数来优化模型,从而得到更好的分类效果。

Softmax函数在深度学习中具有以下作用:

输出概率分布:Softmax函数将输入向量映射为一个概率分布,用于表示每个类别的概率。在多分类问题中,输出层一般使用Softmax函数进行激活,以输出每个类别的概率。

提高模型鲁棒性:Softmax函数在计算概率分布时,对于输入向量中每个元素的大小进行了归一化,从而可以有效地抑制过拟合,提高模型的鲁棒性。

用于交叉熵损失函数:在多分类问题中,交叉熵损失函数是一种常用的损失函数,可以用于衡量模型输出的概率分布与真实标签之间的差异。交叉熵损失函数通常与Softmax函数一起使用。

Softmax函数的缺点是容易受到异常值的影响,当输入向量中某个元素的值很大时,Softmax函数的输出会非常接近于1,从而影响其他元素的输出值。为了避免这种问题,可以使用Maxout等修正版的Softmax函数。

2.3.3 sigmoid激活函数

Sigmoid函数是深度学习中常用的一种激活函数,也称为逻辑函数(Logistic Function)。Sigmoid函数的数学表达式为:

                                                                                                                   

其中x为实数,sigma(x)的值域为(0, 1)。Sigmoid函数在x=0处取值为0.5,随着x的增大或减小,sigma(x)的取值趋近于0或1。下面详细介绍Sigmoid函数的特点和作用:

  1. 映射到概率空间:Sigmoid函数可以将任意实数映射到$(0,1)$之间的概率值。因此,Sigmoid函数经常被用来表示二分类问题的概率值,比如判断一张图片是狗还是猫。
  2. 具有可导性:Sigmoid函数在定义域内可导,因此可以使用反向传播算法来训练神经网络。同时,Sigmoid函数的导数可以表示输出值相对于输入值的变化率,这对于优化算法的使用非常重要。
  3. 平滑的非线性函数:Sigmoid函数是一种平滑的非线性函数,它可以将输入值映射到输出值,并保留输入值的相关信息。这使得Sigmoid函数可以被用于构建深度神经网络,从而提高模型的表达能力。
  4. 容易产生梯度消失的问题:当输入值接近于正无穷或负无穷时,Sigmoid函数的导数接近于0,这会导致反向传播算法中的梯度消失问题。这使得Sigmoid函数不适用于深度神经网络中的训练,而更适用于浅层神经网络或者分类问题。
  5. 易受梯度爆炸的问题:当输入值的绝对值较大时,Sigmoid函数的导数接近于0或1,这可能导致反向传播算法中的梯度爆炸问题。因此,Sigmoid函数在使用时需要对输入数据进行合适的缩放或剪裁,以避免这个问题。

综上所述,Sigmoid函数是一种常用的激活函数,它具有将任意实数映射到(0,1)之间的概率值、可导性、平滑的非线性函数等特点。但是,它也容易产生梯度消失和梯度爆炸等问题,需要在使用时谨慎选择。

2.3.4 Relu激活函数

ReLU(Rectified Linear Unit)是一种非线性的激活函数,可以用于深度神经网络中的各种层,如全连接层、卷积层等。ReLU函数是在2000年提出的,但直到2012年才在深度学习领域引起广泛关注。ReLU激活函数在深度学习中具有以下作用:

解决梯度消失问题:传统的激活函数,如sigmoid和tanh函数,都是S形函数,其梯度在输入很大或很小的情况下接近于0,这会导致反向传播时梯度消失。ReLU函数的导数在输入为正数时为1,因此不会出现梯度消失问题,能够有效地训练深层网络。

加速模型训练:ReLU函数的计算速度很快,只需要判断输入是否大于0即可,因此能够加速模型的训练过程。

提高模型的性能:ReLU函数的非线性特性能够帮助神经网络学习非线性的数据分布和特征,提高模型的性能。

改善模型的鲁棒性:ReLU函数的输出范围为0到正无穷,不会出现梯度消失问题,并且在训练时可以通过随机失活等方式抑制过拟合,从而改善模型的鲁棒性。

ReLU函数的公式为:

                                                                                                                

其中x为输入,f(x)为输出。当输入x大于等于0时,输出为x;当输入x小于0时,输出为0。ReLU函数的导数为:

                                                                                                   

ReLU函数的缺点是容易出现“神经元死亡”问题。当输入小于0时,ReLU函数的输出为0,如果网络初始化不当或学习率过大,很可能导致一些神经元的输出一直为0,即“神经元死亡”,从而导致网络性能下降。为了避免这种问题,可以使用Leaky ReLU或PReLU等修正版的ReLU函数。

2.3.5 批归一化(Batch Normalization)

批归一化(Batch Normalization)是一种神经网络优化技术,用于加速深度学习模型的训练和提高模型的性能。它是由Ioffe和Szegedy在2015年提出的。

在深度神经网络中,由于每一层的输入数据分布不稳定,会导致训练过程出现梯度消失和梯度爆炸等问题。批归一化通过对每一层的输入数据进行规范化处理,使得每层输入的均值和方差保持稳定,从而解决了这些问题。

具体来说,批归一化是在每一层的输入数据上进行归一化处理,即通过对每一个小批量数据进行规范化,使得其均值为0,方差为1。这样可以使得每层的输入数据都落在一个类似标准正态分布的范围内,从而加速模型的训练和提高模型的性能。

批归一化可以在训练过程中使用,也可以在测试时使用。在训练时,批归一化通过对每个小批量数据进行归一化处理,以保持每一层的输入分布稳定。在测试时,可以使用训练时统计的均值和方差来归一化测试数据。

批归一化在深度学习中的主要作用为:

  1. 加速训练:批归一化能够加速网络的收敛速度,减少训练时间,使得更深的网络可以训练。这是因为批归一化可以使每一层的输入数据的分布更加稳定,从而减少了梯度消失和梯度爆炸的问题。
  2. 提高模型的泛化能力:批归一化可以减少模型对输入数据中噪声的敏感性,从而增强了模型的泛化能力。这是因为批归一化通过对每个特征维度进行归一化处理,使得每个特征维度的重要性更加均衡,从而减少了对某些特征的过度依赖。
  3. 减少过拟合:批归一化可以降低模型的复杂度,减少过拟合的风险。这是因为批归一化通过加入噪声,使得每个神经元的输出更加随机化,从而增加了模型的鲁棒性。
  4. 使模型更具有通用性:批归一化可以使模型对输入数据的大小和形状更具有通用性。这是因为批归一化可以对每个特征维度进行归一化处理,使得模型对于输入数据的缩放和平移更具有鲁棒性。
  5. 使学习率更加稳定:批归一化可以使学习率更加稳定,从而使得训练过程更加平滑。这是因为批归一化可以对每个特征维度进行归一化处理,使得梯度更加平滑,从而减少了训练过程中的震荡和不稳定性。

批归一化在深度学习中的作用是多方面的,可以加速训练、提高模型的泛化能力、减少过拟合、使模型更具有通用性,同时也可以使学习率更加稳定

2.3.6 Maxpool

Max pooling(最大池化)是深度学习中常用的一种卷积神经网络操作。它的作用是从输入的特征图中提取出最显著的特征,以降低特征图的大小,并且减少网络中需要学习的参数数量。

Max pooling的操作非常简单,它将输入特征图分割成若干个不重叠的矩形区域,并从每个区域中选取最大值作为输出。具体来说,Max pooling的操作包括以下几步:

  1. 将输入特征图分割成若干个不重叠的矩形区域。
  2. 对于每个矩形区域,选取其中的最大值作为输出。
  3. 将所有矩形区域的最大值组合成一个新的特征图输出。

Max pooling的优点包括:

  1. 降低特征图大小:Max pooling可以降低特征图的大小,减少网络中需要学习的参数数量,同时也可以减少计算量。
  2. 不易过拟合:Max pooling可以防止过拟合,因为它在提取特征时只选择最显著的部分,抑制了噪声和不必要的细节信息。
  3. 不变性:Max pooling可以增强特征的不变性,使得神经网络对于输入图像的平移、旋转、缩放等操作具有一定的鲁棒性。

需要注意的是,Max pooling在一定程度上会丢失输入特征图的某些信息,因为它只选择最大值作为输出,而没有考虑其他特征。因此,Max pooling也有一定的局限性,可能会影响神经网络的性能。

Max pooling是一种常用的卷积神经网络操作,它可以从输入特征图中提取最显著的特征,并降低特征图的大小。它具有防止过拟合、增强特征不变性等优点,但也有可能丢失一些信息,影响神经网络的性能。

2.3.7 Avgpoo

Avg pooling(平均池化)是深度学习中常用的一种卷积神经网络操作。与Max pooling类似,Avg pooling也可以从输入的特征图中提取出最重要的特征,但是它选取的是每个矩形区域内的平均值而不是最大值。

Avg pooling的操作非常简单,它将输入特征图分割成若干个不重叠的矩形区域,并从每个区域中计算平均值作为输出。具体来说,Avg pooling的操作包括以下几步:

1. 将输入特征图分割成若干个不重叠的矩形区域。

2. 对于每个矩形区域,计算其中所有元素的平均值作为输出。

3. 将所有矩形区域的平均值组合成一个新的特征图输出。

Avg pooling的优点包括:

降低特征图大小:与Max pooling一样,Avg pooling也可以降低特征图的大小,减少网络中需要学习的参数数量,同时也可以减少计算量。

不易过拟合:Avg pooling也可以防止过拟合,因为它在提取特征时只选择最显著的部分,抑制了噪声和不必要的细节信息。

对小目标物体更加敏感:与Max pooling不同,Avg pooling不仅选取了每个区域内的最显著部分,也考虑了其他特征,因此它对小目标物体更加敏感。

需要注意的是,与Max pooling相比,Avg pooling对于输入特征图的不变性较差。这是因为在计算平均值时,与最大值不同,平均值会受到所有元素的影响,因此对于输入图像的平移、旋转、缩放等操作,Avg pooling不具备很好的鲁棒性。

综上所述,Avg pooling是一种常用的卷积神经网络操作,它可以从输入特征图中提取最重要的特征,并降低特征图的大小。它具有防止过拟合、对小目标物体敏感等优点,但也有可能丢失一些信息,影响神经网络的性能。

2.3.8 avgpoo

Dropout是一种在深度学习中用于正则化的技术,它的作用是在神经网络的训练过程中随机地舍弃一些神经元,以减少过拟合。下面详细介绍Dropout的特点和作用:

  1. 随机舍弃神经元:在每个训练批次中,Dropout随机地舍弃一部分神经元。这使得神经网络无法依赖于某些特定的神经元来进行分类或预测,从而减少过拟合的风险。
  2. 增强泛化能力:Dropout可以增强神经网络的泛化能力,使其更好地适应新的未知数据。因为神经网络训练时每次都只使用了部分神经元,所以网络必须学会使用不同的神经元来处理不同的输入数据。
  3. 改善训练效果:Dropout可以改善神经网络的训练效果,因为它可以减少训练数据中的噪声和异常值的影响。同时,Dropout还可以防止神经网络过拟合,提高训练的稳定性和效率。
  4. 不需要调整超参数:Dropout不需要调整超参数,可以直接应用于深度神经网络中,使得模型更加简单易用。
  5. 适用于各种神经网络结构:Dropout可以应用于各种神经网络结构,包括全连接神经网络、卷积神经网络、循环神经网络等。

需要注意的是,Dropout在测试阶段通常不会使用,而是在训练阶段中使用。因为在测试阶段,需要使用全部的神经元进行预测,而不是随机舍弃一部分神经元。

Dropout是一种用于正则化的技术,它可以随机舍弃一些神经元,从而减少过拟合的风险,增强神经网络的泛化能力和训练效果。它适用于各种神经网络结构,不需要调整超参数,使得深度学习更加简单易用。

2.3.8 stride

在深度学习中,Stride是指卷积核在滑动过程中每次移动的步长。卷积操作是神经网络中常见的操作,其主要作用是对输入数据进行特征提取。在卷积操作中,卷积核与输入数据进行滑动,通过卷积操作将输入数据转化为特征图。Stride的大小决定了卷积核在滑动过程中每次跳过的像素个数。

Stride的大小通常是一个正整数,表示每次卷积核移动的步长。Stride越大,输出特征图的大小就会缩小,因为卷积核每次移动的距离更远,每个位置都被卷积的次数就会减少。相反,Stride越小,输出特征图的大小就会增大,因为卷积核每次移动的距离更短,每个位置都被卷积的次数就会增多。

假设输入特征图的大小为,卷积核大小为,Stride大小为S,则输出特征图的大小为:

                                                                                                               

                                                                                                              

需要注意的是,Stride大小的选择需要根据具体的任务和数据进行调整。如果Stride过大,可能会导致特征图信息的损失,从而影响模型的性能。如果Stride过小,可能会导致模型过拟合,从而降低模型的泛化能力。因此,选择合适的Stride大小是深度学习中非常重要的一步。

2.4 深度学习网络模型

1.vgg

VGG是牛津大学计算机视觉组(Visual Geometry Group)在2014年提出的一种卷积神经网络模型,以其简洁明了的网络结构和较好的表现效果而成为深度学习领域里的经典模型之一。VGG模型的出现源于对AlexNet模型的改进,旨在提高深度卷积神经网络在图像分类任务上的准确率。

VGG模型采用了一个由卷积层和池化层交替组成的卷积神经网络结构来进行图像特征的提取。其中,卷积层负责对输入图像进行卷积操作来提取图像中的特征,而池化层则负责降低特征图的维度,使得网络更加容易处理复杂的图像数据。网络中的卷积层采用的是3x3的卷积核,而池化层则采用的是2x2的最大池化。网络中的卷积层和池化层的堆叠数量较多,如VGG16模型中包含16个卷积层和池化层。

除了卷积层和池化层之外,VGG模型还使用了全连接层来进行分类。在全连接层中,包括几个具有大量神经元的全连接层,并最终使用softmax激活函数进行分类。然而,由于全连接层的参数数量较多,导致VGG模型的计算复杂度较高。

为了降低计算复杂度,VGG模型采用小卷积核来代替大卷积核来减少卷积层的参数数量。这种设计可以有效地减少网络中的参数数量,提高模型的训练效率,并在一定程度上提高了准确率。此外,通过增加网络的深度,VGG模型还进一步提高了图像识别任务的准确率。由于VGG模型的结构比较清晰简单、易于实现,并且具有较好的分类性能,因此它成为了深度学习领域里的一个重要里程碑。

不过需要注意的是,VGG模型的缺点也很明显。由于该模型采用的是较深的网络结构和较多的卷积层和池化层,因此计算复杂度较高,导致推理速度较慢。同时,在一些比较复杂的图像识别任务中,VGG模型可能表现不如其他模型。因此,在实际应用中,我们需要根据任务需求和资源限制等因素综合考虑使用何种模型。

总体而言,VGG模型作为一个经典的深度学习模型,对于卷积神经网络的发展起到了重要的推动作用。它的简洁明了的网络结构、高准确率的表现以及对小卷积核的使用,不仅为后续深度学习研究提供了参考,同时也在实际应用中具有广泛的应用前景。

2.残差网络Resnet

当深度神经网络的层数变得很深时,会遇到梯度消失和梯度爆炸等训练难题。这些问题主要是由于反向传播算法中的链式求导法则,在多层网络中,梯度的乘积会逐渐减小或增大,最终导致模型无法收敛或过拟合。

为了解决这个问题,2015年由何凯明等人提出了残差网络(ResNet),引入了残差连接(residual connection)的核心思想,它可以让神经网络学习到残差(residual)而不是原始的映射。ResNet使用残差块(residual block)来构建网络。残差块是由两个或多个卷积层和一个跳跃连接(skip connection)组成的。在每个残差块中,输入首先通过一个卷积层和一个激活函数,然后通过另一个卷积层。最后,将输入与输出相加,并将其通过一个激活函数(如ReLU)。

这种残差连接允许网络中的信息直接流向后面的层,从而减少了梯度消失和梯度爆炸的问题,同时还可以更容易地训练更深的网络。ResNet还引入了全局平均池化(global average pooling),这个层可以将最终的特征图转换为一个向量,这个向量可以作为分类器的输入。

与传统的卷积神经网络不同,ResNet在训练过程中学习的是残差,而不是原始映射。即使网络变得非常深,也可以通过残差连接直接从初始输入到最终输出,保证梯度信息的流通,并且不会导致信息的损失。因此,ResNet的创新之处在于引入了残差连接,解决了深度神经网络中的梯度消失和梯度爆炸的问题,使得网络能够更容易地训练和调整。

在实际应用中,ResNet被广泛应用于各种计算机视觉任务,如图像分类、物体检测、语义分割等。其中,ResNet-50是最常见的模型之一,具有50个卷积层,可以在ImageNet数据集上获得非常好的性能。另外,ResNet还有其他变种模型,如ResNet-101和ResNet-152等,它们在模型深度和参数数量等方面更加复杂,可以在更复杂的任务上获得更好的性能。

需要注意的是,尽管ResNet可以有效地解决梯度消失和梯度爆炸的问题,但在训练过程中仍然需要注意一些细节。例如,为了进一步减少梯度消失和梯度爆炸的影响,可以使用批归一化(batch normalization)等技术来规范化输入数据和中间特征,同时还可以使用更优秀的优化算法和学习率调整策略来提高模型的训练效果。

总之,残差网络是深度学习领域里的一个重要里程碑,它的创新性思想在深度神经网络的设计中具有广泛的应用前景。通过引入残差连接,ResNet成功地解决了深度神经网络中的梯度消失和梯度爆炸等问题,使得深度神经网络能够更容易地训练和优化。此外,ResNet还具有较高的分类准确率和比较好的可解释性,可以帮助人们理解神经网络在图像分类任务中的特征提取能力。

然而,尽管ResNet已经在计算机视觉领域中获得了广泛的应用,但它仍然存在一些缺点。首先,ResNet模型的计算复杂度和模型参数数量较大,需要较长的时间进行训练和推理。其次,在某些图像分类任务中,如细粒度分类和多标签分类等,ResNet的性能可能不如其他模型。因此,在选择模型时需要根据具体任务需求和计算资源限制来综合考虑。

总体而言,残差网络是深度学习领域里的一个重要里程碑,它提出的残差连接思想为深度神经网络的设计提供了新的思路,解决了梯度消失和梯度爆炸等难题,将深度神经网络推向了一个新的阶段。未来,随着深度学习技术的不断发展,残差网络的设计思想也将不断发展和完善,为计算机视觉和其他领域的研究带来更多可能性。

3. MobileNet

MobileNet是一种轻量级的卷积神经网络,由Google在2017年发布,主要用于在资源受限的设备上进行实时图像识别和分类。与传统的卷积神经网络相比,MobileNet采用了一些新的设计思路,使得模型具有高效的模型结构和低计算复杂度,可以在嵌入式设备、移动设备和IoT设备等资源受限的场景中获得很好的性能。

MobileNet的核心思想是使用深度可分离卷积层(depthwise separable convolution),这种卷积层将传统的卷积操作分解为两个操作:深度卷积和逐点卷积。深度卷积只在输入的每个通道上执行卷积操作,而逐点卷积只在每个通道的像素点上执行卷积操作。这种分解使得网络可以使用更少的参数来达到与传统卷积相同的准确性。

深度可分离卷积层具有几个重要的优点。首先,它可以显著减少参数数量,从而降低计算复杂度并加速训练和推理过程。其次,它可以减少特征图的尺寸,从而进一步降低计算复杂度和内存占用。最后,它可以提高模型的泛化能力,减少过拟合的风险。

另一个MobileNet的特点是使用了宽度多项式(width multiplier),它可以通过调整网络中每个层的通道数来控制模型大小和计算复杂度。在训练过程中,我们可以根据设备资源限制和任务需求来选择不同的宽度系数,从而灵活地平衡模型的大小和性能。宽度多项式可以让我们在不降低模型准确性的情况下,通过减少通道数来减少模型的大小和计算复杂度。

MobileNet还使用了全局平均池化(global average pooling)来将最终的特征图转换为一个向量,这个向量可以作为分类器的输入。这种操作可以降低模型的复杂度,减少需要训练的参数数量,同时还可以防止过拟合。

MobileNet已经在各种嵌入式设备、移动设备和IoT设备上取得了很好的效果,并被广泛应用于人脸识别、图像分类、目标检测等场景中。例如,在人脸识别方面,MobileNet可以实现快速的人脸检测和识别,适用于移动支付、门禁系统、人脸解锁等场景;在图像分类方面,MobileNet可以实现高准确性的图像分类,适用于移动相册、社交媒体等应用;在目标检测方面,MobileNet可以实现快速准确的物体检测,适用于智能安防、机器人导航等领域。

需要注意的是,尽管MobileNet具有高效的模型结构和低计算复杂度,但它仍然存在一些缺点。例如,在某些任务中,如细粒度分类和多标签分类等,MobileNet的性能可能不如其他模型。此外,由于MobileNet采用了少量卷积核的设计,对于一些大尺寸的图像或者复杂的场景,MobileNet的性能可能会受到一定程度的影响。因此,在选择模型时需要综合考虑具体任务需求和计算资源限制,选择最适合的模型。

总体而言,MobileNet是一种高效、灵活、可扩展的卷积神经网络,具有广泛的应用前景。在未来,随着移动设备和IoT设备的普及和发展,对于轻量级、低功耗、高性能的深度学习算法的需求将越来越大,MobileNet等轻量级卷积神经网络的研究和应用也将不断拓展和完善。

4.Vision TransformerMobileNet

Vision Transformer(ViT)是一种使用Transformer架构的图像分类模型,由Google在2020年提出。其利用了自注意力机制(self-attention)和全连接层,实现了在多个视觉任务中表现出与卷积神经网络相当的性能。ViT是计算机视觉领域的重要发展方向之一,对于提高计算机视觉的效果、减少训练时间和增强模型的可移植性具有重要意义。

相比于传统的卷积神经网络,ViT不需要使用卷积和池化层进行特征提取,而是直接使用Transformer来处理图像。这种方法可以避免传统卷积神经网络中存在的“池化层带来的信息损失”问题。同时,ViT不受图像大小限制,可以处理不同尺寸的图像,并且可以处理较大的图像。这使得ViT可以应用于各种视觉任务,例如图像分类、目标检测等。

ViT引入了“Patch Embedding”机制,将输入的图像分成多个小块,每个小块被展平为一个向量,然后输入到Transformer模型中。这种机制使得模型可以处理不同尺寸的图像,并减少了模型参数的数量。通过对这些小块进行处理,ViT可以提取出图像的局部特征,并将它们组合成全局特征。

ViT还引入了“Position Embedding”机制,用于表示输入序列中每个元素的位置信息。这种机制使得模型可以处理序列输入,而不仅仅是图像输入,从而可以在其他任务上应用Transformer架构。通过将每个位置嵌入到向量中,ViT可以捕获序列中元素之间的相对位置关系,提高模型的性能。

另外,ViT还使用了标准预训练技术,通过在大规模的图像数据集上进行预训练,学习到通用的视觉特征。这些通用特征可以在各种视觉任务中使用,例如目标检测、语义分割等。与传统的卷积神经网络不同,ViT使用预训练模型时不需要进行微调,因为它可以直接在新任务上进行推理。

同样,ViT也存在一些限制。由于ViT处理图像时需要将图像分成小块,因此可能无法捕捉到像素级别的细节。此外,ViT需要大量的计算资源和存储空间,训练时间可能比传统的卷积神经网络更长。但是由于ViT在多个视觉任务中表现出与卷积神经网络相当的性能,是计算机视觉领域的重要发展方向之一。

2.5评价指标

2.5.1准确率

准确率(Accuracy)凭借着其简单易懂的原理,准确率在日常生活中是最为普遍的一种评价指标。可以理解为预测正确的样本除以所有样本。准确率对于分类模型的评估是非常直观的,在大多数条件下,准确率越高则表明该模型的预测分类能力越强。准确率计算公式为公式2.19。

                                                                                   

                                                                    

2.5.2 loss曲线

在深度学习中,分类loss的作用是帮助模型度量其预测结果与真实标签之间的差异,进而通过反向传播算法来更新模型的参数,使得模型能够逐渐提高其预测准确率。分类loss指的是模型在训练集上预测结果与真实结果之间的差异或者错误率。通常使用交叉熵损失函数(Cross-Entropy Loss)来计算分类loss。对于一个样本,假设其真实标签为 y,预测标签为,则该样本的交叉熵损失可以表示为:

                                                                                                        

其中,C 表示总共有多少个类别,表示第i个类别是否是该样本的真实标签(0或1),表示模型预测该样本属于第i个类别的概率。整个数据集的交叉熵损失可以表示为所有样本交叉熵损失的平均值:

                                                                                                           

其中,N表示训练集中总共有多少个样本。

2.6本章小结

本章阐述了本课题使用的主要技术,包括深度学习的理论知识和课题所使用的五个模型的理论知识,另外,还介绍了衡量网络的评价标准。

第3章 数据预处理和特征提取

本章使用python对影像进行了预处理,通过nibabel库对所下载的ADNI数据集进行处理,使用pytorch中的transforms库对图像进行图像增强。

3.1 ADNI数据集的采集

ADNI(Alzheimer's Disease Neuroimaging Initiative)数据集是一个跨学科合作的国际研究项目,旨在提高对阿尔茨海默病(AD)和相关疾病的理解,以促进早期诊断和治疗的发展。该数据集是由美国国家卫生研究院(NIH)赞助的,从2004年开始收集,包括来自超过50个研究机构的超过2000名志愿者。

ADNI数据集包含了三种类型的数据:临床数据、影像数据和生物标志物数据。临床数据包括每个参与者的个人信息、医疗史、认知评估结果、家族史等。影像数据包括磁共振成像(MRI)和正电子发射断层扫描(PET)等影像数据。其中我们所使用的ADNI数据集属于MRI图像。

MRI(磁共振成像)是一种非侵入性的医学成像技术,可以生成人体内部的详细结构图像,广泛应用于诊断和治疗许多疾病。MRI利用强磁场和无线电波来创建图像,不涉及任何有害的离子辐射,相对于其他成像技术如CT扫描等,MRI更加安全。

MRI图像是三维图像,可以显示人体内部各种组织的详细结构,如软组织、骨骼、脑部、心脏等。MRI图像具有高对比度和分辨率,可以清晰地显示出组织的不同类型和解剖结构,有助于医生进行精准的诊断和治疗计划。

MRI图像是通过对人体内部的水分子进行扫描和成像来生成的。人体内的水分子含有氢原子,MRI利用强磁场作用下水分子的旋转来生成信号,然后利用计算机对信号进行处理和重建,生成图像。MRI图像可以使用多种成像序列来显示不同类型的组织结构,如T1加权图像可以清晰显示脑部的灰质和白质,T2加权图像则可以显示脑部的液体和炎症等。

本文所采用的是T1加权的sMRI影像,传统医学上的核磁共振一般称为sMRI,sMRI空间分辨率高[16]。优点为对于病人的病灶位置的影像较为清晰[17],定位非常准确,通过不同的角度[18]、不同的观察点位影像能清晰地反映疾病的位置、范围和与周边器官的关系[19]。核磁共振对于软组织有着较高的解析度,特别是对神经系统的成像[20]。

本文将主要进行阿尔兹海默症组(AD),轻度认知障碍(EMCI)和正常对照(CN)进行预测。所以本文从ANDI获取的为AD,CN,EMCI三类数据影像,下载格式为nii格式。

3.2 ADNI数据集的预处理

由于ADNI数据集是一种MRI图像,它是3维的,所以我们需要把ADNI数据集转化为普通图像格式(如jpg格式)来进行分类预测。我们使用python中的nibabel库对图像进行处理。它用于读取和写入医学图像数据。它可以将这些图像数据转换为NumPy数组,便于使用Python进行科学计算和分析。图2是使用nibabel库处理得到的AD图像。

3.3 图像增强

我们从转换后的AD,CN,EMCI类下随机300张样本,把它们按照8:2的比例分为训练集和测试集。由于EMCI数据较少只有240张,我们对齐进行了数据扩充。随机取60张EMCI图像利用transforms对其进行数据增强。主要方法包括随机旋转,随机横向翻转,随机垂直翻转,颜色抖动,随机调整裁剪等。图3是增强后的图片。

在数据扩充后开始进行数据预处理的阶段,其中包含了两个transforms对象,分别是train_transform和val_transform。

train_transform用于对训练集中的图像进行处理,它包含以下几个步骤:

调整图像大小为224x224像素,将图像转换为Tensor类型,对图像进行标准化处理,将每个像素的值减去均值(0.485, 0.456, 0.406),再除以标准差(0.229, 0.224, 0.225),随机进行水平翻转,p=0.5表示翻转的概率为50%。随机裁剪图像,裁剪后的图像大小为224x224像素。

val_transform用于对验证集和测试集中的图像进行处理,它包含以下几个步骤:

将图像的较短边缩放到256像素,较长边按比例缩放,在中心位置裁剪出一个224x224像素的图像,将图像转换为Tensor类型,对图像进行标准化处理,将每个像素的值减去均值(0.485, 0.456, 0.406),再除以标准差(0.229, 0.224, 0.225)。

通过这些预处理步骤,可以将原始的图像数据转换为适合于神经网络训练的格式,并且可以提高模型的泛化能力。

3.4本章小结

本章详细介绍了有关于ADNI数据集的预处理过程。

第4章 算法具体实现和比较

本章节研究了五类模型的实现方式和通过验证集所产生准确率比对来选择较为优秀的模型。并通过对比模型来进一步作出模型的改进设计。本课题将第3组所产生的数据80%作为训练集,20%作为验证集。

4.1六类模型的具体实现和比较

在模型对比中,本课题使用20%的数据样本作为验证集进行模型预测,然后将预测结果和真正的标签作比对。

4.1.1 vgg16网络

本文使用基于PyTorch深度学习框架下的Vgg16模型,实现对图片分类器的训练和测试。在模型定义方面,可以使用PyTorch自带的Vgg16模型进行分类任务。vgg16总共有16层,13个卷积层和3个全连接层,第一次经过64个卷积核的两次卷积后,采用一次pooling,第二次经过两次128个卷积核卷积后,再采用pooling,再重复两次三个512个卷积核卷积后,再pooling,最后经过三次全连接,输出预测类别。

vgg16的输入是一个固定大小的RGB图像,通常大小为224x224像素。整个网络由多个卷积层和池化层交替组成,其中每个卷积层都采用相同的3x3卷积核,步长为1,填充为1,以保持输入图像的大小不变。在每个卷积层之后,都有一个ReLU激活函数,用于增加网络的非线性性。池化层使用2x2的最大池化操作,每个池化层将图像的大小减半。

具体的,输入图像尺寸为224x224x3,经64个通道为3的3x3的卷积核,步长为1,padding=1填充,卷积两次,再经ReLU激活,输出的尺寸大小为224x224x64。我们可以得到第一层的特征Z和激活后的特征a。

                                                                       

                                                                                                     

之后经max pooling(最大化池化),滤波器为2x2,步长为2,图像尺寸减半,池化后的尺寸变为112x112x64 ,经128个3x3的卷积核,两次卷积,ReLU激活,尺寸变为112x112x128 ,max pooling池化,尺寸变为56x56x128 ,经256个3x3的卷积核,三次卷积,ReLU激活,尺寸变为56x56x256 ,max pooling池化,尺寸变为28x28x256,经512个3x3的卷积核,三次卷积,ReLU激活,尺寸变为28x28x512 ,max pooling池化,尺寸变为14x14x512 ,经512个3×3的卷积核,三次卷积,ReLU,尺寸变为14x14x512 ,max pooling池化,尺寸变为7x7x512 ,需要将其转化为一个25,088维的向量以便作为全连接层的输入,该过程输出为a 16.

                                                                                                      

最后经过两层1x1x4096,一层1x1x3的全连接层(共三层),经ReLU激活,通过softmax输出3个预测结果 :

                                                                                               

在训练过程中,我们使用交叉熵损失函数作为评估模型性能的指标,并使用随机梯度下降(SGD)优化器来反向传播更新模型的权重。

                                                                                                             

具体来说,可以使用一个包含32个样本的批次进行训练,并将训练集和测试集分别用于训练和测试模型。通过100次epoch进行训练,在每个epoch结束时计算并记录了训练集和测试集的损失和精度,以便在训练过程中进行监控。使用可视化工具wandb将Loss曲线图和Accuracy曲线图分别打印出来,以便评估模型的性能和找出需要改进的地方。

VGG主要使用较小的卷积核代替较大的卷积核。在VGG16中,作者认为两个3x3的卷积堆叠获得的感受野大小,相当一个5x5的卷积;而3个3x3卷积的堆叠获取到的感受野相当于一个7x7的卷积。这样做一方面可以减少参数,增加了网络深度,另一方面相当于进行了更多的非线性映射,可以增加网络的拟合和表达能力。

4.1.2 Resnet18

本文使用了ResNet-18模型,该模型由18个卷积层、4个池化层和1个全连接层构成,与Vgg16模型相似,它沿用了VGG完整的3×3卷积层设计。ResNet-18模型的主要特点是残差块,这些块允许网络在深度方向上更加灵活,防止了梯度消失和梯度爆炸问题。ResNet-18模型的输入是一个3通道、224×224像素的图像,输出为3个类别的概率。每个卷积层后接一个批量规范化层和ReLU激活函数。 然后我们通过跨层数据通路,跳过这2个卷积运算,将输入直接加在最后的ReLU激活函数前。 这样的设计要求2个卷积层的输出与输入形状一样,从而使它们可以相加。 如果想改变通道数,就需要引入一个额外的1×1卷积层来将输入变换成需要的形状后再做相加运算。 残差块的实现如下:

在传统的神经网络模型中,每一层都是通过对上一层的输出进行非线性变换来得到的,也就是说,每一层都会对输入信号进行一次映射(如卷积操作),然后再通过激活函数进行非线性变换,最后输出到下一层。在这个过程中,如果模型过深,每一层的输入都可能变得非常小,导致梯度消失,使得训练变得非常困难。

而在ResNet中,每个残差块都包含了一个恒等映射(identity mapping),即将输入信号直接传递到输出。这样,即使经过多层非线性变换后,输入信号的特征被改变了,但是至少部分输入信号的信息可以直接传递到输出,从而保留了一些“原始”的信息,使得梯度可以更加轻松地在残差块中传递。具体来说,每个残差块可以表示为如下形式:

                                                                                                         

其中表示输入信号,表示残差块的映射函数,输出为。在这个残差块中,恒等映射直接加在的输出上,从而得到了残差块的输出。

在训练过程中,本文使用了交叉熵损失函数作为评估模型性能的指标,并使用随机梯度下降(SGD)优化器来反向传播更新模型的权重。并用wandb进行可视化记录。

4.1.3 MobileNet

MobileNet是一种轻量级的卷积神经网络,它在图像分类任务中表现出色,其主要思想是使用深度可分离卷积(depthwise separable convolution)来降低模型的参数量和计算复杂度。

本文采用了MobileNetV3-small模型,MobileNetV3-small是MobileNetV3系列中的一种轻量级模型,它的结构非常简单,只包含一个固定的主干网络和一个分类头部。MobileNetV3-small共包含17个卷积层,其中包括13个可分离卷积层、2个1x1卷积层和2个全连接层。它的结构如下图所示:

large和small的整体结构一致,区别就是基本单元bneck的个数以及内部参数上,主要是通道数目。下表为具体的参数设置,其中bneck是网络的基本结构。SE代表是否使用通道注意力机制。NL代表激活函数的类型,包括HS(h-swish),RE(ReLU)。BN 代表没有BN操作。 s 是stride的意思,网络使用卷积stride操作进行降采样,没有使用pooling操作。

通道分离卷积是MobileNet系列的主要特点,也是其发挥轻量级作用的主要因素。通道可分离卷积分为两个过程:1.channel方向通道可分离卷积;2.正常的1X1卷积输出指定的channel个数。

Bneck是核心模块,也是网络的基本模块。主要实现了通道可分离卷积+SE通道注意力机制+残差连接。结构图如下:

之前在v2版本基本都是使用ReLU6激活函数,现在比较常用的激活函数叫swish激活函数。

                                                                                                             

其中的计算公式如下:

                                                                                                               

使用swish激活函数之后,确实能够提高网络的准确率,但是也存在2个问题:计算、求导复杂;对量化过程不友好(对移动端设备,基本上为了加速都会对它进行量化操作)由于存在这个问题,作者就提出了h-swish激活函数,在讲h-swish激活函数之前我们来讲一下h-sigmoid激活函数h-sigmoid激活函数是在relu6激活函数上进行修改的:

                                                                                           

                                                                                              

h-sigmoid与sigmoid激活函数比较接近,所以在很多场景中会使用h-sigmoid激活函数去替代我们的sigmoid激活函数。因此h-swish中替换为h-sigmoid之后,函数的形式如下:

                                                                                          

作者在原论文中提到,经过将 swish 激活函数替换为 h-swish,sigmoid 激活函数替换为 h-sigmoid 激活函数,对网络的推理速度是有帮助的,并且对量化过程也是很友好的。注意,h-swish 实现虽然说比 swish 快,但和 ReLU 比还是慢不少。

      4.1.4 Vision Transformer

Vision Transformer(ViT)是一种完全基于自注意力机制的深度神经网络,它在图像分类任务中表现出了与卷积神经网络相媲美的性能。ViT的结构如下:

对于图像数据而言,其数据格式为[H, W, C]是三维矩阵明显不是Transformer想要的。所以需要先通过一个Embedding层来对数据做个变换。如下图所示,首先将一张图片按给定大小分成一堆Patches。以ViT-B/16为例,将输入图片(224x224)按照16x16大小的Patch进行划分,划分后会得到( 224 / 16 ) 2 = 196个Patches。接着通过线性映射将每个Patch映射到一维向量中,以ViT-B/16为例,每个Patche数据shape为[16, 16, 3]通过映射得到一个长度为768的向量(后面都直接称为token)

在代码实现中,直接通过一个卷积层来实现。 以ViT-B/16为例,直接使用一个卷积核大小为16x16,步距为16,卷积核个数为768的卷积来实现。通过卷积[224, 224, 3] 变为 [14, 14, 768],然后把H以及W两个维度展平即可[14, 14, 768] -> [196, 768],此时正好变成了一个二维矩阵,正是Transformer想要的。

在输入Transformer Encoder之前注意需要加上[class]token以及Position Embedding。 在原论文中,作者说参考BERT,在刚刚得到的一堆tokens中插入一个专门用于分类的[class]token,这个[class]token是一个可训练的参数,数据格式和其他token一样都是一个向量。以ViT-B/16为例,就是一个长度为768的向量,与之前从图片中生成的tokens拼接在一起,Cat([1, 768], [196, 768]) 变为 [197, 768]。然后关于Position Embedding就是之前Transformer中讲到的Positional Encoding,这里的Position Embedding采用的是一个可训练的参数(1D Pos. Emb.),是直接叠加在tokens上的(add),所以shape要一样。以ViT-B/16为例,刚刚拼接[class]token后shape是[197, 768],那么这里的Position Embedding的shape也是[197, 768]。

Transformer Encoder其实就是重复堆叠Encoder Block L次,如图,主要由以下几部分组成:

Layer Norm,这种Normalization方法主要是针对NLP领域提出的,这里是对每个token进行Norm处理。

Multi-Head Attention是一种在自注意力机制(Self-Attention)的基础上进行扩展的注意力机制。它的作用是提高模型在处理序列数据时的表现,特别是在涉及长距离依赖性的任务中。

Dropout/DropPath,在原论文的代码中是直接使用的Dropout层,在但rwightman实现的代码中使用的是DropPath(stochastic depth),可能后者会更好一点。

MLP Block,如图右侧所示,就是全连接+GELU激活函数+Dropout组成也非常简单,需要注意的是第一个全连接层会把输入节点个数翻4倍[197, 768]变为[197, 3072],第二个全连接层会还原回原节点个数[197, 3072] 变为 [197, 768]

上面通过Transformer Encoder后输出的shape和输入的shape是保持不变的,以ViT-B/16为例,输入的是[197, 768]输出的还是[197, 768]。我们只需要提取出[class]token生成的对应结果就行,即[197, 768]中抽取出[class]token对应的[1, 768]。最后,将MLP层的输出连接到一个softmax层中,用于预测输入图像的类别。softmax层输出一个概率分布,表示输入图像属于每个可能的类别的概率。

                                                                      

4.1.5 ConvNet4

为了进行性能比较,我们引入了一个基线模型ConvNet4,该模型由4个卷积块构成。每个卷积块的卷积核大小为3*3,步距为1。每个卷积块由2个卷积层组成,卷积层后紧接着使用批量正则化、relu激活函数和最大池化层(步距为2)进行处理。这些卷积块的通道数分别为64、160、320和640。

该模型的输入为一张大小为3*224*224图像。通过卷积核运算,我们可以得到一个大小为640*14*14的特征图。经过全局平均池化处理,我们可以得到一个大小为640*1*1的特征向量。最后,通过全连接层将这个特征向量映射为每个类别的概率。

4.2模型的对比分析

4.2.1模型准确率的对比

在模型对比中本课题使用第三章获得的数据影像的20%作为验证集,然后将预测结果和真正的标签作比对。

1.实验环境与实验设置

本节主要对实验环境和实验设置的具体细节进行介绍,本章方法以及对比方

法的实验环境配置如表所示

软硬件

详细参数

操作系统

Window10

CPU

Inter i7 9700K

GPU

NVIDIA 2080Ti

内存

16G

编程语言

Python3.8

开发工具

Pycharm 2021

深度学习框架

Pytorch1.8

在实验中,我们使用了以下参数和配置:

(1)划分测试集和验证集的比例为8:2,其中80%的数据用于训练,20%的数据用于验证。

(2)batch size设置为32,即每次训练模型使用32个数据样本。

(3)epoch轮数为100,即将训练数据集中的所有数据样本迭代100次。

(4)优化器采用随机梯度下降(SGD)算法,学习率为0.00005,动量参数为0.9,权重衰减系数为0.0005。其中,学习率决定了每次更新参数的步长,动量参数可以帮助加速收敛过程,权重衰减则有助于防止过拟合。

(5)学习率策略选用多步长MultiStepLR动态调整学习率。在80,90epoch时,学习率按0.1进行衰减。即在第80和90个epoch时,将学习率乘以0.1,以便调整模型的学习率以更好地适应训练数据集。

综合以上参数和配置,我们可以训练模型并在验证集上进行测试,以评估模型的性能和泛化能力。

2. 5类模型的准确率对比

我们利用wandb可视化工具对5类模型进行了正确率和损失的记录,首先我们对比了vgg16,resnet18和MobileNetV3进行了正确率的对比,如图:

从图中可以看出这三类模型正确率曲线波动很大,相比之下vgg16有着更好的效果,从loss曲线图也可以看出,vgg16最后loss也是最低的。

我们取最优的vgg16再与Vision Transformer和ConvNet4做对比,从图中可以看出,虽然Vision Transformer正确率较为平稳但是正确率远没有上面俩个模型高,令人意外的是,最简单的ConvNet4模型却有着最好的效果。

再从loss曲线看,Vision Transformer的loss随着轮数的增加不减反增,而ConvNet4得到了5类模型中的最低loss。

总体来看, ConvNet4模型的性能最优,而在Vision Transformer模型上,loss随着epoch的增加而增加,出现了过拟合的现象。过拟合是指模型在训练数据上表现良好,但在测试数据上表现较差的现象。当模型过于复杂,或训练数据过少时,容易出现过拟合的情况。如图(c)

Vision Transformer模型是使用自注意力机制(self-attention mechanism)来建立图像的特征表示,相比传统的卷积神经网络模型更加灵活和可扩展。但这种自注意力机制的复杂度相对较高,模型容易出现过拟合。

4.2.2 5种模型的对比分析

在深度学习中,有许多不同的模型可以用于图像分类,例如卷积神经网络(Resnet)和视觉Transformer(ViT)等。为了找到最优的模型我们对上述模型的性能进行比较,并解释其中的原因。我们测试了五种不同的模型,包括vgg16、Resnet18、ViT、MobileNetV3、Vision Transformer和ConvNet4,并比较了它们的正确率。如表所示

令人惊讶的是,我们发现ConvNet4具有最简单的结构,但是却表现出了最高的正确率。其他模型的表现并不太理想,特别是ViT表现最差。我们认为这是因为在小数据集上(我们所训练的ADNI数据集在训练阶段只有240张图片),使用更多参数的卷积块可能比使用更少参数的Transformer模型更好。卷积块通常具有更高的表示能力,可以更好地适应较小的数据集。

另外,我们还发现在参数调整方面,我们可能没有对ViT模型的参数进行充分的调整。在某些情况下,ViT模型需要更多的调整和调优才能达到最佳性能。这可能需要更多的实验和调整来完成。

此外,我们还发现ADNI数据集可能具有一些特性,使其更适合卷积块模型。例如,ADNI数据集具有空间局部性,这意味着卷积块模型可以更好地利用这种特性。因此,选择正确的模型非常重要,并且必须考虑数据集的特性。

我们的实验结果表明,在小数据集上,选择具有更多参数的卷积块模型可能比选择具有更少参数的Transformer模型更好。但是,这并不意味着在所有情况下卷积块模型都优于Transformer模型。选择正确的模型需要考虑多个因素,包括数据集大小、数据集特性、模型结构和参数调整等。

模型

正确率

vgg16

88.33

Resnet18

84.44

MobileNetV3

87.22

Vision Transformer

77.78

ConvNet4

88.89

4.3模型改进

尽管ConvNet4分类不同的认知状态,包括正常认知(CN)、轻度认知障碍(EMCI)和阿尔茨海默病(AD)。虽然ConvNet4在预测这些状态时表现不错,但是我们发现其正确率仍有提升的空间。

为此我们在ConvNet4骨干网络后通过添加不同的注意力机制并进行实验来获取最好的模型架构。

4.3.1 SE注意力

SE注意力(Squeeze-and-Excitation Attention)是一种用于增强卷积神经网络(CNN)中的特征表示能力的技术。SE注意力机制被提出后,很快成为了提升模型性能的重要方法之一。

SE注意力的核心思想是在特征图上进行自适应的通道加权,以使得神经网络更加关注重要的特征,从而提高模型的性能。SE注意力的实现过程可以分为两个步骤:压缩和激励。

压缩阶段使用全局平均池化对特征图进行降维,得到每个通道的压缩特征向量。这一步可以有效地减少计算量,并且能够提取出每个通道中的重要信息。公式如下:

                                                                                       

激励阶段将压缩特征向量通过一个多层感知机(MLP)进行激励,得到一个通道权重向量。这个通道权重向量会乘以原始特征图,使得重要的特征得到更高的权重,从而增强了特征表示能力。

                                                                           

SE注意力可以被添加到卷积神经网络的任意位置,我们这里把它添加在骨干网络之后,通过特征图的自适应加权,增强了特征表示的能力,从而提高了模型的性能。此外,SE注意力的计算量非常小,可以在几乎不增加额外计算负担的情况下大幅提高模型的性能。

4.3.2 CBAM注意力

CBAM注意力包含两个注意力机制:通道注意力和空间注意力。通道注意力用于自适应地调整每个通道的权重,以使得神经网络更加关注重要的特征,从而提高模型的性能。空间注意力则通过自适应地调整每个空间位置的权重,使得网络更加关注图像中的重要部分。

CBAM注意力模块主要由两个部分组成:共享全局平均池化和多层感知机(MLP)。在通道注意力部分,输入特征图通过共享全局平均池化,得到每个通道的压缩特征向量。然后,这个压缩特征向量通过一个MLP得到通道权重向量,将通道权重向量与输入特征图相乘,得到加权后的特征图。它通道注意力的提取可以用以下公式表示:

                                                                 

                                                                         

在空间注意力部分,先将加权后的特征图沿着通道维度进行最大池化,得到每个通道的空间压缩特征向量。这个空间压缩特征向量再通过一个MLP得到每个位置的权重向量,将权重向量与原始特征图相乘,得到加权后的特征图。公式表示如下

                                                                      

                                                                                          

CBAM注意力可以被添加到卷积神经网络的任意位置,通常是添加在卷积层之后,通过通道注意力和空间注意力的自适应加权,增强了特征表示的能力,从而提高了模型的性能。CBAM注意力相比于SE注意力,具有更强的特征表达能力和更广泛的应用范围,但是也需要更多的计算资源。

4.3.3 ECA注意力

Efficient Channel Attention (ECA)是一种用于深度学习模型中的注意力机制,它旨在增强模型对通道信息的关注,从而提高模型的性能。

SE 注意力机制首先对输入特征图进行了通道压缩,而这样的压缩降维对于学习通道之间的依赖关系有不利影响,基于此理念,ECA 注意力机制避免降维,用1 维卷积高效实现了局部跨通道交互,提取通道间的依赖关系。具体步骤如下:

(1)将输入特征图进行全局平均池化操作;

(2)进行卷积核大小为 k 的 1 维卷积操作,并经过 Sigmoid 激活函数得到各个通道的权重w ,如公式如下所示;

                                                                                                            

最后将权重与原始输入特征图对应元素相乘,得到最终输出特征图。

ECA注意力的主要优势在于其高效性,由于只涉及通道特征,因此计算量较小,适用于大规模的深度学习模型。此外,与其他注意力机制相比,ECA注意力还具有一定的稳健性,能够减少模型对噪声和干扰的敏感度。

4.3.4 Non-local Neural Networks注意力

Non-local Neural Networks(NLNet)是一种基于注意力机制的深度学习模型技术,主要用于处理图像、视频等高维数据中的长程依赖关系。与传统的卷积神经网络不同,NLNet不是局限于局部感受野的特征提取,而是通过全局的非局部相似性关系来捕捉输入之间的依赖关系,从而提高特征表示的能力。

按照非局部均值的定义,我们定义在深度神经网络中的non-local操作如下:

                                                                                              

x是输入信号,cv中使用的一般是feature map,i 代表的是输出位置,如空间、时间或者时空的索引,他的响应应该对j进行枚举然后计算得到的函数式计算i和j的相似度g 函数计算feature map在j位置的表示最终的y是通过响应因子C(x) 进行标准化处理以后得到的i代表的是当前位置的响应,j代表全局响应,通过加权得到一个非局部的响应值。用来计算i和所有可能关联的位置j之间pairwise的关系,这个关系可以是比如i和j的位置距离越远,f值越小,表示j位置对i影响越小。g(xj)用于计算输入信号在j位置的特征值。是归一化参数。

在全连接层中(FC)xj和xi之间的关系不是输入数据的函数,是直接通过学习得到权重,而Non-local操作中,根据不同位置之间的关系计算响应。此外,我们在式(1)中的公式支持可变大小的输入,并保持相应的输出大小。相反,fcl层需要一个固定大小的输入/输出,并且失去了位置对应。非局部操作是一个灵活的构建块,可以轻松地与卷积/循环层一起使用。它可以添加到深度神经网络的早期部分,而不像通常在最后使用的fc层。这允许我们构建更丰富的层次结构,结合非局部和局部信息。

NLNet中的注意力机制主要包括两个部分:self-attention和non-local attention。Self-attention用于捕捉输入特征图中的局部相似性关系,它对每个位置的特征进行了全局的关联和加权,以产生新的位置特征表示。Non-local attention则是用于捕捉输入特征图中的长程相似性关系,它考虑到特征图中每个位置与其他所有位置之间的相似度,然后计算每个位置的注意力权重,用于调整特征图中各个位置的权重。

NLNet的一个重要优势是可以捕捉到远距离的依赖关系,因为它考虑了输入特征图中所有位置之间的相似度,而不仅仅是局部相邻位置之间的相似度。这样可以使得模型在处理图像、视频等高维数据时,能够更好地理解输入之间的依赖关系,从而提高特征表示的能力。

4.3.5各注意力加骨干网络的比较

在深度学习中,注意力机制可以使模型更加关注重要的特征,从而提高模型性能。针对ConvNet4骨干网络,研究者们通过添加不同类型的注意力机制来进一步提升其性能表现。SE(Squeeze-and-Excitation)注意力机制是一种轻量化的注意力机制,它将全局信息压缩到一个向量中,然后使用该向量来对每个通道进行加权。CBAM(Convolutional Block Attention Module)注意力机制结合了空间和通道注意力机制,通过对特征图进行全局平均池化和最大池化操作,得到空间和通道注意力图,然后将二者相乘得到最终的注意力图。ECA(Efficient Channel Attention)和NLNet5(Non-Local Network 5)都是另外两种类型的注意力机制,分别使用自适应全局池化和非局部均值池化来计算通道间的关联性。

实验结果表所示,添加SE和CBAM这两种注意力机制可以显著地提高网络的正确率,特别是将CBAM添加在骨干网络之后,可以使正确率提高4.44个百分点。这是因为CBAM具有一定的可学习性,能够自适应地调整权重,从而更好地捕获特征。然而,并非所有注意力模型都可以增强网络的学习能力,从实验结果来看,将ECA和NLNet5添加到骨干网络中反而导致了模型的学习能力下降,低于原基线模型的表现。这可能是因为这两种注意力机制过于复杂,增加了模型的计算复杂度,导致模型过拟合或梯度消失等问题。

模型

正确率

ConvNet4

88.89

+SE

91.11

+CBAM

93.33

+ECA

87.78

+NLNet

88.33

综合来看,添加适当的注意力机制可以提高模型性能,但需要针对具体问题进行选择和调整。例如,在特征图中出现较多的噪声时,可以使用空间注意力来减少噪声的影响;在特征图中不同通道之间的相关性较大时,可以使用通道注意力来增强相关特征的重要性。此外,还可以通过改变注意力的位置或级别来进一步提高模型性能。注意力机制的引入为深度学习的发展提供了新的思路和方向,相信在未来的研究中将有更多的方法被提出来来进一步提高深度神经网络的性能。

4.4模型设计

基于上述模型的对比结果,我们在ConvNet4的基础上进行了改进。具体来说,我们在最后一个卷积层之后加入了一种名为cbam(通道注意力和空间注意力模块)的注意力机制。该机制可以自适应地调整不同通道和空间位置的特征图权重,以增强模型对关键信息的关注能力,从而提高模型的分类准确性。

通过加入cbam注意力模块,我们的改进模型在预测CN、EMCI和AD时取得了更高的准确率,相对于原始ConvNet4模型,准确率提高了近4.5个百分点。这一结果表明cbam注意力机制的引入是有效的。正确率结果如图所示:

从结果可以看出通过,在80epoch后添加cbam的模型正确率要比原基线模型高出不少,另外轮次之间的起伏也渐渐趋于平稳,另外我们也可以通过loss曲线图得知,添加cbam的模型取得了最小的loss

4.5本章小结

本章对比了五种模型,即vgg16,resnet18,MobileNetV3和ConvNet4的准确率和loss来选择出准确率较高,稳定性较好的模型。在本章中我们还改进了ConvNet4模型并设计了一种新的模型使它能更好的分类ADNI数据集。

第5章 系统设计和实现

本章将第4章的模型比对的分析结果进行Web端的展示以提供有关阿尔兹海默症风险预测研究的相关信息包括了每个模型的在AD和LMCI,AD和HC,HC和LMCI的三组对比中的准确率直方图和ROC曲线图。

5.1登录注册功能的实现和设计

该部分实现用户的登录和注册实现

5.2模型结果信息的展示设计

登录后系统默认进入欢迎页面,页面内有欢迎信息和简单的系统介绍,如

5.3本章小结

本章介绍了web网页的主要实现技术(包括了flask、echarts等),展示了注册页面,登录页面,信息展示页面部分网页的视觉图,同时使用了数据库mysql等相关技术来实现用户信息的存储。

第6章 总结和展望

6.1总结

随着我国人口老龄化的加剧,老龄人口需要的社会资源和服务也越来越多,政府对老龄化问题也越来越重视。在众多老龄化问题中,阿尔兹海默症患者,即老年痴呆患者的养老服务问题是重中之重。由于阿尔兹海默症没有药物和医疗技术可以治疗,所以,阿尔兹海默症的风险预测是阿尔兹海默症的预防和早期干预治疗的必要过程。随着科技的不断发展,人工智能在医学领域的应用和实践愈加广泛,通过计算机技术,常常可以发现一些之前人工阶段所不能察觉到的信息,因此,依靠影像组学技术可以为科研人员发现阿尔兹海默症的相关病理提供很多帮助。

本课题通过SPM和CAT12软件对ADNI数据集上的获取到影像数据进行数据预处理,获得脑灰质图,然后通过Plink软件来实现样本SNP的质量控制、主成分分析和分别对阿尔兹海默症组、轻度认知障碍组,健康对照组进行全基因组关联分析,在全基因组关联阶段,本课题采用了线性回归的方法,以患者脑影像数据的均值作为表型,性别,年龄,受教育程度为协变量,来获得三组对应的SNP和P值,接着,本课题根据24段与阿尔兹海默症有着密切关联的基因段,获得与AD有着较大关联的SNP及其对应的P值矩阵,求出每组24个特征值,然后找出最大特征值用来差异化AD,LMCI,HC的脑影像,接着依靠模板提取出脑影像的特征信息。

本课题使用python语句来实现模型的构建,并实现了六个模型包括BP神经网络、SVM、基于CART分类树的AdaBoost、GBDT、逻辑回归和多项朴素贝叶斯模型进行三组之间的分类预测,即阿尔兹海默症和健康对照组,阿尔兹海默症和轻度认知障碍组,健康对照组和轻度认知障碍组。首先将收集到的特征信息分为训练集和验证集分别来训练和测试模型,然后采用准确率和ROC曲线作为评估方式来选择准确率比较高而且较为稳定的模型,最后得出SVM和逻辑回归模型,BP神经网络模型都发挥出色,SVM模型相较于BP神经网络和逻辑回归模型较为稳定。

为了更好的展示阿尔兹海默症的风险预测的信息,本课题采用Flask构建网页端,用户信息使用MySQL数据库存储。通过Boostrap实现网页界面的主要交互框架,通过echarts实现部分信息的可视化展示。

6.2展望

虽然本课题的模型大多数可以实现不错的预测分析,但是准确率方面仍有提升空间。在网页端,用户可以成功的实现注册登录和查看模型结果,但是有关于用户交互层面和安全层面仍需做进一步的提升,同时,在用户注册登陆时,还需要考虑到用户权限区分等。

致谢

杨柳绿,花又开,时光荏苒,于2022年6月,毕业季悄然将至,青春亦在跌跌撞撞中戛然而止。回想毕业设计路程,途中充满了汗水与收获。

虽然疫情的雾霾仍未散去,在做毕业设计的过程中,各地仍不时有着疫情的爆发,但是在党和国家“始终坚持人民至上、生命至上”的理念下,相信疫情一定可以被战胜。

“饮其流时思其源,成吾学时念吾师。” 至论文完成将至,谨向我尊敬的指导老师孟老师致以诚挚的谢意和崇高的敬意。感谢您从本课题选定以来一路指导至本篇论文的完成,正是因为您思路清晰、学术严谨开放,才使我的毕业论文可以顺利完成。感谢您的悉心点拨,耐心引导,经常在我迷路时,找到前进的方向。毕业在即,在此谨向您表示我最衷心的感谢,祝您工作顺利。

四年苦读寒窗时,六月相别情忆多,感谢大学四年来一起学习的同学和室友们,感谢平日的照顾和指导,但愿未来我们都可以像满天星一样,就算散落各地,也要褶褶生辉!毕业季,祝福递;莫伤离,互珍惜;同窗情,记心底;忆往昔,美好记;前路广,愿顺利;天涯离,难相聚;好朋友,多联系!

感谢所有大学四年老师们的教导,感谢答辩老师们能百忙中抽空对我的论文审评,感谢平日的工作人员的奉献。

每一个不曾起舞的日子,都是对生命的辜负。回望过去,展望未来,我将继续前行,不负韵华,争做最好的自己,苟利国家生死以,岂因祸福避趋之,争取为社会和国家做出贡献。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

语心言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值