yoheikikuta / paper-reading

Notes about papers I read (in Japanese)
156 stars 4 forks source link

[0004057] The information bottleneck method [paper-reading] #28

Open yoheikikuta opened 5 years ago

yoheikikuta commented 5 years ago

論文リンク

https://arxiv.org/abs/physics/0004057

公開日(yyyy/mm/dd)

2000/04/24

概要

確率変数で $ X -> \tilde{X} $ という非可逆圧縮を考える。 rate-distortion theory とは、distortion function $ d(x, \tilde{x}) $ (これは要素が等しくない時に何かしらの正の値を取って歪みを表現する)を用いて、$ I(X; \tilde{X}) + β <d(x,\tilde{x})> $ を最小化するという問題設定である。 これは変分法により解析的な形で $ p(\tilde{x}|x) $ を導出することができ、またそれを求めていくための iterative な解法も知られている(Blahut-Arimoto algorithm)。 しかしこれは適切な distortion funciton を選ぶことが必要で、その選び方自体は何の指針もない。この論文では $ Y \rightarrow X \rightarrow \tilde{X} $ という X に対して relevant な情報を有する Y も導入することにして(これは例えば教師あり学習において X がデータで Y がラベル)、この Y を介することで圧縮の指針を与えるということを提案している。言葉だけで言うならば、 $ X \rightarrow \tilde{X} $ という圧縮において $ Y \rightarrow X $ で X を生み出すのに relevant な情報を残すように圧縮するというものである。 この指針により自然と最適化対象として $ I(X;\tilde{X}) + β <D[p(y|x)||p(x|\tilde{x})]> $ という KL divergence が現れるようになっている。嬉しいことに、これも同様に変分法で解析的な self-consistent な解を導出し、iterative にそれを求める方法が存在することが証明される。 bottleneck という名前は、$ \tilde{X} $ は X よりも要素数が少ない codeword になっているが、その限られた要素を使って $ Y \rightarrow X $ における情報を保ちつつ $ X \rightarrow \tilde{X} $ における情報を圧縮する、というところからきている。もっと有り体に言えば bottleneck というのは $ \tilde{X} $ のうち X の Y に関する情報をまとめたものである。

yoheikikuta commented 5 years ago

問題意識を理解するために例を考える。

音声波形から何かしら意味のある情報へと非可逆圧縮することを考えてみる。 何かしら意味のあるというのをここでは人間が意味を知覚するのに必要な分の情報、ということにしてみる。抽象的で少し分かりにくいが、ナイーブに考えてもただの音声波形には人間の意味の知覚に関係ない情報も含まれているので音声波形の有するエントロピーの方が大きい。

この非可逆圧縮はどうやるか?

これはとても難しくて、我々は音声波形から意味を知覚するにあたりその原理を全て理解しているわけではないので、こうすれば良いという方法を知っているわけではない。これはつまりどう情報を非可逆圧縮するかの exact な解は持ち合わせていないことを意味して、すなわち feature selection をどうするかには任意性が生ぜざるを得ないことを意味している。

これだけだと経験と勘からえいやと手で決めるしかない感じがするが、一つの改善の方向性として何が意味ある情報かというのを判断するための別の情報を使うというものである。 例えばある音声波形が "Hello" という単語を発したものであると分かっていれば、この情報を表すのに不必要な情報は圧縮してしまってよいと分かる。もちろんこれでもどうやればいいかというのは分からないが、先ほどと比べればやりやすくなっているようには思える。

形式的にこれを書くと、X は波形、$ \tilde{X} $ は圧縮した何かしらの特徴量、Y は波形が表す単語として、$ \tilde{X} $ をどう決めるのかは依然として難しいけれども、 $ \tilde{X} \rightarrow Y $ は情報として復元できるような圧縮の仕方をしよう、ということになる。

この論文ではこの辺りの話を相互情報量などを用いて議論していくことになる。

yoheikikuta commented 5 years ago

ここからはまず Y を使わない traditional な議論を進め、その後 Y を導入して話がどう変わるかに移る。

$ X \rightarrow \tilde{X} (|X| > |\tilde{X}|) $ を考える。

X は何かしらの知っている対象とする。上で述べたように $ \tilde{X} $ の要素をどうやって準備するのか、という問題があるのだがここではそれは given とする。

mapping $ p(\tilde{x} | x) $ は soft な partitioning になっている。 この辺りは統計物理と機械学習を両方知っているとすんなり理解できる(知らなくても理解できるのかもしれないが)。partitioning はまさに統計物理におけるエネルギー準位毎に分ける際の仕切りのイメージだし、それがさらに確率的なので soft clastering のように複数の対象に属し得るようになっている。

$ X, \tilde{X} $ から一つずつ要素を取り出して、$ p(\tilde{x} | x) $ の information content は $ - \log p(\tilde{x} | x) $ であり、そもそも x の存在確率から考えれば $ - p(x) p(\tilde{x} | x) log p(\tilde{x} | x) $ という effective なビット数の形が得られる。 これらの要素の表現力は $ 2^{- p(x) p(\tilde{x} | x) \log p(\tilde{x} | x)} $ として、それを体積要素と考える。 全てのペアを考えてその平均を考えることで $ 2^{- \sumx \sum{\tilde{x}} p(x) p(\tilde{x} | x) \log p(\tilde{x} | x)} $ が得られる。

論文の (2) 式でこれを $ H(X|\tilde{X}) $ の条件付きエントロピーで書いてるけど、これは X と $ \tilde{X} $ が逆だよなぁ。これ以降の話ではこの条件付きエントロピーを使わないので式がおかしくなるところはないが、ここは間違いだと思われる。

yoheikikuta commented 5 years ago

こうやって圧縮をした際の質を考える。一つの候補が以下の相互情報量である。

これは一方を知ることでもう一方の不確かさがどれくらい減るかということを表現している。$ \tilde{X} $ には X の情報を残しつつ圧縮するという気持ちが込められていたので、こいつを小さくしたい。これは(非可逆)圧縮における圧縮率ということで rate と呼ばれる。 しかし、これだけでは明らかに不十分である。仮に $ \tilde{X} $ が一つの要素しかない場合、この量は 0 になるので好きなように減らせる。

そこで登場するのが distortion function d ($ d: X × \tilde{X} \rightarrow R_+ $)である。 これは例えば hamming distortion ならば $ x, \tilde{x} $ が等しい時は 0, 等しくなければ 1 などとなって、その期待値を計算すれば圧縮によってどれくらい分布が歪んでしまう(そして元の情報が再現できなくなる)かを測る指標になる。

この d をどう決めるのかは置いといて、そのような d が与えられたとすれば、以上を踏まえて以下のように定式化できる。distortion の期待値がある上限 D を超えないように \tilde{X} をグッと圧縮しよう、という話である。

こういう制限付きの最適化問題をそのまま解くのは大変だ。 微分して解けるような形にしたい。もう少し正確に言えば、ここでは関数系 $ p(\tilde{x} | x) $ 自体を変えるの変分で解けるようにしたい。ということで rate と distortion の寄与をコントロールするパラメタ β を導入して、以下の形の汎関数最適化問題で定式化する。

yoheikikuta commented 5 years ago

こやつを $ p(\tilde{x} | x) $ で変分する。単純な変分計算だが貼っておく。

あとはこれを 0 とおいて、$ \log Z (x, β) = λ(x) / p(x) $ とおけば以下が得られる。

yoheikikuta commented 5 years ago

解析的な表式は分かった。 次にこれをどうやって実際に求めていくかを考える。

β はパラメタなので適当に手で与えるしかなく、d も given として、まず $ p(\tilde{x}) = \sum p(\tilde{x} | x) p(x) $ を決めてそれに基づいて分配関数を求めることが必要になる。 ここで、$ p(x) $ は何かしらデータを持っているのでそこから推測できるものなので、ターゲットは $ p(\tilde{x} | x) $ である。汎関数を書いた時も変数となる関数がこいつだけだったのはそういう意味である。 ということで適当な初期確率分布 $ p(\tilde{x} | x) $ からスタートして $ p(\tilde{x}) $ と分配関数を求め、$ p(\tilde{x} | x) $ が更新される。それを繰り返せば良さそうということが期待される。

それを述べている部分が Theorem 3 だ。

これが Blauht-Arimoto algorithm である。 独立に $ p(\tilde{x} | x) $ と $ p(\tilde{x}) $ を更新していくので、それぞれで独立に対象の汎関数を minimize する関数系において望む形を満たしていないといけない、ということだな。

ここは証明まで含めて追う必要があるかはちと微妙なところではあるかなぁ。 とりあえず http://www.inc.cuhk.edu.hk/InformationTheory/files/Abridged/Ch_9.pdf この辺りの資料を読んでみるか。

まあ話としては、最適化対象である汎関数を rate と distortion から定めて、ターゲットとなる確率分布の表式は変分法で導出され、これは closed-form ではないが iterative に求めていくことができる、ということが分かっていれば十分だろう。


軽く資料を読んでみた。

数学的な問題設定としては上に有界の f に対して $ \sup_u \sup_v f(u, v) $ を考えるというもの。 この u, v は凸集合の元である場合を考え、そしてそれらは確率分布を集合としたときの元となる(定義より明らかにある確率分布から得られる元を集めて集合にすればそれは凸集合となる)。

これを一方の変数を止めてもう一方で最大化して今度はその逆をやって、という風に上限を求めていく。ここがまさに論文で使っている iterative な方法である。 構成からこの各ステップで値は減少しないので、上に有界であることから収束することが保証される。これだけだと最大値になることは保証されないが、 f が convex であれば最大値になる。

あとはこれを rate-distortion theory に当てはめるということをしている。 問題設定に合わせるために符号を変えて下に有界で下限を求めていくことになる うん、そこまで細かくは見ていないけどまあまあ気持ちは理解したと思われる。

yoheikikuta commented 5 years ago

ここまでは Y を使わない traditional な議論を追ってきた。

当然生じる問題として、正しい distortion function など分かっていることなどほぼない。 そこで、他の変数を導入して、その変数に関する relevant な情報をできるだけ残すように圧縮するという拡張を考えてみる。

一例としては教師有り学習問題で X をデータで Y をラベルとしたときの問題設定である。 このとき(手元のデータから推測はできるので)$ p(x, y) $ は既知のものとする。いや真の分布じゃないよとかそういうのは置いといてデータを持ってるものは既知とする。

直感的には、 $ X \rightarrow \tilde{X} $ と圧縮する際に Y に関する情報はできるだけ残す、というのは make sense な感じはする。説明したい Y という対象を持ち出すことで、distortion function といういかにも選ぶのが難しそうなものを避け、$ p(y|\tilde{x}) $ を $ p(y|x) $ に近づけようという話にすり替えることができる。 後で見るが、割と自然に KL divergence が distortion function の役割を担うようになる。

なかなか良さそうなストーリーだ。 新しく Y を導入するので Blauht-Arimoto algorithm のように計算していけるものなのか、というのが気になるが、ほぼ同じようにできるのである。やったぜ!

ということでその辺を真面目に見ていこう。

yoheikikuta commented 5 years ago

まず、$ X \rightarrow \tilde{X} $ は非可逆圧縮過程なので、以下の関係を満たす。

rate-distortion のときと同様に、圧縮の方向性と Y に関する情報を残す方向性は trade off の関係にあり、唯一の解はない。 この論文では rate-distortion の時からの類推で以下を最小化するという問題設定を提案している。

ここは straightforward な感じだね。expected distortion と違って二項目に出てくる相互情報量も大きい方がいいので符号は逆転している。β の役割は rate-distortion の話と同じようなもんだからいいだろう。 $ p(\tilde{x}|x) $ の汎関数になっていることは注目してもいいかもしれない。条件付き確率の式やベイズの定理を使えば未知の確率分布はこれだけで書け、残りは $ p(x) $ や $ p(y) $ や $ p(y|x) $ で書くことができるためである。

この二項目の符号が逆というのは Baluht-Aritomo algorithm のようなものを考えていく上では本質的な難しさを生み出している。相互情報量は非負なのでこれは負の値を持ち、それゆえに下に有界とは限らない。 これに関しては後に見るとしてここでは一旦忘れておく。

こいつを同じように変分法を適用する。 変分による self-consistent な式の導出は論文では以下の定理4に書かれている。

ちょちょっと計算すると以下。 summation の添字とかちょっと雑になっているところもあるが、まあいいだろう。最後の結果の分母は Lagrange multiplier のまま書いているが、ここは分配関数で規格化がなされている。サボって書き忘れた。

yoheikikuta commented 5 years ago

Y を導入しない traditional な議論と比較すると、exp の肩が distortion function から KL divergence に変わっているところが見て取れる。 ということで、まあまあ自然に汎関数を定めて変分原理を用いると、"effective distortion measure" として KL divergence が現れるようになっている。

あとはこれと $ p(y | \tilde{x}) $ と $ p(\tilde{x}) $ で iterative なアルゴリズムを作れると定理5で述べられている。 (29) はまさに free energy なわけだが、まあそれは完全に物理の話なので置いておこう。

これはなかなか難しいことをやっている。 まず (30) 式の形を見ると第二項の符号は正になっていて元々考えていた汎関数とは異なる。こうしたい理由は非負の項の和にすることで下に有界にして iterative algorithm を出したいから、だろう。 そうすると変分法で導出した式が意味なくなるんじゃないのか、と思ったが、この (30) 式を $ p(\tilde{x} | x), p(\tilde{x}), p(y | \tilde{x}) $ でそれぞれ独立に最小化した時に、その最小値において先ほど求めた表式を満足する、ということになっているらしい。 つまり汎関数の形は変わっているが最小値において満たすべき関係式は同一ということになる。

が、論文の記述が追えない。特に $ p(\tilde{x} | x) $ に関して、expected relative entropy をに変分法を適用すれば先ほど出したものと同じ形が出てくるので最小値では同じ関係式を満たすよね、と主張をしているがこれが追えない。とりあえずお気持ちは理解したと思われるので、真面目な計算はまた後日ということにしておく。


この Ph.D thesis でこの辺りの記述が見られる。 http://www.cs.huji.ac.il/labs/learning/Theses/Slonim_PhD.pdf p.31 の 3.1.1 辺りを読めばよい。

つまりはこうなっている。

なるほどね。このD論他の方法とかも紹介しているし、やる気が出たらもう少し読んでみよう。

yoheikikuta commented 5 years ago

これにて内容は終了。

$ \tilde{X} $ の構造はやはり手で与えないといけないが、機械学習的には例えば DNN なら中間層をどう構築するかという話になる。

また、rate-distortion とのアナロジーで information plane が描けて、そこには分岐が発生し得てそれは二次の相転移だとかいう話が出たりするがコメントのみという感じ。 この辺は興味が出たらまた追ってみるとしよう。

ということで、少し細かいところを除けば Information Bottleneck は理解することができたので、これを使った論文にももう少し真面目にチャレンジしていくことができるようになった。