4.6 系统测试。
4.6.1 数据来源。
本文所使用的数据是Smart* 项目[35]分享在UMass Trace Repository数据共享平台中的,Smart* 项目是一个旨在优化家庭的能源消耗的项目,特别关注现代"智能家庭"和一些可用于"智能家居"的新机会。该项目的核心组成部分是几个已经安装了各式智能家居仪表的居室,这些居室项目提供一个测试平台,用以收集真实的数据,并结合新的技术和算法,以提高家庭能源效率。为了方便在智能家居的可持续发展和进一步研究,Smart*项目在 UMass Trace Repository 数据共享平台发布了他们的数据。
UMass Trace Repository 数据共享平台[36]是一个由美国国家科学基金会支持,由马萨诸塞大学高级系统软件实验室[37]
运营的网络平台,用于存储和追踪研究数据。
Smart*项目以分钟级的采集频率对 400 多个家居进行数据采集,其智能家居中有三个家居的数据使用较为广泛,在其主页上分别以 A、B、C 命名,本文所使用的数据为 HomeA 的数据。
4.6.2 具体测试。
在上文中已经提到过,我们把数据集进行了预处理和分类,使得数据分为了训练集,验证集和测试集,三个数据集。
数据集中包含了室内外温度数据,湿度数据等数据,这些数据都是按时间顺序排序的,每天的数据都是通过传感器采集并上传到系统中,图 4.13 和图 4.14分别为其中一天的温度和湿度数据:
我们使用数据集中风扇数据作为目标数据进行训练,风扇有开和关两个状态,分别使用 0 和 1 对应其状态,我们可以得到风扇状态的数据图,其中一天的数据。
程序开始后,通过把训练集中数据以 128 条作为一个样本输入神经网络,对神经网络进行训练,通过 1000 次左右的训练,我们可以得到目标神经网络,在结束神经网络的训练后,我们使用测试集对训练后的神经网络进行测试,测试当前神经网络对未知测试集的测试效果。由于在把数据分成三个数据集时,这三个数据集之间的数据是不重复的,也就是测试集中数据对于神经网络来说是未知的,所以使用测试集对神经网络进行测试的结果是可靠的。
由于机器学习系统是接入到智能家居系统中的,所以在测试中,我们也直接把结果映射到实验室内部一个已接入智能家居系统的灯上,在得到实验结果之后,我们向智能家居系统中的目标灯发送执行命令,作为对命令发送的验证部分,由于网络命令相同,仅有数据格式差异,所以对灯的测试正确的情况下,可以验证与智能家居接入是可靠的。
在对智能家居系统进行操控以后,设备的状态信息会更新到数据库中,在下次对节点进行训练和预测时,节点会使用最新的数据进行训练和预测,由此,在同一情境下的相关设备就会由于一个设备状态的改变而做出相应改变,从而达到情景模式整体切换的效果。但是由于本文尚未接入真实环境数据库,所以本部分功能尚未进行验证。
4.6.3 测试结果。
本文实验使用的开发机配置如下:
1. CPU,i5-5257U,双核四线程。
2. RAM,双通道,16G.
使用 Python 版本为 3.4,TensorFlow 版本为 0.6.0.通过运行机器学习系统程序,我们可以得到上文中风扇开关状态对应的预测图。
我们可以看到在对一天的数据进行测试后,我们可以得到一天的风扇状态图示与数据集中原始数据是大致符合的,而从系统多次运行的输出中,我们可以看到准确度在 85%以上。
由于我们并没有使用实际项目中的实验数据,所以在测试与智能家居系统接入效果时,我们使用了一个灯,用于验证对应的命令发送和控制功能。在系统输出状态为 1 时,系统会向智能家居系统中发出开灯命令,对应的,在状态为 0时,会发送关灯命令。
在测试过程中,我们可以看到灯的开关状态随着系统输出的改变而改变。
由于智能家居中存在诸如窗帘,可调节亮度的灯等有多个档位的设备,但是在本数据集中并没有多个档位的数据,所以无法使用马萨诸塞大学所提供的数据集进行实验,而为了验证神经网络对多档位的分类能力,我们使用了发布于 UCIMachine Learning Repository 的 UCI OPPORTUNITYActivity Recognition 数据集,数据集包含了 4 名志愿者,每个人进行了六项活动的数据。活动分别为:行走、上楼、下楼、坐、站立,平卧,分别使用 0-5 六个数字表示其状态。志愿者在测试时佩戴智能可穿戴设备和各式传感器,利用其加速度计和陀螺仪,捕获了惯性数据、3 轴的线性加速度、3 轴的角速度、定位数据等数据,采样的频率为 50Hz.
实验中,我们使用的输入数据为 100 维数据。数据集中的数据被随机分成两组,其中有 7352 条数据作为训练集,2947 条数据作为测试集。
在使用训练集对神经网络进行训练之后,我们使用该神经网络对测试集进行测试,多次实验结果展示出来正确率同样可以保持在 85%以上,为了展示我们的测试结果,在测试中,我们随机选择 200 条数据绘制并使用其对应的预测结果绘制,可以直观地看到预测结果与原数据曲线的重合率较高。
4.7 本章小结。
本章通过介绍基于机器学习的智能家居平台整体架构及实现方式对整个项目进行了分析说明,然后再通过对机器学习系统的各个模块进行介绍说明,详细说明了项目任务管理模块,数据管理模块,预测模块及网络通信模块的工作原理及实现方式。最后对系统进行测试,对系统正确性进行了验证。