@enhuiz
2016-10-31T13:01:15.000000Z
字数 5941
阅读 1042
针对误差较大的MEMS加速计,通过使用循环神经网络,直接将未经处理的采样信号映射到虚拟世界中的运动,以实现人机交互的需求。实验表明,在经过一定量的数据训练之后,该模型对较为简单的交互运动能表现出较好的映射效果。
近年来,随着智能电子设备的发展吗,人机交互的模式也在不断地发生改变。从最初的按键交互,到后来的触屏交互,再至语音交互,重力感应交互等。MEMS传感器作为一种新型的交互硬件,随着微电子技术的发展,逐渐在人们的生活中普及。手机、平板电脑、穿戴式设备中都有MEMS传感器的身影。普通的家用设备中的MEMS传感器通常由陀螺仪和加速计构成。陀螺仪通过对角加速度采样,结合重力传感器,地磁传感器,已经可以很好地计算出设备的姿态。而加速计由于误差较大、不能通过MEMS传感器自身进行漂移纠正,时间长之后会造成误差累积,所以不能直接用简单的积分方法获取设备的真实速度与位移。为了更好地提取加速计采样数据的特征、减少人工硬编码的工作量并增加交互精度,我们通过循环神经网络来对加速计信号进行特征提取与对所需交互动作的回归预测。
循环神经网络是一种监督性学习的模型,在自然语言模型、图像追踪、语音识别、机器翻译等研究领域中得到了广泛的应用。循环神经网络在上世纪八十年代被提出,开始时由于计算机的计算能力限制,没有得到广泛的应用。不同于传统神经网络输入信号之间相互独立,循环神经网络可以提取信号的时序特征。循环神经网络使用根据时间的反向传播算法(BPTT, Backpropagation Through Time),通过梯度下降的方法进行训练,由于层与层之间的误差以相乘的形式进行传播,故会出现梯度消失或是梯度爆炸的问题,可能导致训练的时间序列长度受到限制,较早的信号由于误差无法很好地传播,导致训练效果不佳。在上世纪九十年代,长短期记忆单元(LSTM, Long Short Term Memory)被提出,它是一种循环神经网络的改进,通过增加输入门、输出门、遗忘门的方式,使得误差传播的方式,由原来的累乘变为累加,大大减少了梯度消失和梯度爆炸的现象。2014年,门限递归单元(GRU, Gated Recursive Unit)被提出,它是一种改进的长短期记忆单元。门限递归单元通过将长短期记忆单元的输入门和遗忘门组合成为更新门,使得长短期记忆网络的计算成本得以下降。经过实验发现,门限递归单元具有与长短期记忆单元效果相近[1]。本文分别使用传统循环神经网络与门限递归单元建立动作映射模型,并且对这两种网络进行了对比分析。
步行作为人类最基本的行为动作之一,已经广泛地被应用于人机交互领域。从移动设备、穿戴式设备的计步器,到虚拟现实设备的角色移动,都是以步行动作为基础的交互。简单的移动设备计步器通常只能记录步数,而不能同时检测步行的方向。我们通过对步行运动这一行为的建模,将现实中的三维步行信号映射到虚拟世界中的二维移动信号,并以此方式进行对模型的评估。所映射的二维移动信号不单能反映使用者的运动静止信息,同时可以反映运动者的运动速度、运动方向,具有较高的应用价值。
传统步行动作映射方式由于通常只记录步数不反应步行运动细节的特性,被广泛使用在移动设备的计步器应用之中。通过对加速计进行采样,获得手机三轴加速度大小,进行低通滤波后得到重力向量,进而可以从重力向量中可以提取出重力方向,便可以计算出运动者在重力方向除重力以外的用户加速度。
将用户加速度通过一定频带的滤波器之后,可以得到一个类正弦信号,通过对类正弦信号的变化率分析,结合现实运动设置阈值进行最终判断。当信号的变化率符合一定的阈值判断,计步器就被激活,步数增长。
由于传统解决方案过于固化,不适合用来做复杂的步行运动映射。如果要求保留运动方向的同时记录运动速度,那将会有很多阈值需要设置。再加上移动设备的MEMS传感器通常精度不足,即便阈值设置合理,最终结果也未必能令人满意。
考虑到人的步行运动具有一定的周期性,即便是有噪音干扰,对运动者的采样信号依然会带有一定的步行运动特有的特征。人为地提取这些信号的特征通常较为困难,而且可能很不全面。我们通过循环神经网络,来对这些人为较难提取的特征进行数据驱动的特征提取。
循环神经网络(RNN, Recurrent Neural Network)在传统的神经网络的基础上,增加了时序的信息,更适合用来处理时序信号。不同于传统神经网络所有输入之间相互独立的特性,循环神经网络可以提取时序信号特征。
循环神经网络的前向传播公式
其中为t时刻的输入信号,为t时刻隐含值,为t时刻输出值,为输入信号权值,为隐含层权值,为输出信号权值,为隐含层偏值,为输出层偏值。
通过计算交叉熵,得到时刻t的代价。
对时序信号的所有时刻代价求和,得到总代价。
循环神经网络通过梯度下降的方法,将误差反向传播,从而完成训练。
计算代价函数对V的偏导
记时刻t的误差
计算代价函数对W的偏导
计算代价函数对U的偏导
通过以上对U,V,W三个权值的偏导,通过梯度下降的方法,进而对循环神经网络进行训练。
门限递归网络是一种改进的循环神经网络,通过更新门和重置门,很好地解决了循环神经网络的训练时的梯度消失和梯度爆炸问题。
(要这张图的左边部分,公式的不要)
门限递归网络的前向传播方式
由于门限递归网络的反向传播较为复杂,在这里就不在赘述。
循环神经网络使用的结构(图)
门限递归网络使用的结构(图)
输入信号为运动者的加速度,维度为三维,数据的坐标系为运动者的朝向坐标系。
图
图
输出信号为映射之后的速度,维度为二位,坐标系同为运动者的朝向坐标系,不过移除了重力方向的数据,只保留水平面上的速度信息。
图
将输入信号和输出信号划分为一个个时间片段,先后地用时间片段来训练模型,所有时间片段迭代一次称为一轮训练。经过数轮的训练后,模型便可以收敛。
我们以50HZ的采样频率,分别对向前步行、向后步行、向左步行、向右步行、停止移动这五种操作采取了10000帧的样本(采样设备为SAMSUNG GALAXY S5 G9008V),使用前7000帧作为训练集,后3000帧为测试集,以代价函数作为指标对RNN模型与GRU模型进行评估。
这里使用的代价函数代价函数
实验全局参数如下:
参数名 | 参数 | 单位 |
---|---|---|
采样率 | 50 | HZ |
训练集 | 5*7000 | 帧 |
测试集 | 5*3000 | 帧 |
序列长度 | 100 | 帧 |
神经网络隐含层 | 100 | - |
训练轮数 | 向前行走 | 向后行走 | 向左行走 | 向右行走 | 停止移动 |
---|---|---|---|---|---|
0 | 0.518988 | 1.271540 | 1.239426 | 0.489347 | 0.665529 |
10 | 0.161934 | 0.253341 | 0.243742 | 0.173181 | 0.006595 |
20 | 0.172673 | 0.231115 | 0.219399 | 0.187698 | 0.001840 |
30 | 0.177034 | 0.224132 | 0.211916 | 0.193178 | 0.000852 |
40 | 0.179400 | 0.220673 | 0.208309 | 0.196030 | 0.000465 |
50 | 0.180883 | 0.218618 | 0.206246 | 0.197741 | 0.000273 |
60 | 0.181888 | 0.217281 | 0.204958 | 0.198851 | 0.000167 |
70 | 0.182598 | 0.216363 | 0.204109 | 0.199605 | 0.000105 |
训练轮数 | 向前行走 | 向左行走 | 停止移动 |
---|---|---|---|
0 | 0.307734 | 0.904217 | 0.495850 |
10 | 0.151023 | 0.560538 | 0.235349 |
20 | 0.111060 | 0.368369 | 0.086741 |
30 | 0.115041 | 0.294884 | 0.041945 |
40 | 0.122674 | 0.261492 | 0.025535 |
50 | 0.128818 | 0.243184 | 0.017961 |
60 | 0.133271 | 0.231862 | 0.013891 |
70 | 0.136380 | 0.224327 | 0.011477 |
训练轮数 | 向前行走 | 向后行走 | 向左行走 | 向右行走 | 停止移动 |
---|---|---|---|---|---|
0 | 0.504122 | 1.210135 | 1.188518 | 0.452019 | 0.615287 |
10 | 0.162844 | 0.268574 | 0.264262 | 0.163928 | 0.011086 |
20 | 0.172594 | 0.236611 | 0.227851 | 0.182339 | 0.003033 |
30 | 0.177057 | 0.227116 | 0.217203 | 0.189561 | 0.001495 |
40 | 0.179482 | 0.222534 | 0.212007 | 0.193433 | 0.000892 |
50 | 0.180971 | 0.219870 | 0.208935 | 0.195828 | 0.000578 |
60 | 0.181952 | 0.218167 | 0.206939 | 0.197426 | 0.000390 |
70 | 0.182629 | 0.217018 | 0.205575 | 0.198537 | 0.000269 |
训练轮数 | 向前行走 | 向左行走 | 停止移动 |
---|---|---|---|
0 | 0.154917 | 0.576277 | 0.277836 |
10 | 0.114942 | 0.363986 | 0.077211 |
20 | 0.121702 | 0.287026 | 0.031552 |
30 | 0.128074 | 0.251721 | 0.017434 |
40 | 0.133137 | 0.233176 | 0.011639 |
50 | 0.136707 | 0.222524 | 0.008909 |
60 | 0.139058 | 0.216045 | 0.007519 |
70 | 0.140525 | 0.211960 | 0.006783 |
根据上述的实验数据可以发现,循环神经网络与门限递归网络这两种循环神经网络的训练结果差别并不大。而且对同一个模型来说,使用单向样本时,总代价相对较小。这是因为由于设备MEMS传感器的精度问题,以及人步行运动有一定的对称性, 导致了数据样本没有很好地区分对向运动,所以训练出的模型在有对向运动存在时较难收敛。
我们将经过训练的模型导入到移动设备上进行体验。模型可以很好地区分运动静止状态,并对步行运动中的身体起伏变化有较好的映射,效果令人满意。但是对与不同方向,尤其是相对方向的表现并不灵敏,原因分析可能是数据采样不够精确、数据类型不够丰富、神经网络参数调整不佳,这是亟待改进的地方,以及我们未来工作的主要方向。
基于循环神经网络的动作映射模型在简单的动作映射中表现出了较好的结果。通过预先采样,对于每个用户进行个性化训练,解决了传统交互操作不能很好地避免人与人之间动作差异性的问题。除此之外,该模型具有很好的通用性,对任何一种较为简单的、MEMS传感器精度范围内的动作映射都可以得到令人满意的效果。不过值得注意的是,该模型对复杂的的运动映射表现效果目前并不令人满意,对于复杂而又多样化的操作更如是。这是由于MEMS传感器的精度限制,导致复杂多样化的操作特征不能通过MEMS采样很好地反应出来,进而由这些信息训练出的模型不能很好的收敛。不过,随着电子工艺技术的不断提高,MEMS传感器也在不断发展,精度问题可以逐渐得到优化和解决。如今,人们对复杂多样化的交互需求日益强烈,复杂的动作映射需求日益增多。将机器学习、深度学习的方法运用到交互领域仍是现在,以及未来的发展的趋势。
[1]Chung J, Gulcehre C, Cho K H, et al. Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling[J]. Eprint Arxiv, 2014.