利用高性能混合深度学习网络提升光谱分类性能研究
刘忠宝1, 王杰2,*
1.北京语言大学信息科学学院, 北京 100083
2.中国科学院新疆天文台, 新疆 乌鲁木齐 830011
*通讯作者 e-mail: wangjie@xao.ac.cn

作者简介: 刘忠宝, 1981年生, 北京语言大学信息科学学院教授 e-mail: zbliu@blcu.edu.cn

摘要

随着观测设备的不断完善, 人们获得的光谱数量持续上升, 如何进一步提高光谱自动分类的性能引起广泛关注。 为此, 以恒星光谱为研究对象, 在近年来新出现的BERT和CNN等深度学习模型的基础上, 试图融合了BERT模型和CNN模型在特征提取和智能分类方面的优势, 提出高性能混合深度学习网络BERT-CNN, 用以探讨该模型在提升光谱分类性能方面的有效性。 该模型首先将恒星光谱数据输入BERT模型; 然后, 利用BERT模型中的Transformer进行特征提取, 得到特征向量; 最后, 将特征向量输入CNN模型, 通过softmax分类器获得分类结果。 该实验的编程语言为Python3.7, 引入TensorFlow1.14作为深度学习模型框架, 并以SDSS DR10中的K型、 F型、 G型的恒星光谱数据作为实验数据集。 使用min-max方法对恒星光谱数据做归一化处理, 通过与SVM、 CNN等分类模型的比较来验证BERT-CNN混合模型在恒星光谱分类中的有效性。 引入网格搜索和10折交叉验证来获得模型的实验参数。 实验包括两部分: 一是利用精准率 P、 召回率 R、 调和平均值 F1等指标对BERT-CNN模型的恒星光谱分类性能进行评价。 当训练数据集占比实验数据集的30%~70%时, BERT-CNN模型处理K, F和G型恒星光谱数据集的精准率 P、 召回率 R、 调和平均值 F1随训练样本数的增加而提升。 在相同规模的训练样本条件下, BERT-CNN模型在K型恒星光谱数据集上的 P, R F1值均最高, 其次是G型恒星光谱数据集, F型恒星光谱数据集上的分类效果较差。 二是利用准确率对SVM, CNN和BERT-CNN等模型的对比实验结果进行评价。 对K, F和G型恒星光谱数据集上, BERT-CNN模型分类效果最优, 其次是CNN模型, SVM模型分类效果较差。 表明, BERT-CNN模型有助于提升光谱分类性能。

关键词: 光谱分类; 深度学习网络; BERT模型; CNN模型
中图分类号:O433.4 文献标志码:A
Research on the Improvement of Spectra Classification Performance With the High-Performance Hybrid Deep Learning Network
LIU Zhong-bao1, WANG Jie2,*
1. School of Information Science, Beijing Language and Culture University, Beijing 100083, China
2. Xinjiang Astronomical Observatory, Chinese Academy of Sciences, Urumqi 830011, China
*Corresponding author
Abstract

With the development of observation apparatus, the spectra number rises constantly. How to further improve the classification performance deserves to be research. Because of this, the stellar spectra are taken as the research object, the high-performance hybrid deep learning network is proposed based on integrating the advantages of the BERT model in feature extraction and the CNN model in automatic classification, to verify the effectiveness of improving the spectra classification performance. Firstly, the stellar spectra are input into the the BERT model; And then the part in BERT model named Transformers are used to extract the features and based on which, the feature vectors are formed; Finally, the above feature vectors are input into the CNN model, and the stellar spectra classification results can be obtained with the help of softmax classifier. Python3.7 writes the models used in the experiment and the deep learning framework named TensorFlow is introduced. The K-, F-, G-type stellar spectra in SDSS DR10 are used for the experimental dataset, normalized by the min-max normalization method. The effectiveness of the BERT-CNN model is verified by comparing with the support vector machine models (SVM) and CNN. The performances of the above models are related to the parameters, and therefore, the ten cross-validation and the grid search method are used to obtain the optimal experimental parameters. There are two parts to the experiment. One is to evaluate the classification performances of BERT-CNN with precision P, recall R and F1 values. The proportion from 30% to 70% of the experimental dataset is respectively used for the training dataset, and the remainder is used for the test dataset. P, R and F1 values rise with the training size on the K-, F-, G-type stellar datasets. In the case of the same training size, the values of P, R and F1 arrive at the highest, followed by the performance on the G-type stellar dataset, the classification results on the F-type stellar dataset are much poorer. The other experiment is to evaluate the classification performances of SVM, CNN and BERT-CNN with accuracy. The classification performances of BERT-CNN on the K-, F-, G-type stellar datasets are all best, followed by CNN. The classification accuracies of SVM are much lower than the other two models. It indicates that the BERT-CNN model contributes to improving the spectra classification performance.

Keyword: Spectra classification; Deep learning network; BERT model; CNN model
引言

随着海量光谱数据的不断涌入, 如何进一步提高光谱分类性能引入广泛关注。 目前, 国内外有关恒星光谱分类的研究已有不少成果。 Daniel等探讨了降维技术在恒星光谱分类中的有效性问题, 他们引入局部线性嵌入技术, 通过保持高维光谱数据在低维空间的局部结构, 进而实现恒星光谱的自动分类[1]。 Navarro等利用人工神经网络对低信噪比的恒星光谱进行分类[2]。 Sanchez等试图利用k-均值聚类算法对SDSS SEGUE和SEGUE-2恒星光谱进行无监督分类[3]。 鉴于传统分类方法具有较高的时间复杂度问题, Liu等受协同管理思想启发, 提出非线性集成学习机, 并将该模型应用于恒星光谱分类[4]。 Huertas-Company等在支持向量机的基础上提出一种确定星系形态的非参数方法[5]; Peng等利用支持向量机从SDSS、 UKIDSS等巡天项目获得的光谱中搜寻类星体候选体[6]; Malek等在VIPERS数据集上利用SVM来将恒星、 活动星系核和星系区分开来[7]; Brice等在SDSS数据集上利用K近邻算法和随机森林算法进行对恒星光谱进行分类[8]

此外, 越来越多的研究人员将深度学习模型用于解决恒星光谱分类问题。 Liu等研究了基于一维卷积神经网络的恒星光谱分类方法[9]。 王楠楠等探讨了卷积神经网络应用于恒星光谱分类的可行性问题[10]。 尽管实验结果表明上述模型较之传统机器学习算法具有更优的分类效率, 然而受其工作机理限制, 该模型在特征提取以及特征理解方面仍存在一定差距, 严重影响了该模型分类效率的进一步提升。 幸运的是, BERT(bidirectional encoder representation from transformers)模型的出现为解决上述问题提供了可能。 鉴于此, 本工作提出高性能混合深度学习网络BERT-CNN, 试图充分利用BERT模型和CNN模型在特征提取和自动分类方面的优势, 以期进一步提高光谱分类性能。

1 高性能混合深度学习网络BERT-CNN

BERT-CNN模型如图1所示。 该模型的工作流程为: 首先, 将恒星光谱数据依次输入BERT模型; 然后, 利用BERT模型中的Transformer(图1简写为Trm)进行特征提取, 得到特征向量T1TN; 最后, 在CNN模型中输入上述特征向量并自动分类, 进而得到恒星光谱的分类结果。

图1 BERT-CNN模型Fig.1 The structure of BERT-CNN

(1)BERT模型

BERT模型采用了多层双向Transformer编码器, 能够更好地提取恒星光谱数据的深层次特征。 Transformer编码器(以下简称Transformer)是BERT模型最重要的部分, 其主要由多头自注意力机制和全连接前馈神经网络层两个子层组成。 为了解决随着网络的加深而产生的性能退化等问题, Transformer在两个子层间加入了残差网络, 并在每个子层后添加归一化层来加速模型收敛。

Transformer基于自注意力机制, 该机制更易捕获光谱特征之间的内在关系。 其计算过程见式(1), 其中QK为维度为dk的Query矩阵和Key矩阵, V为维度为dv的Value矩阵。

Attention(Q, K, V)=softmaxQKTdkV(1)

Transformer采用多头自注意力机制可以将多个自注意力机制进行横向拼接, 以增强模型的关注能力。 其原理见式(2)和式(3), 其中, head表示注意力的头, h为头的个数, WQi, WKi, WVi为第i个head的Query, Key和Value的权重矩阵, Wo为附加权重矩阵, Concat()表示拼接函数。

MultiHead(Q, K, V)=Concat(head1, , headh)Wo(2)

headi=Attention(QWQi, KWKi, VWVi)(3)

层归一化与前馈神经网络的计算过程见式(4)和式(5)。

LN(xi)=α×xi-μLσL2+ε+β(4)

FFN(x)=max(0, xW1+b1)W2+b2(5)

式(4)中, μ σ 为输入层的均值与方差, α β 为待学习的参数, ε 的取值很小; 式(5)中, 前馈神经网络层以修正线性单元ReLU作为激活函数, x表示网络的输入, Wb为待训练的参数。

(2)卷积神经网络

CNN模型由输入层、 卷积层、 池化层以及全连接层组成。 输入层为恒星光谱矩阵, 矩阵中的每一行向量对应一条恒星光谱。 卷积层对输入向量进行卷积操作, 进而生成特征向量。 卷积计算见式(6)和式(7), 其中l为CNN的网络层数, j为特征图, k为卷积核, bC为偏置, Nj为特征向量集合, ReLU为激活函数。

xj(l)=iNjai(l-1)kij(l)+bC(l)(6)

ai(l)=ReLU(xj(l))=max(0, xj(l))(7)

池化层的作用是压缩特征向量的规模, 以期达到降低特征向量维度、 减少参数规模的目的。 该层经过最大池化方法保存局部信息, 以期得到池化后的特征向量。 在全连接层, 将池化后的特征向量进行整合, 最后通过softmax分类器获得分类结果。 softmax分类器的表达式见式(8)。

softmaxxjl=exjliexil(8)

2 实验部分

将Python3.7作为的编程语言, 并使用TensorFlow1.14作为深度学习模型框架。 实验数据集为SDSS DR10中的K型、 F型、 G型恒星光谱数据, 如表1(a)— (c)所示。 K型恒星包含K1, K3, K5和K7次型, 而这四种次型光谱的信噪比(signal noise ratio, SNR)区间均是(60, 65); F型光谱包括F2, F5和F9次型, 其各次型光谱的信噪比区间分别为(50, 65), (65, 70), (75, 80); G型光谱包括G0, G2和G5次型, 其各次型信噪比区间为(55, 65), (60, 65), (40, 70)。

表1(a) K型恒星光谱数据集 Table 1(a) The dataset of K stars
表1(b) F型恒星光谱数据集 Table 1(b) The dataset of F stars
表1(c) G型恒星光谱数据集 Table 1(c) The dataset of G stars

采用min-max标准化方法对恒星光谱数据进行归一化处理, 该方法通过对恒星光谱数据进行线性变换, 使原始光谱数据保持在[0, 1]区间。 其计算公式为

xNorm=x-xminxmax-xmin

其中, xNorm表示恒星光谱数据归一化后的特征值, x表示原始恒星光谱数据, xmaxxmin分别表示每条恒星光谱数据的最大值和最小值。

通过与SVM、 CNN等分类模型的比较来验证所提模型的有效性。 引入网格搜索以及10折交叉验证来得到模型的实验参数。 在SVM模型中, 在网格{0.01, 0.05, 0.1, 0.5, 1, 5, 10}中搜索惩罚因子的最优取值, 多次实验表明, 当惩罚因子等于0.1时, 模型的性能最优。 在CNN模型和BERT+CNN混合模型中, batch_size表示一次训练选取的样本数, learning_rate表示模型的学习率大小, 两者均在网格{1× 10-2, 1× 10-3, 5× 10-4, 1× 10-4, 5× 10-5, 2× 10-5, 1× 10-5}中选取; hidden_units表示隐藏层神经元数, 在网格{64, 128, 256, 512, 1 024}中选取; dropout为丢弃率, 在网格{0.1, 0.2, 0.4, 0.5, 0.6, 0.8}中选取。 表2给出了CNN、 BERT-CNN等模型的实验参数设置。

表2 CNN, BERT-CNN模型参数设置表 Table 2 The parameters of CNN and BERT-CNN

利用精准率P、 召回率R、 调和平均值F1等指标对模型的分类性能进行评价, 其中P表示正确分为K(或F、 G)型的光谱数与上述模型分类结果中该类型光谱总数的比值, R表示正确分为K(或F、 G)型的光谱数与测试集中该类型光谱总数的比值, F1= 2×P×RP+R

当训练数据集占比实验数据集的30%~70%且剩余数据集为测试数据集时, BERT-CNN模型的实验结果如表3(a)— (c)所示, 其中括号前的值表示实验数据规模, 括号中的值表示占比。

表3(a) BERT-CNN模型在K型恒星数据集上的实验结果 Table 3(a) The experimental results of BERT-CNN on the K-type dataset
表3(b) BERT-CNN模型在F型恒星数据集上的实验结果 Table 3(b) The experimental results of BERT-CNN on the F-type dataset
表3(c) BERT-CNN模型在G型恒星数据集上的实验结果 Table 3(c) The experimental results of BERT-CNN on the G-type dataset

由表3(a)— (c)可以看出, BERT-CNN模型的精准率P、 召回率R、 调和平均值F1随训练样本数的增加而提升。 在相同规模的训练样本条件下, BERT-CNN模型在K型数据集上的P, RF1值均最高, 其次是G型数据集, F型数据集上的分类效果较差。 当训练样本数占比大于等于50%时, 三类数据集上的P, RF1值均超过0.91, 这表明BERT-CNN模型适用于解决恒星光谱分类问题。

三类模型的对比实验结果由准确率A来评价, 准确率是正确分类光谱数与总体测试光谱数的比值。 实验数据集的70%作为训练数据集, 剩余数据集作为测试数据集, 实验结果如表4所示。

表4 实验结果比较 Table 4 Comparison of experimental results

表4可以看出, BERT-CNN模型分类效果最优, 其次是CNN模型, 最后是SVM模型。 具体而言, 在K型数据集上, BERT-CNN模型比SVM模型的准确率高0.081 3, 比CNN模型高0.050 4; 在F型数据集上, BERT-CNN模型比SVM模型的准确率高0.079 4, 比CNN模型高0.021 5; 在G型数据集上, BERT-CNN模型比SVM模型的准确率高0.052 5, 比CNN模型高0.019 7。 此外, BERT-CNN模型的平均准确率均最高。 这表明, BERT-CNN模型具有更优的光谱分类性能。

3 结论

为了进一步提高以CNN模型为代表的深度学习模型恒星光谱分类效率, 以恒星光谱为研究对象, 充分利用BERT模型和CNN模型在特征提取和自动分类方面的优势, 提出高性能混合深度学习网络BERT-CNN。 SDSS数据集上的实验结果表明, 所提模型有助于提升恒星光谱分类性能。 上述结论在其他类型光谱上是否成立有待于进一步研究。

参考文献
[1] Daniel S F, Connolly A, Schneider J, et al. Astronomical Journal, 2011, 142(6): 203. [本文引用:1]
[2] Navarro S G, Corradi R L MMampaso A. Astronomy & Astrophysics, 2012, 538: A76. [本文引用:1]
[3] Sanchez A J, Allende P C. Astrophysical Journal, 2013, 763(1): 50. [本文引用:1]
[4] Liu Z B, Song L P, Zhao W J. Monthly Notices of the Royal Astronomical Society, 2016, 455(4): 4289. [本文引用:1]
[5] Huertas-Company M, Rouan D, Tasca L, et al. Astronomy & Astrophysics, 2008, 478(3): 971. [本文引用:1]
[6] Peng N B, Zhang Y X, Zhao Y H, et al. Monthly Notices of the Royal Astronomical Society, 2012, 425(4): 2599. [本文引用:1]
[7] Malek K, Solarz A, Pollo A, et al. Astronomy & Astrophysics, 2013, 557: A16. [本文引用:1]
[8] Brice M J, Andonie R. Astronomical Journal, 2019, 158(8): 188. [本文引用:1]
[9] Liu W, Zhu M, Dai C, et al. Monthly Notices of the Royal Astronomical Society, 2019, 483(4): 4774. [本文引用:1]
[10] WANG Nan-nan, QIU Bo, MA Jie, et al(王楠楠, 邱波, 马杰, ). Spetroscopy and Spectral Analysis(光谱学与光谱分析), 2019, 39(10): 3297. [本文引用:1]