Macで機械学習を実践したい! Appleの機械学習開発環境を詳しく解説

Macで本格的な機械学習を行うのは意外に大変です。


近年、機械学習で使用されるプロセッサーはNvidiaのGPU一強の状態が続いております。
NvidiaのGPUを搭載していない現在のMacは、ある意味機械学習開発の中心からは外れた状態になっているとも言えます。

ハードウェアメーカーであるAppleはあくまでハードを売りたいのでしょう。
現状主力であるiPhone、iPadへの用途として、色々な開発用の環境や、モデルをリリースしています。
スマホ(iPhone)中心の開発であれば十分な環境が用意されています。
が、もうすぐ発売される本格プロ機である次期Mac Proの登場もあり、そろそろより本格的なMacで実現できる大規模機械学習開発環境が期待されるところです。

まずは現在のAppleの機械学習開発環境についてまとめてみました。

Appleの機械学習開発環境

Neural Engine

Appleの機械学習用プロセッサー 
(現在はiOSに注力して対応。少々異なりますがgoogleのTPUの様なポジション的)

CoreML

Appleの機械学習フレームワーク
(googleのtensorflowの様なものですが、iOS中心である事や画像認識、物体検出中心のモデルラインアップはtensorflow liteと言った方が適切でしょう)


今後の進化への期待も込め色々現状を解説させて頂きます。


Neural Engine

Neural Engineは、リアルタイムの高度な学習、処理を行える、機械学習用のApple製プロセッサーです。
画像認識系の処理に優れ、リアルなAR体験の実現などに活用されています。
Appleの機械学習フレームワークであるCoreMLに最適化されており、現在は主にiPhoneに搭載されています。

Macへの搭載も新しいProの登場で噂されている様ですが、果たしていつ頃、どんな方法で搭載されるのでしょうか?
Nvidiaとの和解?や、AMDのGPUを使用しての機械学習よりも実現度は高いかもと期待はしているのですが、、、

ちなみに現行のiPhoneXSのA12 Bionicに搭載されているNeural Engineはスマホ版にも関わらず8コア!毎秒5兆の演算処理が可能との事。
Mac Pro版に最適化され搭載されるのであればいったいどれだけの性能を発揮するのか非常に期待されるところです。

CoreML

Core MLはAppleの機械学習フレームワークです。
現在はCoreML2で、先日のWWDC19でCoreML3がアナウンスされています。
https://canplay-music.com/2019/06/10/wwdc19/

CoreMLはSiri、カメラ、QuickType(iPhoneのキーボード)など、様々なiPhoneアプリで用いられています。
MacのXcodeで、Create MLとPlaygroundを使用し独自のモデルを作成する事が可能です。
https://developer.apple.com/documentation/coreml

CoreMLではディープラーニングに加えて、ツリーアンサンブル、SVM、一般化線形モデルなどの機械学習でよく用いられるモデルに対応しています。

Metal(MACのGPU用)やAccelerate(描画や計算に最適化されたMACフレームワーク)といったMACのローレベルのテクノロジー上に築かれているため、CPUとGPUを双方活用し、最大限のパフォーマンスと効率を発揮することができるそうです。

現在はiPhoneを中心に活用されているためかモデルはVision(画像認識)や、Natural Language自然言語処理)が中心です。

Vision

https://developer.apple.com/documentation/vision

Natural Language

https://developer.apple.com/documentation/naturallanguage



CreateML

さらにこれらのモデルを活用するためにXcodeでプログラミングしモデルの構築をできるSwift言語のCreateMLというフレームワークも用意されています。

数行のSwiftコードを追加するだけで、VisionやNatural Languageのテクノロジーを活用することができ、リグレッション(回帰)、画像分類、単語のタグ付け、文の分類などAppleのエコシステム向けに最適化された様々なタスクのモデルを作成することができます。

CreateMLで作成できるモデルであればMACでデータの学習、独自のモデル作成など本格的な機械学習が可能です。

https://developer.apple.com/documentation/createml


その他のCoreMLモデルについて


Turi Create

Turi Createで、独自の機械学習モデルを構築できます。
機械学習の専門家でなくても、リコメンデーションシステム、物体検知、画像分類、類似画像検索、アクティビティ分類などの機能をAppに組み込むことができます。

https://github.com/apple/turicreate


音楽領域で注目されるのは、音響分類

Sound Classifier

https://apple.github.io/turicreate/docs/userguide/sound_classifier/

モデルもいくつか用意されていますが、今のところ、音楽の分類などではなく動物の鳴き声や自然音などの分類です。
今後はこの辺りの音楽領域でもAppleの本気を期待したいと思っております。

IBM Watson Services

Watson Services for Core MLを使用すると、IBM Watsonの多彩なAI機能にiPhoneやiPadから直接アクセスするAppを簡単に構築できます。
AppでWatson Servicesを利用すれば、画像を迅速に分析し、ビジュアルコンテンツを正確に分類して、モデルを簡単にトレーニングすることができます。

Watsonの自動作曲プログラムであるWatson Beatの使用は是非試してみたいのですが、モデルにはない様ですね、、、

https://developer.apple.com/ibm/




モデルコンバーターの解説
他のフレームワークやツールで作成されたモデルの変換ツールも用意されています。

Core ML Tools

各種の機械学習ツールで作成されたモデルをCore MLの形式に変換できる

https://pypi.org/project/coremltools/


TensorFlowモデルコンバーター

TensorflowモデルをCore MLのモデル形式に変換できるツール

https://github.com/tf-coreml/tf-coreml


その他物体検出(Object Detection)のモデルが多数用意されています。

https://developer.apple.com/jp/machine-learning/build-run-models/



いかがだったでしょうか?

現在はiPhone用途が中心(というよりもそれだけ)という感じで、いわばポジションの説明で前述した通りライバルはGoogleのTPU&TensorFlow Liteと言えるでしょうか。

NvidiaのGPUが搭載されるのは期待薄だとすればやはりニューラルエンジンを中心にAppleの機械学習Mac向けのラインナップの進化が期待されるところです。


さらにご興味のある方はAppleの機械学習ジャーナルの購読もいかがでしょうか?

https://machinelearning.apple.com/


非常に勉強になりますが、更新頻度は低めです、、、汗、、、


以上かなりマニアックな内容かもしれませんが、機械学習、ディープラーニングを実践しているMACファンには気になる解説になったのではないかと思っています。

記事投稿日:2019/6/10