大多数浏览器和
Developer App 均支持流媒体播放。
-
在 Create ML 中构建活动分类模型
您的 iPhone 和 Apple Watch 搭载了许多功能强大的传感器,包括加速感应器和陀螺仪。可以使用来自这些传感器的数据训练活动分类器,从而为您的 app 增添一些神奇的功能,例如知道用户何时在跑步或挥动球棒。了解 Create ML app 如何让训练和评估这些 Core ML 模型之一变得简单。更深入地了解如何收集训练所需的原始数据。查看这些模型的实际应用。
资源
相关视频
WWDC19
-
下载
我是来自 Core ML 组的 Yuxin 今天 我非常激动地 向大家介绍 今年 Create ML 中的全新模型 行为分类
我们每天都通过设备 进行很多行为 比如玩游戏 做运动 我们的移动设备 也都配备了 大量传感器
例如 对于运动来说
加速度计和陀螺仪 都很常用 它们有助于 检测设备的 三维加速度 旋转速度 或设备方向
我们可以利用这些传感器数据来表示行为
例如 如果你在慢跑 数据就和站着不动时 有很大差异
同样地 如果你做出不同手势 玩不同游戏 或者进行不同的体育运动 你的行为数据也可能 有足够大的差异 以供识别
那么 什么是行为分类 它是一项任务 能够识别 对设备执行的 预定义物理操作集 如果你有不同的行为需要识别 或者你的 App 可能有不同的需求 这时该怎么办呢 我们十分希望 你能够根据自己的目的 定制自己的模型
于是我们在今年 向你们介绍 Create ML 中的行为分类 不如我们先举个例子
我很喜欢 和家人朋友玩极限飞盘
在游戏过后 我也很想看看 我的表现有多好 比如投掷技术的 种类和数量 所以我训练了一个飞盘运动分类器 来识别我的动作 并用在我的 Apple Watch 上 我觉得这行得通 我们先来看一个现场演示
这是我的 iPhone 屏幕 它已与我的 Apple Watch 配对
模型会在我的 Apple Watch 上运行
这儿有一个开始按钮
一旦我按下开始按钮 我的 Apple Watch 就会开始 传输传感器数据
然后我的模型 就会进行连续预测
我们开始吧 现在它让我 做出一个飞盘动作 这意味着它预测了一个无行为类 显然目前是正确的 我先试试简单的动作
正手 接下来 反手 这是我最喜欢的动作 “鸡翅膀” 我还有一个更漂亮的秘密武器 要给你们展示 “保龄球” 它叫做 “保龄球手” 因为我像是在打保龄球 我再试一次 “保龄球手”
它只是机器学习模型啦
现在 我按下停止按钮 然后看看我的结果
在我看来还不错
对于特定的类别 比如 “保龄球手” 我知道我可以回头收集更多的数据 所以我对这些数据很满意 今天我锻炼得不错 现在 我们说回上一话题 我知道作为开发者的你 会有很多其他更有创意的想法要探索
现在我们看一看 如何在 Create ML 中真正设置模型
只需要三步 首先 为自己的行为收集一些数据 使用 Create ML 训练模型 最后 将模型部署到你的 App 中
我们先来获得一些数据
访问传感器数据最简单的方法 是使用 Core Motion
更多有关它的信息 请参考我们之前的会议 以及 Apple 开发者文档 但从高层次的角度来看 你的 App 可以轻松访问 一系列传感器 也就是 Core Motion Framework 你还可以操控 开始 停止 或设置 App 中记录的更新间隔 你也可以使用 完全相同的机制 来收集你的训练数据 以及之后的设备推断 这就是我的数据
这是我的“正手”记录之一 它是 CSV 格式
有一列时间戳 以及其他几列 传感器特性
其实我在飞盘运动的例子中 还使用了加速度 和旋转速度 但是为了简单起见 这里只展示了三列
如果想要 进一步研究数据 行为模式 看起来可能会是这样
我的 “正手” 记录 在同一类上有三个来回动作
之后 在训练中 深度学习模型 会使用一个滑动窗口 在时间序列数据间移动
通过这种方式 它可以提取行为的 空间和时间模式
现在我们已经准备好了文件 你只需在这样的数据源层次结构中 组织数据 其中每个文件夹的名称 都是一个标签名称 这个文件夹下的所有文件 都属于同一个行为
支持的格式有 CSV JSON 和文本格式 你可以选择其中之一 也可以按照喜好混合搭配
数据准备好了 现在我们开始训练 只需从 Create ML App 的模板中 选择 Activity Classifier 这是一个标准的信息界面 你可以将你的训练数据 拖放到这个窗口中 在 Activity 中 你可以预览记录里有多少文件 和多少样例
Activity 上的 一个特殊步骤是 你需要告诉 Create ML 你想尝试的传感器特性是什么
只需从这个列表中选择一个或多个
所有这些传感器特性 都来自你的文件 即 CSV 文件的标题
你还可以选择 根据行为的快慢 来调整参数 比如预测窗口尺寸 对于飞盘运动的例子 实际上我用了两秒窗口 也就是 100 个样本 我将在这里输入 100 因为我的数据 最初是以 50 hz 的频率采样的
现在我们按下 “训练” 按钮 可以从这里开始训练 我相信你们在这一周内 已经多次看到了整个过程 所以我会略过这部分内容 因为从这里开始的 整个工作流程 与 Create ML 中的其他模型完全相同
如果你对准确性还满意 那么就可以 继续尝试一些新的数据 来评估这个模型的性能
这是一个标准测试标签 和刚才一样 提供测试数据
在评估之后 你会看到 一张包含每个类别 查准率和查全率的表
对于我的飞盘运动的例子 你可以在这里看到 “保龄球手”和“锤击”这些特定的类别 不是那么完美
这可能意味着 我需要再为这两类 收集更多的数据 然后再次迭代 就可以提高性能
最终我们就 得到了一个训练模型 你可以选择保存模型 并将它部署到我们的 App 中
或者你可以在 Mac 上 直接在 Create ML App 中 进行批量预测
只需在窗口中 添加一些新的未显示和未标记的数据 你就会看到 即时的预测结果 包括标签名称 置信度 以及行为数据的预览 以便更好地了解你的行为
最后 这是我的 Core ML 模型
我的飞盘运动例子 是一个神经网络分类器 它只有 1.1 MB 体量非常小 对于移动设备来说非常简单
此外 你还可以看到 你在训练中使用的 所有传感器特性的 完整列表 以及预测窗口大小 之后 关于你的设备推断 你只需使用 相同的数据 相同的大小来保持一致
这就是 Create ML App 我们在 macOS 中也有这个框架
你可以使用 Xcode Playground Swift Script 或者命令行工具 来自动化整个过程 就像这样
Activity 上的 一个特殊步骤是 需要指定 selectedSensors
除此之外 工作流程的其余部分 与我们拥有的其他模型一样
都是标准统一的 训练评估和模型保存 只是针对每个模型的一行代码
这就是我们如何查看 Create ML 中的行为分类器
除此之外 我还想分享一些 这个模型的更优实践
理解你的行为
使用相关的传感器 比如加速度计和陀螺仪 都是非常常见的基于运动的任务
这有助于收集一些 无行为类 或其他类数据
这对运行时的性能 特别有帮助
提供类别均衡的数据 对于 Activity 而言 还涉及到每个类别记录文件的数量 和记录长度
最后 Core Motion 既提供 原始传感器数据 也提供处理过的设备运动数据
设备运动 是 Core Motion 框架下的一种传感器融合 它还提供了归一化 时间对齐 和偏差消除
有时候 这对于处理数据 是很有帮助的
这就是 Activity [掌声]
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。