(School of Information Science and Engineering,Xiamen University,Xiamen 361005,China)
DOI: 10.6043/j.issn.0438-0479.201601008
备注
对大脑皮层厚度数据进行建模从而实现阿尔茨海默症的诊断.在训练样本少,数据复杂且非线性的情况下,相比于BP神经网络和k最近邻等算法,支持向量机算法表现出更优良的特性.针对支持向量机算法受数据高维度的影响,将t分布随机邻域嵌入算法引入到支持向量机模型.t分布随机邻域嵌入算法既能撷取原始高维数据的局部信息,也能揭示全局结构.t分布随机邻域嵌入算法先将这些非线性数据降维到低维空间,支持向量机算法再将这数据映射到新的高维空间,通过寻找最佳分类超平面的方法,使分类效果达到最佳水平.最后将集成学习算法AdaBoost的思想融入模型,可以使模型的分类准确率得到提升,而且变得鲁棒性更强.
Model based on cortex thickness data is used to implement Alzheimer's diseasediagnosis(AD).Comparing with back propagation(BP)and k-nearest neighboralgorithms(kNN),support vector machine(SVM)algorithm exhibits more excellent characteristics in the case that the number of training samples is smaller and the data is complex and nonlinear.Considering that the performance of SVM algorithm is influenced by high dimension,we combine thet-distributed stochastic neighbor embeddingalgorithm(t-SNE)with SVM algorithm model.t-SNE is capable of capturing much of the local structure of the high-dimensional data very well,while also revealing global structure,such as the presence of clusters at several scales.The t-SNE algorithm reduces the dimension of nonlinear data,and then SVM algorithm maps Low-dimensional data to a high-dimensional space.Afterwards,SVM looks for the best hyperplane to make the best classification results.Finally,the ideal of an ensemble learning algorithm AdaBoost is used,which can improve the classification accuracy of the model and make the model more robust.
引言
近年来,我国人口老龄化日趋明显.有调查显示,全世界有近20%的痴呆患者在中国.老年痴呆症,又称阿尔茨海默症(Alzheimer's disease,AD)越来越受到关注.大量文献表明,AD渐渐损伤大脑的认知功能与记忆能力,同时它会造成大脑灰质结构的萎缩[1-2].磁共振图像(magnetic resonance imaging,MRI)可无创伤地提供高分辨率的脑组织图像信息,包括大脑48个感兴趣区(region of interest,ROI)的皮层厚度值[3-4].充分利用这些ROI的皮层厚度值进行高效的AD诊断,具有重要意义[5].
为了更好地辅助AD诊断,可使用机器学习算法基于影像数据去构建出最佳的AD分类模型.在机器学习领域,典型分类模型包括支持向量机(support vector machine,SVM)、深度学习、BP(back propagation)神经网络、k最近邻(k-nearest neighbor,kNN)等.由于MRI采样成本较高,成像时间较长,且有较多“使用禁忌”,不适合大众,所以国内基于MRI的影像技术结合机器学习算法进行AD诊断的研究没有国外成熟.基于影像数据并利用机器学习实现AD诊断是近年来的研究热点.Yang等[3]基于影像数据用SVM分类模型进行AD诊断.Li等[5]基于影像数据使用主成分分析(principal component analysis,PCA)与深度学习进行AD病诊断的研究.深度学习模型种类较多且比较复杂,它在解决小样本数据分类问题方面并不十分稳定,且相对缺乏理论基础[4-5].BP易陷入局部最优,模型性能受网络结构和样本数据的影响较大.kNN根据最近的k个“邻居”的类别进行判断,对复杂高维数据可解释性较差,模型性能受k值影响.SVM算法具有坚实的理论基础,非线性SVM使用非线性内核,该算法计算的边界没有必要是直线,这样做可以捕获更多数据点集之间的复杂关系[6].非线性SVM和一些BP神经网络模型在决策超平面方面有类似的地方,但它不像BP等神经网络模型那样容易陷入局部极小点问题,SVM能发现全局最优解,也可避免结构选择问题.
本研究不仅对机器学习领域最常用的分类模型进行了比较研究,还对非线性降维算法、集成学习算法进行了深入研究.本研究用到的AD诊断数据是从MRI中提取的48个ROI的脑皮层厚度值,提取流程是:首先对图像进行前联合-后联合修正、灰度不均匀修正,然后去除头盖骨与小脑,最后标记出48个ROI并计算每个ROI的皮层厚度[4].本文中重点研究了基于SVM分类算法、t分布随机邻域嵌入(t-distributed stochastic neighbor embedding,t-SNE)算法和集成学习算法(AdaBoost)的AD诊断模型,并通过实验验证本研究所提出的STA(SVM-tSNE-Ada Boost)模型的分类效果最佳.
1 相关算法思想介绍
2 STA模型
在训练样本少、数据复杂非线性的情况下,相比BP、kNN等算法,SVM算法往往表现出更优良的特性.针对SVM算法受数据高维度的影响,将t-SNE引入到SVM模型.它既能撷取原始高维数据的局部信息,也能揭示全局结构.t-SNE先将这些非线性数据降维到低维空间,SVM算法再将这些低维数据映射到新的高维空间,通过寻找最佳分类超平面的方法,使分类效果达到最佳水平.最后将AdaBoost的思想融入模型,使模型的分类准确率得到提升,并且鲁棒性增强.
本研究结合SVM分类算法、t-SNE降维算法和改进的AdaBoost算法,最终提出了AD诊断模型STA.通过多组实验进行测试,结果表明STA模型预测精度达到最高,这为实现更准确的AD诊断提供了可能.
3 实验结果与分析
本文中用到的AD诊断数据集来自Loni神经成像实验室(http:∥www.loni.usc.edu/),每个样本包含大脑48个ROI的皮层厚度信息,共296个样本.其中AD类,94个样本; 正常类,202个样本.实验开发环境是MATLAB R2013a和R.
3.1 SVM算法评估基于SVM、BP、kNN 3种分类算法对AD诊断进行实验.在比较分析SVM、BP、kNN模型时,通过多次实验寻找该模型最好的参数.对于某一特定模型,将其20次实验后得出的平均分类正确率作为主要评判依据,每次实验通过随机抽样的方法抽取数据,其中选取246个样本作为训练数据,50个样本作为测试数据.
采用BP神经网络分类时,迭代次数为100,允许误差为0.000 04.因为模型准确率受网络结构影响,所以需要尝试多种不同的网络结构.通过实验发现,BP神经网络模型受样本选择的影响比较大.该模型的分类准确率最佳的情况是:学习率为0.1,隐含层置为2层,2个隐含层节点数分别为30和10,同时将脑灰质数据做归一化处理,即将数据转化为[0,1]之间的数.对于kNN分类算法,通过实验发现,当kNN的k值为5且不将数据进行归一化处理时,分类效果最佳.采用SVM分类时,首先通过k-CV交叉验证方法进行参数寻优,再使用径向基核函数作为核函数建立SVM模型.得到惩罚参数c的最优值为11.3、核函数参数g的最优值为0.088 3,同时也需要将原始数据归一化.这3种模型在最佳参数情况下的平均准确率和最佳准确率如表1所示.3个算法的受试者工作特征(ROC)曲线图如图1所示,以供参考.
通过表1和图1可看出,SVM算法分类准确率和综合性能相对较高,其在解决小样本、高维、非线性数据二分类问题中表现出许多特有的优势.
3.2 t-SNE算法比较研究为了更加客观全面地对比分析各种降维方法用在AD诊断数据集的效果,将t-SNE和其他7种降维方法进行比较.图2和3分别显示了8种降维方法用于脑皮层厚度的数据集的3D效果图和2D效果图.
从图2和3中可以发现,将这些方法用在AD诊断数据集上的降维效果各有特点.用Diffusion map、LLE使得嵌入空间的点挤在一起,并没有让两类数据区分开.其他6种方法的3D图要比2D效果图更好,但是Iosmap并没有很好地对两类数据进行区分,PCA和MDS有着相似的降维效果.相比较其他算法,t-SNE可视化效果更好,两类数据区分度更高,在低维空间减小了点的拥挤程度.
接着将这几种降维方法分别和SVM结合,比较它们对模型分类准确率的影响.基于可视化图2和3的对比分析,每个降维方法都将原始数据降至三维,并进行归一化处理.随机选取样本集中246个样本作为训练数据,50个样本作为测试数据.表2展示了用这些降维方法进行预处理后再进行分类的最佳准确率.可以看出,经过t-SNE降维后的数据,再用SVM进行分类,达到的实验效果最佳,最高正确率达到94%.
多次实验可得模型的综合性能,发现t-SNE+SVM的方法平均准确率较SVM算法性能提升了3.15%.
3.3 AdaBoost提升效果评估实验验证AdaBoost算法的性能.将集成学习算法
AdaBoost融入到AD诊断模型.迭代次数S设为10,数据都经过t-SNE降维处理.STA模型的弱分类器是SVM,第2个实验弱分类器是BP神经网络,以用来进行比较.每次迭代,从246个训练样本中选取权重值最大的前200个样本进行弱分类器的训练,每迭代一次,各个样本权重会根据该轮弱分类器的判断结果进行相应调整.通过实验可得每个弱分类器的平均分类准确率和最终强分类器的分类准确率,实验结果如表3所示.
从表3可以看出,当弱分类器是SVM时,AdaBoost能很好地提升弱分类器的准确率.BP神经网络的分类准确率受样本选择影响较大.所以,通过联合使用AdaBoost提升算法也能很好地提升模型的分类准确率.
4 结 论
本研究结合SVM分类算法、t-SNE算法和集成学习算法AdaBoost对AD诊断模型进行了研究.将SVM算法作为AD诊断模型的算法准确性要优于BP神经网络算法、kNN算法等.t-SNE算法将这些非线性数据降维到3维空间,再用SVM算法将这些3维数据映射到高维空间,通过寻找分类超平面的方法,实现的分类效果达到最佳水平,准确率为94%.而通过其他降维方法都不能达到如此效果,甚至会降低分类准确率.如果再利用AdaBoost算法构建模型,可以使模型分类准确率提升,而且变得鲁棒性更强.上述研究对AD的诊断具有重要意义.
1.1 SVM算法SVM算法于1995年由Cortes等[6]首先提出,它是基于结构风险最小化原理和VC维(Vapnik-chervonenkis dimension)理论的经典分类算法,可用于解决线性或非线性数据的二分类问题.SVM可将原线性不可分的数据映射到较高的维度上,在高维空间搜索一个最佳分类超平面作为决策曲面,使得两类数据的隔离边缘被最大化[7].
SVM分类算法相对比较复杂,为了提升SVM分类器的性能,需要调节相关参数(比如核函数参数g、惩罚函数c),同时选择最佳核函数.本研究用到K折交叉验证(K-CV)的方法:训练集被均分为K个子集,每个子集需分别做一次验证集,同时其余的K-1组子集数据需作为训练集,由此可得到K个模型,于是用这K个模型的平均分类准确率作为分类器性能指标.对于参数的优化,让g和c在一定范围内取值,利用K-CV方法得到每组g和c下的平均分类准确率,最终选择使得训练集验证分类准确率最高的那组c和g做为最佳的参数.
1.2 t-SNE算法1.2.1 维数约简本研究将维数约简的原因有以下两点:1)SVM等机器学习算法的性能和效率经常会受冗余信息以及噪声的影响.为了改进SVM学习性能,可通过维数约简来消除或弱化冗余信息的影响,去除噪声影响.2)SVM可将低维非线性的数据映射到高维空间进行分类,但是本研究用到的AD诊断数据样本集维数并不低.与本次学习任务密切相关的可能是数据的某个低维分布,即高维空间中的一个低维“嵌入”.
维度约简的原则是低维数据要保存原始数据尽可能多的信息,比如本质结构信息.PCA通过搜索最能代表数据的正交向量进行降维,虽然它应用非常广泛,但是它只适用于线性数据集.通过初期实验发现,当48维的AD诊断数据通过PCA降维处理后,再用SVM或BP算法进行分类,并不能提升分类准确率,反而会因为丢失原始数据信息而导致准确率下降,所以该AD诊断数据的结构是复杂非线性的.用非线性映射或许才能找到恰当的低维嵌入,即应该尝试使用非线性降维方法.非线性降维方法包括扩散映射(diffusion map)、等度量映射(isometric mapping,Isomap)、局部线性嵌入(locally linear embedding,LLE)、多维尺度变换(multiple dimensional scaling,MDS)、Sammon mapping、SNE、t-SNE等.
t-SNE由Maaten等[8]提出,它是SNE算法的改进版.t-SNE是一种基于信息论的非线性降维技术,它能从高维采样数据恢复低维流形结构,属于流形学习.t-SNE算法既能撷取原始高维数据的局部信息,同时也能揭示全局簇结构.t-SNE以其优良的降维功能越来越受到学者们的关注,它在数据挖掘、计算机视觉等领域的应用与研究不断拓宽.如Gisbrecht等[9]将t-SNE算法用在多种细菌的基因序列可视化研究中,Cheng等[10]将t-SNE算法用于帮助人的行为识别问题的研究.Yi等[11]结合t-SNE和AdaBoost算法用于人脸表情识别问题的研究.
1.2.2 算法步骤t-SNE将低维流形嵌入到观测空间,使得在观测空间复杂分布的点在局部具有欧式空间的性质,这不仅使距离计算变得容易,同时也能建立降维映射关系,设法将局部映射关系推广到全局.t-SNE算法步骤如下:
首先计算原始数据集χ={x1,x2,…,xn}在观测空间的相似度.将观测空间中两点间的欧氏距离转化为条件概率pj|i(式(1)),pj|i表示在以xi接受xj作为“邻居”的可能性,它的计算依托以xi为中心的高斯分布的概率密度函数,σ是以点xi为中心的高斯分布的方差.观测空间任意两点xi、xj的相似度量用局部对称联合概率分布pij表示,pij为pi|j和pj|i的平均值(式(2)).pii置为0.
pj|i=(exp(-=xi-xj=2/2σ2i ))/(∑k≠iexp(-=xi-xk=2/2σ2i )),(1)
pij=(pj|i+pi|j)/(2n).(2)
χ通过降维得到对应的y集合,这个寻找最优y集合的过程需要在特定的低维嵌入空间进行多次迭代.SNE等算法都存在的一个常见问题是:在低维空间中,和那些原数据中各点距离较远的点相比,距离更近的更相似的数据点会因为空间容积小的原因而无法得到很好地表示[8].因此需要在低维嵌入空间给各点一个“斥力”,使各个点之间距离变大,特别是使那些不相似的点之间的距离变得更大.一个解决方法是将在低维嵌入空间中的y集合的概率分布置为重尾分布,用不匹配的尾来形成所谓的“斥力”[8].t-SNE使用学生t分布作为重尾分布,将嵌入空间中的点与点之间的欧氏距离以学生t分布为核的联合概率qij
qij=((1+=yi-yj=2)-1)/(∑k≠l(1+=yk-yl=2)-1),(3)
来表示嵌入空间上两个点的相似度,这样能为那些小范围成对的相似点提供更大的空间以便进行更精确地建模.t-SNE能形成长程的“引力”拉进相似点,同时消除不相似的点之间的“引力”,很好地解决了拥挤问题.t-SNE使用相对熵作为目标优化函数,并使用梯度下降法来最小化样本点条件概率P和维数约减后的样本点条件概率分布Q的相对熵[8-9].
1.3 AdaBoost算法集成学习是提升分类效果的有效方法,其通过让多个学习器(弱分类器)参与学习,共同解决目标问题,从而提高分类器的泛化能力.典型的集成学习算法包括AdaBoost、RandomForest等.AdaBoost算法主要提供一种框架,可以选择使用各种分类器作为基分类器.它的主要思想是[12]:每迭代一次,增大被错误分类的样本权重,减小被正确分类的样本权重; 最终结果是由各个弱分类器的结果加权投票得出,正确率高的弱分类器权重更高,正确率低的弱分类器权重更低.本研究中改进的AdaBoost算法具体实现步骤如下:
1)数据导入,初始化训练数据(N个样本)的分布权重Dt(i)=1/N,设置迭代总次数为S.
2)优先选择权重大的前P个样本进行抽样,然后通过训练得到弱分类器模型,计算该模型误差率为et,et=∑iDi(i),i=1,2,…,N.
3)计算弱分类器权重at:
at=1/2ln((1-et)/(et)),t=1,2… K.(4)
4)调整样本权重.调整公式如式(5)所示,Zt是样本分权值的归一化因子,yi是期望分类结果,gt(xi)是预测分类结果.
Dt+1(i)=(Dt(i))/(Zt)exp[-atyigt(xi)],
i=1,2,…,N.(5)
5)判断迭代次数是否达到S次,‘是'则执行6),否则,返回2).
6)训练S次后得到S组弱分类函数f(gt,at),可计算强分类函数,表达式为式(6),得到结果.
h(x)=sign[∑St=1at·f(gt,at)].(6)
- [1] TOSUN D,SCHUFF N,WEINER M.An integrated multimodality MR brain imaging study:gray matter tissue loss mediates the association between cerebral hypoperfusion and alzheimer's disease[C]∥Annual International Conference of the IEEE Engineering in Medicine and Biology Society.Minneapolis:IEEE,2009:6981-6984.
- [2] SUI X C,LIS H,LIU J Q,et al.Sparse canonical correlation analysis reveals correlated patterns of gray matter loss and white matter impairment in alzheimer's disease[C]∥2015 IEEE 12th International Symposium on Biomedical Imaging.New York:IEEE,2015:470-473.
- [3] YANG W L,YAN L,CHEN X Y.ICA image feature extraction for improving diagnosis of Alzheimer's disease and mild cognitive impairment[C]∥2014 10th International Conference on Natural Computation.Xiamen:IEEE,2014:802-806.
- [4] SHI Y H,SUK H I,GAO Y,et al.Joint coupled-feature representation and coupled boosting for AD diagnosis[C]∥2014 IEEE Conference on Computer Vision and Pattern Recognition.Columbus:IEEE,2014:2721-2728.
- [5] LI F,TRAN L,THUNG K H,et al.A robust deep model for improved classification of AD/MCI patients [J].IEEE Journal of Biomedical and Health Informatics,2015,19(5):1610-1616.
- [6] CORTES C,VAPNIK V.Support-vector networks[J].Machine Learning,1995,20(3):273-297.
- [7] SARAFIS I,DIOU C,TSIKRIKA T,et al.Weighted SVM from clickthrough data for image retrieval[C]∥2014 IEEE International Conference on Image Processing.Paris:IEEE,2014:3013-3017.
- [8] MAATEN L V D,HINTON G.Visualizing data using t-SNE[J].Journal of Machine Learning Research,2008,9:2579-2605.
- [9] GISBRECHT A,HAMMER B,MOKBEL B,et al.Nonlinear dimensionality reduction for cluster identification in metagenomic samples[C]∥2013 17th International Conference on Information Visualisation.London:IEEE,2013:174-179.
- [10] CHENG J,LIU H J,WANG F,et al.Silhouette analysis for human action recognition based on supervised temporal t-SNE and incremental learning[J].IEEE Transactions on Image Processing,2015,24(10):3203-3217.
- [11] YI J Z,MAO X,XUE Y L,et al.Facial expression recognition based on t-SNE and adaboostM2[C]∥Green Computing and Communications(GreenCom),2013 IEEE and Internet of Things(iThings/CPSCom),IEEE International Conference on and IEEE Cyber,Physical and Social Computing.Beijing:IEEE,2013:1744-1749.
- [12] MAATEN L V D.Accelerating t-SNE using tree-based algorithms[J].Journal of Machine Learning Research,2014,15:3221-3245.