誤差逆伝播法と勾配降下法の関係を徹底解説!ニューラルネットワーク学習の心臓部を覗いてみよう コピー

【機械学習の罠】正解率99.5%なのに全く役に立たないAIモデルの話|不均衡データの評価指標

こんにちは。ゆうせいです。

突然ですが、あなたに挑戦状です!

ある病気について考えてみましょう。この病気は非常に稀で、日本人全体の0.5%しかかからない重篤なものです。

この病気の患者さんを早期に発見するため、ある優秀なエンジニアがAIによる診断モデルを開発しました。訓練を終えたモデルの性能をテストしたところ、なんと99.5%という驚異的な「正解率」を叩き出したのです!

すごいですよね?「これで多くの患者さんを救える!」と誰もが期待しました。

しかし、実際にこのAIモデルを病院で使い始めたところ、おかしなことが起こります。なぜか、病気の人を一人も見つけ出すことができなかったのです。

さて、ここで問題です。

正解率99.5%という、ほぼ完璧に見えるこのAIモデルは、なぜ病気の人を特定できなかったのでしょうか?

少し考えてみてください!

どうでしょうか?少し意地悪な問題だったかもしれませんね。

実は、この問題には機械学習の評価における、とても重要で面白い「罠」が隠されているんです。今回は、その謎を一緒に解き明かしていきましょう!

数字のトリック!正解率99.5%のカラクリ

99.5%と聞くと、ほとんど完璧なモデルだと感じますよね。1000回診断したら、995回は当たるわけですから。

でも、今回のケースのデータの構成をよく見てみましょう。

  • 病気の人:0.5%
  • 健康な人:99.5%

これは、もし1000人の人がいたら、病気の人は5人、健康な人は995人いるという状況です。

ここで、AIモデルがちょっとズル賢い戦略を取ったと想像してみてください。その戦略とは…

「どんな人が来ても、全員『健康です』と診断する」

というものです。

どうなると思いますか?

このAIは、1000人を診断すると、

  • 995人の健康な人に対して「健康です」と正しく診断します。
  • 5人の病気の人に対して「健康です」と間違って診断します。

結果として、1000回の診断のうち995回は正解することになります。

つまり、正解率は99.5%になってしまうのです!

驚きですよね?このAIは、病気の人を見つける能力が全くないにもかかわらず、テストの成績上は超優秀に見えてしまっていた、というわけです。

このようなデータの大部分が一方のクラス(今回は「健康」)に偏っている状態を、専門用語で「不均衡データ(Imbalanced Data)」と呼びます。そして、このような不均衡データを扱う際に、「正解率」という指標がいかに当てにならないか、お分かりいただけたでしょうか?

モデルの性能を丸裸にする「混合行列」

「じゃあ、正解率がダメなら、何を使えばいいの?」と思いますよね。

ご安心ください!モデルの性能をもっと詳しく、多角的に評価するための素晴らしい道具があります。それが「混合行列(Confusion Matrix)」です。

混合行列は、モデルの予測結果を「正解」と「不正解」だけでなく、「どのような間違い方をしたか」まで分かるように整理した表のことです。なんだか探偵が使う捜査資料みたいで、ワクワクしませんか?

混合行列は、以下の4つの要素で構成されます。

実際\予測病気(陽性)Predicted Positive健康(陰性)Predicted Negative
病気(陽性)Actual PositiveTP(真陽性)FN(偽陰性)
健康(陰性)Actual NegativeFP(偽陽性)TN(真陰性)

アルファベットが出てきて少し難しく感じるかもしれませんが、一つずつ見ていけば簡単ですよ!

  • TP (True Positive / 真陽性): 実際に病気の人を、正しく「病気」と予測できた数。まさにモデルに期待される大正解です!
  • TN (True Negative / 真陰性): 実際に健康な人を、正しく「健康」と予測できた数。これも正しい診断ですね。
  • FP (False Positive / 偽陽性): 実際は健康な人を、間違って「病気」と予測してしまった数。「オオカミ少年」のような間違いです。患者さんを不安にさせてしまいますが、再検査で健康だと分かれば一安心です。
  • FN (False Negative / 偽陰性): 実際に病気の人を、間違って「健康」と予測してしまった数。これが最も危険な間違いです!病気を見逃してしまう、絶対にあってはならないケースです。

先ほどの「全員を健康と診断するAI」のケースを、この混合行列に当てはめてみましょう。(1000人中、病気5人、健康995人)

実際\予測AIが「病気」と予測(陽性)AIが「健康」と予測(陰性)
実際に病気(陽性)0(TP)5(FN)
実際に健康(陰性)0(FP)995(TN)

この表を見れば、正解率(Accuracy)がなぜ高かったのかが一目瞭然ですね。

正解率は、正しく予測できた数(TP + TN)を全体の数で割ったものです。

Accuracy = \frac{TP + TN}{TP + TN + FP + FN}

今回の例だと、Accuracy = \frac{0 + 995}{0 + 0 + 5 + 995} = 0.995 となり、99.5%になります。

しかし、この表が本当に教えてくれるのは、「このモデルは病気の人を一人も見つけられていない(TPが0で、FNが5)」という致命的な欠陥です。

見逃しを防ぐための指標「再現率(Recall)」

今回の病気診断のように、「病気の人を絶対に見逃したくない!」というケースで重要になるのが「再現率(Recall)」という指標です。

再現率は、「実際に病気だった人たちの中で、どれだけモデルが『病気だ』と正しく見つけ出せたか」の割合を示します。別名「感度(Sensitivity)」とも呼ばれます。

計算式はこうです。

Recall = \frac{TP}{TP + FN}

分母の「TP + FN」は、「実際に病気だった人の総数」を意味します。

つまり、病気の人をどれだけカバーできているか、その網羅率を表す指標なのです。

先ほどのダメなAIの再現率を計算してみましょう。

Recall = \frac{0}{0 + 5} = 0

再現率はなんと0%!これでは診断モデルとして失格なのが、数字でハッキリと分かりますね。

がん検診や感染症の検査など、見逃しが命に関わるような場面では、この再現率を非常に重視する必要があります。

再現率のメリット・デメリット

  • メリット: 病気や異常の見逃し(FN)を減らすことができる。
  • デメリット: 再現率を高くしようとしすぎると、「ちょっとでも怪しければ病気と診断する」というモデルになりがちです。その結果、健康な人を間違って病気と診断してしまう「偽陽性(FP)」が増えてしまう可能性があります。

冤罪を防ぐための指標「適合率(Precision)」

一方で、「AIが『病気だ』と予測したけど、本当にそれって当たってるの?」という視点も重要ですよね。この予測の的確さを示すのが「適合率(Precision)」です。

適合率は、「モデルが『病気だ』と予測した人たちの中で、実際に病気だった人の割合」を示します。

計算式を見てみましょう。

Precision = \frac{TP}{TP + FP}

分母の「TP + FP」は、「モデルが病気だと予測した人の総数」です。

例えば、迷惑メールフィルターを想像してみてください。フィルターが「迷惑メールだ!」と判断したメールの中に、本当に迷惑メールがどれだけ含まれているか、という割合です。

もし適合率が低いと、大切な友人からのメールまで迷惑メールフォルダに入ってしまう、なんて悲劇が起こります。これは避けたいですよね?

このように、陽性と予測した結果に責任が伴う場合(例えば、追加の精密検査が必要になるなど)は、適合率が重要になります。

適合率のメリット・デメリット

  • メリット: モデルが「病気だ」と予測したときの信頼性が高まり、無駄な検査や心配(FP)を減らすことができる。
  • デメリット: 適合率を重視しすぎると、モデルはよほど確信がないと「病気だ」と予測しなくなります。その結果、本当に病気の人を見逃してしまう「偽陰性(FN)」が増えてしまう可能性があります。

シーソーのような関係「再現率と適合率のトレードオフ」

お気づきでしょうか?

再現率を上げようとすると適合率が下がり、適合率を上げようとすると再現率が下がる傾向があります。この二つの指標は、まるでシーソーのような関係にあり、これを「トレードオフ」と呼びます。

  • 漁で例えるなら…
    • 再現率重視: 「とにかくたくさんの魚を獲りたい!」と、網の目をめちゃくちゃ大きくして、魚を根こそぎ獲ろうとする戦略です。たくさんの魚が獲れますが(TP↑)、石やゴミもたくさん入ってきてしまいます(FP↑)。
    • 適合率重視: 「狙った高級魚だけを獲りたい!」と、網の目を細かくして、狙いの魚以外は入らないようにする戦略です。ゴミは入りませんが(FP↓)、狙っていた魚まで網の目から逃げてしまうかもしれません(FN↑)。

どちらが良いというわけではなく、目的によってどちらを優先すべきかが変わってくるのです。

バランスの取れた優等生「F1スコア」

「再現率も適合率も、どっちも大事で選べない!」という場合もありますよね。

そんなときに役立つのが「F1スコア(F1-Score)」です。

F1スコアは、再現率と適合率の両方をバランス良く評価するための指標で、この二つの数値の「調和平均」という少し特殊な平均を使って計算されます。

F1 = 2 \times \frac{Precision \times Recall}{Precision + Recall}

調和平均は、片方の数値が極端に低いと、全体のスコアもガクッと低くなる特徴があります。そのため、F1スコアが高いモデルは、再現率と適合率が両方とも高い、バランスの取れた良いモデルだと評価することができるのです。

まとめ:正しい物差しでAIを評価しよう!

さて、最初の謎は解けましたか?

正解率99.5%のAIモデルが病気の人を特定できなかった理由は、

「データが不均衡だったため、全員を『健康』と予測するだけで高い正解率が出てしまい、モデルの真の性能が隠されてしまっていたから」

でした。

そして、このモデルの「再現率」を計算したところ、0%だったのです。これでは病気の人を見つけられるはずがありません。

今回の話から、機械学習のモデルを評価する際には、目的に合った正しい「物差し(評価指標)」を選ぶことがいかに大切か、伝わったなら嬉しいです。

  • 見逃しが許されないなら、再現率を重視する!
  • 誤診のコストが高いなら、適合率を重視する!
  • 両方のバランスを取りたいなら、F1スコアを見る!

これが鉄則です。

もしあなたがこれから機械学習を学んでいくなら、今回登場した評価指標は必ず出会う基本的な知識です。ぜひ、混合行列の4つの要素(TP, TN, FP, FN)から、それぞれの指標が何を意味しているのかを自分の言葉で説明できるようにしておきましょう。

さらに、不均衡データを扱うためのテクニックは他にもたくさんあります。「オーバーサンプリング」や「アンダーサンプリング」といった手法でデータの偏りを調整する方法など、探求すべき面白いテーマがまだまだたくさんありますよ。

まずは今日の話をしっかりと理解して、数字の見た目だけに騙されない、本質を見抜く目を養っていってくださいね!

生成AI研修のおすすめメニュー

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。