e、返回步骤b,直至各连接权的调整量很小为止。
三、结果与分析
(1)训练样本选取。
选取实际测试的误踩油门数据和正常踩油门数据。
(2)改进的竞争型神经网络设计。
选用5组样本作为网络训练样本,利用函数newc()创建一个竞争型竞争网络。
由于需要区分的类别数目为2类,故神经元的个数也为2,用数据样本对基本竞争型神经网络进行训练。
为了加快学习速度,将学习速率设置为0.1,训练次数为1000。
当达到最大训练次数时,训练停止。
(3)分类。
为了检查网络分类性能,需要对网络进行测试。
在Matlab平台下进行神经网络仿真,利用仿真函数sim()检验网络对误踩油门数据的分类。
一个特征值(幅值)
图2一个特征值,预处理数据后的分类结果
该分类器只设置了一个特征值,即踩油门时的幅值。
分类结果中的“1”代表正常踩油门数据,“2”代表误踩油门数据。
从分类结果图中,我们可以看出,5个样本数据,均在数据幅值为160左右的时候将数据分为正常踩和误踩,认为160以下为正常踩油门,而160以上为误踩油门数据。
而第三个样本,实际情况下是正常踩油门数据,所以该分类器没有正确对样本进行区分,所以该分类器不满足实际情况。
两个特征值(幅值和当前幅值与前30ms幅值之间的平均速度)
该分类器设置了二个特征值,即踩油门时的幅值和后一个幅值与前30ms幅值之间的平均速度。
分类结果中的“1”代表正常踩油门数据,“2”代表误踩油门数据。
从分类结果图中,我们可以看出,5个样本数据,均会将样本数据一部分为正常踩和误踩,而实际情况是第三个样本全是正常踩数据,所以该分类器不能够正确区分正常踩和误踩的情况,即该分类器选取的特征值不满足。
两个特征值(幅值和当前幅值与前45ms幅值之间的平均速度)
该分类器设置了二个特征值,即踩油门时的幅值和后一个幅值与前45ms幅值之间的平均速度。
分类结果中的“1”代表正常踩油门数据,“2”代表误踩油门数据。
从分类结果图中,我们可以看出,第1、2、4、5个样本数据,根据踩油门时的幅值和后一个幅值与前45ms幅值之间的平均速度将数据分为正常踩和误踩,而第三个样本,全部分为是正常踩油门数据,所以该分类器能够正确区分正常踩和误踩的情况,即该分类器选取的特征值满足。
两个特征值(幅值和当前幅值与前60ms幅值之间的平均速度)
该分类器设置了二个特征值,即踩油门时的幅值和后一个幅值与前60ms幅值之间的平均速度。
分类结果中的“1”代表正常踩油门数据,“2”代表误踩油门数据。
从分类结果图中,我们可以看出,第1、2、4、5个样本数据,根据踩油门时的幅值和后一个幅值与前60ms幅值之间的平均速度将数据分为正常踩和误踩,而第三个样本,全部分为是正常踩油门数据,所以该分类器能够正确区分正常踩和误踩的情况,即该分类器选取的特征值满足。
两个特征值(幅值和当前幅值与前90ms幅值之间的平均速度)
该分类器设置了二个特征值,即踩油门时的幅值和后一个幅值与前90ms幅值之间的平均速度。
分类结果中的“1”代表正常踩油门数据,“2”代表误踩油门数据。
从分类结果图中,我们可以看出,第1、2、4、5个样本数据,根据踩油门时的幅值和后一个幅值与前90ms幅值之间的平均速度将数据分为正常踩和误踩,而第三个样本,全部分为是正常踩油门数据,所以该分类器能够正确区分正常踩和误踩的情况,即该分类器选取的特征值满足。
两个特征值(幅值和当前幅值与前150ms幅值之间的平均速度)
该分类器设置了二个特征值,即踩油门时的幅值和后一个幅值与前150ms幅值之间的平均速度。
分类结果中的“1”代表正常踩油门数据,“2”代表误踩油门数据。
从分类结果图中,我们可以看出,第1、2、4、5个样本数据,根据踩油门时的幅值和后一个幅值与前150ms幅值之间的平均速度将数据分为正常踩和误踩,而第三个样本,全部分为是正常踩油门数据,所以该分类器能够正确区分正常踩和误踩的情况,即该分类器选取的特征值满足。
两个特征值(幅值和当前幅值与前165ms幅值之间的平均速度)
该分类器设置了二个特征值,即踩油门时的幅值和后一个幅值与前165ms幅值之间的平均速度。
分类结果中的“1”代表正常踩油门数据,“2”代表误踩油门数据。
从分类结果图中,我们可以看出,5个样本数据,均会将样本数据一部分为正常踩和误踩,而实际情况是第三个样本全是正常踩数据,所以该分类器不能够正确区分正常踩和误踩的情况,即该分类器选取的特征值不满足。
两个特征值(幅值和当前幅值与前180ms幅值之间的平均速度)
该分类器设置了二个特征值,即踩油门时的幅值和后一个幅值与前180ms幅值之间的平均速度。
分类结果中的“1”代表正常踩油门数据,“2”代表误踩油门数据。
从分类结果图中,我们可以看出,5个样本数据,均会将样本数据一部分为正常踩和误踩,而实际情况是第三个样本全是正常踩数据,所以该分类器不能够正确区分正常踩和误踩的情况,即该分类器选取的特征值不满足。
根据以上的仿真结果我们可以看出,当选取一个特征值时,不能正确将数据进行分类;当选取两个特征时,其中一个速度特征值在范围为45ms至150ms之间都可以将数据进行正确的分类。
为了确定取这个范围内的哪一个时间段的速度作为特征值更为准确,我们定义样本区分度系数k0和系统区分度系数k,样本区分度系数表示在给定的样本中选择完全是正常踩油门的样本,对于每一组输入数据所对应的按公式(3)得到的系数;系统区分度系数表示在得到的样本区分度系数中取最小的系数,如公式(4)所示。
(3)
(4)
公式(3)中,d1表示输入数据到神经元1距离;d2表示输入数据到神经元2距离。
系统区分度系数k越大,表示越能更好的区分误踩和正常踩,选择系统区分度系数k最大时所对应的系统来判断误踩和正常踩的阈值更加准确。
系统区分度系数仿真结果:
(1)幅值和前150ms速度的样本区分度系数结果:
最小系数为:
0.4477,即此时的系统区分度系数为0.4477。
(2)幅值和前135ms速度的样本区分度系数结果:
最小系数为:
0.3278,即此时的系统区分度系数为0.43278。
(3)幅值和前120ms速度的样本区分度系数结果:
最小系数为:
0.3472,即此时的系统区分度系数为0.3472。
(4)幅值和前105ms速度的样本区分度系数结果:
最小系数为:
0.4374,即此时的系统区分度系数为0.4374。
(5)幅值和前90ms速度的样本区分度系数结果:
最小系数为:
0.4994,即此时的系统区分度系数为0.4994。
(6)幅值和前75ms速度的样本区分度系数结果:
最小系数为:
0.3949,即此时的系统区分度系数为0.3949。
(7)幅值和前60ms速度的样本区分度系数结果:
最小系数为:
0.4910,即此时的系统区分度系数为0.4910。
(8)幅值和前45ms速度的样本区分度系数结果:
最小系数为:
0.3107,即此时的系统区分度系数为0.3107。
对比以上的仿真结果可以看出,幅值和前90ms速度的系统区分度系数0.4994是最大的,所以选择幅值和当前幅值与前90ms幅值之间的平均速度做为特征值最好。
当确定好两个特征值时,其判断误踩和正常踩的阈值计算方法如下:
例如选取幅值和当前幅值与前90ms幅值之间的平均速度作为两个特征值训练好的分离器得到的权值
Wts为w11=195.0063;w21=103.5084;w12=143.5630;w22=33.6206,
Biases为b1=7.1115;b2=4.4002,根据公式
(1)可得到输入数据到神经元1和到神经元2的距离,我们以输入数据到神经元1的距离和到神经元2的距离相等时得到的多对数据为误踩和正常踩的临界值,得到的多对速度与幅值数据的关系图如下图所示。