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で共有されているかを niで表すことにしよう。先の例では、n2=3ということになる。n1+n2+n3++nk=N である。

この時、N個のBox、k個の状態からなるシステムが取り得る可能な組み合わせの総数Wは、次のようにして計算できる。
W=N!n1!n2!n!nk!

この数を計算してみよう

階乗は、少し扱いにくいので、次のスターリングの近似式を用いる。
logn!nlognn
logW=log(N!n1!n2!n!nk!)=logN!logni!=(NlogNN)(nilognini)
先に見たように、ni=Nなので、左の Nと右のniは、打ち消しあって消える。logW=NlogNnilogniとなる。

ここで、pi=niNと置く。ni=piNである。また、ni=Nから、pi=1が成り立つ。
1NlogW=logN1N(nilogni)=logNpilog(piN)=logN(pilogpi+pilogN)
pi=1であるから、pilogNは、logNとなって、打ち消しあう。

結局、
1NlogW=pilogpi
であることがわかる。

エントロピーが求まったが、もう少し進もう

この右辺は、エントロピーである。ここでの計算は、系が取り得る状態の数からエントロピーが導けることを示したものなのだが、今回は、もう少し先に進もうと思う。というのも、これだけじゃ、Softmax に届かないから。

これから、少し、物理っぽい話をする。といっても大したことではない。

先のBoxの図で、それぞれのBoxが状態iを持つときに、エネルギーEiを持つとする。系全体のエネルギーは、次のようになる。ここで、Eは、一つのBoxの平均エネルギーである。
EnergyTotal=niEi=NE
両辺をNで割って、pi=niNを使えば、次の式が成り立つことがわかる。
piEi=E
この条件と、pi=1が成り立つ時、次のような問題を考える。

「エントロピー pilogpiは、どのような時に最大になるのか?」

分配関数

拘束条件が与えられた時の式の最大値(最小値でもいいのだが)の(必要)条件は、ラグランジェの未定乗数法で求められる。(ごめんなさい。疲れてきたので、説明は省く。)

次の式L を考える。
L=(ipilogpi)+α(ipi1)+β(ipiEiE)
この式Lpiで偏微分した式がゼロになる時、元の式が極値を取る条件が求められる。
0=Lpi=log(pi)1+α+βEi
これから、logpi=1+α+βEiがわかるから、pi=exp(1+α+βEi)。この時、1=ipi=exp(1+α)Zと置ける。ただし、Zjexp(βEj)である。だから、pi=1Zexp(βEi)

すなわち、
pi=eβEijeβEj
これは、Softmaxの式と同じ形である!

物理では、Z=jexp(βEj)の形の式を「(エネルギー)分配関数(partition function)」と呼び、多くの応用がある。

温度をT、ボルツマン定数を kBとした時、β1(kBT) であるので、熱力学では、次の形の分配関数がよく用いられる。Z=jexp(EjkBT)


コメント

このブログの人気の投稿

初めにことばありき

宇宙の終わりと黒色矮星

Google翻訳での日本語の点数の低さについて