6.3.2 支持向量机

6.3.2 支持向量机

神经影像数据的标准单变量分析揭示了健康个体与患有多种神经精神疾病的患者之间的一系列神经解剖学和功能差异。这些差异仅在群体水平上显著,临床转化价值有限,并且更多研究将注意力转向了其他形式的分析,如支持向量机(support vectormachine,SVM)。作为一种机器学习,SVM允许使用在训练数据集上开发的分类算法,将个体的数据分类到预定义组中。近年来,大量研究将SVM方法用于结构和功能神经影像学数据分析,进行疾病诊断、转归和治疗预后预测,取得了较高的分类准确率,然而尚未广泛应用于临床实践。研究结果对临床实践影响有限的重要原因是,神经影像学研究通常报告了患者和对照组之间的差异,而用于临床实践,必须能够在个体水平进行推断。相对于基于一般线性模型的传统分析方法,将监督ML应用于神经成像数据的优点有两个:首先,受监督的ML方法允许在个体水平上进行表征,因此产生便于临床转化的结果;其次,作为固有的多元方法,受监督的ML方法对大脑中的空间分布和微妙效应敏感,而其使用传统的单变量方法无法检测到。

SVM是一种有监督的机器学习算法,旨在通过最大化高维空间中类之间的边界来对数据点进行分类,其算法是通过“训练”阶段和“测试”阶段开发的,训练阶段为开发能够区分操作员预定义的组(例如患者与对照组)的算法,测试阶段则是盲预测一个新的观察其所属的组。除了线性分类,这个算法还可以通过使用“核函数”(从低维数据转化到高维数据)实现非线性分类,在两个类别之间生成一个超平面(hyperplane)作为决策平面,并基于此进行分类。线性SVM用于区分线性可分数据(linearly separable data,数据可以通过一条直线被简单分类)。

如图6.8所示,有绿点和蓝点两种不同类别,它们都可以被一条直线轻易分开。这种类型的数据即线性可分数据。和线性SVM相反,非线性SVM用于区分非线性可分数据(nonlinearly separable data,数据不能用一条简单的直线分开)。

图6.8 线性可分数据(书后附彩插)

如图6.9所示,一条直线并不能区分这两类,因此这种数据就是非线性可分数据。

支持向量是指两个类别距离最近的向量点。如图6.10所示,最左侧的蓝点和最右侧的绿点就是支持向量。支持向量的意义在于,穿过这些支持向量,绘制出两条线作为类别之间的边界线。间隔(margin)是指两个向量之间的距离。算法的优化方向是选择最优超平面,即选择一对线,使其拥有最大间隔(maximum margin)。随着间隔增大,误分类概率会减少。

后面展示的例子(图6.11和图6.12)中绘制了两条线穿过支持向量。但是画线的方式却不一样,那么哪一个更好呢?

图6.9 非线性可分数据(书后附彩插)

图6.10 支持向量(书后附彩插)

图6.11 情况1(书后附彩插)

图6.12 情况2(书后附彩插)

这里情况1是最佳拟合情况,因为它在这对线之间有最大间隔。一旦间隔确定了,测试环节就开始了。输入样本进入算法后,算法会预测类别。算法遵循一个简单的逻辑,即如果元素靠近类别A,就属于类别A;如果它靠近类别B,就属于类别B。非线性数据不能仅通过一条平面线进行分类,因此,为了处理该类型数据,可使用一个特定的核函数将相同问题转化到三维空间。

下面介绍最优超平面的计算方法。首先采用以下符号定义超平面:

其中,β为权重向量;β0为偏差。通过缩放β和β0,最优平面可以有无数种表达形式。在所有可能的超平面表达形式中,通常选择以下这种:

其中,x象征离超平面最近的样本。一般而言,离超平面最近的训练样本称为支持向量,这个表达式称为规范超平面(canonical hyperplane)。

下面给出点x到超平面(β,β0)的距离:

需要特别指出的是,对于规范超平面而言,分子为1,那么对于支持向量而言距离变成了

对于前文介绍的间隔,用M表示;对于最近的样本而言,其是距离的两倍:

最终,最大化M的问题等价于在某些约束下最小化函数L(β)。约束模拟超平面的要求,实现对训练样本的正确分类,即

其中,yi代表每个训练样本的标签。这是一个拉格朗日优化问题,可以使用拉格朗日乘数得到最优平面的权重向量β和偏差β0

我们可以清楚地观察到不同类别的分区,然后在两种类别之间绘制出超平面。通过这种方式,核函数可以用于处理线性不可分的数据。

实际应用:SVM算法通常用于分类,而支持向量回归(support vector regression)常用于回归。SVM分类常用于面孔识别和推荐系统。由于SVM在很小的数据集上也可以表现很好,因此在医疗方面有很大应用。在Python中通过sklearn库可以实现SVM。Sklearn是数据挖掘和数据分析的常用开源工具。它有许多预先编制好的无监督和监督机器学习算法,如K最近邻算法(k-nearest neighbors,KNN)、SVM、线性回归、朴素贝叶斯(naive Bayes)以及K均值(k means)等。因此,没有必要去自己编写整个库的代码,只要简单地从sklearn导入它,我们的工作就完成了。

典型的分类分析共有四步。第一,特征挑选,用于减少分类分析中边的数量,因为大量的噪声边可能减弱分类表现。这一步可以通过设定网络矩阵的阈值实现,如保留相对来说最强的前10%的边,或者特征中表现出最显著的组间差异的边。第二,被试需要分成训练集和测试集。第三,训练集(包含了被试属于哪一组的信息)用于训练分类器。在这个过程中,分类算法学习一个函数,该函数将边的模式绘制到被试的标签上。第四,基于训练集被试估计的函数,分类器将测试集被试归类。该分析的主要结果是分类准确率,即被正确归类的测试集被试的百分比。

线性多变量方法,同样可以分析哪一条边对于分类使用到的多变量模式有贡献,也称分类权重。然而,不要过度解释对分类预测准确率贡献最大的边是很重要的。例如,有些边在组1和组2之间是不同的,但是在分类器模式的权重中却接近于0。因为多条边包含相同的信息,在这种情况下只有一条边出现在该模式中。另外,有些边可能并不包含区别组1和组2的信息,但是可能在模式中具有很高的预测权重。例如,某些边能够抵消和两组被试相关的噪声,从而提高整体模式的准确率,得到高的权值(weight)(如分类器可能使用这条边)。因此,分类权重不总是能帮助解释对于分类最重要的边。然而,一些替代方法可用于获得更具备解释力的边系数。

在开发分类器之前,需要进行“特征提取”和“特征选择”两个步骤。特征提取涉及将原始数据转换为一组“特征”,这些特征可以用作SVM的输入。在神经成像时,可以包括将每个三维图像变换为特征的列向量,其中每个值对应于单个对应体素的强度。因此,该特征向量编码整个大脑的灰色或白质体积(用于结构神经成像数据)或脑激活(用于功能性神经成像数据)模式。特征选择方法是比较选择促进学习的特征子集,此外为了分类而去除被认为是最小重要性的任何剩余特征。这可以包括基于文献来选择一个或多个组之间不同的感兴趣区域,或者替代地选择更多依据数据的方法,如回归特征消除。特征选择的基本原理有三个。首先,希望在减少提供给分类器的特征数量的同时,能够更加准确地进行分类。其次,特征选择可以帮助解释预测模型(如定位哪个脑区携带判别信息)。第三,对于一些分类算法,去除不相关或冗余的特征来减少计算负荷并加速学习过程。虽然使用特征提取是SVM的先决条件,但特征选择表示仅在存在被认为不利于学习过程的特定特征时,是一个可选的步骤。

算法的性能可以通过其敏感性、特异性和准确性来描述。敏感性是指正确识别真阳性的比例,如被识别为疾病患者的百分比。相反,特异性是指正确识别的真伪性的比例,如被确定为未生病的健康人的百分比。准确性代表正确分类的总体比例,当两个类别中有相同数量的测试对象时,相当于敏感性和特异性的平均值。在预测分类器的情况下,敏感性是指预测患病者确实患病的比例,特异性是指未患病者被诊断为正常的比例。任何给定分类准确度的统计显著性可以使用参数测试来确定,如二项式测试或置换测试。后者涉及用计算机随机分配的训练组标签多次重复分类过程,以产生精确度的零分布。然后,统计该零分布比真实标签更高精度的排列数,将其除以排列总数,这提供了相对于偶然性的准确度的重要性估计。

过去几年,越来越多的研究使用SVM或其他模式识别方法来研究神经精神疾病可能的神经生物学标志物。简言之,这些研究可分为三大类:①通过比较患者和健康对照来检验神经影像学数据诊断价值的研究;②通过比较出现和未出现疾病的个体的脑部图像,研究神经成像数据在预测疾病发生方面的能力;③通过比较治疗开始前患者的脑部扫描结果,研究神经影像学数据对疾病预后判断的价值。

SVM和其他受监督的ML方法越来越多地应用于解决除医学外其他领域的问题,如生物信息学、自然语言处理、电信、金融和法医学。尽管将这些方法应用于神经成像数据已经产生了具有前景的结果,但是这些结果向神经精神疾病临床实践的转化仍然存在很大的挑战。第一,大多数研究仅有少数参与者参与,因此不可能在个体水平上对神经影像学的诊断和预后价值做出定论。第二,MRI和其他神经影像技术仍然只适用于神经精神疾病中的少数人。第三,SVM或其他监督ML方法在神经成像数据中的应用涉及一系列分析步骤,这些步骤的要求超出了大多数临床医生的专业知识。第四,临床医生往往需要迅速做出治疗决定,而根据图像处理结果将SVM应用于神经影像数据,可能需要数天才能完成。

还有一些有趣的问题有待将来的研究解决。神经影像学对于诊断和预后评估的准确性可能较人口学、临床量表信息更高。因此,研究神经影像学特征在神经精神疾病诊断和预后评估中的价值将是非常有意义的。另一个令人感兴趣的问题是,一个研究中心开发的算法在多大程度上可以推广到其他研究中心。ADNI数据库的研究经验表明,在一个中心生成的SVM分类器可以被推广用于不同中心的数据。另一个值得关注的问题是,在同一个SVM模型中整合不同类型的数据是否可以提供一种可以提高分类准确性的方法,以及如何在技术上更好地实现其整合。实现最佳的整合方法仍有待各种因素的不断改进,如组合的数据类型,以及用于将它们组合的分析技术和研究的疾病。综合的方法准确度高,且可行性好。虽然SVM允许对每个观察进行分类,如响应者与非响应者,但也存在概率ML方法,其提供给定观察属于每个类别的概率的估计(例如,80%响应者,20%非响应者),旨在量化每个预测的不确定性。两种最有希望的概率分类方法包括高斯过程和相关向量机,这两种方法都已经开始在神经成像中应用。另一个有前景的发展方向是将回归方法应用于神经成像数据来预测连续结果(如症状严重性),而不是分类标签。实际上,模式回归方法目前被应用于分析健康人和疾病患者的神经影像数据。概率分类和回归方法在临床环境中尤为有用,临床医生需要权衡潜在风险和益处,做出治疗决策。