この記事は?
自前の画像を用意しCreateMLを使って物体検出モデルを生成するにあたり、パラメータなど気を付けるべきことは何か?を確認するため、WWDC 2020 TechTalk 「Create MLの物体検出モデルの改善」 を視聴しました。
この記事では、その動画で説明されたポイントを整理して、実際にCreateMLを使ってみて表示内容を確認しました。
WWDC 2020 TechTalk 「Create MLの物体検出モデルの改善」のポイント
トレーニング時のパラメータ
CreateMLでトレーニングする際に、以下のパラメータを指定できる
- アルゴリズム
- イテレーション
- バッチサイズ
- グリッドサイズ:アルゴリズムがFull netowrkの時のみ
アルゴリズム
Full network | Transfer Learning | |
---|---|---|
特徴 |
|
|
モデルサイズ(2019年が65MB) | 33MB | 7MB |
利用可能なバージョン | iOS 12以上 | iOS 14以上 |
必要なトレーニングデータの目安?(1クラスあたり) | 200 | 80 |
どういうときに使う? | 訓練データが大量にある場合 | データが限られ軽いモデルにしたい時 |
Full networkのトレーニングパラメータ
Transfer Learningのトレーニングパラメータ
イテレーション
- モデルのパラメータが更新される回数
- デフォルト値はデータセットのサイズにより選択される
バッチサイズ
- 1回のイテレーションで使われたトレーニング画像の数
- デフォルト値はハードウェアの制約に基づいて選択される
- バッチサイズは大きい方がよいが、制約に合わせて調整するのがよい
グリッドサイズ
- Full networkのみのパラメータ
- インプット画像のアスペクト比と、モデルがオブジェクトを探す場所を定義する
- デフォルトは13×13のグリッドを使用
- 15×8のような長方形も指定可能
- グリッド数が多くなると検出できるオブジェクトの数が増える一方で、画像当たりの推論の数が増える
- → 計算コストを考慮することが重要!
- 正方形でないインプット画像に正方形のグリッドを使えば、情報が失われモデルの精度が悪くなる
- → グリッドは入力画像のアスペクト比を維持するよう設定するのが良い結果をもたらす
モデルの評価
物体検出モデルの評価指標には以下の2つを使う
- IoU(=Intersection over Union)
- mAP(=mean Average Precision)
IoU
- 推論で描くバウンディングボックスと、注釈でつけたバウンディングボックスの重なり具合
- 0%は重なりがないことを示し、100%は完全に重なっていることを示す
mAP
- 推論結果のラベルが正しいこと、IoUがある一定の閾値以上であることを使って導き出す指標
- mAP算出にIoU使う
- mAPが高いほど正しい推測
- ビデオではあまり詳しい説明はなし
- 【物体検出】mAP ( mean Average Precision ) の算出方法 に詳しく解説されています
CreateMLの画面でIoU, mAPを実際に確認してみる
実際にCreateMLを起動しトレーニングを流して、動画で解説のあったIoU, mAPを確認してみました。
IoU
- 実際のCreateMLの画面では、
I/U 50%
とVaried I/U
の2つが表示されています - 【IOU】 Object Detection の性能指標【I/U】 の解説によると
- I/U 50%
このIOUが50%を越えているもの(50%重なっているもの)を正解とみなして%表示しています。
- varied I/U
閾値を50%〜95%まで変化させた時の平均正解率
余談:トレーニングデータがよくなかったのでしょうか、かなり低い値となってしまいました。。。
mAP
画面上、明示的にmAP
と書かれた箇所はないのですが、動画では、
The overall mean Average Precision for our data set can be seen at the top right corner.
と言っているので、右上にあるValidation
の値がmAPにあたる値なのかと思います。