勉強しているときによく出会う語句について。
汎化性能って?
機械学習と呼ばれるものを勉強しているとよく汎化能力・汎化性能という言葉に遭遇するが、普段の生活では出会わず聞きなれない言葉だと思う用語なので簡単にメモ書きしておく。
そもそも機械学習における学習とは、学習に対する識別関数のoutputと教師データのerrorが最小になるように識別関数のパラメータを設定することです。しかし、トレーニングデータに対して上手く予測が行えたとしてもテストデータに対して同様に予測を行えるとは限りません。なぜならトレーニングデータに対してのみoverfitting(過適合)してしまっていることがあるからです。ここで、未知のテストデータに対する識別能力を汎化能力といい、識別関数がその能力が高いと汎化性能が高いということになります。
わかりやすく受験を例に言い換えてみます。
受験生A君は志望校の受験に向けてある問題集(トレーニングデータ)を勉強しているとします。この受験生A君は努力の末、今扱っている問題集を暗唱できるほど完璧に暗記したとします。しかし、試験当日、志望校の入試問題(テストデータ)はA君が完璧にしてきた問題集にあった問題と同じものは出題されませんでした。A君は自分が勉強していた問題集から入試問題が出題されていれば当然満点を取れましたがそうはならなかったため点数が取れず残念ながら不合格になりました。
この例は、「受験生A君が問題集(トレーニングデータ)にのみ過適合していたため入試問題(テストデータ)に対する汎化性能が低かった」と言えます。
こう考えるとなんだか他人事じゃないような気がしてきますね!