74
65

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

iOS #2Advent Calendar 2019

Day 4

Appleの機械学習がヤバい

Last updated at Posted at 2019-12-03

近年、機械学習はさまざまな分野で利用され注目を高めてきました。また、Firebaseをはじめてとした様々なクラウドサービスで手軽に利用できるほど便利なものになりました。そんな中、今年発表されたAppleの機械学習フレームワークCoreML3がすごかったため、今回CoreML周辺の情報を簡単にですがまとめてみました。

CoreMLとは?

Appleが2017年に発表した機械学習を扱うためのフレームワークであり、今年新たにCoreML3という名前で強力な機能の追加がなされた。機械学習モデルの仕様はオンデバイスで完結させることができ、さらにCreateMLというFrameworkを使い機械学習モデルを超簡単に作成することが可能。モデルを作成するためのCreateMLアプリはこちら
下記の画像でCoreMLの上位レイヤー部分にあたるフレームワークがCoreML3にのFeatuesです。

参照: https://developer.apple.com/documentation/coreml より

CoreMLを使用するメリットは?

CoreMLを使用するメリットは下記の通り大きく分けて4つあり、どれもオンデバイスで完結することによる効力を受けています。

Privacy

  • ネットワークを介してデータのやりとりする必要がないため、個人情報を守ることができる

Speed

  • デバイス上ですでにある学習モデルを使用するため、データ取得にかかる時間が超高速

No Server

  • デバイス上で完結するためサーバが必要なくなります

Available

CoreMLで何ができる?

実際にアプリにCoreMLが取り入れられているものを参考に見ていきましょう

  • BootFinder-App

    これは、写真を撮るだけでブーツの種類を判別し、そのブーツを販売しているオンラインストアを探すことができるアプリですが、ネットワークを介していないため、普通にサーバを介してデータを取得する場合とでは処理の速さは一目瞭然です。一度試しに使って見るとわかるのですが、超高速です。
    ml-2.jpg

  • HomeCourt-App

このアプリはバスケの練習を機械学習を用いることで、より効果的にトレーニングを行うことができるアプリです。

どこで機械学習が使われている?
  • バスケのドリブルを練習したい場合、ボール・人物・人物のバランスを検知し、トレーニングしたいポイントに応じてバーチャルな目標物が画面に出力され。目標物をタッチすることでトレーニングできる仕組み
どう作られてる?

下記の項目が主に使われている機能です。ここではだいたい機能がVisionフレームワークを使うことで実現されています。このVisionフレームワークについては別のセクションでも説明します。

CoreML-Framework

Model Creation

  • MLModel作成用のCreateML-Appで簡単に作ることができる(Xcodeでも可能)

Model生成の流れ

  1. DataCollection
  2. DataPreparation
  3. Training
  4. Testing

MLModelを作る上でポイント

Modelの精度の高まりを認知し、効果的にトレーニングするために、トレーニングの最初からテストを行って行くことが重要です。また、アプリ毎の用途に応じて必要なデータ量などは変わっていきますがImageClassificationの場合1クラス10枚から学習することが可能でしたので、手軽に使えそうです。そして、自分は機械学習についての知識は浅かったため知らなかったのですが、無視するべき関係のないデータ(ネガティブクラス)を含めることもModelを作成する上では重要みたいです。なぜ関係のないデータも必要かというと、例えば、りんご・いちごしか学習クラスがなかった場合、画像認識の際にどちらかのカテゴリーに結果が振り分けられますが、他のデータも学習させておくことで間違いの結果に当てはめてしまう確率を下げるということが狙いみたいですね。また、クラス(カテゴリー)のTrainingデータ量のバランスも大事で、できるだけバランスよく均等にデータ量を整えることが質の高いModelを作る上では重要です。

最後に

今回はあまり触れていませんでしたが、個人的にMLDataTableの活用の幅が広そうだなと感じました。例えば、好みの条件に合わせた地域の家賃相場を算出するアプリなどで、地域間取りキッチンの広さなどをそれぞれテーブルのカラムとし、それぞれの家賃を学習させることで、条件にあった地域の家賃がどのくらいなのかをネットワークを介さず高速に算出することができます。このようにCoreMLには色々な活用方法があり、まだまだ便利な機能があると思うので、何か面白そうな機能を見つけたらぜひ教えてください🙏

74
65
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
74
65

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?