Xcode標準機能で機械学習モデルの作成ができる!
XcodeにはCoreMLという機械学習モデルの利用や作成ができるフレームワークがあります。
CoreMLとは
Appleが2017年に発表した機械学習モデルの利用の無料のフレームワーク。
モデルの作成にはCreateMLを使用する。
最新版のXcodeでは標準機能でついており、無料で使用することができる。
ただし公式の使用方法が記載されているドキュメントは英語のみ。
【目標】航空機(主にヘリコプター)を画像から自動的に機種を判別するAIモデルを作成
モデル作成フロー
練習データとテストデータを用意する
・機種ごとにファイルを用意
・練習フォルダの中身とテストデータの中身はファイル名を必ず同一にする
・train用の画像は機種ごとに10枚ずつ、test用の画像は3枚ずつインプット
CoreMLに実際に学習させる
trainしてなんと数秒でモデルが出力された。(写真は計117枚入力)
では実際に画像を与えて判別できるのか?
結果①
学習に使用していない新たなAS332の画像を与えたところ、見事に機種を的中させた。ただし、信頼率は61%とやや低い。
結果②
次に、学習に使用していない新たなS76の画像を与えたところ、見事に機種を的中させた。さらに信頼率は99%とかなり高い。
結果③
次に固定翼であるC680の画像を与えたところ、なんと信頼率100%で的中させた。このモデルは飛行機とヘリコプターの判別は得意なようです。
検証
モデルの正確性①
モデルのValidation Accuracy(検証正確性)がかなり低くなってしまったが、これはテストデータが少なかったためと考えられる。
モデルの正確性②
分類ごとで見るとこのモデルはまだまだ未熟であることがわかった。
実用には全ての分類で80〜90%の正確性は欲しいところである。
モデルの応用
本モデルはiphoneアプリに組み込むことができます。アプリからカメラにアクセスして実際の実機や写真を撮影することで機種判別ができます。
課題
CoreML中身はブラックボックス
画像を与えれば勝手に学習して規則性を見出してくれますが、この規則性の見つけ方・計算方法がブラックボックスです。(公開したら真似されてしまうので当然ですが)アプリを開発するにあたってこのブラックボックスに依存していることが、未知のリスクを含んでいると感じました。