麻安鹏, 王 君, 杜金星, 杨本娟
(贵州师范大学 数学科学学院, 贵阳 550025)
随着信息时代的到来,接收到的信息数据更加复杂多变,这些数据大多都以张量的形式表示,特别以张量的高阶形式表示,例如:三阶张量有彩色图片、灰度视频等;四阶张量有彩色视频、带时间序列的灰度视频等。因此基于张量数据的机器学习方法成为研究学者们广泛探讨的问题,同时也涌现出了大量针对张量数据(三阶及以上)学习的算法,支持张量机算法就是其中之一。支持张量机是主要针对张量数据学习的算法,是支持向量机从向量空间到张量空间理论和方法的推导。基于支持向量机的学习框架,Tao等人结合交替投影的思想以及多线性代数的运算,提出了有监督的张量学习框架,但这种推广只是简单地将向量形式的数据输入变成张量形式的数据输入而已,在本质上并没有解决实际问题;接着Tao等人又将双向最优投影算法与有监督的张量学习框架结合,提出了支持张量机(STM)算法。
支持张量机模型的求解与支持向量机模型求解相似,都需要构造一个最优分类超平面,不同的是在对支持张量机求取分类超平面时需反复迭代求解超平面所需的参数,在此过程中计算量大、时间需求长、内存要求高。但如果直接将张量数据拉成向量形式的数据输入到支持向量机中对数据进行处理的话,可能出现以下问题:
(1)无法获得原始数据中潜在的、更有意义的信息。因为将张量数据拉成向量数据的形式对数据进行处理,可能会使数据与数据之间的联系遭到破坏,使数据中重要的信息丢失和数据中存在的冗余信息被掩盖;
(2)容易产生高维向量,限制后期学习。从而导致数据分类正确率低等情况,而采用支持张量机算法对张量数据进行处理,就能很好的解决上述存在的问题,故而一些关于支持张量机算法改进方法被提出。
支持张量机是在支持向量机的基础上推广而来的,最初只是在支持向量机上简单的将输入参数从向量形式输入变成张量形式输入,也就是将x→X,w→W输入,再把向量的乘积变为张量的内积即可。仔细观察发现该模型与支持向量机并没有什么本质上的区别,因为张量的内积与将张量展开成向量求取向量的乘积结果相同,这意味着其结果与直接将数据展开成向量并采用支持向量机的结果是一样的,这种只改变输入方式,而不对模型进行优化的方法,本质上只是经典支持向量机的一个线性映射。如果只将这些输入参数变成张量的形式输入,这种推广无法体现支持张量机想要尽可能多的保留张量数据内部机构信息的核心目的。为了更多的保留张量内部结构信息,Cai等人提出了支持矩阵机模型;受支持矩阵机模型的启发,Tao等人将支持张量机的张量权重限制在CP秩意义下的秩一张量中[1],故而得到了经典支持张量机模型,在此模型中,张量的权重参数W的形式(1):
(1)
再采用交替投影法求取W,得到的分类决策函数为式(2):
(2)
经典支持张量机模型式(3):
(3)
求解该模型一般转化为其对偶问题的求解,对偶问题为式(4):
(4)
再通过SMO算法计算出W,最后再求出决策函数式(5):
(5)
优化经典支持张量机模型主要从减少储存空间、缩短分类时间、提高模型精度和扩展模型性能等对模型进行优化,也就是从输入数据、模型内部运算和其他方面扩展对模型进行改进。
对数据预处理,从而减少存储空间、缩短分类时间。数据预处理主要是对数据进行降维处理,收集到的数据大多包含许多冗余信息,但这些冗余信息在数据分类和特征提取中,并不是所有特征都是有用的。因此想要在运算过程中缩短训练时间,可在对数据分类之前对数据降维处理。对张量数据降维处理的方法有:主成分分析算法(PCA)、递归特征消除法(RFE)、多线性主成分分析算法(MPCA)、无关多线性主成分分析算法(UMPCA)、流行学习等。采用PCA对张量数据降维,首先要将张量数据拉成向量的形式,故而PCA主要针对向量数据降维;而采用MPCA算法可直接对张量数据降维,不仅能够保留张量数据固有的高阶结构和内在相关性,还能为后续训练降低计算成本,故而MPCA主要针对张量(三阶及以上张量)数据降维;RFE主要针对数据中冗余信息繁琐,不相关的数据进行分类的特征选择方法;UMPCA主要提取无关特征,以确保保存数据中更重要的信息;流行学习主要是为了保存数据内部结构被提出的。
改变张量内积求解方式,从张量模型内部提高模型精度。基于支持向量机和支持张量机的理论与发展过程,通过研究与分析,可知支持张量机主要在张量的分解上进行了一系列的改进,期望在分类结果中体现不同张量内部的结构信息,常常使用CP分解、Tucker分解的方式来求取张量内积,从而改进支持张量机中求核矩阵的方法。
令张量Xi∈RI1×I2×…×IN和张量Xj∈RI1×I2×…×IN:
(1)CP分解求取张量内积公式(6)为:
(6)
(2)Tucker分解求取张量内积公式(7)为:
(7)
对于扩展模型的应用方面,将在线学习与支持张量机结合在一起,提出在线支持张量机算法;将半监督学习运用到支持张量机上,提出半监督支持张量机算法。
(1)在线学习与支持张量机。由于数据的未知性,无法预测数据到达的时间以及顺序,也不可能将所有数据都打包存储起来批量学习。因为这样的批量学习,不仅浪费时间和储存空间,还不能保证数据的时效性,故而将在线学习与支持张量机结合,提出了在线支持张量机、快速支持张量机、在线最小二乘支持张量机等算法。这些算法都是支持张量机关于在线学习方面的拓展应用,可以有效减少模型训练的时间和储存空间,同时能够更好的保障数据的及时性。
(2)半监督学习与支持张量机。针对支持张量机训练时间较长问题,将半监督学习运用到支持张量机上,以减少支持张量机训练时间。支持张量机主要依赖于有标记的训练样本,对于未标记的样本往往“束手无策”,但在大多数情况下,不可能去对所有数据进行逐个标记。基于这种考虑,结合半监督学习的优点,将半监督学习运用到支持张量机上,提出了最小二乘半监督支持张量机学习算法、基于Tucker分解的半监督支持张量机、半监督张量学习的图像分类等模型,这种结合不仅能充分利用未标记数据,减少时间投入,还能非常有效的提升支持张量机算法的识别率。
在人工智能领域,如人脸识别、图像分类、遥感图像分类等图像处理中支持张量机算法应用十分广泛。
(1)人脸识别。首先提取需要识别的人脸图像的特征信息,也就是对人脸进行一个特征建模,再将提取的特征信息与数据库中已知人脸图像进行比较,相当于解答模型是否正确的过程,最后得到相关结论。决定人脸识别效果的关键,通常与选择特征提取方法和分类器密切相关,常见的特征提取和降维算法有主成分分析(PCA)、多线性主成分分析(MPCA)、递归特征消除法(RFE)等;常用的分类器有最近邻分类器(KNN)、支持向量机算法(SVM)、支持张量机算法(STM)等。首先采用MPCA对人脸数据降维处理,再用支持高阶张量机对数据分类识别[2]。与PCA算法相比,MPCA算法对张量数据降维可有效地降低后续训练时间,同时更好的保留张量数据内在的空间结构信息,从而提升识别性能。
(2)图像分类。图像分类是指对给定的图像,判断其所属的类别。但在实际应用中,图像往往包含多个物体,需要评估图像分类的可行性。把基于向量空间中的模糊支持向量机推广到张量空间中,提出了模糊支持张量机[3]。首先利用手写体数字数据库对模糊支持张量机模型的分类性进行实验分析,同时验算算法性能,最后将模糊支持张量机算法应用到羽绒菱节图像中,通过对比表明该算法能有效提高图像分类识别率。
(3)遥感图像分类。基于支持张量机算法提出了支持规范张量训练机,此算法主要用于二进制分类,可有效的避免支持张量机将张量数据投影到向量的结构信息损失[4]。特别是在小样本的训练集下,能得到高效的识别分类结果。
文本分类主要是根据待分类数据的关键特征匹配,因此必须根据某种评价标准选择最优的匹配结果,从而完成分类,评价标准的选择直接影响分类器的分类性能。基于支持张量机的学习框架,采用交替投影的算法推出了支持张量机算法,再将支持张量机算法应用于文本分类[5]。结果表明,对于小样本数据该算法能有效降低数据特征维数,且在处理小样本数据与数据偏斜问题上有明显优势。
支持张量机应用于医学诊断,如:对阿尔兹海默症、肿瘤、癫痫疾病等的诊断。将支持张量机算法应用于阿尔兹海默症的脑白质图像分类,并结合递归特征消除法对脑白质图像进行特征选择,取得了很好的分类效果[6]。结果表明,该算法能有效诊断阿尔兹海默症。
支持张量机是支持向量机理论和方法到张量空间的推导,本文从减少储存空间缩短分类时间、提高模型精度和扩展模型性能等方面对模型进行优化,同时列举了支持张量机算法在现实生活中的一些应用。对于支持张量机的优化问题,可从以下二方面做进一步的探讨:
(1)支持张量机与在线学习结合主要针对的是低阶张量数据,可扩展到高阶的张量数据上。
(2)目前对支持张量机的研究大多是线性的,而基于非线性方向的研究还比较少,可向非线性方向扩展。