如何使用传感器和人工智能来发挥传感器数据的协同作用?—— 强大的组合
2017-11-29
人工智能(AI)目前正在为社会的方方面面带来革新。比如,通过结合数据挖掘和深度学习的优势,如今可以利用人工智能来分析各种来源的大量数据,识别各种模式、提供交互式理解和进行智能预测。
这种创新发展的一个例子就是将人工智能应用于由传感器生成的数据,尤其是通过智能手机和其他消费者设备所收集的数据。运动传感器数据以及其他信息比如GPS地址,可提供大量不同的数据集。因此,问题在于:“如何使用人工智能才能充分发挥这些协同作用?”
运动数据分析
一个说明性的的真实应用程序将可以通过分析使用数据来确定用户在每个时间段的活动,无论是在坐姿、走路、跑步或者睡眠情况下。
在这种情况下,智能产品的好处不言而喻:
1.提高客户生命周期价值
提高用户参与度可以降低客户流失率。
2.更具竞争力的产品定位
下一代智能产品满足消费者日益增长的期待。
3.为终端用户创造真正的价值
对室内运动的准确检测和分析可实现灵敏的导航功能、进行健康风险监控,同时提高设备的效率。 对多种智能手机和可穿戴平台实际使用情景的深度掌握,将大大有助于产品设计师了解用户的重复习惯和行为,例如确定正确的电池尺寸或确定推送通知的正确时机。
智能手机制造商对于人工智能功能的兴趣正浓,这也正突出了识别简单日常活动,如步数的重要性,这必将发展为更为深入的分析,例如体育活动。对于像足球这样的流行体育运动,产品设计师不会只着眼于运动员,而是会为更多的人提供便利,比如教练、球迷甚至是广播公司和运动服装设计公司等大型公司。这些公司将从深层次的数据分析中获益,从而可以准确量化、提高和预测运动表现。
数据获取和预处理
在识别这一商机之后,下一个合理的步骤就是思考如何有效收集这些巨大的数据集。
比如在活动跟踪方面,原始数据通过轴向运动传感器得以收集,例如智能手机、可穿戴设备和其他便携式设备中的加速度计和陀螺仪。这些设备以完全隐蔽的方式获取三个坐标轴(x、y、z)上的运动数据,即以便于用户应用的方式连续跟踪和评估活动。
训练模型
对于人工智能的监督式学习,需要用标记数据来训练“模型”,以便分类引擎可以使用此模型对实际用户行为进行分类。举例来说,我们从正在进行跑步或是走路的测试用户那里收集运动数据,并把这些信息提供给模型来帮助其学习。
由于这基本上是一种一次性方法,简单的应用程序和照相系统就可以完成给用户“贴标签”的任务。我们的经验表明,随着样本数量的增加,在分类上的人为错误率随之减少。因此,从有限数量的用户那里获取更多的样本集比从大量用户那里获得较小的样本集更有意义。
只获取原始传感器数据是不够的。我们观察到,要实现高度准确的分类,需要仔细确定一些特征,即系统需要被告知对于区分各个序列重要的特征或者活动。人工学习的过程具有反复性,在预处理阶段,哪些特征最为重要还尚未明确。因此,设备必须要依据可能对分类准确性有影响的专业知识进行一些猜测。
为了进行活动识别,指示性特征可以包括“滤波信号”,例如身体加速(来自传感器的原始加速度数据)或“导出信号”,例如高速傅里叶变换(FFT)值或标准差计算。
举例来说,加州大学欧文分校的机器学习数据库(UCI)创建了一个定义了561个特征的数据集,这个数据集以30名志愿者的六项基本活动,即站立、坐姿、卧姿、行走、下台阶和上台阶为基础。
模式识别和分类
收集了原始运动数据之后,我们需要应用机器学习技术来将其分类并进行分析。可供我们使用的机器学习技术从逻辑回归到神经网络等不一而足。
支持向量机(SVMs)就是这样一个应用于人工智能的学习模型。身体活动,比如走路包括了由多种运动构成的序列,由于支持向量机擅长于序列分类,因此它是进行活动分类的合理选择。
支持向量机的使用、培训、扩展和预测均十分简单,所以可以轻松地并列设置多个样本采集实验,以用于处理复杂的现实生活数据集的非线性分类。支持向量机还可实现多种不同的尺寸和性能优化。
确定一项技术后,我们必须为支持向量机选择一个软件图书馆。开源库LibSVM是一个很好的选择,它非常稳定并且有详细的记录,支持多类分类,并提供所有主要开发者平台从MATLAB到Android的拓展。
持续分类的挑战
在实践中,用户在移动的同时,使用中的设备要进行实时分类来进行活动识别。为了将产品成本降到最低,我们需要在不影响结果也就是信息质量的前提下,平衡传输、存储和处理的成本。
假设我们可以负担数据传输的费用,所有数据都可以在云端上获得存储和处理。实际上,这会为用户带来巨大的数据费用,用户的设备当然要连接互联网,无线网络、蓝牙或4G模块的费用不可避免地将进一步提升设备成本。
更糟糕的是,在非城市地区,3G网络的访问效果通常不理想,例如徒步旅行、骑自行车或游泳时。这种对云端的大量数据传输的依赖会使更新变慢,并且需要定期同步,从而大大抵消人工智能运动分析带来的实际益处。与之相反,仅在设备的主处理器上处理这些操作会明显导致耗电量的增加,并且减少其他应用的执行周期。同理,将所有数据都储存在设备上会增加存储成本。
化圆为方
为了解决这些彼此冲突的问题,我们可以遵循四个原则:
1.拆分——将特征处理从分类引擎的执行中拆分。
2.减少——智能选择准确的活动识别所需的特征,来减少存储和处理的需求量。
3.使用——使用的传感器须能够以较低耗电量获取数据、实施传感器融合(将多个传感器的数据结合在一起),并且能够为持续执行进行特征预处理。
4.保留——保留能够确定用户活动的系统支持性数据的模型。
通过将特征处理与分类引擎的执行拆分,与加速度和陀螺仪传感器连接的处理器可以小得多。这有效避免了将实时数据块连续传输到更强大的处理器的需求。诸如用于将时间域信号变换为频率域信号的高速傅里叶变换的特征处理将需要低功耗融核处理器,以执行浮点运算。
此外,在现实世界中,单个传感器存在物理限制,并且其输出随时间发生偏差,例如由于由焊接和温度引起的偏移和非线性缩放。为了补偿这种不规则性,需要传感器融合,以及快速、内联和自动的校准。
图1:活动分类的功能流程(来源Bosch Sensortec)
此外,所选择的数据捕获速率可以显著影响所需的计算和传输量。通常来说,50Hz采样率对于正常的人类活动就足够了。但在对快速移动的活动或运动进行分析时,需要200 Hz的采样率。同样地,为了取得更快的响应时间,可以安装2 kHz单独加速计来确定用户目的。
为了迎接这些挑战,低功耗或者应用特定传感器集线器可以显著降低分类引擎所需的CPU周期。比如Bosch Sensortec的BHI160和BNO055两个产品就是这种传感器集线器。相关软件可直接以不同的传感器数据速率直接生成融合后的传感器输出。
对待处理特征的初始选择随后会极大地影响训练模型的大小、数据量以及训练和执行内联预测所需的计算能力。因此,对特定活动分类和区分所需的特征进行选择是一项关键的决定,同时也很可能是重要的商业优势。
回顾我们上文提到的UCI机器学习数据库,其拥有561个特征的完整数据集,使用默认的LibSVM内核训练的模型进行活动分类的测试准确度高达91.84%。然而,完成培训和特征排名后,选择最重要的19项功能足以达到85.38%的活动分类测试准确度。经过对排名进行仔细检查,我们发现最相关的特征是频域变换以及滑动窗口加速度原始数据的平均值、最大值和最小值。有趣的是,这些特征都不能仅仅通过预处理实现,传感器融合对于确保数据的足够可靠性十分必要,并因此对分类尤为实用。
结论
总而言之,科技发展现在已经达到在便携式设备上运行高级人工智能来分析运动传感器的数据的程度。这些现代传感器以低功耗运行,而传感器融合和软件分区则明显提高了整个系统的效率和可行性,同时也大大简化了应用程序开发。
为了补充传感器的基础架构,我们利用开源库和最佳实践来优化特征提取和分类。
为用户提供真正的个性化体验已成为现实,通过人工智能,系统可以利用由智能手机、可穿戴和其他便携设备的传感器所收集的数据,为人们提供更多深度功能。未来几年,一系列现在还难以想象的设备和解决方案将会得到更多发展。人工智能和传感器为设计师和用户打开了一个充满了激动人心的机会的新世界。
图4:人工智能和传感器为设计师和用户打开了一个充满了激动人心的机会的新世界。