学完本章节后,您的无服务器应用程序应该能够:
数据科学和机器学习本身都是庞大的领域。本模块的内容只是其中的一小部分,介绍了有关机器学习模型训练的基本知识。幸运的是,创建新模型的工具链已经简化,只要我们对数据有足够的了解,就可以利用该工具链来对机器学习进行实验。
在此解决方案中,您要替换 IoT Core 规则引擎中的一个简单阈值,该值用于评估设备报告的声音强度,并强制生成一个新的布尔键值,称为 roomOccupancy。通过上报消息中的声音数据可以发现,安静时该值较低,有噪音时较高。所以,像 “大于 10” 等简单的阈值很适合作为生成 roomOccupancy 值的初始值。(在特定案例中,其他环境声音阈值可能更有效!)
您将应用类似的方法,具体是:为机器学习工具链提供从部署设备的空间记录的恒温器数据样本,并告知训练作业 “当 roomOccupancy 为真时数据是怎样的,以及当 roomOccupancy 为假时数据是怎样的。” 该训练作业将评估您的数据集、以 roomOccupancy 列为目标,并尝试建立一个模型,来根据声音强度范围甚至其他列(例如时间、HVAC 状态和温度),准确再现 roomOccupancy 值。
成功训练首个模型后,按照模型的定义,您将在后续章节中使用 roomOccupancy 推理结果的分类来 替换 简单的声音强度静态阈值!
首先,您需要设置 Amazon SageMaker Studio,以便为自动模型训练配置新的实验。
SageMaker Studio 预置完成后,下一步是打开 Studio 并配置一个新项目。
项目创建完成后,您将可以看到包含 Repositories(存储库)、Pipelines(管道)、和 Experiments(实验)等选项卡的项目控制面板。在 SageMaker Studio 中将此浏览器选项卡保留为打开状态,以便快速返回到此页面。
下一个任务是返回 AWS IoT Analytics,以便导出汇总的恒温器数据,供新的机器学习项目使用。
smartspace_dataset
)。sagemaker-project-p-somehashhere
。如果存在多个以这种形式命名的存储桶,那么您需要查看 SageMaker Studio 项目,获取项目的随机哈希 ID。您可以在项目的其他资源(例如 Repositories(存储库)选项卡和 Pipelines(管道)选项卡)中查看哈希值。data/smartspace/Version/!{iotanalytics\:scheduleTime}_!{iotanalytics\:versionId}.csv
现在,您可以返回 SageMaker Studio 开始机器学习实验了。实验将使用上报的恒温器数据(刚刚由 IoT Analytics 数据集导出)作为输入。您将对实验进行配置,以便准确预测当前 “roomOccupancy” 列的数据。自动训练作业将分析您的数据以便尝试使用相关算法,然后使用不同的超参数来运行 250 个训练作业,从而选出最适合输入训练数据的超参数。
开始机器学习实验之前,您需要拥有几个小时的上报数据,这些数据应该来自您想要分析的会议室内的恒温器,并且这个时段内的会议室状态应该同时包括有人状态和无人状态。要进行自动机器学习实验,至少需要 500 行数据,但提供的数据越多,结果越准确。如果在开始实验之前仍然需要生成更多数据,请务必在 IoT Analytics 控制台中再次运行数据集(前面所讲的说明中的最后一步),以便 SageMaker 可以从项目 S3 存储桶中获取结果。当您准备好开始实验时,请按以下步骤操作。
data/smartspace/Version/1607276270943_3b4eb6bb-8533-4ac0-b8fd-1b62ac0020a2.csv
。roomoccupancy
。output/smartspace
中的 Dataset directory name(数据集目录名称) 类型下,选择 Use input as S3 object key prefix “output/smartspace”(使用输入作为 S3 对象键前缀 “output/smartspace”)。这将在 S3 存储桶中定义一个新的前缀,用于输出文件。运行实验需要上小时的时间。您可以在 SageMaker Studio 浏览器选项卡中跟踪实验的进度,也可以关闭该选项卡,稍后再打开该选项卡查看进度。
实验结束后,最终输出 250 次试验的结果,SageMaker 根据这些试验结果来确定最合适的优化作业参数。对试验表进行排序,找出标记为 Best(最准确) 的试验。下一个里程碑是将该试验部署为模型终端节点,以便您可以将其作为 API 调用。
roomOccupancyEndpoint
。
现在,您的机器学习模型已经部署为 API 终端节点,并由 Amazon SageMaker 管理。在下一章 使用机器学习模型 中,您将通过无服务器函数来使用该 API 终端节点,并将 IoT Core 规则中用于确定 roomOccupancy
值的简单阈值逻辑替换为模型生成的推理结果。
在进入下一章节之前,您可以验证您的无服务器应用程序是否已按预期配置完毕,方法是:
如果没有问题,我们就进入到 使用机器学习模型 部分。
AWS IoT Kit now features direct access to
AWS re:Post
, which is a community-driven, questions-and-answers service. Search re:Post using the
AWS IoT Kit
tag to see if your question has been asked and answered. If not, ask a new question using the AWS IoT Kit
tag.