目次
Math
Analysis
Experiment
Simulations

エントロピーと分布間距離

近年は神経科学に情報理論の議論を輸入するのが流行りになっている気がします.脳波の解析もだし,情報処理の理論もそうだし,いろんなとこで見るのでとりあえず勉強します.

▶︎
all
running...

エントロピー

はじめにエントロピーの考え方を導入しましょう.まずは離散確率変数 xx を考えます.観測者がこの変数に対するある値を観測したとき,どれだけの情報量,surpriseを得られるのか.これを考える概念がエントロピーです.

直観的に,起きそうもない事象が得られたら情報量は大きいし,その逆も然りですよね.宝くじで1等があたるのはめちゃくちゃびっくりする,つまり情報量大きいけど,参加賞的なのもらっても何も思いません.つまり情報量は確率分布 p(x)p(x) に依存していて,その値によって定まる単調な関数 h(x)h(x) といえます.

また,2 つの事象 x,yx, y を考えたとき,これらが独立なら両方を観測したときの情報量は別個に観測したときの情報量の和と等しい (式 (1)) はずです.宝くじが当たる事による surprise によって,帰りに頭に雷が落ちてくる事によって生じる surprise が小さくみたいになることはないですよね?あるかもな.ないってことにしてください.

よって,二つの事象が独立なのであれば情報量について以下の式 (1) が成り立ちます.

h(x,y)=h(x)+h(y)\begin{align} h(x,y) = h(x) + h(y) \end{align}

次に,これらの事象の同時確率についても単純に積で求められます.宝くじが当たり,かつ頭に雷が降ってくる確率です.

p(x,y)=p(x)p(y)\begin{align} p(x,y) = p(x)p(y) \end{align}

もし式(1,2)が分からないようなら基本的な確率が出来てないので,基礎統計で勉強してみてください.

さて,ここはちょっとテクいです.

この二つの関係から,「xとyの確率をかける操作をしたものに対して何らかの処理をしたものが,何らかの処理をしたxとyの和になっている」ので,関数h()h(・)は対数をとっている事が分かり(ほら,掛け算って対数だと足し算じゃん?),

h(x)=logp(x)\begin{align} h(x) = -\log p(x) \end{align}

がいえます.log(x)log (x) は単調増加で,確率 p(x)p(x) は常に 00 から11 の範囲をとるため,h(x)h(x)の値を常に正にするため符号を反転させている事に注意です.ここで対数の底に 2 を採用するのが情報理論での一般の使い方で,その場合は h(x)h(x) の単位は bit になるようです.

これを使って,信号のサイズ,情報量 (bit) を算出してるわけですね.あとデータの圧縮なんかにも関係するぽいですがそこまでは知らないし触れませんし触れられません.

次に,この値を分布全体に適用する事を考えます.つまり,確率分布そのものが与える情報量です.その指標として,確率変数 xx の分布 p(x)p(x) に関して h(x)=logp(x)h(x)=-\log p(x) の期待値をとることで,情報量の平均を定義します.確率変数の期待値の一般的な計算です.これも分からなければやはり基礎統計に行ってください.

H[x]=Σxp(x)logp(x)\begin{align} H[x] = - \Sigma_{x} p(x) \log p(x) \end{align}

式(4)に定義する量をシャノンエントロピーといいます.意外と簡単ですね.もっと難しいと思ってました.

ついでにこれを連続変数にすると微分エントロピー(式5)が求まります.

H[x]=p(x)logp(x)dx\begin{align} H[x] = - \int_{-\infty}^\infty p(x) \log p(x) dx \end{align}

言うまでもないと思いますが,Σxp(x)\Sigma_{x} p(x)p(x)\int p(x)も1です.

さて,次に当然浮かぶ疑問は,どんな確率分布だとどんなエントロピーが算出されるのか,です.

ちゃんと数学的に証明することも出来るっぽいけど面倒だしそこにあんま興味ないので,simulationしてみます.まずは離散的な確率分布として,

について,これらの分布に従う集合をてきとうに用意してエントロピーを計算してみました.

一様分布が最大だということが分かりますね.エントロピーは予測のしにくさという話だったので,当然といえそうです.

基本的に,幅広い分布の方が高いエントロピーになります.これが一様分布になる理由は,エントロピー HH の最大化問題を解けばよいわけですが,確率なのでip(xi)1=0\sum_i p(x_i)-1 = 0 が制約になります.ラグランジュの未定乗数法を使ってあげれば

H˜=ip(xi)logp(xi)+λ(ip(xi)1)\begin{align} \~{H} = - \sum_{i} p(x_i) \log p(x_i) + \lambda(\sum_i p(x_i) -1) \end{align}

となります.これが成り立つp(xi)p(x_i)の組は,ii によらない定数 exp1λ\exp{-1-\lambda} となり,つまり全ての xix_i が等しい確率で出る一様分布であることがわかります.この時の確率はp(xi)=1/Mp(x_i) = 1/M (Mは状態の総数)です.

ちなみに微分エントロピー,つまり連続の場合はガウス分布が最もエントロピー高いようです.

H[x]=p(x)logp(x)dxH[x] = - \int_{-\infty}^\infty p(x) \log p(x) dx

微分エントロピー.

一応証明します.

まず平均 μ\mu, 分散が σ2\sigma^2 となる分布を考え,そいつらの中でエントロピーを最大化すれば良いので制約条件として,

を与え,これらの元で微分エントロピーを最大化します.制約条件下での最大化問題なのでラグランジュ未定乗数法をもってくると

p(x)logp(x)dx+λ1(p(x)dx1)+λ2(xp(x)dxμ)+λ3((xμ)2p(x)dxσ2)-\int_{-\infty}^\infty p(x) \log p(x) dx + \lambda_1 (\int_{-\infty}^\infty p(x)dx -1) \\+ \lambda_2 (\int_{-\infty}^\infty x p(x)dx-\mu) + \lambda_3 (\int_{-\infty}^\infty(x-\mu)^2p(x)dx-\sigma^2)

を最大化する問題になります.
計算をすると,

p(x)=1(2πσ2)12exp{(xμ)22σ2}\begin{align} p(x) = \frac{1}{(2\pi\sigma^2)^{\frac{1}{2}}}exp\{-\frac{(x-\mu)^2}{2\sigma^2}\} \end{align}

と,たしかに正規分布が出てくるわけです.正規分布の式の導出,統計編だと「なんとなく指数分布をいじると~」みたいにvisualを近付けるみたいな方法でやりましたが正しくはこれで導くのが (情報系だととくに) 多いっぽいですね.

てなわけで連続の確率分布においてエントロピー最強は正規分布になるのでした.

他にもエントロピーについて見れる性質があって,まずp(x)p(x)が0は困ります.logにかけた時に計算がこわれるので.無限に吹っ飛びます.

あと,一様分布の比較から分かるようにデータ数が多いほどエントロピーも増大するぽいですね.これもまあ普通に総和とってるんだから当たり前か?

まあこんな感じなので,エントロピーの値だけを見てなにかしらの議論をすることは難しそうですね.エントロピーを増大/減少させるといった変化の議論だとか,そういった使い方の方がナチュラルに見えます.

KL距離

さて,このエントロピーがどんな事に使えるのか考えていきます.エントロピーは分布の特徴を表す量になっていたわけなので,これを使うと二つの分布の比較,なんてことも出来ることになります.直観的には,全く同じ特徴の分布同士ならそのエントロピーに差はないし,違う分布なら差がある,という感じです.

式にしてみましょう.まず,微分エントロピー (p(x)logp(x)- \int p(x) \log p(x)) は確率変数 xx の分布 p(x)p(x) の元での期待値でした.なら,ここで新しい分布 q(x)q(x) を考えたとき,仮にこの分布が同一 (p(x)=q(x)p(x) = q(x)) であれば,

p(x)logq(x)dxp(x)logp(x)dx=0\begin{align} \int p(x) \log q(x)dx - \int p(x) \log p(x)dx= 0 \end{align}

が成り立つ事になります.同じ分布の元で考えた同じ確率変数の期待値だから,当たり前です.分布 p(x)p(x) の元で見た q(x)q(x) の期待値が,分布 p(x)p(x) の元で見た p(x)p(x) の期待値と等しい,ということです.逆にこの分布が異なるものであるほど,この計算の結果は大きな値を取る事になります.

てなわけで,この量をちゃんと正負の調整した上で,「分布 p(x),q(x)p(x), q(x) の相対エントロピー,あるいはカルバック-ライブラー距離,またはカルバックライブラーダイバージェンス」として以下の式で定義します.

DKL(pq)=p(x)logq(x)dx(p(x)logp(x)dx)=p(x)logq(x)p(x)dx\begin{align} \mathbb{D}_{KL}(p||q) &= - \int p(x) \log q(x)dx - (-\int p(x) \log p(x)dx) \\ &= -\int p(x) \log \frac{q(x)}{p(x)} dx \nonumber \end{align}

すこしややこしく見えますが,基本的には式(8)をlogについて整理しただけです.簡単ですね.

KL距離の性質ですが,まず DKL(pq)0\mathbb{D}_{KL}(p||q) \geq 0 です.距離だし.
等号が成り立つのは分布 p(x),q(x)p(x), q(x) が等しいときのみです.

上の図は,二つの標準偏差 1 で平均値の異なる正規分布間のDKL(pq)\mathbb{D}_{KL}(p||q).

それから DKL(pq)DKL(qp)\mathbb{D}_{KL}(p||q) \neq \mathbb{D}_{KL}(q||p) なことにも気を付けてください.分布 p(x)p(x) の元で見た q(x)q(x) の期待値と, 分布q(x)q(x) の元でみた p(x)p(x) の期待値とは別物ですからね.

それから,対数なのでKLDは以下のような表記のこともあります.一緒です.logの計算の性質を思い出してください.割り算は引き算です(?)

DKL(pq)=p(x)logp(x)q(x)dx\begin{align} \mathbb{D}_{KL}(p||q) = \int p(x) \log \frac{p(x)}{q(x)} dx \end{align}

留意してください.

あと,KL "距離" と日本語で呼んでいますが厳密には距離じゃないので注意が必要です.というのも,KLDは以下に示す距離の公理を満たしていないからです.

距離の公理

2点A,Bが与えられたとき, 実数d(A,B)d(A,B)を与える規則で, 次の性質を満たすものを距離という.

このうち,KLDが満たしていないのはなんでしょう?

そう,3つめの対称性ですね!DKL(pq)DKL(qp)\mathbb{D}_{KL}(p||q) \neq \mathbb{D}_{KL}(q||p)でした.

あと4つ目,三角不等式も怪しいと思うんですよね.呼んでた資料とかでは特に対称性のとこだけネチネチと言われてましたが,三角不等式はどうなんでしょう?

直観的には微妙だと思ってて,だからKLDの値を単純に比較したりだとかの議論は出来ない気がしている.

じゃあKLDはどう使うんだよって話ですが,最小化したい量として導入してるのが多い気がします.

つまり,予測分布を真の分布に近づけたい,だとかですね.この時に最小化する,分布と分布との距離として使われる量です.

あとは,一様分布と得られたデータ分布との距離を測る,なんて使い方もありました. この場合は正規化的なのして,DKL(PU)\mathbb{D}_{KL}(P||U)(where U is the uniform dist)を0-1の値にして使ってましたね.

いまのとこ個人的に分からないのは,DKL(AB)\mathbb{D}_{KL}(A||B)DKL(CD)\mathbb{D}_{KL}(C||D)の値を比較した議論(たとえば,A-B は C-D の 3 倍離れている!)なんてのは出来るのかなってところです.

ユークリッドなら自明に出来ると思うんですけど,これだとなんか出来ない気がする.三角不等式も怪しいし.
どうなんでしょう?今後の課題になってます.

余談ですが,式 (9) の右辺第一項,p(x)logq(x)dx-\int p(x) \log q(x)dx は交差エントロピー H(p,q)H(p,q) とも言います.分布 p(x)p(x) の元で見た q(x)q(x) の期待値なので,p(x)p(x) の分布を想定したとき,q(x)q(x) がどれだけ予測しにくいかとも捉えられます.

これだけでも,交差エントロピー H(p,q)H(p,q) は正解値と推定値の比較なんかの用途で使えるようです.

じゃあ KLD と何が違うのか,というと,ここからは個人的な予想ですが...

問題なのは p(x)p(x) 自体の分布が既にもってる情報量,つまりH(p)H(p)なんだと思います.

交差エントロピーは計算式をみれば分かるように,p(x)p(x) 自体のエントロピーの影響を受けた数値になってしまうため,なんというか「どれくらい外れているか」の指標に使うにはフェアじゃない気がします.

なので交差エントロピーの値から,p(x)p(x)自体が持っているエントロピーの値を差し引いた量が知りたいわけですね.そうすると式(9)は

DKL(pq)=H(p,q)H(p)\begin{align} \mathbb{D}_{KL}(p||q) = H(p,q) - H(p) \end{align}

とも捉えられますね.あってるのかな?

他の分布間距離

確率分布同士の距離を測る指標は DKL\mathbb{D}_{KL} だけでなく,他にも以下のようなのがあるっぽいです.

χ2(QP):=Σi=1k(piqi)2piχ2統計量L1(QP):=Q(x)P(x)dxL1ノルムL2(QP):={Q(x)P(x)}2dxL2ノルムIK(QP):={Q(x)P(x)}2dxヘリンジャー距離D(QP):=f(Q(x)P(x))Q(x)dxf-ダイバージェンスIλ(QP):={(Q(x)P(x))λ1}Q(x)dx一般化情報量DKL(QP):=log(Q(x)P(x))Q(x)dxKL情報量\chi^2(Q||P) := \Sigma_{i=1}^k \frac{(p_i - q_i)^2}{p_i} \qquad \qquad \text{$\chi^2$統計量}\\ L_1(Q||P) := \int |Q(x) - P(x)|dx \qquad \qquad \text{$L_1$ノルム} \\ L_2(Q||P) := \int\{ Q(x) - P(x)\}^2 dx \qquad \qquad \text{$L_2$ノルム}\\ I_K(Q||P) := \int \{ \sqrt{Q(x)} - \sqrt{P(x)} \}^2 dx \qquad \qquad \text{ヘリンジャー距離}\\ \mathbb{D}(Q||P) := \int f(\frac{Q(x)}{P(x)}) Q(x)dx \qquad \qquad \text{f-ダイバージェンス}\\ I_\lambda(Q||P) := \int \{ (\frac{Q(x)}{P(x)})^{\lambda} -1 \}Q(x) dx \qquad \qquad \text{一般化情報量}\\ \mathbb{D}_{KL}(Q||P) := \int \log(\frac{Q(x)}{P(x)})Q(x) dx \qquad \qquad \text{KL情報量}
どれがどんな時にどう使われるとかは調べてないです,でもこれでいくと上3つはよく見る気がする.でもまあ全体的に似てるポイですね.なんとなく哲学というか考え方はどれも似たりよったりな気がします.

条件付きエントロピー

エントロピーは式 (4,5) に示す量でしたが,これを条件付き確率 p(x,y)p(x,y) に拡張して考えます.今 xx が既知である場合,同時分布 p(x,y)p(x,y) についてyy を特定するための情報は logp(yx)-\log p(y|x) なので(これはいいよね?条件付き確率です),その合計は

H(yx)=p(y,x)logp(yx)dydx\begin{align} H(y|x) = - \iint p(y,x) \log p(y|x) dy dx \end{align}

で表され,これは条件付きエントロピーといいます.さらにこれを使えば

H(x,y)=H(yx)+H(x)\begin{align} H(x,y) = H(y|x) + H(x) \end{align}

と書けますね!エントロピーは対数なので,確率の乗法を意味しています.つまり xxyy の同時分布を記述する情報量は,xx 単体の情報量と xx が与えられた元での yy の情報量との和になるわけですね.

相互情報量

KL距離は分布と分布の距離を測れる便利な指標でした.

これを使った,これまた便利そうな指標の一つが相互情報量です.二つの変数x,yx, y を考えて,こいつらの同時分布 p(x,y)p(x,y) が得られたとします.この時,この変数2人の間にどんな関係があるのか確認したくなりますよね.他人なのか,それとも親密な関係なのか...まあつまり独立かどうかです.

さて,KL距離はこの独立性の検証的な使い方が可能で,それがまさに相互情報量の計算です.式を見た方が早いでしょう.

MI(x,y)=H(x)+H(y)H(x,y)\begin{align} MI(x,y) = H(x) + H(y) - H(x,y) \end{align}

xxyy が独立であった場合の同時確率の情報量と独立でないときの情報量の離れ具合を見るわけですね.例のごとく対数なので,要は p(x)p(y)p(x,y)p(x)p(y)とp(x,y) です.これは KLD を使えば式(15)のように表せます.

MI(x,y):=DKL(p(x,y)p(x)p(y))=p(x,y)logp(x)p(y)p(x,y)dxdy\begin{align} MI(x,y) &:= \mathbb{D}_{KL}(p(x,y) || p(x)p(y)) \nonumber\\ &= -\iint p(x,y) \log \frac{p(x)p(y)}{p(x,y)} dxdy \end{align}

あら簡単.変数 x,yx,y の同時分布と周辺分布積との KLD を見るだけですね.KLD なので,両者が同じ,つまりxとyが独立である時に限って 0 になる量ってわけですね.

てことは,xとyがずぶずぶの関係であるほど値が大きくなるわけだから,yの値を知る事によってxの不確実性が減った度合を表すと言えそうです.

KLD 同様,符号反転で以下の表記もあります.

MI(x,y):=p(x,y)logp(x,y)p(x)p(y)dxdy\begin{align} MI(x,y) := \iint p(x,y) \log \frac{p(x,y)}{p(x)p(y)} dxdy \end{align}

式 (15) を見れば分かりますが,相互情報量は対称性を持っており,MI(x,y)=MI(x,y)MI(x,y) = MI(x,y) です.なのでどっちがどっちにどの程度依存しているみたいな議論までは出来ません.

Transfer Entropy

相互情報量は2つの確率変数間の相互依存度のような指標でしたが,どっちがどっちに依存している関係なのか,みたいな因果性まで見れたらかっこいいですよね.そう,それがTransfer Entropyです.

え?いや例えば領域Aの活動が元に領域Bの活動が起きてるとか言いたいじゃないですか.

少し話はそれますけど,やはり我々神経科学者にとって21世紀入ってからの大きな問題の一つが因果性の検証だと思うんですよね.いろんなデータが実験的に得られているけど,基本的には相関でしかなくて.「So what?」なんですよねぇ.なので電気刺激や磁気刺激,古いけど破壊法だったりオプトジェネティクス,最近ではニューロフィードバックなんて手法を使って,追加実験的に因果性の検証をしていくのが流行りになっています.

でも面倒なので,どうせなら計測した脳活動だけで因果関係まで言えたら嬉しいよねってモチベーションで考えられるのがeffective connectivityとかで,Transfer entropyはまさにEffective connectivityの一種です.

本題ですが,Transfer Entropyの基本的な考え方はこんな感じっぽいです.まず,因果といってもあくまで情報理論的な観点で見た因果「yy の結果,xx が起きた」です.ちょっと緩いわけですね.実際,まじな因果の検証とか無理では?とも思いますが.

この「yの結果~」という表現からも分かるように,概念の背景に時間軸がひそんでいます.相互情報量はある同時刻の活動のみを比較するような処理をしていましたが,ここに経時的な変化の考慮も踏まえ,経時的な変化における確率変数同士の依存度を見ていく必要があります.

大丈夫ですかね?ここまでは前提です.

ではコアになる考え方ですが,もし仮に yy の結果として xx が起きているのであれば,xx 単体の時系列を使った xt+1x_{t+1} の予測よりは xxyy の値を使った xt+1x_{t+1} の方が精度が高いですよね.式にするとこう.

p(xt+1xt)p(xt+1xt,yt)\begin{align} p(x_{t+1}| \mathbf{x}_t) \nonumber \\ p(x_{t+1}| \mathbf{x}_t, \mathbf{y}_t) \nonumber \end{align}

こいつらの値を比較したとき,xt+1x_{t+1} の値が yt\mathbf{y}_t に全く依存していないのであれば,両者に差はなく等しくなるはずですね.

ふう.

ここまで来たらあとは相互情報量の時と一緒です.KLDを使って

Tyx:=DKL(p(xt+1xt,yt)p(xt+1xt))=p(xt+1xt,yt)logp(xt+1xt)p(xt+1xt,yt)\begin{align} T_{y\rightarrow x} &:= \mathbb{D}_{KL}(p(x_{t+1}| \mathbf{x}_t, \mathbf{y}_t) || p(x_{t+1}| \mathbf{x}_t)) \nonumber \\ &= -\sum p(x_{t+1}| \mathbf{x}_t, \mathbf{y}_t) \log \frac{p(x_{t+1}| \mathbf{x}_t)}{p(x_{t+1}| \mathbf{x}_t, \mathbf{y}_t)} \end{align}

で定義される量を,yy から xx への Transfer entropyとします.例によって符号反転で

Tyx=p(xt+1xt,yt)logp(xt+1xt,yt)p(xt+1xt)\begin{align} T_{y\rightarrow x} = \sum p(x_{t+1}| \mathbf{x}_t, \mathbf{y}_t) \log \frac{p(x_{t+1}| \mathbf{x}_t, \mathbf{y}_t)}{p(x_{t+1}| \mathbf{x}_t)} \end{align}

とも表します.この量は y\mathbf{y} を知る事によって減少した xt+1x_{t+1} の不確かさです.相互情報量とは似ているようで異なります.

また例のごとく式から分かるように TyxTxyT_{y\rightarrow x} \neq T_{x\rightarrow y} です.このことから,Transfer Entropy には向きが含まれており,したがって因果性の議論に使えるわけですね.

因果性といえば他に有名なのはGranger Causalityですが,こいつらの比較はまた今度気が向いたらやってみます.