強化学習で用いる主要な関数 - Shinichi0713/RL-study GitHub Wiki
尤度
観測されたデータに基づいて、そのデータを最もよく説明するパラメータを推定するための関数
$$L(\theta; x_1) = f(x_1, \theta)$$
$$f(x, \theta): x, \thetaに関する周辺確率$$
周辺確率とは 複数の確率変数があるときに、ある一部の変数だけに注目して、その変数だけの確率を求めたもの。 他の変数については、すべての可能性を合計(または微分)して無視したものとなる。 周辺確率=他の変数を合計(または積分)して、注目した変数だけの確率を求めたもの 同時確率分布から「一部の変数だけの分布」を取り出す操作で得られる確率
実態という意味では以下が適切。
$$L(\theta, x) = \prod_{i=0}^{N} f(x_i)$$
後述する対数尤度関数は以下のような表現となる。
$$ \log L(\theta; x_i) = \sum_{i=0}^{N} \log f(x_i|\theta) $$
応用事例
- パラメータ推定(最尤推定)
- 例:コインを10回投げて7回表が出たとき、「このコインの表が出る確率pはいくつか?」を推定したい。
- このとき、pの値ごとに「今の観測結果がどれくらいありそうか(尤度)」を計算し、最も尤度が高くなるpを探す。
- これが**最尤推定(Maximum Likelihood Estimation, MLE)**です。
- モデル選択
- 複数のモデル候補があるとき、どのモデルが観測データに一番合っているかを比較するために尤度を使います。
- より尤度が高いモデル=データをよく説明できるモデルとみなせます。
- 仮説検定
- ある仮説(例:母平均がμである)と、別の仮説(例:母平均がμでない)を比べるとき、両者の尤度を計算して比べます。
- 尤度比検定などで使われます。
- ベイズ推定
- ベイズ統計では、尤度を使って「事後分布」を計算します。
- 事後分布 = 尤度 × 事前分布(ベイズの定理)
- 機械学習の損失関数
- 多くの機械学習モデル(例:ロジスティック回帰、ニューラルネットのクロスエントロピー損失)は、**「尤度の最大化」=「損失の最小化」**の形になっています。
対数尤度
スコア関数とは、ある対象(例えば物体検出のバウンディングボックスや検索結果のドキュメントなど)が、どれだけ「良い」か、「適合している」か、「信頼できる」かを数値で表す関数のことです。
この数値(スコア)が高いほど、その対象が「より良い」と判断されます。
- 尤度関数 $L(\theta)$ の対数をとったもの。
- 数式で表すと:
$$ \ell(\theta) = \log L(\theta) $$
- 例えば、独立なデータの場合: $$ L(\theta) = \prod_{i=1}^n P(x_i|\theta) $$
$$ \ell(\theta) = \log L(\theta) = \sum_{i=1}^n \log P(x_i|\theta) $$
なぜ対数をとるのか?
1.計算が楽になる 積が和になるため、計算や微分がしやすくなる 2.数値安定性が増す 小さい確率の積はすぐに0に近くなるが、対数の場合、少数でも極端な値になりにくい 3.最尤推定と等価 尤度最大化と対数尤度最大化はパラメータの最適値に対して等価
応用事例
- 最尤推定(MLE)
パラメータ $\theta$ を「対数尤度関数が最大になる値」に決める。 - 機械学習の損失関数
ロジスティック回帰やニューラルネットのクロスエントロピー損失は、対数尤度のマイナス(負の対数尤度)になっている。 - モデル比較
対数尤度をAICやBICなどのモデル選択指標に使う。
スコア関数
対数尤度関数をパラメータで1階微分したもので、統計学において重要な役割を果たします。
意味としては観測データが与えられた時のパラメータに関する対数尤度関数の勾配(微分)を示します。
数式
- 観測データ $x$、パラメータ $\theta$ のとき、対数尤度関数を $\ell(\theta) = \log L(\theta)$ と書きます。
- スコア関数 $S(\theta)$ は次のように定義されます:
$$ S(\theta) = \frac{\partial}{\partial\theta} \ell(\theta) $$
つまり、対数尤度関数をパラメータで微分したものがスコア関数です。
スコア関数の意味
**スコア関数は"パラメータを少し変化させた時に、対数尤度がどの方向にどれだけ増減するか"を示すもの。
- スコア関数が0になる点( $\frac{\partial}{\partial\theta} \ell(\theta) = 0$ )は、対数尤度が極値(最大値や最小値)をとる点です。
- 最尤推定では、このスコア関数が0となるパラメータを求めます。
例: $\hat{\theta}$ を最尤推定値とすると最尤推定を算出することが出来ます。
$$
S(\hat{\theta}) = 0
$$
例1:物体検出におけるスコア関数
- 意味:
画像から検出したバウンディングボックスごとに「この領域に本当に物体がある確率」や「このクラスに属する確率」を計算し、その値をスコアと呼びます。 - 使い方:
スコアが高い順にbboxを並べたり、NMSで重複排除する際にスコアの高いものを優先的に残します。
例2:検索システムにおけるスコア関数
- 意味:
クエリ(質問)に対して、各ドキュメントがどれだけ関連しているかを計算する指標です。 - 使い方:
スコアの高い順に検索結果を並べてユーザーに提示します。
一般的な特徴
- スコア関数は0~1の範囲や、0以上の任意の値をとることが多いです。
- スコアの計算方法は用途によって異なり、確率、類似度、信頼度など様々な意味を持ちます。
- 機械学習やAIでは、「予測の信頼度」や「ランキングの優先度」を決めるために広く使われます。
まとめ
スコア関数とは、「ある対象がどれだけ良いか・適合しているか」を数値で評価する関数です。
物体検出や検索、推薦など多くのAI応用分野で活用されています。