第 40 章
使用 Core ML 打造一個即時圖片辨識 App
過去幾年,機器學習(machine learning)已經成為一個熱門的主題。如 Google 、Amazon 與 Facebook 這些科技巨擘,在這個領域的發展也非常競爭,不斷嘗試加入 AI 服務來強化自家的產品。除了 Siri 這個智慧個人助理的服務之外,Apple 對於 AI 的觀點以及如何將機器學習應用在 iOS App 的做法的一直保持沈默。Core ML 正是Apple 所給的答案,開發者可以透過簡單的 API 便能夠強化自己的 App,讓 App 更聰明。

有了 Core ML 框架,開發者可以更容易地整合受過訓練過的機器學習模型進入 iOS App。簡單的說,機器學習是一種人工智慧(artificial intelligence,簡稱 AI),人工智慧可以讓電腦程式從歷史資料來學習並作出預測。一個有訓練過的 ML 模型是將一組有訓練過的資料以機器學習演算法來運算後的結果。
Core ML 可以讓你整合各式機器學習的模型型態至你的 App 中,除了支援高達30多層的深度學習型態之外,它也支援像是標準的樹集成(tree ensembles)、SVM 與廣義線性模型(generalized linear models)。因為它是建構在像是 Metal 與 Accelerate 的底層技術上面, Core ML 完全利用了 CPU 與 GPU 的優勢來提供最大的效能與效率。你可以在裝置上運行機器學習模型,因此資料不需要離開裝置來做分析。
舉例來說,你想要建立一個辨識人臉表情(譬如快樂、生氣、悲傷)的 App。要訓練這樣的模型,你需要提供給它大量的資料來訓練快樂的表情是如何,生氣的表情又是如何。在這個例子,訓練過的 ML 模型是以圖片作為輸入,分析該圖片中人的臉部表情,然後判斷出表情狀況後輸出。

在還沒導入 Core ML 之前,要將訓練過的 ML 模型整合進去 iOS App 非常困難。現在,有了這個新框架,你可以轉換這個訓練模型為 Core ML 格式後整合至你的 App 中,並使用這個模型來讓你的 App 更聰明。更重要的是,待會你會見到,只要幾行程式就可以使用這個模型。
Note:如果你是機器學習與人工智慧的新手,我建議你可以看一下這份由Vishal Maini (https://medium.com/machine-learning-for-humans/why-machine-learning-matters-6164faf1df12 )所編寫的初學者指南 - Machine Learning for Humans
在這篇教學中,我們會將重點放在使用一些現成的模型來作為我們的 Core ML 範例。
至於一個機器學習模型如何的被訓練,這不是本篇文章的範疇。不過如果你有興趣訓練你自己的模型,你可以參考以下的資源:
- 如何使用機器學習來預測葡萄酒的品質(How to Use Machine Learning to Predict the Quality of Wines )(https://medium.freecodecamp.org/using-machine-learning-to-predict-the-quality-of-wines-9e2e13d7480d)
- 使用 TensorFlow 來進行的股價預測的簡單深度學習範例(A simple deep learning model for stock price prediction using TensorFlow)(https://medium.com/mlreview/a-simple-deep-learning-model-for-stock-price-prediction-using-tensorflow-30505541d877)
本文摘自《iOS 18 App程式設計進階攻略》一書。如果你想繼續閱讀和下載完整程式碼,你可以從AppCoda網站購買完整電子版,全書範例檔皆可下載。