機械学習モデルの性能評価方法

問題設定:機械学習モデルの性能評価

深層学習の研究開発では、比較的初期の段階で、誤差やコストに関する性能指標を決定しておかなければならない。その後の研究開発の意思決定過程は、こうした性能指標に依存して方向付けられていく。

問題解決策:精度の区別

機械学習のモデル性能を評価するには、その精度を定量化しなければならない。分類や予測の精度は、その分析結果に対して「真偽」の区別を導入することで、一見容易に判断できるように思える。「真の結果」が出れば精度は高く、「偽の結果」が出れば精度は低いという訳だ。この時、「精度」という概念は分類器や予測モデルが「真の結果」を指し示す割合を意味する。

$$精度 = \frac{真の結果を出力した回数}{出力回数の総和}$$

いわゆる「誤差率(error rate)」は、1からこの精度の値を減算することで得られると考えられる。

$$誤差率 = 1 – \frac{真の結果を出力した回数}{出力回数の総和} =\frac{偽の結果を出力した回数}{出力回数の総和}$$

「精度」と「誤差率」の比較は単純明快なモデル性能を表すために、様々な現場で流用されている。しかし、真偽の区別を導入した場合の盲点となるのは、この区別が指し示す対象の範囲だ。一口に「真の結果」と述べても、その「真」が分類器やモデルの全般的な「真」なのか、あるいはある一定の結果だけについての「真」なのかがわからない。分類器にせよモデルにせよ、凡そアルゴリズムはデータに依存しながら作動する。そしてその作動の実態は目指すべき出力値にも左右される。「真」という概念だけでは、別のあり方でもあり得るデータや目指すべき出力値にどの程度汎用的に耐久し得るのかが不透明に終わる。このことは、「真」のみならず「偽」についても言えるだろう。こうした真と偽の区別を適切に導入するには、科学・学問の問題領域を構造化している機械学習やニューラルネットワーク最適化問題の理論や方法に準拠しなければならない。

形式としての混同行列

データサイエンスの分野では、分類器やモデルの評価に関する方法が形式化されている。多くの場合、精度の評価には「混同行列(confusion matrix)」が利用される。混同行列は、実際のクラスを列に、分類器やモデルが予測したクラスを行に表した行列を意味する。n個のクラスを含む分類問題に対しては、n×nの混同行列が割り当てられる。

混同行列の「混同」とは、あるクラスの列に誤って分類された別のクラスがどの程度の行数分混同して割り当てられているのかを言い表している。この行列を参照すれば、分類器やモデルの「偽の結果」をそれ自体分類することが可能になる。

2 × 2の混合行列で表現可能な2クラスの分類問題を設定する。2クラスをそれぞれpositiveとnegativeと置く。この時、予測されたクラスと実際上のクラスに差異が生じるはずなので、混同行列は次のようになる。

positive(予測) negative(予測)
positive(実際) 真陽性(true positive) 偽陰性(false negative)
negative(実際) 偽陽性(false positive) 真陰性(true negative)

この行列の突き合わせにより、予測されたクラスと実際のクラスとの組み合わせの数は2 × 2となる。場合によっては列と行が逆になる場合もあるが、それは書き手に依る。

この時、positiveと予測して実際にもpositiveである場合を「真陽性(true positive; TP)」、positiveと予測して実際にはnegativeである場合を「真陰性(true negative; TN)」、positiveと予測して実際にはnegativeである場合を「偽陽性(false positive; FP)」、そしてnegativeと予測して実際にはpositiveである場合を「偽陰性(false negative; FN)」と呼ぶ。

TP、TN、FP、FNから、モデル性能を割合で計算することが可能になる。例えば真陽性率と陰陽性率は、それぞれ次のように算出できる。

$$真陽性率 = \frac{TP}{TP + FN}$$

$$陰陽性率 = \frac{FN}{TP + FN}$$

これらはそれぞれ正しい結果を出力した割合と誤った結果を出力した割合を意味する。

ここでいう真陽性率は、テキストマイニングや自然言語処理の文脈で言及される「再現率(recall)」と等価となる。一方、同様に自然言語処理などで言及される「適合率(precision)」は、$$\frac{TP}{TP + FP}$$で計算される。この指標は陽性予測の精度を意味している。

再現率と適合率が高ければ高いほどそのモデル性能は高いと考えられている。だがこれらの分母にあるFNとFPの関係からもわかるように、両者はトレードオフの関係にある。そこで、双方を共に追求する際の指標として、両者の調和平均を意味するF値(F-measure)が参照されることもある。

$$F値 = 2 × \frac{適合率×再現率}{適合率+再現率}$$

参考文献

  • Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep learning (adaptive computation and machine learning series). Adaptive Computation and Machine Learning series, 800.

執筆者