基于2,1范数和神经网络的非线性特征选择方法
2021-09-29范馨予徐雪远
范馨予 徐雪远 邬 霞
(北京师范大学人工智能学院, 北京 100875)
1 引言
随着机器学习的发展,学习任务的特征维度不断增加[1-3]。而在高维特征数据中,与任务不相关的特征数据或噪声特征数据存在的规模也不断增加[4]。这些特征数据不仅会降低学习任务的性能和效率,还会给结果的解释增加困难性。为了解决上述问题,特征选择和特征压缩变换常被用来降低特征的规模[5]。相较于特征压缩变换,特征选择能够不改变原始特征的物理属性及数据结构,更加有利于保留学习任务的可解释性[6]。
按照特征选择模型和学习任务模型的关系来说,特征选择算法可分为过滤式(filter)特征选择算法、包裹式(wrapped)特征选择算法以及嵌入式(embedded)特征选择算法[7]。过滤式特征选择算法通过某一种法则计算所有特征的权值,并根据权值大小排列挑选出重要的特征,例如ReliefF,拉普拉斯分数(Laplacian Score, LS)[8]和最小冗余最大相关算法(Minimum Redundancy Maximum Relevance, mRMR)[9];包裹式特征选择算法将所有特征分成不同的子集,用分类器对所有子集进行评价,挑选分类性能最好的特征子集作为最终的特征选择结果,例如序列特征选择(Sequential Feature Selection, SFS)算法[10]和遗传算法(Genetic Algorithm, GA)[11];嵌入式特征选择算法则是将特征选择的过程和学习的过程结合在一起,在模型训练的过程中筛选出与任务相关的重要特征,例如线性判别分析(Linear Discriminant Analysis, LDA)[12],最小二乘法(Least Square Method, LSM)[13],和随机森林(Random Forests, RF)[14]。对于这三类特征选择算法来说,过滤式算法的特征选择过程与分类学习过程相互独立,挑选的特征子集往往不是最佳的特征子集;包裹式特征选择算法由于依赖分类器来评价所有特征子集的性能,因此计算复杂度较高。而嵌入式特征选择算法将特征选择的过程融入分类模型的构建中,能够挑选出分类准确率较高的子集。
通常,正则化嵌入式特征选择算法在目标函数中加入惩罚项进行约束,来对目标函数的求解加以引导[5]。在目标函数构建中挑选符合学习任务的惩罚项,能够对最终的分类结果带来积极的影响。其中,最常使用的约束项p范数,因此对于p范数的正则化是当前研究热点。例如,Hoerl等人提出了基于2范数的有偏估计岭回归,其中的2范数对所有系数计算平方和根,因此该方法对于误差较大的离群值十分敏感[15]。但对于结构相似的特征子集,2范数无法收缩系数得到稀疏解。为解决该问题,Tibshirani等人提出了基于1范数的最小绝对值收敛和选择算子(LASSO)算法[16]。1范数采用正则化系数的绝对值进行求和,能够将大部分的系数收缩至零[17]。因此,基于1范数的模型能得到稀疏解。而1范数的模型只能解决单个任务的特征选择问题,并且对噪声数据十分敏感。G.Obozinski等人针对该问题提出了一种将1范数和2范数结合的联合2,1范数[18]。随后,Lai等人提出了一种鲁棒的局部判别分析方法,用2,1范数代替2范数构造类间散布矩阵。同时,他们在投影矩阵上施加了2,1范数,以保证联合稀疏性和鲁棒性[19]。Yang等人提出了一种将LDA和2,1范数正则化相结合的特征选择方法来实现特征选择。在这种方法中,他们使用2,1范数项对变换矩阵的行施加稀疏约束[20]。2,1范数利用组内和组间的联合关系,在全局的范围内使关联特征之间的系数为零,保证了系数的稀疏性和可解释性。因此,2,1范数在特征选择领域得到了广泛的应用[21]。
为了将重点落在原理的实现上,我们选择了最基础的后向传播神经网络(Back Propagation,BP)结构,且只使用了一层隐藏层。因此,神经网络的模型只由输入层,隐藏层和输出层构成。本章节使用的各参数定义如表1所示。
表1 各参数定义
一般来说,BP神经网络的正向传播过程的输出如公式(1)所示:
(1)
(2)
(3)
为了使模型更适合多分类任务,且避免概率分值不平衡,我们采用交叉熵损失函数作为神经网络的损失函数,将最大概率输出为输出。交叉熵损失定义函数为:
(4)
同时,输出层的激活函数配合使用softmax函数:
(5)
(6)
其中,λ为正则化参数,防止过拟合。且2,1范数表示为:
(7)
其中,a为w的总列数,b为w的总行数。因此,最终的求解问题表示为:
(8)
对于||W||2,1矩阵的偏导数的求解过程可表示为:
(9)
经过每一次前向传播和后向传播的迭代,输出与真实标签之间的误差会越来越小,此时设定迭代收敛的最小阈值来终止学习过程。为了直观地反映特征选择的结果,最后计算了权重矩阵W的2范数。综上所述,我们将本文提出的方法命名为BPFS。
3 实验及结果分析
3.1 实验过程
为了评估BPFS的性能,我们将BPFS特征选择方法与六种具有代表性的特征选择方法进行了比较,其中包括相关系数(Correlation Coefficient,CC)、ReliefF、mRMR经典的特征选择算法,以及通过线性方法优化范数的RFS[23]、SDFS[26]和L21-RLDA[27]特征选择算法。此外,选取公开的UCI数据集中的8个数据集对这些方法进行了验证,八个数据集分别为Binalpha[28],Control[29],Corel5k[28],Crowdsowrced[30],Isolet[31],Movementlibras[32],Segment[28],Sensorless[33]。表2显示了关于这些数据集的详细信息。
表2 各数据集信息
首先,我们使用七种特征选择方法选择不同数量下的特征。然后使用线性的支持向量机分类器(Support Vector Machine, SVM)和非线性的随机森林(Random Forest,RF)分类器分别对各结果进行分类,并且每次按照取百分之七十的数据作为训练集,剩下的数据作为测试集,重复多次取平均值作为分类准确度。为了提高效率,直接将数据集的所有样本和特征构成的矩阵作为输入传入输入层。需要注意的是,所有数据集都被零均值标准化。对于每次的分类结果,计算并记录平均准确度以及收敛性来检验所提出方法的性能。所有代码均在MATLAB上实现,其中SVM分类器是由LIBSVM工具箱实现的,RF分类器是使用内置函数实现。
3.2 实验结果及分析
算法的收敛速度能力一定程度反应了算法的效率和稳定性。为了加快计算速度和方便比较,将BP神经网络特征选择过程的迭代次数设为常数2500,各数据集收敛情况如图1所示。
图1 BPFS在各数据集中的收敛结果Fig.1 Iteration results of BPFS in all dataset
可以看到,在迭代2500的时候,所有数据集都很好的实现了收敛。大部分的数据在迭代次数为500至1000左右时实现了收敛,其中收敛效果最好的是Segment数据集,在迭代次数不到500时实现收敛。而Sensorless数据集收敛稍慢些,到近2000次迭代才收敛。因此,BPFS具备达到局部极小值的可能性。
图2和表3展示了SVM分类器下的7种算法在各数据集上的不同维度的分类准确度和所有维度下的平均分类准确度。
从图2可以看到,不同数据集各算法的分类准确度结果,每种方法的精度随着选择的特征数量增加变得更加精确。在SVM的结果中,BPFS算法在部分数据集中得到的分类结果相较其他算法具有一定的优势,并且在很多数据集结果中都是最先趋于平滑,快速地调整误差并选择有更具有代表的特征。不过需要注意的是,在Control,Crowdsourced和Movementlibras数据集中,BPFS算法并未取得明显的优势,尤其在Control和Crowdsourced数据集中提取的特征数量增长中后期。可能因为本文进行实验的BPFS使用的是简单基础的神经网络结构,对于特征量庞大的数据集需要更深的网络来实现更好的拟合。另外,结合表3所有维度平均分类准确度中的方差来看,BPFS算法在所有数据集中都取得了十分小的方差,因此,BPFS算法相较于其他算法具有更好的稳定性。
表3 七种特征选择方法在SVM分类器下的平均分类准确率和方差(%),其中加粗的是该数据集下准确率最高的方法
图2 7种算法在SVM分类器下各数据集上的分类准确度Fig.2 Accuracy result of seven algorithm in SVM
同理,我们可以得到在RF分类器下的7种算法在各数据集上的不同维度的分类准确度和所有维度下的平均分类准确度,如图3和表4所示。
图3 7种算法在RF分类器下各数据集上的分类准确度Fig.3 Accuracy result of seven algorithm in RF
在图3中可以看到BPFS算法在大部分的数据集中取了不错的结果,而在表4中可以看到BPFS算法在所有的数据集中得到了最高的平均分类准确度。因此,基于非线性结构的BPFS在不同的数据集中能够发挥较好的作用,在神经网络的协助下选择出更重要的特征。
表4 七种特征选择方法在RF分类器下的平均分类准确率和方差(%),其中加粗的是该数据集下准确率最高的方法
结合表3和表4分析BPFS算法在SVM分类器和RF分类器下的结果可以得到,RF分类器下BPFS的结果在大部分数据集上比SVM分类器下BPFS的结果高,只有在Corel5k数据集上低于SVM分类器。这可能因为Corel5k数据集中的相关联的特征较多,线性的SVM分类器能够更好地处理这些线性特征。同理,在Sensorless数据集的结果中可以看到,RF分类器下所有算法的平均分类准确度都要远远高于SVM分类器下所有算法的平均分类准确度。这两个数据集在SVM分类器和RF分类器下造成的差异的原因可能是因为Sensorless数据集中的特征结构是非线性的结构,且冗余特征较多,因此在RF分类器中都取得了不错的表现。