APP下载

基于改进PSO算法优化SVM模型的面色识别

2022-05-14李周姿林卓胜

计算机仿真 2022年4期
关键词:分类器惯性全局

李周姿,冯 跃,林卓胜,徐 红,2

(1. 五邑大学智能制造学部,广东 江门 529020;2. 维多利亚大学,澳大利亚 墨尔本)

1 引言

中医诊断中存在的主观性和经验局限性可以通过信息技术进行改进,如应用机器学习识别中医面部五脏分布区域的颜色以辅助诊断。目前多数研究是基于整体面色,而针对人脸不同区域的肤色研究甚少。依据中医理论,人脸不同区域的肤色与不同脏腑器官相关联,可以通过特定人脸区域的颜色状态变化反映出相应脏腑器官的健康状态,所以研究人脸不同区域的肤色对辅助中医诊断具有实践价值。针对小样本研究选择适合的机器学习分类器对提高面色的识别精度较为关键。在面色识别中常见的分类器有:朴素贝叶斯分类器(NB)[1]、BP神经网络(BP)[2]、K近邻分类器(KNN)[3]、SVM[4]。SVM采用结构风险最小化原理,具有较快的收敛速度、较小的绝对误差、较强的抗过拟合能力等优点[5,6]。同时SVM适用于小样本分类,因此采用了SVM模型进行面色分类。但较少研究对SVM参数进行优化,如文献[7]侧重于降低特征维度;文献[8,9,10]侧重于特征的提取。其在SVM参数的选择上依赖于经验。

SVM适合于线性数据的分类,但是生活中很多数据并不是线性的。若用于非线性数据的分类则需将该数据映射到高维空间,才能更加简单地进行数据分类。在计算数据内积需要使用核函数简化计算。SVM的分类性能非常依赖于合适的核参数以及惩罚参数,然而这些参数通常是凭借经验数据来选择。参数的选取渐渐成为机器学习的一个重要研究领域[11,12]。在SVM参数的选择上存在多种方法,如高雷阜等[13]引入有向搜索以及利用时变函数更新信息素的原则对蚁群算法加以改进,该算法能够有效优化SVM参数,从而提高SVM的分类精度;王春枝等[14]将人工蜂群算法和SVM结合,通过同步处理SVM 的参数和特征选择问题,能够提高SVM分类器的整体性能。陈俊梅等[15]选择SVM核参数以及特征值充当遗传算法的染色体进行选择、交叉以及变异操作。通过轮盘赌以及加权深度优先搜索结合的机制初始化群体,并自适应优化交叉概率与变异概率,最终有效提高SVM的性能。尽管这些方法能够有效地提高SVM模型的泛化性能,但也存在不足之处。例如遗传算法的参数比较多,而且需要对特征进行二进制编码,实现步骤也较为繁琐,同时参数的选择也会影响到算法的寻优性能;蚁群算法的计算量较大,因此寻优过程比较耗时;人工蜂群算法一般需要依靠经验来确定相关参数,而且很大程度受具体问题以及环境的影响[16]。

粒子群算法(PSO)是一种启发式算法,其具有参数较少、实现简单、收敛快速、全局寻优能力较强等优点。但是PSO算法通常采用惯性权重递减的更新方法,在后期寻优迭代中惯性权重的取值会越来越小,算法的全局寻优能力会渐渐衰弱,以至于存在种群多样性不够丰富的缺陷,容易使算法过早收敛,陷入局部最优。因此本文提出一种基于自适应高斯调整粒子群算法(Adaptive Gaussian particle swarm optimization algorithm,AGPSO)优化SVM模型,称之为AGPSO-SVM模型。针对SVM小样本分类现存的问题,利用非线性函数对惯性权重按先增后减的方式进行更新;对于每个粒子速度采用惯性权重的不同维取值在一定范围内随机波动;对于处于不利状态的粒子采取高斯分布模型有选择地赋予随机值;利用AGPSO-SVM模寻找合适SVM的惩罚系数以及多项核函数参数。实验表明所提出的AGPSO-SVM模型,能够有效提高面部颜色识别的准确率。

2 AGPSO-SVM原理

2.1 SVM的基本原理

SVM由Vapnik等于1995年首先提出,其主要思想是最大化类之间的边界[17]同时最小化结构风险及经验风险。SVM在处理线性数据时表现突出,而对于处理非线性数据则预测能力不佳[18],通常的解决方法引入核函数。多项式核函数是一种全局核函数,能够将特征数据映射到高维空间,同时其幂次数较低时计算较简单,因此采用的是多项式核函数,如式(1)。

(1)

SVM中需要求解的最优化问题如式(2)

(2)

其中,αi是拉格朗日乘子;C为惩罚因子;xi是样本点i;yi样本点xi的标记。

对样本点x,SVM的决策分类函数如式(3)为

(3)

2.2 SVM的基本原理

(4)

(5)

2.3 AGPSO算法

在粒子群算法中,若惯性权重取较大的值则算法全局寻优能力会较强,然而算法的收敛速度较慢。反之算法局部寻优能力较强,算法容易陷入早熟,因此惯性权重如何平衡全局寻优能力以及局部寻优能力尤为重要。通常在寻优过程中采取线性递减的策略对惯性权重进行设置。但在寻优过程中采取线性递减策略更新惯性权重,在前期迭代中其取值较大,全局寻优能力会较强,容易跳出局部最优从而有利于找到全局最优,到了后期迭代,惯性权重会越来越小,全局寻优能力越来越弱而局部寻优则越来越强,收敛速度越来越快,因此不利于跳出局部最优,从而出现早熟现象。为了解决采用线性递减的策略带来的弊端,本文所提出的 AGPSO算法采用非线性函数更新惯性权重和高斯分布模型重置不利粒子的策略。在权重更新上,AGPSO算法的惯性权重在前半段迭代中逐渐增加,在后半段迭代中逐渐减少。在标准PSO算法中,每个粒子速度的各维值的更新都是采取相同的惯性权重,但是粒子的各维值的变化量却不一样,因此AGPSO算法对粒子速度的部分维值采用不同的惯性权重进行更新。惯性权重计算如式(6):

(6)

式(6)中,ωid为粒子i第d维的惯性权重;ωmin,ωmax分别表示为惯性权重的下限以及上限;maxgen为最大迭代次数;μ表示为惯性权重的波动系数;rand、rands分别表示为在区间[0,1]和[-1,1]内服从均匀分布的随机数。

仅仅利用线函数和非线性函数更新惯性权重均不能够有效地增加种群的多样性;当粒子往反方向飞行时,可能该粒子陷入局部最优;在粒子位置定义内,对不利方向飞行的粒子赋予均匀分布随机数,各随机值的概率一样,同时没针对性。考虑到上述问题,因此在粒子位置迭代更新的过程中,对于向着不利方向飞行的粒子有选择性地利用高斯分布模型产生的随机值来对粒子位置进行重置,从而使粒子种群的多样性更加的丰富并且降低算法陷入局部最优的可能性。为了使所的赋值更具针对性,采用当前粒子位置、个体历史最优位置和全局最优位置决定高斯分布模型的均值及方差。位置更新如式(7):

(7)

2.4 AGPSO算法

AGPSO-SVM模型的基本思路是:粒子的位置信息由惩罚系数C及核函数参数γ、r及d组成。适应度的取值则是由验证集对SVM预测模型进行验证所得的误差构成。首先初始化PSO参数并将位置信息传给SVM作为模型参数值进行训练SVM预测模型及计算出适应度值,然后根据粒子的当前位置、个体历史最优位置以及全局最优位置对种群所有粒子的位置信息进行更新。如果粒子当前适应值大于上一个适应值,则使用高斯分布随机数按一定比例对这些粒子进行重置,再更新个体及群体的最优值位置,否则直接更新个体及群体的最优值位置。最后循环更新操作直到满足终止条件,将最终输出全局最优值所对应的位置信息作为SVM分类器的最终参数值,建立最终的SVM预测模型。

步骤 1:初始化参数。即对最大进化次数、种群规模、惯性权重上下限、加速因子、初始速度及位置等PSO 的参数进行设置。

步骤2:设置 SVM 的相关参数。核函数设置为多项式核函数,设置结束条件,即误差小于1e-6或者训练100次结束。

步骤3:计算适应度值f以及寻找最优位置。将粒子的初始位置作为SVM中惩罚系数C以及核函数参数γ、r以及d的初始值,然后进行SVM预测模型的训练,采用验证集所得的误差作为粒子的初始f,并寻找粒子的初始历史最优位置lbest以及初始全局最优位置gbest。

步骤4:惯性权重更新。按照式(6)更新算法惯性权重。

步骤 5:更新粒子的速度与位置。依照式(4)以及式(7)来更新速度以及位置信息,在速度与位置中对越界的某维度上的值进行剪切处理,如果它们存在的某维上的取值超出上限则该维的值设置为上限,如果它们存在的某维上的取值超出下限则该维的值设置为下限。

步骤 7 :判断是否结束迭代。假如符合终止寻优迭代条件,则结束算法寻优过程并输出全局最优解,否则程序返回到步骤4,继续求解。

步骤 8:将结束算法寻优后所得到的最优解作为SVM分类器的模型参数,重新训练预测模型。 AGPSO-SVM算法流程如图1所示。

图1 AGPSO-SVM算法流程图

3 实验分析

3.1 实验数据

图2 面部块定义

数据集来源于基金项目舌面诊仪提供商,包含384张面部图像,本文仅对于数据集中无个人信息及资料暴露的皮肤颜色分析,即不涉及面部特征的局部颜色分析。由专业的中医医师对数据集进行筛选及标记,从数据集中剪切出54张脸颊红(a)、44张脸颊黄(d)、30张额红(c)、45张额黄(d)、51张鼻红(e)以及32张鼻黄(f),其区域状态如图2所示

由于未能查到公开的病人面色数据库,针对有限的样本,利用镜像变换、调节对比度与亮度以及弹性变换对各类数据进行扩增,并将其尺寸规范到64×32。为了降低主观因素对实验产生的影响,从最终扩增的各类别数据中均随机打乱顺序并挑选出前200张。

训练策略是每一种类别都训练一个分类器,其中训练集、验证集与测试集的比例为3:1:1,它们均由正负样本按1:1组成,其中负样本由其余类别按等比例组成,实验中各类别的训练集、验证集与测试集组成情况为:a:180、60、60;b:240、80、80;c:150、50、50;d:150、50、50;e:210、70、70 ;f:180、60、60。

根据实际背景,将实验设备配置录入表1中。

表1 实验设备配置

3 .2 AGPSO算法性能测试

采取标准测试函数Sphere、Griewank、Ackley以及Rastrigin对本文提出的AGPSO算法和对比算法进行测试。每个标准测试函数均对每种算法进行100次测试实验。粒子群算法参数的设置情况如下:种群大小N=30,粒子维度dim =30,最大迭代次数maxgen=400,学习因子c1=c2=2。表2为标准测试函数的实验结果,从该实验结果中可以看得出:不管利用那一个标准测试函数对5种算法进行测试,AGPSO算法的最优收敛值及平均收敛值都小于其它算法的。由此可以说明采用增减结合更新惯性权重和高斯分布模型重置不利粒子的策略具有优越性,能够有效降低算法在寻优过程中陷入局部最优的可能性。

表2 标准测试函数结果比较

图3是在不同标准函数下,各算法寻优过程的对比图。横坐标为迭代次数,纵坐标为对全局最优值取以 10为底的对数。从各图中的曲线对比情况来看AGPSO算法收敛比较晚,寻找到的最优解在测试算法算法中最优,其它算法出现了早熟现象。由此可知AGPSO算能够增加种群多样性避免陷入过早收敛,有利于跳出局部最优达到全局最优。

图3 四种标准测试函数寻优过程

3 .3 实验结果分析

表3 面部块颜色识别中不同算法训练时间的比较

表4 面部块颜色识别中不同算法的准确率比较

由表3以及表4可以看出,在面色识别上KNN的平均识别正确率为82.85%在所有方法中最低,AGPSO-SVM平均识别正确率为92.26%在所有方法中最高。PSO-SVM及AGPSO-SVM的平均正确率均比其余的方法都要高。SVM的平均训练时间最短,耗时0.0800s。AGPSO-SVM的平均训练时间仅次于SVM,耗时0.1058s。NB平均训练时间最长,耗时23.1492s。NB准确率比常规SVM要高,但是训练耗费时间远大于SVM。 AGPSO-SVM 相对于传统的BP神经网络、NB、KNN、SVM及PSO-SVM的识别准确率有所提升,而且 AGPSO-SVM准确率比常规SVM的高出5.25%。这说明AGPSO-SVM能够选择出适合的SVM参数。实验结果表明,AGPSO-SVM 模型能够有效提高了面部块颜色识别的准确率。

4 结论

传统面色识别主观性较强,识别结果有所差异。为了提高识别精度,提出了一种AGPSO-SVM预测模型。针对标准PSO算法存在难以满足种群多样性的缺陷,而采取非线性函数先增后减的惯性权重的更新策略并且在寻优过程中粒子速度的不同维取值都有不同的惯性权重,同时对于处于不利状态的粒子采取高斯分布模型有选择地赋予随机值。该模型能够丰富算法在寻优过程中粒子群的多样性,能够选出适合的惩罚系数及核函数参数,提高SVM预测模型的性能。实验表明AGPSO-SVM 模型在面部颜色识别上准确率有所提高。多项式核函数也存在其缺点:当幂次数设置较低时计算较为简单,然而当其设置太高时,计算所得的数值会很高或很低,稳定性容易受影响。因此今后工作将是利用多项式核函数与径向基和函数组成混合核函数以改善SVM性能。

猜你喜欢

分类器惯性全局
领导者的全局观
少样本条件下基于K-最近邻及多分类器协同的样本扩增分类
学贯中西(6):阐述ML分类器的工作流程
基于AdaBoost算法的在线连续极限学习机集成算法
再撑一下
无处不在的惯性
对惯性的认识误区
统筹全局的艺术
无处不在的惯性
2009年高考物理专项训练题三 牛顿运动定律