昔の勉強ノートを引っ張りだしてくるシリーズ.
機械学習の対数線形モデルが最大エントロピー法とも呼ばれる,みたいな記述は頻繁に目にするし,統計力学のボルツマン分布の話とか考慮すれば,なんとなくそうなってそうな気はするけど,実際どうなの?というのを (たんに好奇心を満たすために) 調べてみた.実用上は何の意味ないと思う.
対数尤度関数に L1 正則化項を加えるタイプの目的関数を使った場合,もはやエントロピーは最大化されない,とかそういうわりとどうでもいいことがわかったりするかもしれない.
概要
「言語処理のための機械学習入門 (→ amazon) 」などに出てくるタイプの対数線形モデルの係数の最尤推定量が,エントロピーを「ある制約条件下」で最大化した場合のラグランジュ未定乗数に対応することを説明する (クロス表の対数線形モデルとはたぶん別物).
ただし,記号が煩雑になるのを避けるため,対数線形モデルとほぼ同一の構造を持ち,記号が煩雑でない条件付きロジットモデルがエントロピー最大化と等価であることを見る.
本文の最後に対数線形モデルと等価なエントロピー最大化問題を示す.多少ややこしくなるが,同じ方針で証明可能.
設定
あるカテゴリーの製品群 \(\{1,2,\cdots,K\}\) のどれかを購入した消費者に対して,
ランダムサンプリングを行って購入製品を調査したところ,以下のようなデータが得られたとする.
製品番号 | 1 | 2 | … | \(K\) |
価格 | \(c_1\) | \(c_2\) | … | \(c_K\) |
人数 | \(n_1\) | \(n_2\) | … | \(n_K\) |
ここで全サンプル数を \(N=n_1+n_2+\cdots+n_K\) としておく.
エントロピーの最大化
製品 \(i\) の購入確率を \(p_i\) と書くことにする.天下り的に以下のエントロピー最大化問題を考える.
\begin{align}
\text{maximize}\qquad&-\sum_{i=1}^K\;p_i\log p_i\\
\text{subject to}\qquad & \sum_{i=1}^K\;p_i=1\\
& \sum_{i=1}^K\; c_ip_i=\bar c
\end{align}
ここで,サンプル内の平均購入価格を
\begin{align}
\bar c=\frac1N\sum_{i=1}^K n_ic_i
\end{align}
と定義した.一つ目の制約条件は確率の正規化条件,二つ目はランダムサンプリングによって観測された価格を再現するための制約条件.
以下,これをラグランジュ未定乗数法でまじめに解く.
\begin{align}
L=-\sum_{i=1}^K\;p_i\log p_i+\mu\bigg(1-\sum_{i=1}^K \; p_i\bigg) + \lambda\bigg(\sum_{i=1}^K c_ip_i-\bar c\bigg)
\end{align}
として,\(p_i\) で微分してゼロと置けば
\begin{align}
-\log p_i – 1 + \mu + \lambda c_i = 0
\end{align}
となり,式変形すれば
\begin{align}
p_i = \exp(\mu-1+\lambda c_i)
\end{align}
となる.これを正規化条件に代入すれば,
\begin{align}
\exp(\mu-1) = \bigg(\sum_{i=1}^K\exp(\lambda c_i)\bigg)^{-1}
\end{align}
を得るので,
\begin{align}
p_i=\frac{\exp(\lambda c_i)}{\sum_{i=1}^K\exp(\lambda c_i)}
\end{align}
を得る.これは条件付きロジットの式になっている.
もう一つの未定乗数 \(\lambda\) については,この \(p_i\) を制約条件に代入することにより,
\begin{align}
\sum_{i=1}^K(c_i-\bar c)\exp(\lambda c_i)=0
\end{align}
の解になっていることがわかる.これは一般には数値計算で求めるしかないので,ひとまずここで計算を止め,この解を \(\lambda^*_{E}\) と書くことにする.
以上で最大エントロピー原理を仮定することで製品の選択確率が結果として条件付きロジットになることがわかった.そしてそのラグランジュ未定乗数 \(\lambda\) は条件付きロジットの係数に対応することもわかった.
条件付きロジットの最尤推定
条件付きロジットによる最尤推定が,上で得た未定乗数 \(\lambda^*_{E}\) と等しいことを示す.
条件付きロジットモデル
\begin{align}
p_i=\frac{\exp(\lambda c_i)}{\sum_{i=1}^K\exp(\lambda c_i)}
=\frac{\exp(\lambda c_i)}{Z(\lambda)}
\end{align}
の最尤推定量 \(\lambda^*_{MLE}\)は
\begin{align}
\prod_{i=1}^K \;\;p_i^{n_i} = \prod_{i=1}^K \bigg(\frac{\exp(\lambda c_i)}{Z(\lambda)}\bigg)^{n_i}
\end{align}
を最大化する \(\lambda\) である.対数をとると,
\begin{align}
-N\log Z(\lambda) + \sum_{i=1}^Kn_i\lambda c_i
\end{align}
となるので(\(N\) はサンプル数),\(\lambda\) で微分して右辺をゼロと置くと
\begin{align}
-N \frac{Z’(\lambda)}{Z(\lambda)} + \sum_{i=1}^Kn_ic_i=0
\end{align}
となる.式変形をして
\begin{align}
\quad&-Z’(\lambda) + Z(\lambda)\cdot\frac1N\sum_{i=1}^Kn_ic_i=0\\
\Longleftrightarrow\quad&-Z’(\lambda) + Z(\lambda)\cdot \bar c=0\\
\Longleftrightarrow\quad&\sum_{i=1}^K(c_i-\bar c)\exp(\lambda c_i)=0
\end{align}
となる.この非線形方程式を解けば \(\lambda^*_{MLE}\) を求めることができる.
この非線形方程式はエントロピーの最大化によるラグランジュ未定乗数である \(\lambda^*_E\) を求めるために上で導出したものと同じものである.従って
\begin{align}
\lambda^*_{MLE}=\lambda^*_E
\end{align}
が示された.
対数線形モデルと等価なエントロピー最大化問題
データ \(\{(\boldsymbol{x}_j, i_j)\}_{j=1}^N\) と素性関数 \(\boldsymbol\phi\) が与えられた時,対数線形モデルの最尤推定量は以下のエントロピー最大化問題のラグランジュ未定乗数に対応する.K はクラス数である.
\begin{align}
\text{maximize} \qquad
&-\sum_{i=1}^K\sum_{j=1}^NP(i|\boldsymbol{x}_j)\log P(i|\boldsymbol{x}_j)\\
\text{subject to} \qquad
&
\sum_{i=1}^K P(i|\boldsymbol{x}_j)=1\qquad \forall j=1,\cdots,N\\
&
\frac1N\sum_{j=1}^N\bigg[\sum_{i=1}^K \boldsymbol{\phi}(\boldsymbol{x}_j,i)P(i|\boldsymbol{x}_j)\bigg]
=\frac1N\sum_{j=1}^N\boldsymbol{\phi}(\boldsymbol{x}_j,i_j)
\end{align}
2つ目の制約式の右辺は素性のデータ平均になっている.データ平均とモデル平均が一致するような制約条件.
まとめ
条件付きロジットモデルとエントロピーの最大化の関係をみた.説明変数が複数のときには、エントロピー最大化の制約条件が複数になるだけで本質的に同じになる.どうでもいいことだが,機械学習でよくやるような対数尤度関数に L1 正則化項を加えるタイプの目的関数を使った場合,エントロピーは最大化されない(もちろん L2 でも同じ).
蛇足:統計力学との関連
価格を状態のエネルギーと置き直せば,ボルツマン分布のはなしと同じこと.エネルギー一定の条件下でエントロピーを最大化するとボルツマン分布が導出される,というアレを単に言い換えただけです.この場合のラグランジュ未定乗数は温度の逆数に比例するような定数になる.