首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

构建闭环全栈认知 IoT 应用程序时吸取的经验教训-2

构建闭环全栈认知 IoT 应用程序时吸取的经验教训-2

认知 IoT                应用程序必须是学习系统
现在,您可能仍在等待那些经验教训,以下就是经验教训 1:认知 IoT 应用程序必须是学习系统。
我所犯的第一个错误就是,认为厨房中是否有人是发送通知时机的可行决定因素。除了检测到人以外,还需要考量其他传感输入方面的因素,例如,开灯和摄像头传感器检测到的信息过多而导致无法处理。虽然人员检测可能是初始假设,但应将其作为假设来处理,应用程序应准备好根据替代信号采取行动。
无线电发展早期就是一个很好的例子,当时,多名工程师被要求调整频率、天线和其他电子组件以获取清晰的无线电信号。工程师也是其中的组成部分,作为将信号解释为数据的接收者和传输者。记录人员或抄录人员则负责将数据作为条理清楚的消息来传达。当然还有为整个流程提供支持的基础架构。只有这样专业化的团队才能充分利用当时才刚出现的无线电技术。但那只是当时的情况。现如今,我们的车载无线电、移动设备和许多其他设备都具有自动调谐功能。我们必须预见到,在我们的学习系统提供的信号处理方面同样也会实现这样的进步。
这种类型的自动信号检测和鉴别在学术论文中被称为“主动学习”。这些流程使用一种“智库”(人类或非人类),就所监督学习算法生成的信号质量给予反馈。例如,在我的                Age-at-Home 环境中,为任何图像预测的分类通常为从最高到最低依次排列的序列。这些预测通常被称为“排名前 n”,例如,排名前                5。等级最高的实体通常被称为排名第                1,它被视为“正确的”分类。而排名前二或前三实体的等级值(或“评分”)可能非常接近,这些图像也可能成为智库的候选审查对象。随后,此智库会提供裁决,并且此示例会成为下一次训练迭代中该类的一部分。
通过使用 resin.io (,我能够将一个 Linux Docker 容器部署到运行开源软件包 () 的                Raspberry Pi 中,用于捕获图像。通过添加简单的 Linux shell 脚本,我可以将图像发送至 Watson Visual                Recognition 服务,并接收分类评分。Watson                返回的图像分类和评分的定义应考量所使用的分类器。默认分类器会指示各种实体和活动,从“火炉”到各种“动静”。我扩展了脚本,以便将来自                Watson Visual Recognition 服务的 JSON 结果存储到非关系型存储库                 中,该存储库可在本机理解 JSON 数据(请参阅图 6)。
图 6. 生成的 JSON 示例的选定详细信息随后,我便可以开始汇总和分析图像识别的结果。在经过一些广泛的 shell 脚本编程后,我为各种分类生成了 CSV(逗号分隔值)和 JSON                    统计信息,例如,按某一天的时间间隔及一周中的某一天划分的火炉图像计数(请参阅图 7)。生成的多维立方体包含了分类器和评分的计数、最大值、平均值和标准差。在这一点上,显然需要更强大的分析工具。
图 7. 第 1 天火炉统计信息的 REST API 查询,时间间隔为 10(周日凌晨                    1:30)利用 Watson Analytics 自动开展学习我下一步就是使用 IBM 分析服务目录,从最新的服务之一 Watson Analytics 着手。                提供了直观且易于使用的数据访问、优化和探索方法。在我了解了将 JSON 扁平化为 SQL 表时所涉及的一些略微复杂的问题,并且花了一点时间来提升我的                SQL 技能之后,我能够以稀疏数据透视表形式提供 Age-at-Home 图像分类结果,该表适合在 Watson Analytics                中使用。
通过使用 Watson                Analytics,实体和活动时间序列快速而简便地直观呈现在我面前,但是要想分享结果或查询却并不容易。无法分享结果也无法实现输入的参数化,导致难以通过任何自动化方式来纳入                Watson Analytics。
Watson Analytics                通过使用预定义的可视模板目录(例如,热图),并使用各种方法来关联自动发现的实际情况、维度和度量,提供了探索和直观显示数据的功能。经过一次极其快速的探索和少量试错操作,我从分析中获得了两个简单明了的洞察要点。
图 8 是 Watson Analytics                从默认识别模型返回的分类器的热图,方框的大小表明识别出某一事物的次数,方框的颜色则表明识别的平均置信度。Watson Analytics                用户体验提供了交互式的方法来排除选定的类,支持识别相关类,例如,我所举例子中的“Adult”类。随后可进一步对其子集(例如,识别出“Adult”的所有事件)进行分析,例如,按一天中的某一时间或一周中的某一天来分析。
图 8. Watson Visual Recognition 结果的 Watson Analytics                    热图
通过检查 Watson Analytics                中的分类结果,我确实发现了一些值得关注的潜在信号,包括识别我厨房里的“动静”。但是,要想在所有噪音中检测到我要搜索的信号,也就是有人出现的信号,实属不易。
使用来自默认分类器的信号频谱子集面临巨大的挑战。结果集中通常并不包含;也就是说,未检测到人。这种类型的故障称为漏报。漏报的反面是误报,在这种情况下检测到实体,但实际上不存在此实体。这两类故障都会影响用户接收(或拒绝)异常活动相关通知时的体验。同样,这里也需要更高水平的分析能力。最值得注意的是,我需要识别出总体和特定示例中的漏报现象,以便后续检查。
图 9                中第二个直观显示的结果是一个时间序列,其中按评分顺序显示了当天各时间段的总体情况。为直观显示这一结果,必须对数据加以优化,按某个时间间隔、一周中的某一天(周日、......、周六)和一年中的某一周                (1- 53)                对平均分类器评分进行汇总,以便未来进行季节性调整。这些结果表明,通过使用传统方法来清理、汇总和分析数据,极有可能成功推断出规范化行为的模式。通过抛弃明显无关的分类,仅聚焦于表示人的那些分类,我似乎找到了一条捷径。对这组代表性分类器的分布进行快速分析,似乎提供了一个规范化模型。                    图 9 显示“人”是最右侧的五列。
图 9. Watson Analytics 时间序列分析
返回列表