空飛ぶ気まぐれ雑記帳

主に趣味とかプログラミングについて扱います。

【Now Reading】A Disentangling Invertible Interpretation Network for Explaining Latent Representations

はじめに

読んでる最中の論文についてまとめる。

読んでいて気づいたけど、自身の論文を大量に引用していて、前提とする知識が多すぎる。。。
結構時間がかかりそう。


まだまだ読見込んでいる段階なので、ちょっとづつ書き足していきます。
そのうち実装もしたいなと思っているので、誤りや解釈違いがあればご指摘ください

タイトルは「A Disentangling Invertible Interpretation Network for Explaining Latent Representations」
https://arxiv.org/abs/2004.13166

ちなみに著者によるPyTorchの実装も存在する。
github.com


関連する研究にはInfo GANやβ-VAE、Factor VAEなどがある。

端的にどういう論文か

タイトルにある通り、ポイントは潜在変数がInvertible Interpretation(潜在表現が可逆変換可能で変換可能な空間で操作可能)でかつdisentangled representation(意味づけされた潜在表現)なことを特徴にした研究だと思う。

f:id:elda27:20200629214051p:plain
Hyunjik Kim, Andriy Mnih ; Proceedings of the 35th International Conference on Machine Learning, PMLR 80:2649-2658, 2018.

まず、disentangled representationとは潜在変数の各次元が独立で人が解釈可能な特徴量を指す(と思う)。
各次元が独立=各次元で意味が重複しないことを示している。
上の図はFactor VAEの論文から拝借してきたものだ。
各行はLatent traversal(潜在変数をある次元について線形に変化させる操作)することで得られた画像である。
それぞれ異なるcomponent(どの要素が変化しているかは画像の右側に書いてある)が変化していることが分かる。
これがdisentangled representationを持つメリットである。

f:id:elda27:20200629212230p:plain
続いて上の図はInvertible Intepretationを示している。
あるX_1X_2があったときにX_1からX_2への線形な変換とは何かを考える際に単純にX_1X_2それぞれから抽出した潜在変数を補完することは果たして正しい操作なのかということに言及している(ように思う、たぶん)。
この図はおそらく一般的なVAEでは間違いなく当てはまるのだけれども、果たしてFactor VAEのようなネットワークでも同様なことが言えるかは疑問符が付く。

Invertible Transformation of Hidden Representations

f:id:elda27:20200629224408p:plain
以下の文字が頻出するのでそれぞれメモ的に残しておく。
 
f(x) = G \circ E(x) \\
f(x): 何らかのネットワーク \\
E(x): 潜在変数 z を生成するネットワーク \\
G: 潜在変数 z からある出力を得る f のサブネットワーク \\
おおむね、Encoder, Decoder型のネットワークを想像して問題ない。
論文中では、特定のネットワークに依存しない内容で書かれているため、このような表現になっているとみられる。
また\tilde{z}zの違いとして\tilde{z}=T(z)かつ\tilde{z}=T(z)である。したがって、\tilde{z}は人が解釈可能な潜在変数でとzはそれを特に満たさないとみられる。

また、Tは逆変換が可能で、zからz^*へのlatent traversalはz \rightarrow z^* \tilde{z} := T^{-1}(T(z)*)とも書かれている。

ここの中身はSupplementary Materialsに詳細が書かれていて、TはCoupling block, ActNorm, Shuffling layersから構成されているらしい。
色々調べているFLOWベース生成モデルでは一般的に使われている構成のようでGLOWやNICEなどいずれも同様な構成になっていた。
FLOWとか全然知らないので、勉強中。
下記のリンクは勉強用のメモ。

qiita.com
qiita.com
peluigi.hatenablog.com

Disentangling Interpretable Concepts

解釈可能な潜在変数の持ち方に関する話。
ぶっちゃけ式変形がわかってない。Supplemental Materialを読めと書いているが一旦保留。

最終的なロスは下記の通り。
f:id:elda27:20200630205129p:plain
z=E(x)xは入力、Fはsemantic conceptsのindexで、要はK次元の人間が理解可能な概念のindexを指す。
\sigma_{ab}in(0,1)\tilde{z^a}\tilde{z^b}の正の相関を離散化したもの、
T'(z)=|T(z)|で表される。

本当によくわかってない。

Estimating Dimensionality of Factors

\tilde{z}が幾つの次数を持つべきかという話。
スコアs_F自体はF番目のsemantic conceptについてペアとなる画像同士から計算される相関係数である。
f:id:elda27:20200630222453p:plain
端的に言えば、コンセプトを同じくする画像同士はE(\cdot)が抽出するz相関係数の和は高くなるはずということだと思う。

それから、F番目のsemantic comceptの次数N_F=\frac{\exp s_F}{\sum^K_{k=0} \exp s_k}N、ただしNは潜在変数zの次数である。

先にも書いたがある次数の相関係数が正=そのsemantic conceptを表現するために必要な変数だと理解している。
下記は実際にColor MNISTに対して計算したN_Fらしい。

(もしかして、これも最適化するのか…?)

f:id:elda27:20200630222800p:plain

分かってないポイント

  • 誤差関数
  • Nは動的に最適化するのか