【AIC入門】そのモデル、複雑すぎませんか?「シンプルで賢い」を選ぶ最強の指標

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

前回、前々回と「変数を増やせば決定係数は上がってしまう」「だから補正が必要だ」というお話をしましたね。

今回は、その流れで絶対に知っておいてほしい、もう一つの強力な武器を紹介します。それが 「AIC(赤池情報量基準)」 です。

「赤池? 日本人の名前?」と思ったあなた、大正解です。これは日本の統計学者、赤池弘次先生が考案した、世界中で使われている偉大な指標なんです。

エンジニアとして「良いモデルとは何か?」を考えるとき、このAICの考え方は技術選定やコーディングの美学にも通じるものがあります。

今日はこのAICを、数式が苦手な方でも感覚的にわかるように解説していきます!

良いモデルって、結局なんだろう?

いきなりですが、質問です。

あなたは、あるシステムの売上予測プログラムを作ることになりました。次の2つのモデル(計算式)のうち、どちらが「優秀」だと思いますか?

  • モデルA:変数を50個使い、過去のデータとの誤差はほぼゼロ。でも式は超複雑。
  • モデルB:変数は3個だけ。誤差は少しあるけれど、式はとてもシンプル。

直感的に「モデルBの方が良さそうだな……」と思いませんか?

その直感は正しいです。モデルAは、おそらく「過学習(オーバーフィッティング)」を起こしています。過去のデータには完璧に合致しますが、来月の売上予測には全く役に立たない可能性が高いのです。

「データへの当てはまりの良さ」「モデルのシンプルさ」

この2つはトレードオフ(あちらを立てればこちらが立たず)の関係にあります。このバランスをうまくとり、「ちょうどいい塩梅」を数字で教えてくれるのがAICなのです。

AICの計算式を見てみよう

AICは、以下の式で計算されます。

AIC = -2 \ln(L) + 2k

うわっ、ログ(log)が出てきた……と引かないでください! 一つずつ分解すれば、中身は小学生の算数と同じくらい単純な「引き算と足し算」です。

この式は、2つのパートに分かれています。

  1. 前半: -2 \ln(L)ここは 「当てはまりの悪さ」 を表しています。L (尤度・ゆうど)は「モデルがどれくらいデータに当てはまっているか」を示す数値です。よく当てはまっているほど L は大きくなり、計算結果であるマイナスの値はより小さくなります。つまり、精度が良いほど、この数値は小さくなります。
  2. 後半: + 2kここは 「複雑さへのペナルティ」 を表しています。k は説明変数の数(パラメータ数)です。変数を増やせば増やすほど、この値は大きくなります。つまり、複雑にするほど、スコアが悪化(増加)します。

結論:AICは「小さいほど良い」

AIC = (当てはまりの悪さ) + (複雑さのペナルティ)

この合計値が 最も小さいモデル が、「精度が高く、かつシンプルである」という理想的なモデルだと判断されます。

エンジニアのための「コード品質」での例え

統計の話だとイメージしづらいかもしれないので、プログラミングコードに例えてみましょう。

あなたがある機能を実装するとき、2通りのプルリクエスト(PR)が来たとします。

  • PR A:機能は完璧に動作するが、コードが1000行あり、変数が大量定義されたスパゲッティコード。
  • PR B:機能は99%動作(稀なエッジケースだけ未対応)するが、コードは50行ですっきり書かれていて読みやすい。

あなたはどちらをマージしますか?

将来の保守性やバグのリスクを考えれば、間違いなく PR B を選ぶでしょう。

AICの考え方はこれと全く同じです。

「機能(当てはまり)」を追求するあまり、「行数(変数の数)」を増やしすぎると、AICというレビュアーから「このコード、複雑すぎてメンテナンスできませんよ! リジェクト!」と怒られてしまうのです。

無駄な贅肉を削ぎ落とし、本質だけを捉えたモデルこそが至高。これがAICの哲学であり、エンジニアの美学でもありますね。

メリットとデメリット

道具を使うには、その特性を知ることが大切です。

メリット

  • モデル間の比較が超簡単「モデルAのAICは100、モデルBのAICは95」なら、迷わず「95のモデルBが良い!」と即決できます。
  • 過学習を防げる変数を無闇に増やすとペナルティ( + 2k )が効いてくるので、自然とシンプルなモデルが選ばれます。

デメリット

  • 絶対的な数値に意味はないAICが「100」だから良い、「1000」だから悪い、とは言えません。あくまで、同じデータセットを使った モデル同士の比較(相対評価) でしか使えません。
  • データ数が違うと比較できないデータの件数が変わるとAICの基準も変わってしまいます。比較するときは、必ず同じデータセットを使ってください。

今後の学習の指針

AICは「オッカムの剃刀(必要なしに多くを仮定してはならない)」という哲学を数学にしたような、非常に美しい指標です。

これを理解したあなたは、もう「とりあえず変数を全部突っ込めばいい」なんて乱暴な分析はしなくなるはずです。

さて、ここからの学習ステップですが、以下をおすすめします。

  1. 「尤度(ゆうど)」を学ぶAICの式に出てきた L のことです。「確率」と似ていますが少し違います。ここを理解すると、統計の世界が一気にクリアになります。
  2. BIC(ベイズ情報量基準)との違いを知るAICとよく似た指標にBICというものがあります。BICはAICよりもさらに「複雑さ」に対して厳しいペナルティを課します。どういう時に使い分けるのか、調べてみると面白いですよ。

シンプル・イズ・ベスト。この言葉を胸に、美しいモデルを作っていきましょう!

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

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