基于DenseNet-biAttention深度学习的拉曼光谱数据分类方法

    专利查询2022-07-08  143


    基于densenet-biattention深度学习的拉曼光谱数据分类方法
    技术领域
    1.本发明涉及拉曼光谱数据分类领域,具体涉及一种基于densenet-biattention深度学习的拉曼光谱数据分类方法。


    背景技术:

    2.拉曼光谱是由物质分子对入射光的非弹性散射产生的,因此能反映物质的分子信息,常用于物质的成分测定和快速分类,为化学分析提供了重要的定性和定量分析方法。拉曼光谱检测方法凭借操作简便、样品无损伤、分析速度快、灵敏度高等优点广泛应用于石油化工、宝石鉴定、地质、食品安全、医药等技术领域。
    3.拉曼光谱检测方法依赖于有效的定量和定性模型,而模型算法是拉曼光谱定性和定量分析方法的核心,算法的优劣将直接影响到物质分类的精度和效率。随着机器学习的发展,许多传统的机器学习算法已经被应用到拉曼光谱分析方法中。常用的算法有支持向量机(support vector machine,svm)、随机森林(random forest,rf)、k近邻(k-nearest neighbor,knn)算法。这些算法的分类精度很难提高,且对于类别繁多的拉曼光谱来说,它们难以分辨出复杂的拉曼光谱。
    4.传统的机器学习算法已经难以满足拉曼光谱分析的高精度要求,卷积神经网络(convolutional neural networks,cnn)作为深度学习算法中的杰出算法在拉曼光谱分类中已取得了良好的效果。作为第一个典型的cnn网络结构,lenet-5能够很好地识别拉曼光谱。在此之后,更多性能优异的网络模型被提出,如vgg、googlenet和resnet,它们都是由小的一维卷积核和池化层反复叠加而成的深层cnn模型。由于这些深层cnn模型的层数较多,模型分类的效率会有所下降,而且随着层数的叠加,卷积运算所提取的特征信息有部分会丢失,这将导致分类精度的降低。


    技术实现要素:

    5.本发明的目的是:在实际应用过程当中,多数情况下拉曼光谱数据的类别数较多、样本数较少,简单的模型无法进行有效分类,而复杂的模型的效率会随着复杂度的增加而下降。为了更准确的提取拉曼光谱数据的特征信息以解决多分类准确率低的问题,本发明提出了一种基于densenet-biattention深度学习的拉曼光谱数据分类方法。
    6.本发明的技术方案为:
    7.一种基于densenet-biattention深度学习的拉曼光谱数据分类方法,包括以下步骤:
    8.步骤1,获取拉曼光谱数据,对拉曼光谱数据进行归一化处理,将处理后的拉曼光谱数据划分成训练集、验证集和测试集;
    9.步骤2,构建一个基于densenet-biattention深度学习的分类模型;
    10.步骤3,使用训练集训练基于densenet-biattention深度学习的分类模型,使用验
    证集对基于densenet-biattention深度学习的分类模型进行评估和调参;
    11.步骤4,使用测试集测试基于densenet-biattention深度学习的分类模型性能。
    12.步骤1中,将处理后的拉曼光谱数据划分成训练集、验证集和测试集,具体包括:将70%~90%的拉曼光谱数据划分为训练数据,剩下10%~30%的拉曼光谱数据划分为测试集;在划分验证集时,采用5~15折交叉验证法,即将训练数据划分为5~15等份,每一次取一份作为验证集,其余作为训练集用于训练。
    13.获取拉曼光谱数据,对拉曼光谱数据进行归一化处理,将处理后的拉曼光谱数据划分成训练集、验证集和测试集,具体包括:
    14.由于存在拉曼光谱数据处于不同数量级的情况,在模型训练时会影响特征信息的提取,因此将拉曼光谱数据根据式(1)进行归一化处理,使得每一条拉曼光谱数据分布在0-1之间:
    [0015][0016]
    其中,x
    norm
    为归一化后的拉曼光谱数据;x为原始拉曼光谱数据;x
    min
    为原始拉曼光谱数据最小值;x
    max
    为原始拉曼光谱数据最大值;
    [0017]
    将80%的拉曼光谱数据划分为训练数据,剩下20%的拉曼光谱数据划分为测试集;在划分验证集时,采用10折交叉验证法,即将训练数据划分为10等份,每一次取一份作为验证集,其余作为训练集用于训练。
    [0018]
    步骤2中,构建一个基于densenet-biattention深度学习的分类模型,具体包括:
    [0019]
    构建的基于densenet-biattention深度学习的分类模型由三部分组成,前两个部分用来提取拉曼光谱特征信息,第三部分用来分析提取的特征信息并进行分类;组成第一部分的densenet由两个dense块组成,在两个块之间用一个平均池化层进行连接;一个dense块有四个卷积层,激活函数层使用relu激活函数,在每个卷积层和激活函数层之间插入一个批标准化层,每个卷积层将会接收前面所有卷积层的特征图作为输入;
    [0020]
    第二部分biattention是由压缩激励模块和空间注意力模块两者并行组成的双注意力机制模块;通过压缩激励模块得到一个一维向量作为通道的权重,然后将权重分别施加到对应的通道上,空间注意力模块则是强化拉曼光谱峰所在位置的信息;第三部分由平坦层、全连接层和输出层组成,其中,平坦层和全连接层把提取的拉曼光谱特征信息连接起来进行分析,最后通过输出层softmax分类器得到最终的分类结果。
    [0021]
    步骤3中,使用训练集训练基于densenet-biattention深度学习的分类模型,使用验证集对基于densenet-biattention深度学习的分类模型进行评估和调参,具体包括:
    [0022]
    使用adam优化器对步骤2中构建的基于densenet-biattention深度学习的分类模型进行训练,adam优化器的初始学习率定为0.01,学习率衰减率定为0.1,其它参数采用默认参数;损失函数使用交叉熵损失函数,使用l2正则化来缓解过拟合,损失函数表达式为:
    [0023][0024]
    其中,w为模型权重;n为拉曼光谱数;n为拉曼光谱索引;yn为拉曼光谱标签的真实
    值;为拉曼光谱标签的预测值;λ为l2正则化因子;
    [0025]
    使用验证集评估训练的基于densenet-biattention深度学习的分类模型的误差和分类准确率,从而进行模型调参,保存最优的基于densenet-biattention深度学习的分类模型。
    [0026]
    步骤4中,使用测试集测试基于densenet-biattention深度学习的分类模型性能,具体包括:
    [0027]
    使用测试集对步骤3中保存的基于densenet-biattention深度学习的分类模型的性能进行测试,采用准确率、召回率、f1分数和auc作为基于densenet-biattention深度学习的分类模型的评价指标。
    [0028]
    与现有技术相比,本发明具有如下优点:
    [0029]
    本发明提出的一种基于densenet-biattention深度学习的拉曼光谱数据分类方法与现有技术相比,提高了拉曼光谱数据多分类的准确率。本发明中基于densenet-biattention深度学习的分类模型解决了模型会随着层数的叠加而导致拉曼光谱的特征信息丢失的问题,同时更加注重提取的重要信息,减少对无用信息的关注。
    附图说明
    [0030]
    附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
    [0031]
    图1是基于densenet-biattention深度学习的分类模型图。
    [0032]
    图2是dense块结构图。
    [0033]
    图3是压缩激励模块结构图。
    [0034]
    图4是空间注意力模块结构图。
    具体实施方式
    [0035]
    以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据此实施。
    [0036]
    如图1~4所示,一种基于densenet-biattention深度学习的拉曼光谱数据分类方法,包括以下步骤:
    [0037]
    步骤1,获取拉曼光谱数据,对拉曼光谱数据进行归一化处理,将处理后的拉曼光谱数据划分成训练集、验证集和测试集。
    [0038]
    由于存在拉曼光谱数据处于不同数量级的情况,在模型训练时会影响特征信息的提取,因此将拉曼光谱数据根据式(1)进行归一化处理,使得每一条拉曼光谱数据分布在0-1之间:
    [0039][0040]
    其中,x
    norm
    为归一化后的拉曼光谱数据;x为原始拉曼光谱数据;x
    min
    为原始拉曼光谱数据最小值;x
    max
    为原始拉曼光谱数据最大值。
    [0041]
    将80%的拉曼光谱数据划分为训练数据,剩下20%的拉曼光谱数据划分为测试
    集。在划分验证集时,采用10折交叉验证法,即将训练数据划分为10等份,每一次取一份作为验证集,其余作为训练集用于训练。
    [0042]
    步骤2,构建一个基于densenet-biattention深度学习的分类模型。
    [0043]
    构建的基于densenet-biattention深度学习的分类模型由三部分组成,前两个部分用来提取拉曼光谱特征信息,第三部分用来分析提取的特征信息并进行分类。组成第一部分的densenet由两个dense块组成,在两个块之间用一个平均池化层进行连接。一个dense块有四个卷积层,激活函数层使用relu激活函数,在每个卷积层和激活函数层之间插入一个批标准化层,每个卷积层将会接收前面所有卷积层的特征图作为输入。
    [0044]
    第二部分biattention是由压缩激励模块和空间注意力模块两者并行组成的双注意力机制模块。通过压缩激励模块得到一个一维向量作为通道的权重,然后将权重分别施加到对应的通道上,空间注意力模块则是强化拉曼光谱峰所在位置的信息。第三部分由平坦层、全连接层和输出层组成,其中,平坦层和全连接层把提取的拉曼光谱特征信息连接起来进行分析,最后通过输出层softmax分类器得到最终的分类结果。
    [0045]
    步骤3,使用训练集训练基于densenet-biattention深度学习的分类模型,使用验证集对基于densenet-biattention深度学习的分类模型进行评估和调参。
    [0046]
    使用adam优化器对步骤2中构建的基于densenet-biattention深度学习的分类模型进行训练,adam优化器的初始学习率定为0.01,学习率衰减率定为0.1,其它参数采用默认参数。损失函数使用交叉熵损失函数,使用l2正则化来缓解过拟合,损失函数表达式为:
    [0047][0048]
    其中,w为模型权重;n为拉曼光谱数;n为拉曼光谱索引;yn为拉曼光谱标签的真实值;为拉曼光谱标签的预测值;λ为l2正则化因子。
    [0049]
    使用验证集评估训练的基于densenet-biattention深度学习的分类模型的误差和分类准确率,从而进行模型调参,保存最优的基于densenet-biattention深度学习的分类模型。
    [0050]
    步骤4,使用测试集测试基于densenet-biattention深度学习的分类模型性能。
    [0051]
    使用测试集对步骤3中保存的基于densenet-biattention深度学习的分类模型的性能进行测试,采用准确率、召回率、f1分数和auc作为基于densenet-biattention深度学习的分类模型的评价指标。
    [0052]
    从rruff数据库的excellent_unoriented数据集中挑选拉曼光谱数大于6且小于21的矿物作为拉曼光谱数据,最终挑出了1436条拉曼光谱数据,共计127种矿物。
    [0053]
    本发明方法与传统的拉曼光谱数据分类方法的分类准确率进行了比较,传统方法包括:支持向量机(svm)、随机森林(rf)、k近邻(knn)算法。三种传统方法的分类准确率分别为93.67%、68.67%、92.91%,本发明方法的分类准确率能达到96.38%,远远超过传统方法。
    [0054]
    本发明方法又与其它的深度学习分类方法的性能进行了比较,其它的深度学习方法包括:lenet-5、deepspectra、residualspectra,四种分类方法评价结果如表1所示。
    [0055]
    表1本发明方法与其它深度学习分类方法的评价结果
    [0056]
    转载请注明原文地址:https://tc.8miu.com/read-2406.html

    最新回复(0)