評価指標(metric)を使って、機械学習モデルのパフォーマンスを調整します。
フレームワーク
- Create ML
- Create MLUI
概要
モデルを評価して向上させるには、まず、異なるデータセットでそのパフォーマンスを確認します。各データセットでの測定指標から、モデルの精度に最も影響を及ぼすのはどの変更であるかがわかります。
一つの評価指標で、モデルのパフォーマンスについてすべてがわかることはありません。モデルを向上させるには、トレーニング用、バリデーション用、テスト用のデータセット間で測定指標(モデルのタイプによって、MLClassifier
モデルを作成してテスト用データを読み込んだ後、プログラムでこれらの値にアクセスすることもできます。
print("Training Metrics\n", model.trainingMetrics)
print("Validation Metrics\n", model.validationMetrics)
let evaluationMetrics = model.evaluation(on: testData)
print("Evaluation Metrics\n", evaluationMetrics)
この場合、classification
モデルのトレーニング精度の向上
モデルのトレーニング精度が低い場合は、現在のモデル構成がデータの複雑さを捉えられないことを示しています。
トレーニングパラメータを調整してみます。画像データを扱っている場合、MLImage

自然言語データの場合は、別の基本アルゴリズムを試します(MLTextClassifier.
モデルのバリデーション精度の向上
バリデーションセットでモデルの精度が低い場合、またはモデルをトレーニングするたびに精度が上下に変動する場合は、より多くのデータが必要です。すでに収集したサンプルからより多くのデータを生成することができます。この技術はデータの水増し(data augmentation)と呼ばれます。画像データの場合、トリミング、回転、ぼかし、露出補正などの操作を組み合わせて、一つの画像から複数のサンプルを作成できます。

また、多くのデータがあっても、バリデーションの精度がトレーニングの精度と比較して大幅に低下する場合があります。この場合はモデルが過学習(overfitting)になっています。これは、トレーニングセットについて、ほかのサンプルには一般的に適用できない細部まで学習しすぎてしまう現象です。この場合は、トレーニングイテレーションの数を減らし、モデルがトレーニングデータについて学習しすぎないようにする必要があります。
モデルの評価精度の向上
テストデータでのモデルの精度がトレーニングデータやバリデーションデータより低い場合は、通常、モデルのトレーニングに使ったデータの種類と、評価のために提供しているテスト用データとの間に有意な差があることを示します。
例えば、屋内で撮影した多数の猫の画像を使ってMLImage
これを修正するには、トレーニングセットで、より多様なデータを提供します。一般に、サンプルが多いほどパフォーマンスが向上しますが、テストデータと同じくらい多様なサンプルをモデルに見せることも重要です。