【E資格】対数尤度

E資格

E資格シラバスの数学的基礎において、最尤推定などの最適化計算で必須となる対数尤度(Log-Likelihood)について解説します。確率モデルの尤(もっと)もらしさを評価する上で、計算の安定化と効率化を担う極めて重要な概念です。

基本的な考え方

対数尤度とは、データが与えられた確率モデルから発生するもっともらしさを表す「尤度(ゆうど)」に対して、自然対数(log)をとった値のことです。機械学習では膨大な数のデータがすべて独立に発生すると仮定することが多いため、全体の尤度を計算しようとすると「個々の確率の掛け算(積)」になります。しかし、0から1の間の確率を何度も掛け算すると、数値が小さくなりすぎてコンピュータが計算できなくなってしまいます。そこで対数をとることで、「掛け算の計算を足し算(和)の計算へ変換する」ことができ、安全かつ高速に計算できるようになります。

メタファー(日常の例え話)

概念を直感的に理解するための日常的な例え話です。

【ウルトラ巨大な「掛け算の山」を、扱いやすい「足し算の階段」に変える魔法】

1万人の行動データをすべて掛け算して分析しようとすると、0.0000\dots001 という細かすぎる数字になり、計算機が「細かすぎてゼロと区別がつかない!」とフリーズしてしまいます(アンダーフロー)。そこで、対数尤度という特殊なメガネをかけることで、気が遠くなるような「掛け算の険しい山登り」を、一歩ずつコツコツ進める「足し算の階段」に変換し、安全に山頂(最大値)へたどり着けるようにする技術です。

公式

独立同一に得られたデータを X = \{x_1, x_2, \dots, x_n\}、確率モデルのパラメータを \theta としたとき、通常の尤度関数 L(\theta) は各確率の積(\prod)で表されますが、その対数をとった対数尤度関数 \log L(\theta) の公式は以下の通りです。

\log L(\theta) = \log \prod_{i=1}^{n} P(x_i|\theta) = \sum_{i=1}^{n} \log P(x_i|\theta)

この公式の通り、対数の性質である「\log(A \times B) = \log A + \log B」を利用することで、全体の積(\prod)の形を、個々の対数確率の和(\sum)の形へと数学的に変形しています。

実際の使い方の例

具体的なイメージを持つために、「表が出る確率が \theta の歪んだコイン」を3回投げて、「表、表、裏」というデータが得られたときの対数尤度を考えます。

1. 通常の尤度(掛け算)の構築
各試行が独立であるとすると、このデータが得られる尤度関数はそれぞれの確率の掛け算になります。

  • L(\theta) = \theta \times \theta \times (1 - \theta) = \theta^2(1 - \theta)

2. 対数尤度(足し算)への変換
この式の自然対数をとることで、掛け算を足し算に分解します。

  • \log L(\theta) = \log(\theta \times \theta \times (1 - \theta)) = \log \theta + \log \theta + \log(1 - \theta) = 2\log \theta + \log(1 - \theta)

最尤推定では、この「足し算になった対数尤度関数」をパラメータ \theta で微分して傾きが0になる点を探索します。掛け算の式(積の微分公式が必要で複雑)をそのまま微分するよりも、足し算の式をパーツごとに微分する方が圧倒的に計算が簡単になるため、ディープラーニングを含むあらゆる確率モデルの最適化(損失関数の計算)において、対数尤度という形が実務上多く採用されています。

〇×問題と解答

理解度を確認するための〇×問題です。E資格試験で問われやすいポイントを想定しています。

最大化するパラメータの一致

問題

尤度関数に単調増加関数である対数(log)を適用すると関数の形状が変化するため、通常の尤度関数を最大化するパラメータの選定結果と、対数尤度関数を最大化するパラメータの選定結果は全く異なる値になってしまう。

  • 〇(正しい)
  • ×(誤り)

解答・解説

正解:×(誤り)

【解説】対数関数(log)は「元の値が大きくなれば、対数をとった後の値も大きくなる」という単調増加の性質を持っています。そのため、関数の最大値そのものの数値は変わりますが、「どのパラメータのときに最大になるか(頂点の位置)」は絶対に変わりません。安心して最尤推定で対数尤度を最大化することができます。

アンダーフロー問題への有効性

問題

データ数が数万件を超えるような機械学習タスクにおいて、1未満の確率値の掛け算を愚直に繰り返すと、コンピュータの表現限界を超えて数値が完全に0として処理される「アンダーフロー」が発生しますが、対数尤度はこの問題を解決できる。

  • 〇(正しい)
  • ×(誤り)

解答・解説

正解:〇(正しい)

【解説】確率の掛け算を対数の足し算に変えることで、非常に小さな正の小数の掛け算が、「マイナスの値の足し算(例:-3.5 + -2.1 + …)」になります。値が0に潰れる桁落ち(アンダーフロー)を完全に防ぐことができるため、大量のデータを扱う現代のディープラーニングにおいて対数尤度は必須の技術です。

負の対数尤度と損失関数

問題

深層学習の分類問題で広く使われている「交差エントロピー誤差(損失関数)」は、数式的な背景を遡ると「負の対数尤度(Negative Log-Likelihood)」を最小化することと数学的に等価である。

  • 〇(正しい)
  • ×(誤り)

解答・解説

正解:〇(正しい)

【解説】最尤推定では対数尤度の「最大化」を目指しますが、深層学習の最適化アルゴリズム(勾配降下法など)は損失関数の「最小化」を目指します。そのため、対数尤度にマイナスをかけた負の対数尤度(NLL)を損失関数として設定します。これが分類問題における交差エントロピー誤差の正体であり、E資格でも非常によく問われる重要な繋がりです。

4択問題と解答

対数尤度関数の微分に関する問題

問題

最尤推定において、通常の尤度関数ではなく対数尤度関数が圧倒的に好まれる理由として、数学的・計算機的な視点から「不適切」な記述はどれか?

  • A) 独立同一分布を仮定したデータの同時確率(積)を、扱いやすい和の形に変換できるため
  • B) 小数の連続する掛け算によるアンダーフローを回避し、数値計算の安定性を高められるため
  • C) 微分を行う際、複雑な「積の微分公式」を避けて、単純な「項ごとの微分」ができるため
  • D) 対数をとることによって、元の確率モデルの非線形な関係をすべて線形な関係へと強制的に変換できるため

解答・解説

正解:D) 対数をとることによって、元の確率モデルの非線形な関係をすべて線形な関係へと強制的に変換できるため

【各選択肢の解説】
A) 同時確率(積)を和の形に変換:対数の最も代表的なメリットであり、記述として適切(選択肢としては誤り)です。
B) アンダーフローを回避:確率が0に潰れてしまう計算機上の限界を防げるため、記述として適切(選択肢としては誤り)です。
C) 項ごとの微分ができる:足し算の式にすることで微分計算の難易度が大幅に下がるため、記述として適切(選択肢としては誤り)です。
D) すべて線形な関係に強制変換:対数変換は計算を有利にするための数値変換であり、元の確率モデルが持つ非線形な構造(ニューラルネットワークの複雑な関係など)をすべて線形(直線関係)に塗り替えてしまうわけではありません。したがって記述として不適切(正解)です。

周辺用語一覧

体系的に理解する上で、セットで学習すべき重要キーワードです。

周辺用語名英語表記対数尤度との関連性
尤度関数Likelihood Function対数をとる前の、データのもっともらしさを表す関数です。通常はデータの同時確率(積の形)として定義されます。
負の対数尤度(NLL)Negative Log-Likelihood対数尤度にマイナスを付与したものです。「尤度の最大化」を「損失の最小化」タスクに置き換えるため、機械学習の損失関数として広く利用されます。
アンダーフローUnderflowコンピュータが扱える数値の最小限界を下回り、値が強制的に0になってしまう現象です。対数尤度を導入する最大の動機(計算機的な理由)となります。

コメント

タイトルとURLをコピーしました