2017年6月7日 星期三

Core ML 機系學習框架是什麼?

今年 WWDC 2017 蘋果推出第一個可以在所有的蘋果裝置 (包和 iOS、watchOS、macOS 及 tvOS) 上運行的機器學習框架 (Machine Learning Framework)Core ML」,藉由 Core ML 的幫助可以讓這些輕量級裝置具備人工智慧運算能力。接下來我們就來研究一下 Core ML 究竟是什麼吧!

什麼是 CoreML?

Core ML 是蘋果在 WWDC 2017 發表的機器學習框架 (Machine Learning Framework),開發人員可以藉由 Core ML 的輔助,快速將已完成訓練的機器學習模型 (model) 整合進 app 中,讓 app 也能具備人工智慧的學習及預測能力。

core-ml-overview

Core ML 可以視為是整個神經網路學習系統的子集功能。在完整的神經網路學習系統建立流程中,需要藉由大量的資料來訓練、評估、調整及驗證模型,最後才將可用的模型交給機器學習引擎運作,而這些階段需要巨量的資料及 (長時間的) 運算能力,因此 Core ML 的工作就是利用已經完成訓練的模型,並且利用裝置的 CPU 及 GPU 最大化運算效能及效率,減少記憶體占用以及功耗。

Core ML 支援多種機器學習模型,包含:

  • 神經網路
    包含前饋式、卷積式以及遞迴神經網路
  • 組合樹
  • 支援向量機 (SVM)
  • 正規化線性模型
  • 特徵工程
  • 管道模型
預測模型分類 支援模型種類 支援工具
神經網路 Feedforward, convolutional, recurrent Caffe
Keras 1.2.2
組合樹 Random forests, boosted trees, decision trees scikit-learn 0.18
XGBoost 0.6
支援向量機 (SVM) Scalar regression, multiclass classification scikit-learn 0.18
LIBSVM 3.22
正規化線性模型 Linear regression, logistic regression scikit-learn 0.18
特徵工程 Sparse vectorization, dense vectorization, categorical processing scikit-learn 0.18
管道模型 Sequentially chained models scikit-learn 0.18

由於 Core ML 本身不具備建模能力,因此蘋果也提供了模型轉換工具,能將使用如 Caffe、Keras、scikit-learn、XGBoost 及 LIBSVM等建立的模型轉換為 Core ML 可是別的模型檔案格式。

此外,由於裝置效能及可用性的限制,Core ML 可建立的深度學習網路最高只達 30 層,但是以行動裝置的應用面和處理速度來說,30 層的深度學習網路已經相當足夠。

deep-network

Core ML 架構

由下方 Core ML 架構圖可以看出蘋果已經針對目前第一階段的規劃,在 Core ML 中提供三個應用領域的框架支援,包含用於高效能圖片、影片分析的 Vison,用於協助自然語言處理的 Fundation 以及讓遊戲開發商可以在遊戲中導入人工智慧的 GameplayKit 等三大應用框架。

而 Core ML 的底層也建構於 Accelerate -一個針對大型矩陣、數位訊號、影像及大數運算的框架,以及 BNNS (Basic Nural Network Subroutine)-用於實作及執行類神經網路相關功能的程式集。

core-ml-overview-2

目前蘋果也提供四個已轉換為 Core ML 的模型提供下載,如果您是開發人員想要先嘗試實作 Core ML 技術,可以下載這些模型實作:

  1. Places205-GoogLeNet
  2. ResNet50
  3. Inception v3
  4. VGG16

 

參考內容:Apple Machine Learning

更多Apple相關報導



from 硬是要學 https://www.soft4fun.net/tech/what-is-core-ml.htm

沒有留言:

張貼留言