【CoreML入門】機械学習をiOSで
目次
はじめに
機械学習モデルを簡易的にiOSアプリ内に組み込むことができるCoreMLについてまとめます。
CoreML
Core ML 2を使用すると、幅広い種類の機械学習モデルをAppに組み込むことができます。30種類以上のレイヤを持つ大規模なディープラーニングに加えて、ツリーアンサンブル、SVM、一般化線形モデルなどの標準的なモデルにも対応しています。
ツリー・アンサンブル
予測モデルである決定木を用いた機械学習の手法の一つ『SVM(サポート・ベクター・マシン)』
サポートベクトルとは、「予測に必要となる一部のデータ」です。「マージン最大化」と呼ばれる考え方を用いて「判別する境界とデータとの距離」を決めます。一般化線形モデル
残差を任意の分布とした線形モデル。線形回帰、ポアソン回帰、ロジスティック回帰などが含まれる。1972年にネルダーとウェダーバーンによって提唱された。
Core MLはMetalやAccelerateといったローレベルのテクノロジー上に築かれているため、CPUとGPUをシームレスに活用し、最大限のパフォーマンスと効率を発揮することができます。機械学習モデルはデバイス上で実行できるため、分析のためにデータを外部に送信する必要がありません。
MLモデル
CoreMLは下図のようにMLモデルをアプリ内に組み込むことで機械学習を可能にします。 MLモデルはこちらからダウンロードできます→機械学習 - モデルの実行 - Apple Developer
CoreMLアーキテクチャ
CoreMLでは画像解析のためのVision、自然言語処理のためのNatural Language、学習された決定木を評価するためのGameplayKitをサポートします。AccelerateやBNNS、Metal Performance Shadersなどの低レベルのプリミティブの上に構築されています。
Metal
アップルのオペレーティングシステム上でサポートされる、オーバーヘッドの小さいローレベル (low level) なコンピュータグラフィックスAPIAccerelate
数学的計算や画像計算を簡単に扱えるフレームワークBNNS(ベーシック・ニューラル・ネットワーク・サブルーチン)
Accerelateに追加されたニューラルネットワークのためのサブルーチン
Vision
コンピュータビジョンの機械学習機能を容易にAppに組み込むことができます。フェイストラッキング、顔検出、ランドマーク、テキスト検出、矩形検出、バーコード検出、オブジェクトトラッキング、画像レジストレーションなどの機能に対応しています。
Natural Language
Natural Languageフレームワークは、自然言語のテキストを分析し、その言語特有のメタデータを推定するために使用する新しいフレームワークです。このフレームワークをCreate MLと組み合わせることで、カスタムのNLPモデルをトレーニングしてデプロイすることができます。
まとめ
以上がCoreMLについての概要です。一般化線形モデルやSVMなど突っ込んだところは相当難解ですが、CoreML自体は簡易的に実装できるのが現状です。次回はCreateMLについてまとめたいと思います。