李亚洲 思源作者

在Mac上训练机器学习模型,苹果WWDC发布全新Create ML、Core ML 2

北京时间 6 月 5 日凌晨,苹果 2018 年全球开发者大会 (WWDC) 在圣何塞的 McEnery 会议中心开幕。在去年的开发者大会上,围绕软、硬件,苹果介绍了融合机器学习与人工智能的产品,例如 CoreML 框架、智能音箱 HomePod 等。

而在今年的开发者大会上,苹果的核心放在了软件上。从 IOS 12 开始,库克开启了今年的 WWDC。而在机器学习方面,苹果发布了最新的 Create ML 与 Core ML 2。

Create ML

Create ML 文档地址:https://developer.apple.com/documentation/create_ml

在苹果开发者文档介绍中,Create ML 的目标是为应用程序创建机器学习模型。开发者可以使用 Swift 与 macOS 试验场等熟悉的工具在 Mac 上创建和训练定制化的机器学习模型,例如用于图像识别、文本语义抽取或数值关系搜索等任务的模型。

据介绍,开发者可以使用具有代表性的样本训练模型来做模式识别,例如使用大量不同种类的狗以训练模型识别「狗」。在训练完模型后,开发者在模型没见过的数据集上测试并评估它的性能。当模型有较好的性能时,就能使用 Core ML 将其集成到应用程序中。

Create ML 利用机器学习基础设施建立进苹果 Photos 和 Siri 这样的产品中。这意味着你的图片分类和自然语言处理模型可以变得更小、花费更少的训练时间。

目前 Create ML 支持的任务主要包含计算机视觉自然语言处理和其它使用标注信息进行预测的一般模型。在计算机视觉中,开发者可以训练一个机器学习模型以完成图像识别任务。重要的是,开发者在这一过程中可以使用 Xcode 试验场的 UI 来训练模型。自然语言处理主要展示了如何使用机器学习文本分类,它允许创建文本级的自然语言分类与词汇级地分类标注。

当然其它任务还有一般的分类问题与回归问题,Create ML 允许开发者训练一个模型以将数据分类为离散的类别或连续的数值。除此之外,Create ML 还展示了机器学习很多模块,包括用来提升分类或回归模型性能的度量方法和格式化数据的方法等。

如下我们将简要展示如何使用 Create ML 创建图像分类应用。简单而言,我们希望给定分类器一些图像的,然后它会输出图像的具体类别。当然首先我们需要准备一些训练样本,包括图像与对应标注。然后在 Xcode 试验场中创建一个 MLImageClassifierBuilder 实例,并以实时的方式查看:

// Import CreateMLUI to train the image classifier in the UI.
// For other Create ML tasks, import CreateML instead.
import CreateMLUI 

let builder = MLImageClassifierBuilder()
builder.showInLiveView()

先显示 Xcode 中的助理编辑器,然后再运行试验场(Playground),这样实时的方式就会显示一个图像分类器:

随后的训练和评估过程都是直接拖拽训练数据集与测试数据集完成,非常方便。如下将测试数据集拖拽到图中位置后就可以开始测试性能:

当开发者完成训练并获得满意的性能时,一般就能保存为 Core ML 模型并添加到应用程序中:

Core ML 2

去年,苹果发布了 Core ML。这是一个在苹果产品上(包括 Siri、Camera 和 QuickTyPe)使用的设备上高性能机器学习框架。Core ML 能够帮助开发者快速的融合多种机器学习模型到 APP 中,包括多层的深度学习模型以及标准的 SVM、线性模型等。此外,Core ML 为设备性能进行了优化,从而减少了内存占用和功耗。严格在设备上运行能够确保用户数据的隐私,并且能保证你的应用在没有网络连接时也能够工作和响应。

Core ML 支持用于图像分析的 Vision;用于自然语言处理的 Foundation(比如 NSLinguisticTagger 类)和用于评估已经学习到的决策树的 GameplayKit。Core ML 本身构建于低层面的原语(primitives)之上,比如 Accelerate、BNNS 和 Metal Performance Shaders。

今天,苹果发布了 Core ML 2,一个更好的升级版本。据苹果软件高级副总裁 Craig Federighi 介绍,相比于上一版本使用 Batch 预测速度快了 30% 左右,使用 Quantization 模型大小减少了 75% 左右。

小结

历史 2 个多小时 Keynote,苹果介绍了自己的多个软件。除了发布 Create ML 与 Core ML 2 之外当然还介绍了其他在人工智能领域的应用,例如隐私保护、Siri、图片等。

其实,从 2016 年 Backchannel 对苹果人工智能的专题报道开始,人们对这家公司的 AI 研究与产品都极为关注,而后这家公司在 AI 方面的动作不断。最近,苹果从谷歌挖来了 John Giannandrea 来负责机器学习与 AI 策略。此外,一直也有消息透露苹果在开发自己的芯片来加速计算机视觉语音识别等 AI 应用。

期待未来苹果在产品融合人工智能上给我们带来更大的惊喜。

产业苹果开发者大会
2
相关数据
分类问题技术
Classification

分类问题是数据挖掘处理的一个重要组成部分,在机器学习领域,分类问题通常被认为属于监督式学习(supervised learning),也就是说,分类问题的目标是根据已知样本的某些特征,判断一个新的样本属于哪种已知的样本类。根据类别的数量还可以进一步将分类问题划分为二元分类(binary classification)和多元分类(multiclass classification)。

计算机视觉技术
Computer Vision

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

机器学习技术
Machine Learning

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

自然语言处理技术
Natural language processing

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

语音识别技术
Speech Recognition

自动语音识别是一种将口头语音转换为实时可读文本的技术。自动语音识别也称为语音识别(Speech Recognition)或计算机语音识别(Computer Speech Recognition)。自动语音识别是一个多学科交叉的领域,它与声学、语音学、语言学、数字信号处理理论、信息论、计算机科学等众多学科紧密相连。由于语音信号的多样性和复杂性,目前的语音识别系统只能在一定的限制条件下获得满意的性能,或者说只能应用于某些特定的场合。自动语音识别在人工智能领域占据着极其重要的位置。

文本分类技术
text classification

该技术可被用于理解、组织和分类结构化或非结构化文本文档。文本挖掘所使用的模型有词袋(BOW)模型、语言模型(ngram)和主题模型。隐马尔可夫模型通常用于词性标注(POS)。其涵盖的主要任务有句法分析、情绪分析和垃圾信息检测。

深度学习技术
Deep learning

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

模式识别技术
Pattern Recognition

模式识别(英语:Pattern recognition),就是通过计算机用数学技术方法来研究模式的自动处理和判读。 我们把环境与客体统称为“模式”。 随着计算机技术的发展,人类有可能研究复杂的信息处理过程。 信息处理过程的一个重要形式是生命体对环境及客体的识别。其概念与数据挖掘、机器学习类似。

推荐文章