你在打王者农药,有人却用iPhone来训练神经网络

作者: 佚名 2020-05-28 15:55:06

你知道吗?在 iOS 设备上也可以直接训练 LeNet 卷积神经网络,而且性能一点也不差,iPhone 和 iPad 也能化为实实在在的生产力。

机器学习要想在移动端上应用一般分为如下两个阶段,第一个阶段是训练模型,第二个阶段是部署模型。常规的做法是在算力强大的 GPU 或 TPU 上对模型进行训练,之后再使用一系列模型压缩的方法,将其转换为可在移动端上运行的模型,并与 APP 连通起来。Core ML 主要解决的就是最后的模型部署这一环节,它为开发者提供了一个便捷的模型转换工具,可以很方便地将训练好的模型转换为 Core ML 类型的模型文件,实现模型与 APP 数据的互通。

以上是常规的操作。然而,随着 iOS 设备计算性能的提升,坊间不断产生一些 iPad Pro 算力超过普通笔记本的言论。于是乎,就出现了这么一位「勇者」,开源了可以直接在 iOS 设备上训练神经网络的项目。

项目作者在 macOS、iOS 模拟器和真实的 iOS 设备上进行了测试。用 60000 个 MNIST 样本训练了 10 个 epoch,在模型架构与训练参数完全相同的前提下,使用 Core ML 在 iPhone 11 上训练大概需要 248 秒,在 i7 MacBook Pro 上使用 TensorFlow 2.0 训练需要 158 秒(仅使用 CPU 的情况下),但准确率都超过了 0.98。

当然,在 248 秒和 158 秒之间还有非常大的差距,但进行此项实验的目的并不是比速度,而是为了探索用移动设备或可穿戴设备在本地进行训练的可行性,因为这些设备中的数据往往比较敏感,而且涉及隐私,本地训练可以提供更好的安全性。

项目地址:https://github.com/JacopoMangiavacchi/MNIST-CoreML-Training

MNIST 数据集

在这篇文章中,作者介绍了如何使用 MNIST 数据集部署一个图像分类模型,值得注意的是,这个 Core ML 模型是在 iOS 设备上直接训练的,而无需提前在其他 ML 框架中进行训练。

作者在这里使用了一个很有名的数据集——MNIST 手写数字数据集。它提供了 60000 个训练样本和 10000 个测试样本,都是从 0 到 9 的 28x28 手写数字黑白图像。

LeNet CNN 架构

如果你想了解 CNN 的细节和优势,从 LeNet 架构着手是一个再好不过的起点。LeNet CNN+MNIST 数据集的组合是机器学习「训练」的标准组合,简直相当于深度学习图像分类的「Hello, World」。

这篇文章主要着眼于如何在 iOS 设备上直接为 MNIST 数据集构建和训练一个 LeNet CNN 模型。接下来,研究者将把它与基于著名的 ML 框架(如 TensorFlow)的经典「Python」实现方法进行比较。

在 Swift 中为 Core ML 的训练准备数据

在讨论如何在 Core ML 中创建及训练 LeNet CNN 网络之前,我们可以先看一下如何准备 MNIST 训练数据,以将其正确地 batch 至 Core ML 运行中去。

在下列 Swift 代码中,训练数据的 batch 是专门为 MNIST 数据集准备的,只需将每个图像的「像素」值从 0 到 255 的初始范围归一化至 0 到 1 之间的「可理解」范围即可。

为 Core ML 模型(CNN)训练做准备

处理好训练数据的 batch 并将其归一化之后,现在就可以使用 SwiftCoreMLTools 库在 Swift 的 CNN Core ML 模型中进行一系列本地化准备。

在下列的 SwiftCoreMLTools DSL 函数构建器代码中,还可以查看在相同的情况中如何传递至 Core ML 模型中。同时,也包含了基本的训练信息、超参数等,如损失函数、优化器、学习率、epoch 数、batch size 等等。

使用 Adam 优化器训练神经网络,具体参数如下:

接下来是构建 CNN 网络,卷积层、激活与池化层定义如下:

再使用一组与前面相同的卷积、激活与池化操作,之后输入 Flatten 层,再经过两个全连接层后使用 Softmax 输出结果。

得到的 CNN 模型

刚刚构建的 Core ML 模型有两个卷积和最大池化嵌套层,在将数据全部压平之后,连接一个隐含层,最后是一个全连接层,经过 Softmax 激活后输出结果。

基准 TensorFlow 2.0 模型

为了对结果进行基准测试,尤其是运行时间方面的训练效果,作者还使用 TensorFlow 2.0 重新创建了同一 CNN 模型的精确副本。

下方的的 Python 代码展示了 TF 中的同一模型架构和每层 OutPut Shape 的情况:

可以看到,这里的层、层形状、卷积过滤器和池大小与使用 SwiftCoreMLTools 库在设备上创建的 Core ML 模型完全相同。

比较结果

在查看训练执行时间性能之前,首先确保 Core ML 和 TensorFlow 模型都训练了相同的 epoch 数(10),用相同的超参数在相同的 10000 张测试样本图像上获得非常相似的准确度度量。

从下面的 Python 代码中可以看出,TensorFlow 模型使用 Adam 优化器和分类交叉熵损失函数进行训练,测试用例的最终准确率结果大于 0.98。

Core ML 模型的结果如下图所示,它使用了和 TensorFlow 相同的优化器、损失函数以及训练集和测试集,可以看到,其识别准确率也超过了 0.98。

iPhone 神经网络 人工智能
上一篇:未来20年,全自动驾驶和互联汽车会出现吗? 下一篇:12个场景应用,百余种算法,AI是如何攻占经济学的?
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

高通公司总裁安蒙:5G+AI开启智能互联未来

7月9日,2020世界人工智能大会(WAIC)云端峰会正式开幕,高通公司总裁安蒙(Cristiano Amon)在产业发展全体会议上发表了主题为“5G+AI开启智能互联未来”的演讲。

佚名 ·  1天前
人工智能中常见的误区

在一个大数据、自动化和神经网络已经成为日常用语的世界里,对人工智能及其背后过程的误解正在像野火一样蔓延。

Cassie ·  1天前
李开复:从“AI+”到“+AI”,技术正在重构中国经济

 在 2020 世界人工智能大会上,创新工场创始人兼 CEO 李开复以《从“AI+”到“+AI”:以技术重构中国经济》为题发表演讲。

芦依 ·  1天前
世界人工智能大会开幕,马云、李彦宏、马斯克等都说了啥?

话说,疫情迫使本届世界人工智能大会改在云端举办,改变得了办会形式,但改变不了大会全程高能、让人受益匪浅的固有属性。我整理了这些有头有脸的大人物的演讲精华,干货满满,与君共享。

龚进辉 ·  1天前
5G+AI共赢共生 人工智能大有可为!

不论是唱衰还是看好,关于人工智能的讨论从来就没有间断过,并且在各种争议声中,利用人工智能技术的行业新应用不断涌现,尽管离预期的效果还有很大差距,但不得不承认人工智能已经开始在各行各业发挥价值。

易欢 ·  1天前
5G+AI:影响未来的新趋势

7月9日,2020世界人工智能大会云端峰会正式开幕。AI,这个带有科幻色彩的名词,总能在行业大会上激起各界的思考、争论。在AI产业起起伏伏的过程中,有期待有失落,但前行需要循序渐进,回头看,我们会发现AI一直在波浪式上升,尤其是进入到2020年,以自动驾驶为首的AI大业正在升温。

21世纪经济报道 ·  1天前
这些“黑科技”让防汛更智慧

  当前,我国南北方全面进入主汛期,强降雨天气频发,防汛抗洪已到关键阶段。在防汛抗洪中,创新科技成为利器。从气象和水情预报到防汛监测与预警;从上天入地的科技设备到大数据、人工智能等前沿技术,多种“黑科技”的应用让防汛抗洪更智慧。

刘峣 ·  1天前
经济寒冬之后,是人工智能的春天

一家公司选择的经济发展道路往往是依照时代背景来决定的,在不同的经济时局之下选择正确的经济策略, 往往可以成为公司逆转腾飞的转折点。

学术头条 ·  1天前
Copyright©2005-2020 51CTO.COM 版权所有 未经许可 请勿转载