论文部分内容阅读
支持向量机(Support Vector Machine, SVM)作为统计学习理论的最新研究成果,成为近十几年来机器学习领域研究热点,由于其目标是在小样本情况下追求最优的泛化性能,从而在较大程度上解决了传统机器学习方法中的非线性、局部极值、过学习、维数灾难等问题;以结构风险最小化代替经验风险最小化、凸二次规划、Mercer核函数和解的稀疏性等特点,使得SVM算法具有结构简单、全局最优以及推广能力强等优点,自从被提出之日起,就在诸多复杂问题上凸显出其性能优势。但是,由于SVM在训练过程中需要消耗较大的存储资源,特别是在训练样本数量较多时,其训练速度往往成为实际应用的瓶颈,这在一定程度上制约了该算法的推广和应用。而在现实生活中各种嵌入式控制系统的使用越来越广泛,客观上也要求有更优秀的智能算法在这些平台上高效的应用,因此SVM算法在嵌入式系统中实现、应用研究成为不少研究人员努力的方向,也是比较具有实际意义的研究方向。现有的关于支持向量机算法在嵌入式系统平台上实现的研究大多关注于硬件平台的优化,包括并行处理单元的使用、分布式处理、存储单元的使用等,通常是以硬件花销换取性能提升。本文重点从软件的层面上研究支持向量机算法在嵌入式控制系统的实现,结合嵌入式控制系统的硬件资源极其有限的特性,以及支持向量机在训练算法上可以进行必要的改进的特点,力图以少量的性能损失换取实时学习速度的提升;首先根据目标平台的字长约束,将训练样本特征值进行必要的归一化、定点化或整型化处理后转化为定点数或整型数,以一定的精度损失带来训练过程数据计算的快捷性;然后根据字长k及设定的模型惩罚系数对标准SVM算法中的拉格朗日参数规范化为一定范围内的整数值,并作为训练过程待优化的参数,因此训练过程即为对每个在2K个整型值中的拉格朗日参数寻找最佳值作为最终模型参数;针对整型参数支持向量机算法模型中去除了等式约束条件而序贯最小优化(Sequential Minimum Optimum,SMO)算法不再适用的实际情况,文中采用改进的SMO算法,通过对优化目标的分析,提出了新的约束条件来选择最佳的优化参数,通过迭代的方法将训练过程的求解规模缩小至更小的范围,以此来提高整个训练过程的速度。最后,论文采用人工生成数据集和MNIST手写数字库数据集作为实验素材,以普通PC机和嵌入式实验系统为平台,对改进算法在多类分类问题上的应用进行了测试,并验证了这些改进方法的可行性,通过实验结果对这种平台上的性能进行了分析。