WWDC 2019: 機器學習新工具 Create ML App

本文是 WWDC 2019 Session 430的讀後感,其視頻及配套 PDF 文稿鏈接如下:Introducing the Create ML App
本文首先介紹 Create ML 的背景知識,然後講解全新 Create ML App 的進步,最後介紹 Create ML 所對應的使用場景。
查閱全部 WWDC 2019 專欄內容,點擊此處前往小專欄。

Create ML 的背景

Create ML 是蘋果於2018年 WWDC 推出的生成機器學習模型的工具。它可以接收用戶給定的數據,生成 iOS 開發中需要的機器學習模型(Core ML 模型)。

iOS 開發中,機器學習模型的獲取主要有以下幾種:

  • 從蘋果的官方主頁下載現成的模型。2017年有4個現成的模型,2018年有6個,今年增加到了9個(8個圖片、1個文字),數量有限,進步速度緩慢。

  • 用第三方的機器學習框架生成模型,再用 Core ML Tools 轉成 Core ML 模型。2017年蘋果宣佈支持的框架有6個,包括 Caffee、Keras。2018年宣佈支持的第三方框架增加到了11個,包括了最知名的 TensorFlow、IBM Watson、MXNet。至此 Core ML 已經完全支持市面上所有主流的框架。

  • 用 Create ML 直接訓練數據生成模型。2018年推出的初代 Create ML有三個特性:使用 Swift 編程進行操作、用 Playground 訓練和生成模型、在 Mac OS 上完成所有工作。

今年的 Create ML 在易用性上更進一步:無需編程即可完成操作、獨立成單獨的 Mac OS App、支持更多的數據類型和使用場景。

Create ML App 的主要功能

去年推出的 Create ML 的工作流程是這樣的:定義數據源 -> 用數據源訓練並生成模型 -> 驗證和測試 -> 保存模型。整個過程需要在 Playground 中編寫 Swift 代碼,示例代碼如下:

import Foundation
import CreateML

// 定義數據源
let trainDirectory = URL(fileURLWithPath: "/Users/createml/Desktop/Fruits")
let testDirectory = URL(fileURLWithPath: "/Users/createml/Desktop/TestFruits")

// 訓練模型
let model = try MLImageClassifier(trainingData: .labeledDirectories(at: trainDirectory))

// 評估模型
let evaluation = model.evaluation(on: .labeledDirectories(at: testDirectory))

// 保存模型
try model.write(to: URL(fileURLWithPath: "/Users/createml/Desktop/FruitClassifier.mlmodel"))

今年的 Create ML App 成爲了一個單獨的 Mac OS 應用,它的工作流程不變,但操作卻是異常簡便,這裏我們以花朵圖片分類器爲例:

  • 打開 Create ML App。打開 Xcode,選擇左上菜單 Xcode 選項,在開發者工具中找到 Create ML,點擊打開。

  • 選擇模型類型並導入數據。選擇模型類型爲圖片分類器,輸入名稱並保存。接着將準備好的訓練數據(花朵圖片)導入 Create ML App 中,這裏可以直接拖拽,也可以通過左上角文件菜單導入。

  • 訓練模型。點擊左上角運行按鈕,Create ML 一鍵訓練並生成花朵圖片分類器模型,期間我們能看到模型的訓練進度、對於不同花朵圖片的分類情況。
  • 評估模型。同導入訓練數據一樣,我們只需切換到測試一欄,然後將準備好的測試圖片拖拽至測試框中,接着點擊下方測試按鈕即可。
  • 觀察模型。至此我們已經生成了需要的花朵圖片分類器,我們可以點擊輸出一欄對其屬性進行觀察。

整個操作無需任何編程,即使是幾百張圖片也只需幾秒鐘即可生成對應模型。不僅如此,新的 Create ML App 提供的信息相比於之前的 Playground,也更加豐富、精確、簡潔。

Create ML 的應用場景

去年的 Create ML 支持圖片、文本、表格3種場景,今年增加到了5個爲圖片、文本、表格、聲音、活動5種。

  • 圖片:圖片分類器、目標識別。應用場景如上文中的花朵分類、藝術照特徵提取、撲克牌牌面識別。其進步在於,模型生成方面運用了遷移學習和深度學習、內部集成了數據增強、模型也縮小了尺寸,也就是說應用場景更廣、準確性更高、移動端適配性更好。

  • 文本:文本分類器、單詞標註。應用場景如提取長文本關鍵信息、判段文本反應出的情緒等。蘋果在 Core ML 框架上層還有專門的自然語言處理框架(NLP),它所能解決的文本問題更多、更加的高度定製化、也更加準確和易用。

  • 表格:表格分類器、表格迴歸、推薦系統。應用場景如根據某一物品特徵判定其類別及用戶滿意度、根據用戶喜好推薦商品等。

  • 聲音:音頻分類器。應用場景爲識別音頻類別。蘋果現場展示了用一段音頻來訓練模型,模型可以自動識別出掌聲和不同樂器發出的聲音。注意聲音方面雖然剛起步,但潛力很大,因爲語音識別、語音轉文字、文字轉語音都還可以深度集成在各種 App 中。另外 Apple Watch 也針對聲音模型訓練進行了硬件層面的加速優化,相信未來它會更加強大。

  • 活動:活動分類器。應用場景主要集中在運動方面。例如可以通過 Apple Watch 收集的加速度、經緯度、方向、海拔等信息訓練出模型。蘋果展示了利用飛盤(Frisbee)運動中獲取的信息訓練出的活動分類器模型,它可以自動區分出正手、反手等動作,以幫助運動員評估比賽表現和狀態。

蘋果自己也將 Create ML 和 Core ML 深度運用在了其 iOS 系統中:系統自帶的圖片應用中,其搜索功能就運用了單詞標註和圖片分類器模型,它可以快速準確得標註搜索內容,並將分類的圖片搜索出來。請注意這些內容都是在手機上獨立完成,無需網絡和服務器端的操作,這樣用戶的隱私也得到了充分保護。

總結

Create ML App 的獨立使得其靈活性和功能再一步增強。零門檻的操作、豐富的使用場景、原生系統的支持使得 App 開發者可以更自由得定義和使用機器學習。雖然難與 TensorFlow、Pytorch 等專業框架相提並論,但在開發 App 上,Create ML 已經可以滿足用戶的絕大多數需求。Create ML 的最大優點在於,它是以用戶需求爲驅動、完全服務於 App 開發,相信在 iOS 13 後越來越多的開發者將會採用 Creat ML 和 Core ML 開發應用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章