学習 未知データへの対応力:汎化性能
機械学習では、様々な情報から規則性やパターンを見つけ出し、将来の予測や判断に役立てることを目指します。この学習の成果を測る物差しの一つに「汎化性能」があります。これは、学習中に一度も目にしたことのない、全く新しいデータに対しても、どれだけ正確に予測や分類ができるかを示す能力のことです。
たとえば、大量の手書き数字画像を学習させて数字を認識するシステムを開発する場合を考えてみましょう。学習データとして「0」から「9」までの数字が書かれた何千枚もの画像を使い、それぞれの画像がどの数字を表しているかをシステムに覚えさせます。学習データに対する正答率が非常に高くても、それはまだほんの第一歩です。真の目標は、学習には使っていない、世の中に存在するあらゆる手書き数字を正しく認識できるシステムを作ることです。未知の手書き数字に対しても高い精度で認識できる、つまり学習データ以外でも高い性能を発揮できる能力こそが「汎化性能」なのです。
汎化性能の低いシステムは、まるで教科書の内容は完璧に暗記しているのに、試験問題になると全く歯が立たない生徒のようです。学習データにだけ過剰に適応してしまい、学習データに含まれる些細な特徴や偏りにまで反応するようになってしまうのです。これでは、現実世界で遭遇する多様で複雑なデータに対応できません。真に役立つシステムを作るには、この汎化性能を高めることが何よりも重要です。
そのためには、学習データに過剰に適応しすぎないように、様々な工夫を凝らす必要があります。たとえば、学習データの一部をわざと隠して学習させ、残りのデータで性能を検証する「交差検証」といった手法や、データに含まれるノイズの影響を抑える技術などがあります。これらの技術を駆使し、新しい状況や予期せぬデータにも対応できる、柔軟で頼もしいシステムを作り出すことが、機械学習開発における大きな課題と言えるでしょう。
