分類モデルを評価する

完了

機械学習の大きな部分を占めるのは、モデルの動作を評価する作業です。 この評価は、トレーニング中にはモデルの整形のために行い、トレーニング後にはモデルを実際に使用して問題ないかどうかを判断するために行います。 分類モデルでも回帰モデルと同様に評価が必要ですが、評価方法は少し複雑になる場合があります。

コストに関する復習

トレーニングする際に、モデルのパフォーマンスがどのくらい悪いかを計算すること、また、これをコストまたは損失と呼ぶことを覚えておいてください。たとえば、線形回帰では、平均二乗誤差 (MSE) というメトリックを使うことがよくあります。 MSE は、予測と実際のラベルを比較し、差を二乗して、結果の平均を求めることで計算されます。 モデルを適合させ、その動作の良好さを報告するために MSE を使用できます。

分類のコスト関数

分類モデルは、出力の確率 (雪崩の可能性が 40% など) または最終的なラベル ("no avalanche" または "avalanche") で判断されます。 出力確率を使うと、トレーニングする際に有利になることがあります。 モデルのわずかな変化は、最終的な判断を変えるほどではないにせよ、確率の変化に反映されます。 モデルの実際のパフォーマンスを推定する場合は、コスト関数の最終的なラベルを使う方が便利です。 たとえば、テスト セットの場合です。 なぜなら、実際の使用では、確率ではなく最終的なラベルを使うからです。

対数損失

ログ損失は、単純な分類で最も一般的なコスト関数の 1 つです。 ログ損失は出力確率に適用されます。 MSE と同様に、少量の誤差は小さなコストになりますが、誤差の量が中程度の場合は大きなコストが発生します。 正しい回答が 0 (false) のラベルに対するログ損失を次のグラフにプロットします。

ログ損失の例のグラフを示す図。

x 軸は可能性のあるモデルの出力 (0 から 1 の確率)、y 軸はコストを示しています。 正しい応答が 0 であるという確実性が高いモデルの場合 (たとえば 0.1 と予測)。 この場合、この例の正しい応答は 0 であるため、コストは低くなります。 モデルによる結果の予測が間違っている場合 (たとえば 0.9 と予測)、コストは高くなります。 実際、x=1 ではコストが非常に高くなりますが、グラフを読みやすくするため、ここでは x 軸を 0.999 でトリミングします。

MSE ではない理由

MSE とログ損失は似たメトリックです。 ロジスティック回帰でログ損失が好まれるにはいくつか複雑な理由がありますが、簡単な理由もあります。 たとえば、間違った回答に対する罰則は、MSE よりログ損失の方がはるかに大きくなります。 たとえば、次のグラフでは、正しい回答が 0 の場合、0.8 を超える予測に対して、MSE よりログ損失の方がコストは高くなります。

ログ損失と MSE のグラフを示す図。

この方法でコストを高くすると、線の傾きが急なので、モデルの学習が速くなります。 同様に、ログ損失は、モデルが正しい回答を出す確実性を高くするために役立ちます。 先ほどのプロットで、値が 0.2 未満の MSE コストは小さく、傾きはほぼ平坦であることに注目してください。 この関係があるので、正解に近いモデルのトレーニングが遅くなります。 ログ損失ではこれらの値の傾きが急になり、モデルの学習が速くなります。

コスト関数の制限

人間がモデルをる評価するときに 1 つのコスト関数を使用しても、モデルがどのような間違いを起こしているのかわからないので、常に制限があります。 たとえば、この雪崩予測シナリオについて考えます。 ログ損失の値が高いということは、モデルが繰り返し雪崩を予測しているにもかかわらず、実際には発生していないことを意味する可能性があります。 または、実際に起こる雪崩の予測に繰り返し失敗していることを意味する可能性もあります。

モデルをよりよく理解するには、複数の数値を使用して、うまく機能しているかどうかを評価する方が簡単です。 このより大きなテーマについては他の学習教材で扱いますが、次の演習でも触れます。