Softmaxを他の目で見る
Softmaxの対応物を考える
さきに、ディープ・ラーニングでよく使われる「クロス・エントロピー」が、もともとのシャノンのエントロピーをベイジアン風に拡大した(という「解釈」が存在するという意味なのだが)「相対エントロピー」の一種だという話をした。「相対エントロピー」は、「まだ残されている、学習すべき情報」と解釈できるので、ディープ・ラーニングで「クロス・エントロピー」を最小にしようという目標は、この解釈だとわかりやすいと思うという話だった。
今日は、同じくディープ・ラーニングで多用される「Softmax」の話をしようと思う。
クロス・エントロピーと同様に、AIのエンジニアは、天下りでこの関数を使うことが多い。というか、ディープ・ラーニングのフレームワークに、そのまま準備されているので、「使い方」さえ覚えれば、クラスの分類は自動的に実行されるわけで、その「意味」や「成り立ち」を考える必要はないのだが。
ただ、それは、もったいないとも思う。(余計なお世話かな?)
物理から見てSoftmax(に対応する式)が、どういうものかを見てみよう。
ある系の持つ可能な状態の数を考える
それには少し準備がいる。まず、同じ大きさのN個のBoxからなる系を考えよう。それぞれのBoxはk個の状態を持つとしよう。
あるBoxがある状態iを取るとき、次のように線で結ぶ。
この例は、Box1が状態1を取り、Box4が状態2を取り、Box Nが状態4を取ることを表している。Box2, Box3は、この図では線で状態と結ばれていないが、それは、表記上省略しているだけである。
次の図では、Box1が状態2を取り、Box3が状態1を取り、Box4が状態4を取り、Box Nが状態kを取ることを表している。Box2の状態は、この図では省略されている。
全てのBoxは、必ず、何らかの状態を持つのだが(例では省略されていても)、全ての状態が、あるBoxの状態になるとは限らない。次の例では、Box2, Box3, Box4 は、同じ状態2を持っている。
状態iが、何個のBoxで共有されているかを $n_i$で表すことにしよう。先の例では、$n_2=3$ということになる。$ n_1+n_2+n_3+ \cdots + n_k = N$ である。
この時、N個のBox、k個の状態からなるシステムが取り得る可能な組み合わせの総数Wは、次のようにして計算できる。
$$W=\frac{N!}{n_1! n_2! n_! \cdots n_k!}$$
この数を計算してみよう
階乗は、少し扱いにくいので、次のスターリングの近似式を用いる。$$\log n! \simeq n \log n -n $$
$$\displaystyle \log W = \log \left( \frac{N!}{n_1! n_2! n_! \cdots n_k!} \right)=\log N! - \sum \log n_i != (N\log N -N) - \sum ( n_i \log n_i - n_i)$$
先に見たように、$\sum n_i = N$なので、左の $-N$と右の$\sum n_i$は、打ち消しあって消える。$$\displaystyle \log W = N \log N -\sum n_i \log n_i $$となる。
ここで、$\displaystyle p_i = \frac {n_i}{N}$と置く。$n_i = p_i N$である。また、$\sum n_i = N$から、$\sum p_i = 1$が成り立つ。
$$ \frac{1}{N}\log W=\log N - \frac{1}{N} \left( \sum n_i \log n_i \right) =\log N -\sum p_i \log (p_i N)=\log N - \left( \sum p_i \log p_i +\sum p_i \log N \right)$$
$\displaystyle \sum p_i= 1$であるから、$\sum p_i \log N$は、$\log N$となって、打ち消しあう。
結局、
$$\frac{1}{N}\log W= -\sum p_i \log p_i$$
であることがわかる。
エントロピーが求まったが、もう少し進もう
この右辺は、エントロピーである。ここでの計算は、系が取り得る状態の数からエントロピーが導けることを示したものなのだが、今回は、もう少し先に進もうと思う。というのも、これだけじゃ、Softmax に届かないから。これから、少し、物理っぽい話をする。といっても大したことではない。
先のBoxの図で、それぞれのBoxが状態iを持つときに、エネルギー$E_i$を持つとする。系全体のエネルギーは、次のようになる。ここで、$\langle E \rangle$は、一つのBoxの平均エネルギーである。
$$Energy_{Total}=\sum n_i E_i = N\langle E \rangle$$
両辺をNで割って、$\displaystyle p_i = \frac {n_i}{N}$を使えば、次の式が成り立つことがわかる。
$$\sum p_i E_i =\langle E \rangle$$
この条件と、$\sum p_i =1$が成り立つ時、次のような問題を考える。
「エントロピー $-\sum p_i \log p_i $は、どのような時に最大になるのか?」
分配関数
拘束条件が与えられた時の式の最大値(最小値でもいいのだが)の(必要)条件は、ラグランジェの未定乗数法で求められる。(ごめんなさい。疲れてきたので、説明は省く。)次の式$ \mathcal{L}$ を考える。
$$ \mathcal{L} = \left( - \sum_{i} p_i \log p_i \right) + \alpha \left(\sum_{i} p_i - 1 \right) + \beta \left(\sum_{i} p_i E_i - \langle E \rangle\right)$$
この式$ \mathcal{L}$を$p_i$で偏微分した式がゼロになる時、元の式が極値を取る条件が求められる。
$$ 0=\frac{\partial \mathcal{L}}{\partial p_i} = -\log (p_i) -1+\alpha + \beta E_i $$
これから、$\log p_i = -1 +\alpha + \beta E_i$がわかるから、$p_i = \exp \left( -1+ \alpha + \beta E_i \right)$。この時、$ \displaystyle 1 = \sum_{i} p_i = \exp ( -1 + \alpha ) Z $と置ける。ただし、$ \displaystyle Z \equiv \sum_{j} \exp (\beta E_j)$である。だから、$ \displaystyle p_i = \frac{1}{Z} \exp ( \beta E_i )$
すなわち、
$$ p_i = \frac {e^{\beta E_i}}{\sum_{j} e^{\beta E_j}}$$
これは、Softmaxの式と同じ形である!
物理では、$ \displaystyle Z = \sum_{j} \exp (\beta E_j)$の形の式を「(エネルギー)分配関数(partition function)」と呼び、多くの応用がある。
温度をT、ボルツマン定数を $k_B$とした時、$\displaystyle \beta \equiv \frac{1}{(k_B T)}$ であるので、熱力学では、次の形の分配関数がよく用いられる。$ \displaystyle Z = \sum_{j} \exp (\frac {E_j}{k_B T})$
コメント
コメントを投稿