基于KNN改进神经网络的测试系统自动设计
2022-06-14李晓琳
李晓琳,谢 帅,岳 健
(中国飞行试验研究院飞行试验测试航空科技重点实验室,陕西 西安710089)
1 引言
自动测试系统最早应用于20世纪60年代,随着信息技术的迅猛发展,在国防工业领域内的地位日益突出。自动设计模式经过组合式组建概念、标准化测试接口、基于VXI、PXI等高速内总线集成技术的革新和突破,呈现出由“模块化、标准化”向“高精度、小型化、测试数据管理智能化”发展的态势[1]。在理论研究方面,文献[2]提取测试系统的共性内容形成插件库和执行工具,设计并实现开放灵活低成本的自动测试系统通用软件平台;文献[3]基于网络自动测试系统模型框架,提出基于XML的测试脚本设计规范,在解决汽车零配件老化性能测试和漏泄电缆质量检测方面效果显著;文献[4]依据飞行器综合控制系统的特点,采用PXI总线技术组建了自动测试系统,实现了对飞行器综合控制系统的自动化测试;文献[5]通过研究活动图建立规则,基于模型提出了UML活动图和遗传算法相结合的测试用例自动生成方法,构建自动化测试平台并提升了软件测试质量;文献[6] 结合自动测试系统的低成本、软件可重构等设计原则,通过对比各项技术实现基于 FPGA和 Lab VIEW 的软硬件设计方案并实现,使自动测试系统能够快速响应编程需求。以上自动测试系统均是以形成专用设备或系统性能自检模式、构建自动测试平台为目的,对其自动测试系统本身的自动设计方法未有涉猎;而机载测试系统本身就是以飞行器关键参数为被测对象、以飞行试验为应用场景、以完成试飞测试任务为目的一种自动测试系统,相对需求更为复杂、任务变化更为灵活,因而提升其设计过程的效率以确保试飞任务节点尤为重要,机载测试系统的自动设计方法亟待研究。
在飞行试验领域,为满足新型飞机鉴定需求,机载测试系统通常基于新机性能评价提出的测试任务,设计一套集前端信号感知、数据采集、记录和遥测传输为一体的系统。测试工程师首先要对参数需求进行分析,将其整理、归类后,再依据各种测试设备的性能指标,结合经验选择适用于试验鉴定的采集、记录设备,工作重复性严重且容易造成人为差错,缺乏智能辅助手段,对系统设计效率十分不利。
为提高测试方案设计的效率和质量,本文从常规设计流程出发,开展针对任务参数解读的机器学习算法研究,提出基于BP神经网络改进的KNN算法,利用预测模型使测试参数准确分类,分类结果匹配至对应的信号采集方式,实现测试系统整体设计流程的自动化。
2 机载测试系统自动设计方案
基于流程模块化分解的设计理念,测试系统自动设计方案如图1所示,主要包含测试参数自动识别、测试参数集中管理和测试系统自动构型三部分。
图1 测试系统自动设计方案
测试参数自动识别是根据参数信息特征向量,采用机器学习算法实现参数快速自动归类,并按类别形成参数表,便于参数集中管理和采集方式自动匹配。本方案所采用的机器学习算法为基于KNN改进的神经网络算法,后文将详细阐述。
测试参数集中管理是在参数自动分类的基础上,设计条件映射机制使各类参数实现自动匹配,并将测试设备属性、功能等关键信息嵌入至参数管理界面,完成系统设计过程中设备性能指标信息可调用、采集方式自动配置、参数完整信息输出和采集模块自动统计等关键功能,为测试系统自动构型方法提供依据。
测试系统自动构型方法是个根据参数自动分类和采集模式自动匹配后的结果,在满足科研试飞任务需求的情况下,统计测试所需采集和记录模块数目,并按模块功能和容量限制等设计原则建立“最小测试系统”,即以最少数目、最小负载的测试设备完成测试系统的构建,最终将测试参数和资源设备最终配置信息整合输出,具体步骤将在后文阐述。
3 基于KNN改进BP神经网络算法的测试参数自识别技术
3.1 KNN机器学习算法
KNN算法的思想是对于任意n维输入向量,分别对应于特征空间中的一个点,输出的结果是预测区间范围或所在类别,也就是说训练样本集中每一数据与所属类别有对应关系。
若输入数据没有标签,那么将这个数据的每个特征与训练样本集中数据的特征进行比较,最终的分类标签(所在类别)是训练样本集中与之特征最相近数据的类别[7]。
KNN算法主要计算待测样本数据与总体样本数据的距离,然后将最相邻的样本数据作为决策对象来使用该算法。KNN 算法中最为重要的部分就是三要素,分别是K值的选取、分类决策的方式以及如何度量距离。
K个样本是最近邻的关系,当这K个样本符合一个具体的类别时,也就确定了未知样本是也属于该类别[8]。
针对测试参数的KNN算法在计算时,首先输入历史测试参数名称、类别的训练数据集:T={(x1,y1),(x2,y2),…,(xn,yn)},去其中xi∈X⊆Rn为n维的实例特征向量。
yi∈Y={c1,c2,…,cK},其中i=1,2,…,N为参数类别的类别,其中,i=1,2,…,N,预测任务输入参数x。输出:预测任务参数x所属参数类别y。
具体计算步骤:
1)根据给定的距离量度欧氏距离在训练集T中找出与x最相近的k个样本点,给出相似度的就计算结果,并将这k个样本点所表示的集合记为N_k(x);
欧式距离算法表达式为
(1)
其中,T={(x1,y1),(x2,y2),…,(xn,yn)}作为训练样本集,Sim(xk,yk)值越小则欧氏距离越短,越接近目标条件,即预测参数xi越趋近于目标参数yi[9]。
2)选取合适的K值
KNN算法中只有一个超参数k,对预测结果影响很大。如果k值比较小,就是说在进行预测的训练样本实例范围较小。这时,在输入与实例相近的训练样本对预测结果才会起作用,算法的近似误差则比较小。但是,它也有明显的缺点:算法的估计误差比较大,预测结果取决于近邻点,若近邻点为噪声点那么预测结果容易出现错误。因此,k值过小容易导致KNN算法的过拟合。同理,如果k值选择较大的话,距离较远的训练样本也能够对实例预测结果产生影响。这时候,模型相对比较鲁棒,不会因为个别噪声点对最终预测结果产生影响。但是缺点也十分明显:算法的近邻误差会偏大,距离较远的点(与预测实例不相似)也会同样对预测结果产生影响,使得预测结果产生较大偏差,此时模型容易发生欠拟合[10]。
因此,在实际工程实践中,可采用均方差方式选取k值,描述样本的分布程度。通过以上分析可知,一般会在较小范围内选取k值,同时把测试集上准确率最高的那个确定为最终的算法超参数k。
(2)
如式(2)所示,其中,x为期望值,xi代表每个样本数据,n代表数据样本总数[11]。
3)根据如下所示的多数投票的原则确定实例x所属类别y
(3)
其中,i=1,2,…,N;j=1,2,…,K。
上式中I为指示函数
(4)
3.2 BP神经网络算法
BP神经网络是基于多层传递函数的学习网络,主要由输入层、中间层以及输出层组成。首先输入层获取外界信息,然后传递给中间层,由中间层各个神经元进行计算,最后分发至输出层,而中间层的处理过程可以存在单隐藏层或多个隐藏层,这也充分体现了BP神经网络具有多层节点输出模型和隐含层节点输出模型的特点,且具有反向误差反馈的特征。
由于连接隐藏层节点的权重系数不同导致作用于输出层节点的权重不同,连接权重系数由以下两部分组成:
1)wfm:输入层节点Df连接到中间层节点Dm产生的权重系数;
2)wfj:中间层节点Dm到输出层节点Dj产生的权重系数[12]。
图2 算法流程图
图2为BP神经网络算法的流程图,当输出层将信息输出给外界时,会将信息形成一个反馈作用,对比输出参数类别和实际类别,若误差无法满足任务参数分类判定需求,则通过反向传播的方式调整修正各层节点的权重值。BP神经网络通过对输入历史任务参数信息样本不断训练学习修正各层权重值,即信息顺序传播与反向传播反复交替出现,最终使训练模型达到最优。隐藏层误差计算和训练模型表达式分别如式(5)和(6)所示
(5)
式(5)中Ep为隐藏层期望输出,tpi为节点i的期望输出,Opi为节点i的实际输出。
Δwfj(n+1)=mgφfgOj+αgΔwfj(n)
(6)
式(6)中的m为学习因子,α代表动量因子,φf和Of都代表是计算误差值[13]。
3.3 KNN改进的BP神经网络算法
在测试参数自动识别的训练过程中,采用BP神经网络算法任务校正具有不确定性的参数训练模型,而对于缺少的参数信息则通过KNN算法来预测补充,避免单一算法对历史数据预测结果造成的不完备性,提高训练模型精确度,降低预测结果误差。
如下图所示,KNN算法改进的BP神经网络是算法预测流程是首先将任务参数输入到判读模块,若预测结果出现异常则利用KNN算法对训练模型进行修正,将修正信息传递到BP神经网络算法中进行学习训练,建立基于输入任务参数的准确训练模型,BP神经网络算法和KNN算法的学习过程一直依赖于知识库中的历史任务参数信息,并通过不断迭代修正训练模型最后给出高可信度的预测测试参数信息[14]。
图3 KNN改进后的算法流程图
结合3.1节和3.2节对两种算法的描述,KNN修正的BP神经网络算法训练样本任务参数具体方式如下:
1)输入历史任务参数的原始样本为T,数量为N个,最后得到训练后的样本为TKNN,可以将初始训练样本T分成两个结合T1和T2。
3)对于异常任务参数集合的T2,利用KNN是算法在正常任务参数集合T1中选取K个最近邻样本数据,通过计算出K个最近邻的权重系数得到T2KNN,校正完成后与正常任务参数T1集合合并成TKNN;
4)KNN训练结束后利用新的集合输入到BP神经网络中对输入的新样本X预测结果;
5)当样本X满足校正条件后从TKNN中选取K个最近邻参数,计算取代异常值权重后组成新集合XKNN,利用BP神经网络对XKNN样本进行预测,得到XKNN属于某类别的概率为P,最终得到X中每个参数的预测结果集合Y。
其中,α、β分别表示KNN与BP神经网络进行预测的置信度权重系数,应满足α+β=1[15,16]。
为了验证算法预测结果的准确度,选取49个数据作为训练样本,训练最大次数100,全局最小误差0.005,动量因子0.9,学习率0.025,采用KNN改进BP神经网络算法前后,仿真效果的对比如图4所示。可见相较于单独采用BP神经网络算法而言,经KNN改进后的算法预测能力表现平稳,因此用来作为测试参数自动识别和分类的算法。
图4 KNN改进BP神经网络算法前后对比结果
以图5所示环境温度参数示例,任务参数输入格式(即表头属性)一致,在学习训练时,首先进行关键特征提取,如“参数名称”包含“温度”、“参数符号”为“℃” 、“加装”选择“√”等元素;然后进行权重计算,如“参数符号”为“℃”的特征项与参数类别“环境温度”分类贡献度最高,“参数名称”包含“温度”的分类贡献度次之,“加装”选择“√”最低;最后根据KNN改进的BP神经网络算法计算其分类结果,对应参数所在类别。分类流程如图6所示。
图5 测试任务书中环境温度参数摘录示例图
图6 参数分类流程图
在测试系统自动设计过程中,选取历史任务参数量为100个的输入样本集合,其中任务参数种类包括过载、应变、环境温度、压力、环境振动等13类参数。
预测算法的置信度权重设置为α=0.3,β=0.7,设定K值为4,规定异常输入信息参数个数大于2时样本无效,所以针对异常个数分别为 0、1、2时分析预测结果。实验的结果如表1所示。
表1 两种方法预测结果准确度对比
经KNN改进后的BP神经网络算法能够保证测试参数自动识别和分类的精度要求,为后续测试参数集中管理、采集方式自动匹配和测试系统自动构型提供依据。
4 基于机器学习的机载测试系统自动设计
4.1 机载测试系统自动设计流程
机载测试系统自动设计软件包括5个功能模块,如图7所示。
图7 机载测试系统自动设计软件功能模块
文件输入输出模块:使任务参数可通过文件批量输入,经过参数自动识别、采集方式匹配、系统构型等运算后,形成完整的测试方案输出为标准文件。
参数自动分类模块:包含历史参数分类信息库和KNN分类算法,实现输入任务参数按信号采集方式等测试原则准确分类。
设备关联信息管理模块:在测试参数集中管理过程中,用于设备主要功能信息的导入,其结果作为采集方式自动匹配的依据。
初步选型模块:在参数类型自动识别和分类后,基于类别和采集方式设计原则产生映射关系,结合设备关联信息实现采集方式自动匹配,并可根据实际需求编辑,作最终确认。
编辑模块:整个测试系统设计的过程中若存在不完全符合参数实际测试方式的内容,可根据相应设计原则进行编辑或修改。
在形成以上功能模块的基础上,设计软件流程如图8所示。
图8 测试系统自动设计软件流程图
4.2 机载测试系统自动设计软件演示
以某飞机试飞任务测试需求为例,测试系统自动设计的效果如下:
1)首先,任务参数表作为txt形式导入至软件中,导入的任务参数作为待预测分类参数;
2)在历史任务参数训练样本库的基础上,采用基于KNN改进的BP神经网络算法算法,对任务参数进行类别预测,自动分为若干类,形成如图9所示的参数自动分类界面;
图9 参数自动分类界面
3)参数集中管理界面如图10所示,对于编辑表格中每一行的测试参数,可根据预测类别自动匹配该类别下的测试传感器、调节器与采集模块,编辑传感器、调节器、采集模块编号与匹配通道;
图10 参数集中管理界面
4)根据参数集中管理、配置后的结果,采用测试系统自动构型方法形成“最小测试系统”。首先统计所需基础采集模块及其编号如图11所示;然后,依据测试设备功能、容量限制等设计原则,如一台采集机箱至多放置10块采集模块、每台机箱KAD/ADC/109采集模块不超过5块等限制要求;再结合如图12所示GPS数据定位、数据遥测传输、专用采集器等子系统关联方式,关联配置信息,最终导出为excel形式并统计测试系统建立所需的测试资源、参数测试方式等信息,导出测试参数资源自动配置信息如图13所示。
图11 采集基础模块统计结果
图12 子系统关联关系配置界面
图13 导出后的测试参数资源自动配置信息
基于机器学习的机载测试系统自动设计软件已在多型飞机试飞任务中使用,具有良好的开放性和灵活性,运行效果表现优异,据统计:平均缩短测试任务周期约41%,测试方案设计准确度提升约24%。
5 结论
本文首先从测试系统常规设计思路出发,将设计流程模块化分解并加以优化,提取设计过程中测试参数自动识别、测试参数集中管理和测试系统自动构型三个关键步骤,形成机载测试系统自动设计方案;针对测试任务参数判读和信息自动读取,提出基于KNN改进的BP神经网络算法实现输入测试参数的高精度自动分类,保障测试系统自动设计软件的顺利运行,保证任务需求完整度和数据容量。
基于机器学习算法的机载测试系统自动设计技术的研究结果不仅能够以智能化手段减少人为差错、大幅提高测试系统设计的效率和质量,而且对未来测试一体化设计平台的打造具有重要意义。