探索Core ML,Create ML,ML Compute,Vision,Natural Language和PencilKit框架中的最新功能。
阿努帕姆·楚(Anupam Chugh) 2020年8月17日·8分钟阅读
苹果最近一直在推动人工智能方面的发展,而WWDC 2020也不例外。
从机器和深度学习到计算机视觉和自然语言处理,Apple对其内置框架进行了大量增强和改进,以帮助移动应用程序开发人员构建更好的AI驱动的iOS应用程序。
PencilKit是iOS 13中引入的绘图框架,今年也支持机器学习。
在接下来的几节中,我们将讨论最新产品以及适用于iOS 14的Apple AI技术中的新功能。
Core MLApple的主要模型框架Core ML去年有了很大的进步,其中包括设备上模型训练。 尽管今年推出针对递归神经网络(RNN)的设备上训练的希望破灭了,但仍然有一些非常有趣的公告。
Xcode 12中的Core ML模型查看器现已进行了改进,以提供更多信息(使用Predictions标签,不需要编写代码,也可以立即对目标进行预测,参考示例:《iOS开发从入门到精通》第七章的第19节:使用CoreML机器学习框架):
如您所见,我们有一个新的元数据选项卡,其中显示了Core ML模型的图层分布。 最值得注意的是,实用程序部分包含两个新功能-模型加密和模型部署。
Core ML Model Deployment到目前为止,在生产应用程序中更新模型一直令人头疼。 开发人员将不得不推送新的应用程序更新或使用设备上的训练,而训练仅限于某些神经网络层类型。
幸运的是,Apple引入了新的Deployment API,使我们可以独立于应用程序而即时更新Core ML模型。 要启用模型部署,我们需要选择Core ML模型存档(从上面显示的Utilities窗格中),并在Apple的模型部署仪表板中执行几个步骤。
还有一个新的类MLModelCollection,它使您可以从Core ML Model Deployment中访问一组模型。 您可以使用此类访问应用程序中特定功能集的Core ML集合。
Core ML Model Encryption以前,嵌入在我们应用中的.mlmodelc Core ML模型文件未加密,这意味着可以很容易地提取和利用敏感IP。 为了帮助解决此问题,Apple引入了可选的模型加密功能,可让您保护模型。 它的工作方式与您签署应用程序的方式几乎相同(使用特定的Apple Team ID)。
现在,您可以安全地加密和捆绑模型文件,Core ML会自动将其解密并加载到应用程序的内存中。
首次在应用程序中加载模型时,解密密钥会自动从Apple服务器获取。
A new async load function for Core ML modelsiOS 14现在带来了新的异步加载功能,用于初始化Core ML模型。 这对于从MLModelCollection加载模型和处理加密的Core ML模型非常方便。
MyStylizedModel.apply{ switch result { case .success(let model): currentModel = model case .failure(let error): handleFailure(for: error) } }
请注意,将来将不赞成使用用于加载Core ML模型的旧init()函数。
除了安全性和部署之外,还引入了许多新的层类型。 coremltools现在提供了开箱即用的支持,可在利用CPU,GPU或神经引擎的同时将经过训练的TensorFlow和PyTorch模型转换为Core ML。
Create ML
Create ML是一个模型构建框架,通过提供拖放和可视化设计工具,我们可以使用“无代码”在macOS上训练自定义机器学习模型。
去年,它成为一个独立的macOS应用程序,并提供了多种模型类型来训练图像,对象,声音,文本分类器和推荐系统。
苹果在WWDC2020上宣布了对Create ML的多项改进。支持视频和图像样式转换模型训练可能是今年最大的更新。来自Apple,我们可以放心地假设它是高度优化的。与ARKit一起使用以构建沉浸式增强现实体验时,样式转换模型将非常有用。
此外,我们现在支持训练活动分类模型,该模型将在跟踪人体运动中找到用例。
除了新的模型训练支持之外,Create ML现在还提供了更多程度的定制:
您现在可以暂停并继续训练。 通过创建ML,您可以设置检查点,在训练的各个阶段都可以利用这些检查点来构建中间快照模型。使用这些快照,您可以比较训练各个阶段的模型结果。
ML Compute: A New Machine Learning Framework
虽然Core ML是当今Apple最抢手的机器学习框架,但它并不是(也不是)唯一可用的机器学习框架。
有趣的是,有一个低级的原始框架Accelerate,用于构建在CPU上运行的神经网络。同时,苹果还提供了旨在在GPU上运行的MPS(Metal性能着色器)。核心ML只是在这些框架之上构建的抽象,以使用易于使用的API进行推理。
除了在iOS 11中引入Core ML之外,还发布了新的MPS图形API(在Core ML下使用)。通过让我们指定确切的层和输入,MPS图形API在模型训练期间提供了更高的精度。
现在,在iOS 14中,我们有了另一个新的机器学习框架:ML Compute。通过将高性能BNN用于CPU上的``加速''框架和针对GPU的Metal性能着色器,该引擎专门用于加速神经网络的训练和验证。
请务必注意,ML Compute框架的API并不用于构建Core ML模型,而仅用于增强低级机器学习框架。
Natural Language Processing
自然语言和视觉框架建立在Core ML之上。从广义上讲,自然语言框架有助于文本的语义含义和理解。
去年,该框架获得了许多新功能,例如情感分析,单词标记和嵌入,语言识别,标记化和实体识别。
iOS 14现在引入了句子嵌入。借助这项新技术,构建准确的设备上常见问题解答和聊天机器人将变得更加容易。
通过词嵌入分析句子有其自身的局限性。简而言之,取每个单词的向量的平均值很容易导致句子组成信息的丢失。此外,单词嵌入仅适用于有限的词汇集,并且当查询表中不存在句子中的单词时,就无法准确地处理语义。
新的Sentence Embedding API通过让您分析整个句子来帮助克服这些缺点。您可以将完整句子的信息编码为有限维向量,然后可以将其与向量空间中的其他句子进行比较以确定相似性和差异。
自然语言框架也与Create ML框架紧密联系。今年,Apple通过使用动态嵌入为单词标记模型引入了转移学习。您可以通过以下方式指定模型参数:
let modelParameters = MLWordTagger.ModelParameters(algorithm: .transferLearning(.dynamicEmbedding, revision: 1))
iOS 14还提供了一个新的tagHypotheses函数,可让您为文本中的给定单词或子字符串找到多个可能的标签。 这样,您现在可以找到每个预测标签的置信度阈值。
Computer Vision
苹果在WWDC2020上再次展示了其在计算机视觉领域的雄心。 增加了一些内置过滤器,迎合了Core Image框架。 CIColorThreshold让我们快速将图像转换为黑白图像。 新的CIColorAbsoluteDifference过滤器使我们可以比较两个图像的颜色。
另一方面,Apple的Vision框架在今年从其他基于AI的框架中抢了风头。 它收到了大约六个新更新,包括对以下内容的支持:
- 手和身体姿势估计
- 轮廓检测
- 光流
- 轨迹检测
- 离线视频处理
还有一个新的有状态视觉请求,该请求考虑了以前的VNObservation结果,在轨迹检测和光流请求中很有用。
PencilKit
PencilKit在iOS 13中首次亮相,被视为纯粹的绘图框架。
今年,Apple推出了适用于iPadOS的Scribble,这是一个新的内置的基于机器学习的文本字段。它会自动检测使用Apple Pencil编写的文本,并可以即时将其转录为字符串。
要启用或禁用手写文本的转录,我们可以切换UIScribbleInteraction.isHandlingWriting布尔属性。
在iOS 14中,PencilKit框架所做的工作不只是设置用于绘画的画布。
现在,我们可以访问PKDrawing对象的笔触属性。这意味着我们可以检查用户绘图的当前点,路径和速度。
这样,我们就可以分析诸如力以及PencilKit框架从用户的触摸输入执行手势识别和模式匹配所花费的时间之类的属性。
签名验证,异常检测和形状自动校正是您在iOS 14中可以做的几件事,以构建AI驱动的绘图应用程序。此外,PencilKit框架可与ARKit结合使用,以在增强现实场景中四处移动对象。
值得注意的是,allowsFingerDrawing属性已过时,取而代之的是PKCanvasViewDrawingPolicy,PKCanvasViewDrawingPolicy是anyInput和pencilInput类型的枚举。
结论
我们探索了今年在基于AI的不同框架中引入的增强功能。 奇怪的是,今年Apple的语音分析框架没有任何更新。
使用Create ML训练模型需要macOS Big Sur及更高版本,但是您可以在macOS Catalina上使用Xcode 12本身的其他框架。
译自:https://heartbeat.fritz.ai/advancements-in-artificial-intelligence-in-ios-14-c1602f5d4951