基于BP神经网络的血液荧光光谱识别分类研究
高斌1, 赵鹏飞1, 卢昱欣1, 范雅1, 周林华1,*, 钱军2, 刘林娜2, 赵思言2, 孔之丰3
1. 长春理工大学理学院, 吉林 长春 130022
2. 中国农业科学院长春兽医研究所, 吉林 长春 130122
3. 西安交通大学数学与统计学院, 陕西 西安 710048
*通讯联系人 e-mail: zhoulh@cust.edu.cn

作者简介: 高 斌, 1994年生, 长春理工大学理学院硕士研究生 e-mail: 641597639@qq.com

摘要

光谱技术在生物和医学检测方面具有积极的应用前景。 由于血液成分的复杂性和类同性, 有关不同动物血液光谱识别分类的技术研究尚未出现较为完善的结论。 基于机器学习理论, 以BP神经网络为工具, 建立了对不同动物血液荧光光谱进行特征提取和识别分类的方法。实验采用Cary Eclipse光谱仪分别采集了鸽、 鸡、 鼠、 羊四种动物不同浓度(1%和3%)的全血与红细胞荧光光谱数据(每个类型样本各50组数据); 基于移动平滑算法对原始数据进行了平滑处理, 以减少实验仪器噪声对特征提取和识别分类的影响; 进一步根据血液光谱数据的特性, 该文出了“组合放大”的特征提取方法, 并建立了BP神经网络分类器进行训练和识别。 相比于常用的光谱数据(单一)特征, 提出的“组合放大”特征和所设计的BP神经网络能对不同动物、 不同类型(全血与红细胞)、 不同浓度(1%和3%)的血液荧光光谱实现100%的准确分类, 同时神经网络测试误差均远小于设定的允许误差值。 研究的动物血液光谱特征提取及识别技术具有较好的普适性和可靠性, 在农业、 食品检查、 以及生物医学检测等方面均可发挥重要作用。

关键词: 荧光光谱; 血液光谱识别; BP神经网络; 组合放大法
中图分类号:O433 文献标志码:A
Study on Recognition and Classificationof Blood Fluorescence Spectrum with BP Neural Network
GAO Bin1, ZHAO Peng-fei1, LU Yu-xin1, FAN Ya1, ZHOU Lin-hua1,*, QIAN Jun2, LIU Lin-na2, ZHAO Si-yan2
KONG Zhi-feng31. School of Science, Changchun University of Science and Technology, Changchun 130022, China
2. Changchun Veterinary Institute, Chinese Academic Agricultural Sciences, Changchun 130122, China
3. School of Mathematics and Statistics, Xi’an Jiaotong University, Xi’an 710048, China;
*Corresponding author
Abstract

There is no doubt that spectrum technology has a positive role in applied prospects of biological and medical testing. Because of the complexity and the similarity ofblood component, study on recognition and classificationof different animal’s blood is still an open issue. Based on the theory of machine learning, by BP neural network, the authorsproposed a methodoffeature extraction and classification for different animal’s blood fluorescence spectra. In this experiment, fluorescence spectra data of whole blood and red blood cell with different concentration (1% and 3%) is collected, respectively. By neighborhood average method, the original data is denoised in order to reduce the impact of noiseon thefeature extraction and classification. For the specialty of blood fluorescence spectra, the authors proposed a new feature extraction method of “Combination and Amplification method”, and established a BP neural network classifier. Compared with other common spectrafeature, “Combination and Amplification”feature and the BP neural network classifiercan achieve good recognition and classification for different animal’s blood fluorescence spectra, and the test error is much less than allowable variation. The technologies in this paper can play an important role inmedical examination, agriculture, and food safety testing.

Keyword: Fluorescence spectra; Blood spectrum recognition; BP neural network; Combination and amplification method
引 言

近年来, 光谱检测技术在医学、 生物等领域内有了越来越多的应用[1, 2, 3, 4]。 其中, 荧光光谱能够探测到生物体中分子的化学组成结构及分子与分子、 分子与周围环境相互作用的信息[5], 从而通过研究荧光光谱可以获得生物体细胞的组成和代谢信息.血液中的很多成分具有荧光基团, 因此通过激发这些基团发射出荧光, 可以进一步分析血液荧光光谱, 判断血液的生物属性和医学属性等。

光谱技术在血液检测与分析方面的现有研究成果, 主要集中于对某种生物的血液进行光谱特性分析与研究[6, 7]。 对于不同物种血液光谱的对比分析相关研究极少, 目前尚未出现较为完善的结论。 许少峰等[8]于1997年发现猴、 犬、 羊、 兔、 鼠、 鸡的全血吸收光谱在可见光谱段非常相似; 万雄等[9]于2016年发现可以通过犬、 猫、 鸡三类动物全血样品近红外透射光谱相关系数的差异来进行全血鉴定判别, 但受实验设备和技术的影响较大。 由于血液成份的复杂性和类同性, 同时光谱信息容易受到噪声、 仪器状态等诸多因素的影响, 导致不同动物血液光谱识别存在较大困难; 因此, 研究如何利用光谱检测技术和数据挖掘技术实现不同动物血液的精确分类识别, 具有一定的现实意义, 其在血液制品鉴定、 生物医学检测等方面均可起到重要作用。

BP神经网络是具有分类功能的人工神经网络之一, 具有良好的非线性逼近能力, 可以为不同动物血液荧光光谱的分类识别提供可行的技术手段; 而且BP神经网络对数据噪声承受力高, 具有优良的自我修正功能。 本研究针对血液光谱数据的特性提出了一种新的光谱特征提取方式, 并基于BP神经网络建立识别分类器, 对羊、 鼠、 鸡、 鸽四种动物的血液光谱数据实现了分类。

1 基本原理
1.1 邻域平均值法: 五点三次平滑

通常采集到的光谱数据除有用信号外, 还带有高频的噪声, 这些噪声对光谱特征提取有一定影响, 因此需对数据进行去噪处理。 已往的相关研究中, 有关动物血液光谱的去噪方法涉及较少, 通过对常用光谱去噪方法[10]以及动物血液光谱特性的分析, 考虑邻域平均值法可以快速平滑图像[11, 12, 13], 且能有效地消除噪声对图像的干扰程度, 故建立平滑滤波器对血液光谱数据进行去噪处理。

临域平均值法通过选取固定的点数, 将各点的纵坐标值求和、 除以点数, 得到这一组数的中心横坐标处的平均纵坐标值。 然后, 去掉这一组数中左端一个点, 向前移动一个采样点, 重复上述平均, 平滑曲线的下一个值。 重复上述操作, 即可以得到整个曲线平滑后的数据, 其数学表达式为

Yk=12m+1j=-mmyk-j

其中k=m+1, m+2, …, n-m; 2m+1为平滑窗口宽度, 即2m+1点移动平均, yk-j是不同点的数据值, Yk为以k点为中心的2m+1个数的平均值。

y1=170[69x1+4(x2+x4)-6x3-x5]y2=135[2(x1+x5)+27x2+12x3-8x4]y3=135[-3(xi-2+xi+2)+12(xi-1+xi+1)+17xi]y4=135[2(xm-4+xm)-8xm-3+12xm-2+27xm-1]y5=170[-xm-4+4(xm-3+xm-1)-6xm-2+69xm]i=3, 4, , m-2(1)

数据的平滑处理需要根据光谱原始数据的特点确定恰当的平滑次数, 以免丢失特征信息。 本文采用的是基于最小二乘法原理对离散数据进行三次最小二乘多项式平滑的五点三次平滑方法, 该算法对时域和频域信号均可以进行平滑处理, 对频域数据的作用能使谱曲线变得光滑, 以便在模态参数识别中得到较好的拟合效果, 对振动信号进行预处理剔除其高频噪声信号, 使信号尽可能地接近真实值, 平滑的原则是既要消除数据中的干扰成分, 又要保持原有曲线特性不变[14]。 其具体计算公式如(1)式所示。

1.2 BP神经网络

BP神经网络是由Rumelhart和McCelland为首的科学家小组提出的一种按误差逆传播算法训练的多层前馈网络, 是目前应用最广泛的神经网络模型之一。 网络通常含有一个输入层和一个输出层, 以及一个以上的隐含层。 其主要特点是信号前向传递, 误差反向传递。 在向前传递过程中, 输入信号从输入层经隐含层逐层处理, 直至输出层, 当前层的神经元状态只影响下一层神经元的状态。 若输出与期望不符, 则转为反向传播, 根据预测误差调整网络权值和阈值, 从而使网络预测输出逐步逼近期望输出。 BP神经网络结构示意图如图1。

图1 BP神经网络结构示意图Fig.1 Structure of BP neural network

现有关于BP神经网络层数的研究表明, 具有输入层、 隐含层、 输出层的3层神经网络, 在有足够多隐含层节点数的情况下, 可以逼近任何函数。 通常在网络搭建过程中, 对于输入层和输出层节点数的确定, 可以直接根据输入数据和期望输出来选定, 而隐含层节点个数的确定, 是一个相对复杂的问题, 过多会使学习时间过长造成泛化能力下降, 而过少会使学习时间较短造成网络的容错性能下降[15]。 通常做法是, 对同一个样本集采用不同隐含层节点数的网络进行训练, 从中选出使网络误差最小的隐含层节点数。 一般基于式(2)(经验公式)来确定隐含层节点数

l=m+n+α

式(2)中m为输入层节点数, n为输出层节点数, α 为1~10之间的常数。

常用的激活函数有Purelin, tansig和Logsig三种, 可以对输入和输出进行函数转换, 将可能无限域的输入变成指定的有限范围内的输出。 常用的传递函数有trainlm, trainda, traindm, Traindx四种, 其选取对于误差和训练时间会有很大的影响, 因而合理的选择传递函数能够降低网络误差。 对于激活函数以及传递函数的确定上, 通常也需要根据数据来对常用函数进行测试, 进而对比与筛选。

在进行BP神经网络仿真前, 还需要先进行训练集和测试集的选择。 训练集的作用是通过系统学习, 了解数据的特征与分布规律, 因此训练样本数据应该选取最具普遍性和代表性的数据。

2 结果与讨论

所分析的光谱数据由长春理工大学激光与纳米材料实验室采集、 提供。 光谱仪参数为: 仪器: Cary Eclipse、 仪器序列号: MY13450002, 采样类型: 荧光、 扫描模式: 发射、 激发波长: 200 nm、 激发狭缝: 5 nm、 发射狭缝: 10 nm、 扫描速度: 600.00 nm· min-1

实验人员采集了鸽、 鸡、 鼠、 羊四种动物的全血和红细胞(red blood cell, RBC)样本, 将柠檬酸钠抗凝剂预先加入到采血容器中, 待采集血液后使用0.85%NaCl溶液(生理盐水)稀释至1%和3%浓度全血溶液待用; 同样采集血液后先洗涤为血红细胞溶液, 再使用0.85%NaCl溶液(生理盐水)稀释至1%和3%浓度血红细胞溶液待用, 于室温下扫描待用的全血溶液和红细胞溶液样本, 通过光谱仪以每25组为一轮测量出这四种样本的发射光谱数据。 每种类型样本数据均进行两轮测量, 最终获得每个类型样本各50组数据。

2.1 五点三次平滑去噪

图2给出了四种动物1%浓度全血光谱数据中各自的某一组数据在五点三次平滑去噪前后的对比结果。 根据多次实验, 确定平滑次数为40。

图2 全血1%浓度数据去噪效果
(a): 原始光谱数据图; (b): 去噪后光谱数据图
Fig.2 Denoising effective of whole blood 1% concentration data
(a): The original spectral image; (b): The denoised spectral image

2.2 “ 组合放大” 特征提取

在机器学习理论中, 特征提取与筛选是表示研究对象的关键[16], 特征选取的好坏会直接影响分类结果的准确率。 图3显示了四种动物全血1%和3%浓度, 红细胞1%和3%浓度四类溶液各选取一组数据对应的光谱图, 可以发现四种动物血液光谱的谱线都有若干明显的波峰。 通常, 可以直接提取峰值比以及峰高连线斜率等特征作为分类模式, 但由于血液存在较大类同性, 其光谱数据差异较小, 这类直接提取的特征在很多情况下并不能达到很好的分类。

图3 不同浓度的动物血液荧光光谱图
(a): 红细胞1%溶液; (b): 红细胞3%溶液; (c): 全血1%溶液; (d): 全血3%溶液
Fig.3 Fluorescence spectra figure of animal blood with different concentration
(a): RBC 1%; (b): RBC 3%; (c): Whole blood 1%; (d): Whole blood 3%

反复实验显示, 光谱曲线的三个明显波峰是表征不同动物不同浓度血液特性的关键, 但是不同动物间血液荧光光谱的三个峰值差异极小, 而且单一的峰值往往难以反映动物血液光谱数据的整体特性, 导致识别效果不佳(如图5— 图7所示)。 因此, 研究中提出一种新的动物血液光谱特征提取法“ 组合放大法” 。 将三个峰值数据进行指数放大来突出“ 类间差距” , 并将三个峰值数据综合起来考虑。 设feai(i=1, 2, 3)分别为第一、 第二、 第三峰的光谱强度值, 则“ 组合放大法” 后的识别特征为

Fea=fea1m+fea2n+fea3p

所谓“ 放大” , 即将光谱数据中的三个峰值进行指数放大。 从数据中发现, 每个峰值光强都是百位制, 进行指数放大后, 会使得不同动物血液荧光光谱每一峰值之间的差距得到有效扩大。 对于指数的选取, 一般建议取2或3即可, 原则是数据放大后的差距需远大于单一特征的差距, 通过对本文数据的分析, 实验表明: 均采用平方放大即可达到很好的效果; 进一步通过“ 组合” , 利用第一、 第二、 第三峰“ 放大” 后的“ 类间差距” 综合评判, 从而使得原来相对微弱的样本特征得到了有效突出, 大幅提高了识别准确率。

图5 采用第一峰纵横坐标比时BP神经网络识别分类结果
(a): 红细胞1%溶液; (b): 红细胞3%溶液; (c): 全血1%溶液; (d): 全血3%溶液
Fig.5 Classification results of the BP neural network with the first peak vertical and horizontal coordinates
(a): RBC 1%; (b): RBC 3%; (c): Whole blood 1%; (d): Whole blood 3%

图6 采用第二峰纵横坐标比时BP神经网络识别分类结果
(a): 红细胞1%溶液; (b): 红细胞3%溶液; (c): 全血1%溶液; (d): 全血3%溶液
Fig.6 Classification results of the BP neural network with the second peak vertical and horizontal coordinates
(a): RBC 1%; (b): RBC 3%; (c): Whole blood 1%; (d): Whole blood 3%

图7 采用第三峰纵横坐标比时BP神经网络识别分类结果
(a): 红细胞1%溶液; (b): 红细胞3%溶液; (c): 全血1%溶液; (d): 全血3%溶液
Fig.7 Classification results of the BP neural network with the third peak vertical and horizontal coordinates
(a): RBC 1%; (b): RBC 3%; (c): Whole blood 1%; (d): Whole blood 3%

2.3 BP神经网络识别分类

2.3.1 网络的创建以及各参数的确定

BP神经网络的创建采用Matlab自带的newff函数来完成, 再通过所建立的net来实现对网络数据的训练, 最后将剩余的数据带入net中, 进行网络仿真, 得到网络预测输出。

模型参数的优化与估计是其实现预设目标的前提[17], 根据输入信息的特征以及期望输出, 确定输入层节点数为4, 输出层节点数为4, 再根据经验公式, 对隐含层节点数设置for循环进行遍历, 通过实验仿真得到误差最小时所对应的节点数6作为隐含层节点数。 超参数调节误差分析见表1

表1 不同隐含层节点数时的测试误差 Table 1 Test error of different number of hidden layer nodes

接着对三种激活函数分别进行误差检验, 表2列出输出层为不同激活函数, 迭代1 000次的误差。 从表2可以明显看出误差最小的激活函数为logsig型激活函数。

表2 不同激活函数的测试误差 Table 2 Test error ofdifferent activation function

最后对四种常用的训练函数进行对比, 以下为迭代1 000次后得到的误差。 从表3可以明显看出误差最小的传递函数为trainlm型传递函数。

表3 不同训练函数的测试误差 Table 3 Test error of different training function

关于训练集和测试集的选取, 本文通过MATLAB编程将数据进行随机化处理, 选取其中60%的数据作为训练集, 剩余数据作为测试集。

2.3.2 识别分类结果分析

图4显示了采用“ 组合放大法” 提取特征, 并进行BP神经网络训练后对测试数据的识别分类结果。 对于1%和3%两种浓度的全血和红细胞血液溶液, “ 组合放大法” 提取的特征均实现了100%的识别分类。 作为对比, 图5— 图7显示了利用“ 直接提取法” 提取的单一特征进行识别分类的结果。 显然, 单独使用第一、 二、 三峰横纵坐标比进行识别均存在错误分类的情况。 由此可见, 直接提取法所提取的单一特征并不具备很好的普适性, 这正体现了本文所提出的动物血液光谱特征“ 组合放大” 提取法的优势。

图4 采用组合放大特征时BP神经网络识别分类结果
(a):红细胞1%溶液; (b):红细胞3%溶液; (c):全血1%溶液; (d):全血3%溶液
Fig.4 Classification results of the BP neural network with combined and amplification characteristics
(a):RBC 1%; (b):RBC 3%; (c):Whole blood 1%; (d):Whole blood 3%

在BP神经网络构建时设定的目标误差为0.000 1, 图8显示了不同特征(Feature 1— Feature 4依次代表单独第一、 二、 三峰纵横坐标比特征和“ 组合放大” 特征)对光谱数据进行BP神经网络识别时的测试误差。 从图8可以看出, 采用“ 组合放大” 特征对不同类型、 不同浓度的血液荧光光谱数据进行网络训练时, 其测试误差均远小于所设定的目标, 证明了其分类识别结果的准确性高; 而使用单独第一、 二、 三峰横纵坐标比特征进行网络训练时, 只有个别情况测试误差小于所设定的目标。

图8 四种特征的BP神经网络测试误差Fig.8 Test errorsof BP neural network offour different features

综上分析, 采用所提出的组合放大法所提取的特征, 对于所采集的不同动物不同类型样本数据均能实现很好的分类识别, 且误差均符合目标设置, 进一步说明了该方法的优越性和普适性。

3 结 论

在血液光谱特征选择方法上, 提出了一种新的血液光谱特征提取方法: 组合放大法。 该方法紧扣光谱直观而重要的特征, 具有操作方便, 分析快速的优势, 结合BP神经网络分类器可以快速高效的实现不同动物、 不同类型(如全血、 红细胞等)、 不同浓度血液荧光光谱数据的正确识别分类, 并具有较低的BP神经网络测试误差, 体现了该方法的普适性和可靠性, 可以在医学、 农业、 甚至食品检测方面发挥作用。 由于本工作所采集的样本来自同一个体, 且主要针对不同物种间进行试验, 对于不同年龄、 不同地域生活的物种以及同一物种个体间差异并未进行讨论, 但这也是将来要进一步深入的工作。 血液荧光光谱分析及研究虽然仍处于初步研究阶段, 相信随着光谱技术的不断发展, 将在更多领域发挥重要作用。

The authors have declared that no competing interests exist.

参考文献
[1] Chen Jinjin, Peng Yankun, Li Yongyu, et al. Transactions of the Chinese Society of Agricultural Engineering, 2010, 26(14): 1. [本文引用:1]
[2] Yang Jian, Gong Wei, Shi Shuo, et al. Plant Soil & Environment, 2016, 62(4): 178. [本文引用:1]
[3] HOU Hua-yi, FANG Zhao-hui, ZHANG Yuan-zhi, et al(候华毅, 方朝晖, 张元志, ). Chinese Journal of Lasers(中国激光), 2016, (9): 224. [本文引用:1]
[4] ZHU Xin-jian, HE Xuan, WANG Pin, et al(朱新建, 何璇, 王品, ). Journal of Biomedical Engineering, 2016(1): 184. [本文引用:1]
[5] MEI Lin, CHENG Zheng-xue, SHI Kai-yun, et al(梅林, 程正学, 石开云, ). Laser Journal(激光杂志), 2007, 28(3): 84. [本文引用:1]
[6] ZHANG Zhang, MENG Kun, ZHU Li-guo, et al(张章, 孟坤, 朱礼国, ). Laser Technology(激光技术), 2016, 40(3): 372. [本文引用:1]
[7] QIN Zong-ding, XU Xue-tang, ZHANG Zhi-zhi, et al(覃宗定, 许雪棠, 张枝芝, ). Acta Optica Sinica(光学学报), 2014, 34(1): 280. [本文引用:1]
[8] XU Shao-feng, LIN Shao-zhong, CHEN Rong(许少峰, 林少忠, 陈荣). Applied Laser(应用激光), 1997, (6): 282. [本文引用:1]
[9] WAN Xiong, WANG Jian, LIU Peng-xi, et al(万雄, 王建, 刘鹏希, ). Spectroscopy and Spectral Analysis(光谱学与光谱分析), 2016, 36(1): 80. [本文引用:1]
[10] GU Chun-feng, LAN Xiu-feng, YU Yin-shan, et al(顾春峰, 兰秀风, 于银山, ). Acta Photonica Sinica(光子学报), 2012, 41(1): 107. [本文引用:1]
[11] MA Cai-hong, CHENG Yu, HE Ming-guang, et al(马彩虹, 程昱, 何明光, ). Computer Engineering & Science(计算机工程与科学), 2010, 32(8): 75. [本文引用:1]
[12] WANG Da-xi, HU Peng(王大溪, 胡鹏). Electronic Science & Technology(电子科技), 2014, 27(8): 11. [本文引用:1]
[13] YANG Hui-yun, ZHANG You-hui, HUO Li-ling, et al(杨会云, 张有会, 霍利岭, ). Computer Engineering and Applications(计算机工程与应用), 2010, 46(9): 149. [本文引用:1]
[14] JI Yu-fang, SUN Yun-qiang, YAO Ai-qin(姬玉芳, 孙运强, 姚爱琴). Electronic Test(电子测试), 2010, (5): 89. [本文引用:1]
[15] GUO Yang-ming, RAN Cong-bao, JI Xin-yu, et al(郭阳明, 冉从宝, 姬昕禹, ). Journal of Northwestern Polytechnical University(西北工业大学学报), 2013, 31(1): 44. [本文引用:1]
[16] GAO Wen, QIAN Ya-guan, WU Chun-ming, et al(高文, 钱亚冠, 吴春明, ). Acta Electronica Sinica(电子学报), 2015, 43(4): 795. [本文引用:1]
[17] Zhou Linhua, Fan Meng, Hou Qiang, et al. Mathematical Biosciences & Engineering, 2018, 15(2): 543. [本文引用:1]