モデルをトレーニングした後、AutoML Vision は TEST セットの項目を使用して、新しいモデルの品質と精度を評価します。
評価の概要
AutoML Vision には、モデルが全体的にどの程度適切に機能するかを示す評価指標のセットと、モデルが特定のラベルに対してどの程度適切に機能するかを示す各カテゴリラベルの評価指標が用意されています。
AuPRC: 適合率 / 再現率曲線の下の部分の面積で、「平均適合率」とも呼ばれます。通常は、0.5 から 1.0 の間です。値が高いほど、モデルの精度が高いことを示します。
信頼しきい値曲線は、さまざまな信頼しきい値が適合率、再現率、真陽性率、および偽陽性率にどのように影響するかを示します。適合率と再現率の関係をご覧ください。
混同行列: 画像ごとに単一のラベルがあるモデルにのみ存在します。トレーニング セット内の各ラベルについて、評価中にラベルが予測された回数の割合を表します。
たとえば、ラベル
one
はラベルone
として分類された画像にのみ割り当てられることが理想的であるため、次のような行列が理想的です。100 0 0 0 0 100 0 0 0 0 100 0 0 0 0 100
上の例で、ある画像が
one
に分類されているものの、モデルがtwo
と予測した場合は、最初の行は次のようになります。99 1 0 0
詳細については、混同行列機械学習で検索してください。
AutoML Vision は、最大 10 個のラベルの混同行列を作成します。10 個以上のラベルがある場合、行列には混同が最も多い 10 個のラベルが含まれます(誤った予測)。
このデータを使用して、モデルの準備状況を評価します。混同が多い、AUC スコアが低い、または適合率スコアと再現率スコアが低い場合は、モデルに追加のトレーニング データが必要であるか、ラベルに一貫性がないことを示している可能性があります。AUC スコアが非常に高く、適合率と再現率が完璧な場合は、データが単純すぎて適切に一般化できないことを示している可能性があります。
モデル評価の一覧表示
モデルをトレーニングしたら、そのモデルの評価指標を一覧表示できます。
ウェブ UI
AutoML Translation UI を開き、左側のナビゲーション バーで電球のアイコンがある [モデル] をクリックし、使用可能なモデルを表示します。
別のプロジェクトのモデルを表示するには、タイトルバーの右上にあるプルダウン リストからプロジェクトを選択します。
評価するモデルの行をクリックします。
必要に応じて、タイトルバーのすぐ下にある [評価] タブをクリックします。
モデルのトレーニングが完了している場合、AutoML Vision はその評価指標を表示します。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: GCP プロジェクト ID
- model-id: モデルを作成したときにレスポンスで返されたモデルの ID。この ID は、モデルの名前の最後の要素です。例:
- モデル名:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- モデル ID:
IOD4412217016962778756
- モデル名:
- model-evaluation-id: モデル評価の ID 値。モデル評価 ID は、
list
モデル評価オペレーションから取得できます。
HTTP メソッドと URL:
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID/modelEvaluations/MODEL_EVALUATION_ID
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID/modelEvaluations/MODEL_EVALUATION_ID"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID/modelEvaluations/MODEL_EVALUATION_ID" | Select-Object -Expand Content
次のサンプルのような JSON レスポンスが返されます。わかりやすいように、オブジェクト検出に固有の主要フィールドを太字で示し、classificationEvaluationMetrics
エントリは短縮版で示しています。
Go
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
Java
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
Node.js
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
Python
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
その他の言語
C#: クライアント ライブラリ ページの C# の設定手順を行ってから、.NET 用の AutoML Vision リファレンス ドキュメントをご覧ください。
PHP: クライアント ライブラリ ページの PHP の設定手順を行ってから、PHP 用の AutoML Vision リファレンス ドキュメントをご覧ください。
Ruby: クライアント ライブラリ ページの Ruby の設定手順を行ってから、Ruby 用の AutoML Vision リファレンス ドキュメントをご覧ください。
モデル評価値を取得する
評価 ID を使用して、特定のラベル(displayName
)に対するモデル評価を取得することもできます。モデル評価 ID を取得するには、モデル評価の一覧表示に示されているモデル評価一覧表示関数を実行します。
ウェブ UI
Vision Dashboardを開き、左側のナビゲーション バーにある電球アイコンをクリックし、使用可能なモデルを表示します。
別のプロジェクトのモデルを表示するには、タイトルバーの右上にあるプルダウン リストからプロジェクトを選択します。
評価するモデルの行をクリックします。
必要に応じて、タイトルバーのすぐ下にある [評価] タブをクリックします。
モデルのトレーニングが完了している場合、AutoML Vision はその評価指標を表示します。
特定のラベルの指標を表示するには、ページの下部にあるラベルのリストからラベル名を選択します。
REST
特定のラベルの評価指標のみを取得するには、レスポンスから上記のリクエストに /{MODEL_EVALUATION_ID}
を追加します。
たとえば、list オペレーションから返された評価名の rose
ラベル(displayName
)のモデル評価 ID を検索できます。
"name": "projects/PROJECT_ID/locations/us-central1/models/MODEL_ID/modelEvaluations/858136867710915695"
リクエストのデータを使用する前に、次のように置き換えます。
- project-id: GCP プロジェクト ID
- model-id: モデルを作成したときにレスポンスで返されたモデルの ID。この ID は、モデルの名前の最後の要素です。例:
- モデル名:
projects/project-id/locations/location-id/models/IOD4412217016962778756
- モデル ID:
IOD4412217016962778756
- モデル名:
- model-evaluation-id: モデル評価の ID 値。モデル評価 ID は、
list
モデル評価オペレーションから取得できます。
HTTP メソッドと URL:
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID/modelEvaluations/MODEL_EVALUATION_ID
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID/modelEvaluations/MODEL_EVALUATION_ID"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/models/MODEL_ID/modelEvaluations/MODEL_EVALUATION_ID" | Select-Object -Expand Content
次のような JSON レスポンスが返されます。
Go
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
Java
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
Node.js
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
Python
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
真陽性、偽陰性、偽陽性(UI のみ)
ユーザー インターフェースで、モデル パフォーマンスの特定のサンプルを確認できます。たとえば、TRAINING セットと VALIDATION のセットから真陽性(TP)、偽陰性(FN)、偽陽性(FP)のインスタンスを確認できます。
ウェブ UI
このサンプルを試す前に、クライアント ライブラリ ページを参照して、この言語の設定手順を完了してください。
UI で TP、FN、FP ビューにアクセスするには、[評価] タブをクリックして特定のラベルを選択します。
これらの予測の傾向を表示すると、トレーニング セットを変更し、モデルのパフォーマンスを向上させることができます。
真陽性の画像は、トレーニング済みのモデルに提供された画像で、モデルはこの画像に正しいアノテーションを付けています。
偽陰性の画像も同様にトレーニング済みのモデルに提供されますが、モデルは指定されたラベルの画像に対して正しいアノテーションを付けていません。
偽陽性の画像は、トレーニング済みのモデルに提供されていますが、モデルは、指定されたラベルに対して本来設定すべきでないアノテーションを付けています。
このモデルでは、めったにない面白いケースを選択していますが、これらを参考に定義とラベルを調整すれば、モデルによるラベルの解釈の理解度を向上させることができるでしょう。たとえば、より厳密な定義を行うことで、バラの抽象画を「バラ」と認識するべきかどうかモデルに理解させることができます。
ラベル、トレーニング、評価のループを繰り返すことで、データに存在する別のあいまいさが表面化することがあります。
また、ユーザー インターフェースのこのビューでスコアしきい値を調整すると、表示されている TP、FN、FP の各画像にしきい値の変化が反映されます。
モデルの反復
品質水準に不満がある場合は、前のステップに戻って品質を向上させることができます。
- AutoML Vision では、モデルの「混同」の度合い、真のラベル、予測されたラベルによって、画像を並べ替えることができます。これらの画像に目を通し、適切にラベルが付けられていることを確認してください。
- 低品質のラベルにさらに画像を追加することを検討してください。
- さまざまなタイプの画像を追加しなければならない場合があります(たとえば、構図の拡大、解像度の増減、異なる視点など)。
- 十分なトレーニング画像が存在しない場合は、ラベルを完全に削除することを検討してください。
- マシンにはラベル名の意味は理解できません。つまり、ラベル名はマシンにとって単なるランダムな文字列にすぎません。「door」というラベルと「door_with_knob」という別のラベルがある場合、マシンにはそのラベルが付いた動画以外にニュアンスを把握する方法はありません。
- 真陽性と真陰性のサンプルを追加してデータを強化してください。特に重要なサンプルは、意思決定の境界に近いものです(混同を招く可能性があるが、正しくラベル付けされているもの)。
- 独自の TRAIN、TEST、VALIDATION の分割を指定してください。ツールは画像をランダムに割り当てますが、割り当てが重複に近い場合は TRAIN と VALIDATION の過学習につながり、TEST セットのパフォーマンスが低下する可能性があります。
変更が完了したら、十分に高い品質水準に達するまで、モデルをトレーニングして評価します。