Cross-person activity recognition using reduced kernel extreme learning machine (译)

Abstract:

对于发展健康领域,个性化推荐领域,使用手机内嵌入的加速度传感器来进行活动识别已经变得非常重要了。但是,不同用户产生的不同的加速度数据相差非常大。对于一个人进行训练出的模型在另外一个人上面表现就可能变得非常差。为了解决这个问题,我们提出了一个快速而又准确的方法,也就是TransRKELM(Transfer learning Reduced Kernel Extreme Learning Machine基于收敛内核的转换学习极限学习机)。他是用RKELM来实现一个初始化的活动识别模型。之后使用OS-RKELM部分来更新初始化模型然后来对于新的用户尽心该模型的识别并接受当前识别模型,从而有效的提高置信度。试验结果显示,目标模型可以很快的对新用户接受分类并且获得不错的模式识别效果。

 

 

I介绍:

自动识别在很多领域都有着非常重要的应用比如在健康领域,在老人的护理领域,在个性化推荐领域。许多活动识别都建立在专用目的的硬件上面比如dijkstra, kamsma, and Zijlstra 或者是遍布全身的传感器网络。尽管使用大量的传感器可以有效的提高分类算法的效果,但是这同样会带来不便。

 

第一个商用的手持电话出现之后,到2011年带有传感器的手机设备已经覆盖到了全球80%的人口。随着微电子系统的发展,加速度传感器可以变得如此小以至于能放到手机里面了。当然我们也因此而受益因为我们可以通过对硬件设计的有监督机器学习来对用户的行为进行分类。与传统可穿戴活动识别设备相比,用智能手机有很多很多好处比如不用其他设备啦,用户感觉不到所以很舒服啦。当然很大的缺陷也有比如说会非常耗电,手机也不是专门用来录取数据的所以会很吃手机资源啊。另外当手机被其他人用了的时候,嵌入式的加速度传感器可能会受到不同的力因为不同用户的不同部位的运动相差很大,就算是做同一种动作也会有差别啊。这个模型就是从一个特定的人中学习出来的,不能保证用于另外一个人的时候分类仍然精确。为了解决这个多个人一起来进行分类的问题,我们建立一种可以放到手机里面的用于快速学习的简单模型,占用计算资源,存储,以及电量比较少。首先读入三个传感器的数据来提取特征。这可以消除设备放置在不同方向的方位差(手机放的姿势?)。之后,RKELM可以用来建立初始化的模型,考虑到快速的学习和良好的普适能力,这里可以进行离线操作。最后,对于一个新用户来说,在联机阶段,高可信度的结果会被选择出来并且声称新的训练测试数据集,这些数据集将会利用快速学习的速度与低内存消耗来更新模型。试验结果表明了预想的模型的有效性和高可信度。

 

整片论文剩下的部分这样来组织:第二部分,一些相关的工作会被阐述一遍。第三部分主要是说明能力目标模型。试验和试验结果会在第四部分进行展示。最后我们在第五部分给出我们的结论。

 

II相关工作

使用手机加速度传感器来做活动识别因为其广泛的应用场景而吸引了大量的注意力。在Ravi, Dandekar, Mysore and Littman和Ward, Lukowicz,and Gellersen 等人使用了的多个传感器来进行活动的分类。Chen Qi Sun和Ning曾使用智能手机来检测六种活动从而找到switch point。这些模型最后的训练效果都不错,主要是因为他们训练数据集和测试数据集都是用的是同一个分支里面的并且是遵循着同样的指示。但是不同用户的数据分布差别很大,针对于一个用户训练的模型放在其他用户上面正确率会下降很快。研究者已经将转换学习应用到模式识当运动的人,地点标签改变了之后。比如zhao,chen,liu,shen,和liu 想要提出一个转换模型算法。这个算法集成了决策树和k均值聚类算法,从而实现个人活动的模型适配。

哎。。。相关工作不翻译了,没什么意思,又不是很难理解。

 

III:TransRKELM算法

在这一部分,我们详细的提出cross-person环境下的活动识别算法。正如图一所述,这个算法包含两部分。离线分类模型和对一个新用户的适用部分。

 

第一步离线分类模型的构造和在线的活动识别。对于离线分类模型的构造,首先先读入三个方向的数据并合并成一个来摆脱方向的依赖。统计特征和频域特征从综合的数据中提取出来。之后,对于快速学习的特性和良好的泛化能力,RKELM可以用来建立分类模型。对于在线的活动识别,没有标签的测试数据样本从离线部分生成。之后这个样本就被RKELM分类器获取并返回出分类结果。

第二步是活动识别模型的提升。基于分类结果,一个样本正确分类的置信度就可以正确的建立起来。对于置信度高于阈值的会被选择并重新生成一个新的训练样本。之后,RKELM模型会使用OS-RKELM模型更新。随着新的训练样本从新的用户中得到,更新之后的数据慢慢的会使用这个用户。

 

 

III-A:加速度的融合

加速度计检测并变换电容的变化转换成模拟输出电压,该电压正比于加速度。对于三轴加速度计,输出电压可以被映射到的加速度沿三个轴。Ax,Ay,Az是原始真实数据的正交分解,各个方向的加速度合成会被表示为.A就是真实加速度的融合加速度。但是失去了方向性的信息。因此,基于加速度融合的方法是不依赖于方向的。

 

III-B:加速度特征的提取

传感器加速度信号使用一个巴特沃斯低通滤波器来进行分离身体加速度和重力加速度。重力通常只有很少的频率组成,因此滤波器频率设置为0.3Hz。对于每一个窗口,一个具有17个特征的向量被获取到通过从加速度信号中获取到,这些向量包含时域信息和频域信息。统计信息有平均值,标准差,能量,平均交叉率,最大值最小值,第一个四分位数,第二个四分位数,第三个四分位数以及功率谱密度的四个振幅统计特征和四个形状统计特征。快速傅里叶变换用来找到信号的频域特征。最终,这些特征融合成为一个活动识别的一个输入。

 

III-C基于RKELM的识别模型构建

黄广斌教授提出的极限学习机已经吸引到了机器学习界广泛的关注。因为黄教授提出的ELM算法的泛化能力要好过SVM(Huanget al,2012)。但是在活动识别方面的应用并不是很适合,主要是因为(1)核矩阵需要在全部数据上构建。这对存储要求非常高尤其是当示例的大小增长的非常显著的时候。(2)实时的模型如果快速更新的话可能会非常的难。因为新的示例会导致行和列同时增加。为了解决这些问题,我们使用随机抽样的方法来从原始数据中选择一个子集—X(X上面加一个波浪线),之后使用K(X,X(上面加一个波浪线))来替换掉K(X,X)从而减小黄的KELM的问题规模。这个经过变小的核矩阵可以按照下面的方法来计算。

输出的权重可以通过下面的方法来得到

这里的lamda是正则化参数来松弛过拟合的问题。尽管一直非常小但是并不表示他不能被设置成比较大的数值。大一点的会让识别的准确率更接近于黄的ELM但是训练时间也变得更长。作为极限情况,当接近于n时,RKELM就直接变成了黄的KELM。除非如果泛化能力需要我们来增加,不然我们可以设置的越小越好。这个随机的方法也被用在了SVM上面。在Liu et al等人的工作上,作者使用作为映射函数来构造核矩阵。这里的都是随机数值。在Lee的工作与Huang的工作上面,数据集是从数据集中随机选择出来然后使用来代替从而训练出来光滑的支持向量机。这个实验表示使用随机方法也可以产生具有竞争力的泛化表现。我们先前的试验也显示了RKELM可在很快的学习中产生很好的泛化能力。从理论角度,我们已经证明了RKELM的泛化能力主要是是由子集的大小而不是子集的质量。随机选取同样大小的子集会产生接近的泛化表现。另外,最后的比较阶段也同样会阐述这一点。当然,就像是Wang,Kong,and Zheng所做的工作那样,使用聚集技术来世家到优化算法。如果在本文中也使用这样的方法,RKELM的表现会提升的更高。核函数可能是高斯核函数,可以使多项式核函数,sigmoid 核函数以及其他。经过多种测试,我们这里选择高斯核函数因为高斯核函数在我们当前的工作上有着不错的表现。RKELM算法可以用下面的方法来描述:

备注1:与支持向量机(SVM)不同,SVM是使用一个巧妙的算法找到了一个好的支持向量。在RKELM里面,支持向量是被随机选取的而不是迭代计算。所以与SVM相比,RKELM会比SVM快很多。

备注2:KELM与ELM有一下两点不同:(1)RKELM 中的参数xj依赖于训练数据。这可以给模型的训练中带来更多的知识。这些知识也可以让KELM有更好的表现。(2)关于ELM的结论和理论比如说全局学习理论,对于RKELM不再适用。因此关于RKELM的新理论需要建立起来。有关细节请查阅Deng and Zhang。

   

    在测试环节,对于一个测试,输出可以按照下列的方法来计算。

中,l是输出接点的数目,等同于分类问题中的分类的数目。之后RKELM选择TY1*l中最大的数值并得到对应的索引,j,就是分类示例的测试文件。我们可以通过下面的步骤来计算样本的置信度从而指派分类到的类:

在这个在线部分中,活动识别部分被用于新的人群。为了适应新的人群,识别模块通过下面的基于高可信度识别结果的方法来更新自己的模型。模型接受的过程包含下面两个步骤:

(1)、在识别阶段,这些分类置信度高于阈值g的将会被保留并用于新模型的训练数据。

(2)、当这个新的训练模型的样本高于之前定义的阈值的时候,OS-RKELM就开始基于新的训练数据集来更新识别模型。

在这个部分,我们主要描述一下OS-RKELM 算法。OS-KELM算法延伸于对于公式4的连续最小二乘法的解.输出的权重对应在训练数据集中,表示为其中这里的Z为。现在假设n1是新的样本由公式6和7选中并来适应这个模型。考虑到训练数据集已经变成了两个块,所以输出的权重也就变成了(下面是大段数学推导,不再翻译)

从(14)中我们可以看出,连续使用最小二乘法来求解很像RLS算法。因此,所有的RLS系统收敛的结果都可以用在这里。更新数据的算法并不需要旧的训练数据。因此一旦数据用在了算法1里面,数据就可以被丢弃了。这样既能节约存储空间,又能节约电力,对手机很适宜。

 

IV 表现评估

IV-A 数据集

    试验用的数据集是来自于UCIMachine Learning Repository,可以在网站上面下载到。数据集里面包含了年龄分布在19-48之间的30名用户的行为数据。每个用户进行6中活动,分别是:走路,上楼,下楼,坐,站,躺,在手腕上携带一个智能手机。智能手机开启并扑捉三轴加速度和三轴陀螺仪重力感应。扑捉频率为50Hz,这个频率足够扑捉任何肢体动作。这个传感器信号,里面包含着重力信息以及肢体动作信息,会被我们使用巴特沃斯低通滤波器分类开来。考虑到重力频率并不是很高,我们这里滤掉个0.3Hz一下的数据就可以了。对于每一个窗口,里面都包含原始数据在时域内和频域内的相关特征。在我们的试验中,传感去数据被人工标注,之后随机分为两组。其中一组包含80%的数据用于训练网络,剩下20%的数据用于测试。之后传感器数据被噪音滤波器过滤,之后按照每一个窗口内包含2.56s的数据和每一个窗口有50%的重叠来处理。窗口的官渡主要根据活动的周期,一般一个滑动窗口应该包含2到3个滑动周期。当一个人不行,一个脚步大概是1s,因此滑动窗口的长度就设置为2.56s。表格1表示了对于每一个活动的样本数量。数据集包含从30个用户中收集的10299个样本。对于得到科学的结果,这个数据集已经足够大了。

IV-B实验结果

    所有试验都是在MATLAB2010的环境下完成。主机的CPU频率为2.53GHz,内存为4G。

IV-B-alpha分类表现的比较

在这个部分,我们将对黄老师的KELM,ELM,SVM用于活动识别并对结果进行比较。ELM和黄老师的KELM可以在黄老师的主页上面下载到。SVM用的是libsvm包。RKELM是由我们自己用matlab来实现的。在RKELM和SVM中,我们使用的高斯核函数来做为核函数。在ELM中,我们使用sigmoid激活函数来进行。对于高斯核函数的参数,我们通过使用不同的参数值和参数的大小来来进行估计。其中的间隔为5,为。对于每一个参数,都进行10次模拟,表现最好的会在这篇论文中展示出来。对于SVM,我们通过使用不同的来建立普遍情况下最好的参数。在进行的10次模拟中,本文中依然采用最好的表现。对于ELM所采用的sigmoid函数,我们建立使用不同的参数值,之后选择一个最有的数值。对于隐藏层也就是n的数值,每次增加5,之后选择10次中平均最好的结果并在本文中报告出来。参数的数值,训练时间,测试时间,训练精度和测试精度都在展示在Table 2中。

    从Table 2中我们可以看出,尽管RKELM并不是最高的准确率,但是98.49%的准确率依然非常具有竞争力。另外,使用RKELM的训练时间和测试时间远远低于SVM和黄老师的KELM。RKELM的平均训练时间为0.64s,而黄老师的KELM和SVM消耗的时间是85.47s,15.09s。这也暗示了RKELM比SVM和黄的KELM训练速度要更快一些。因为RKELM中,选择样本的数目要比ELM中隐含层的数目要小:ELM训练用了2.09s,测试用了0.18s。RKELM对应的仅仅用了0.64s和0.12s。RKELM的测试时间明显低于SVM和黄的KELM。为了测试RKELM在不同活动中的稳定性,我们进行了100次测试,测试结果显示在图2里面。对于每一个测试,训练数据和测试数据按照80%:20的比例分配,但是数据的顺序是完全打乱的。

    我们可以看到,测试精度一直保持在[98%,99%]之间。100次试验中,没有超出的也没有低于这个的。这就意味着RKELM活动识别模型非常的稳定。

IV-B-beta在不进行模型迭代的情况下,多个人交叉识别

    为了评估当用户改变的时候,模式识别模型的表现,我们进行了交叉用户的识别。对于每一个用户ui,学习到的分类器在所有用户中进行测试。受限于空间,我们仅仅选择十个用户来进行试验。关于RKELM,ELM和SVM在测试中的准确率已经用矩阵表示出来并显示在table 3中。第i行和第j列的数值表示在ui上进行训练并在uj上进行测试的测试准确率。对于数据集中每一个数据都被用户id标注。所以训练数据和测试数据可以很方便的通过id来获取。

    对于table3-5,我们可以看到RKELM和ELM都有相似的准确率。当然,与RKELM相比,ELM的准确率下降了很多。对于用于训练的用户本身的数据,SVM已知保持100%的准确率。在这一点上准确率是高于RKELM的。当然,对于新用户上,RKELM和SVM的准确率差不多。

IV-B-gamma交叉用户的迭代模型适应性

    在这一部分,实验的主旨在于测试RKELM模型对于新用户的适应性。从30名用户中挑选3个用户,并标记为A、B、C。对应的数据集也相应的标记为Da、Db、Dc。每一个数据集都随机的分为80%和20%,对应标注为DA1,DA2,DB1,DB2,DC1,DC2(原文有误).不失一般性,我们首先假设A和B是彼此知道的,然后C是新来的。训练AB也就是训练AB的训练数据集,训练出来的模型定义为初始化的模型。数据C1用于使用这个初始化的模型并转移到新的模型。AB数据的测试集,用于测试对于认识的那两个人模型的分类能力。C2数据用来测试两个模型对于新人的分类能力。对于初始模型,以及Dc1里面的数据。如果分类的置信度高于0.75.我们就把它加入到新的数据集Hc1中。使用Hc1数据集,我们的分类模型可以接受并进行更新。

    初始模型和新模型对于AB的表现在table6中显示出来了。我们可以看到,自从模型被接受之后,新模型几乎和原始的模型具有一样的分类能力。原始模型和新模型对于C的表现显示在table 7中。我们可以看到,适应了新用户之后,分类的准确率提高了4.3%。

    将B和C假设为已经认识的用户,将A假设为新用户。进行测试的试验显示在table 8 和table 9.适应了之后,准确率提高了1.6。当A和C是已经认识的用户但是B是新用户的时候,适应之后准确率提高了1.4%。结果显示在table 10 和table 11中。

    为了验证试验结果的普遍性,我们进行了50次验证,每一次验证都随机选择3个用户。50次验证中都可以得到相似的提升,因此我们可以确认这个模型的确是有效的。

V 结论

    这个文章主要是想,在手机用户更换非常频繁的情况下仍然可以借助手机上的穿传感器来完成活动的识别。我们基于RKELM提出了一种快速而鲁邦的方法来解决不同的终端用户。OS-RKELM这种可以实现在线学习的学习方法可以用于更新模型并接受新用户。试验结果表明,使用性的模型可以显著的提高最后的识别正确率。以后,我们会动员300人来收集更多的日常数据并尝试解决设别交叉,地理位置交叉等相关问题。另外,在这个模型中,置信度的阈值是非常关键的。如果这个阈值根据实际情况实际应用来自动选取而不是人工设定的话,准确率的也会进一步提升的。因此下一步我们将会在阈值的选择上进行我们下一步的工作。

你可能感兴趣的:(AR)