かぴばらさんの覚書ブログ (nonkapibara 自分メモ)

かぴばらさんの覚書ブログ (nonkapibara 自分メモ)

Unity勉強中です。 AR、VR、エンターテイメント全般、ワクワクする事が大好き♪♪ O(≧∇≦)O イエイ!!

【機械学習】Create MLモデルをXcodeのPlaygroundで作ってみた

環境メモ
⭐️Mac OS Mojave バージョン10.14
⭐️Xcode11.2

 

↓↓↓実際に動かした動画

https://twitter.com/nonnonkapibara/status/1222857714319024129

 

Create MLとは

Core MLのモデルを作成するためのmacOSの新フレームワークです。
Macで独自の機械学習モデルを作成してトレーニングします。
Drag&Drop機械学習モデルが作れます。

※Core MLは、下記で試しています。
機械学習】Core MLモデルをXcodeで実装してiPhoneで画像分類を試してみた
https://qiita.com/nonkapibara/items/c3ed86a125c916baadc0

 

データの準備

猫と犬の画像が12,500枚あるデータサンプルデータ
「Kaggle Cats and Dogs Dataset」を使います。
まず、ダウンロードします。

Kaggle Cats and Dogs Dataset
https://www.microsoft.com/en-us/download/details.aspx?id=54765

f:id:nonkapibara:20200130065729p:plain

 

2.ダウンロードしたら、PetImagesフォルダの中に「Cat」と「Dog」があるので、これを使います。

f:id:nonkapibara:20200130065752p:plain

f:id:nonkapibara:20200130065809p:plain

 

※画像は「299×299」ピクセル以上を推奨する

3.学習用と評価用とフォルダを作ります。

f:id:nonkapibara:20200130065853p:plain

作業開始

4.Xcodeを起動し、「File」-「New」-「Playground」を選択する

f:id:nonkapibara:20200130070009p:plain

5.「Blank」を選択して「Next」ボタンで次へ行く

f:id:nonkapibara:20200130070024p:plain

6.Playgroundの画面が起動する

f:id:nonkapibara:20200130070127p:plain

 

7.コードを書く
CreateMLUIをインポートする。
MLImageClassifierBuilderを生成して、Playground画面にUIを表示する。

f:id:nonkapibara:20200130070148p:plain

import CreateMLUI

let mlui_builder = MLImageClassifierBuilder()

mlui_builder.showInLiveView()

 

8.インポート文で「No such module "CreateMLUI"」のエラーが出たら

プロパティを表示して、iosからMacOSに変更する

f:id:nonkapibara:20200130070234p:plain

f:id:nonkapibara:20200130070427p:plain

 

9.ここで、保存して「FIle」-「Save」

f:id:nonkapibara:20200130070456p:plain

 

「Command+Q」でXcodeを終了させて再びPlaygroundを起動します。
そうすると、インポートのエラーが消えます。

f:id:nonkapibara:20200130070628p:plain

10.スクリプトの実行ボタンを押します。

f:id:nonkapibara:20200130070642p:plain

11.下記の、画像分類モデルを学習させるUIが起動します。

f:id:nonkapibara:20200130070712p:plain

 

12.学習用の画像ファイルをDrag&Dropでアップロードします。

f:id:nonkapibara:20200130070759p:plain

13.学習が始まるので、しばらく待ちます。

f:id:nonkapibara:20200130070927p:plain

 

14.学習が終わり、学習データの正解率と検証データと正解率が表示されます。

f:id:nonkapibara:20200130071150p:plain

15.では、次に評価データを入れます。
評価用の画像ファイルをDrag&Dropでアップロードします。

f:id:nonkapibara:20200130071355p:plain

16.評価完了

f:id:nonkapibara:20200130071431p:plain

 

予測結果もみれます。

f:id:nonkapibara:20200130071552p:plain

f:id:nonkapibara:20200130071757p:plain

 

f:id:nonkapibara:20200130071810p:plain

17.モデルの保存

右上のボタンを押して、Saveします。

f:id:nonkapibara:20200130071915p:plain




f:id:nonkapibara:20200130071944p:plain

 

保存完了

f:id:nonkapibara:20200130071955p:plain



※なお、正解率が低い場合は、「Max Iterations」で学習の最大回数を増やしたり「Augmentation」で学習データの数を増やしたりして再度、学習する事ができます。

f:id:nonkapibara:20200130205845p:plain

f:id:nonkapibara:20200130205857p:plain

詳細はAppleのドキュメントを参照

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

f:id:nonkapibara:20200130210116p:plain