Adversarial Generator-Encoder Networks [arXiv:1704.02304]
第一話
挨拶
G : 今週のヤンジャンは青山くんが風邪を引いていましたね。どうもguguchiです。
M : 今週のヤンジャンまだ買ってません。帰りに買います。masoです。
G : 今週はAdversarial Generator-Encoder Networks(以下、AGE)を読んでいきたいと思います。
会話
G : まず概要について説明しますね。AGEはadversarial traingを使ってencoderとgeneratorを学習するという論文です。gをgenerator、eをencoderとすると、目標はgとeをadversarial trainingによって訓練する手法です。
M : gとeをバトらせるんだよね
G : 僕がよく分からなかったのは、なんでencoderについてmax取ってるかって所です。
M : 2ぺージを見たら” Below, we show how to design an adversarial game between e and g that ensures the alignment of g(Z) = X in the data space, while only evaluating divergences in the latent space.”って書いてあるね。目標は、潜在変数空間で二つの分布が最も離れるようにencoderを学習させるんですよね
G : いやそれはいいですけど、max minの順番はおかしくないですか?
M : 僕もよく分からないです。最大最小不等式っていうのがありますよね。
これひっくり返すのって問題起こりそうですよね。でもアルゴリズム的には誰も気にしてませんですよね。交互にアップデートするし。
G : ひっくり返すのってやばいですよね。普通みんなmin maxでやってて、例えばGANだと
こういう目的関数になっています。毎回やってるのは真の分布と生成モデルを最も離すような「距離」をdiscrimantorで学習して、それに基づいて生成モデルを真の分布に近付けるってことです。最終目標はV(G,D)=0にすることです。
M : 100%同意っすよ。このmin maxってベクトル空間のinfinity norm最小化に似てますよね。
qがベクトルでFがpを探す部分ベクトル空間だとしたら、
を最小にするpを探したい。
G : kはベクトルの要素であってますよね?つまり、要素の差の中で最も大きい所が最も小さくなるようなpをFの中から探してくる。
M : そうだね!実はこれはもうちょっと拡張できる。
e(k)はk番目の要素以外0のone-hotベクトルです。ここで取られているsupはone-hotベクトルの中から内積を取った時の最大となるone-hotベクトルを探してきている。
この話はもうちょっと拡張できて、one-hotベクトル以外のベクトルからも内積が最大となるものを探すってことができる。ベクトル空間V全体から単位ベクトル全てを探してくるとすると
となって、
を達成するp^*を探すことになる。
G : これってWasserstein GANの形に似てますね!
D : そうだね!積分は内積と考えることができて
pを確率分布とすると
となるから,さっきの式は
となる。Vを関数空間とするとWGANに完全に一致する。
G : うわーほんまやー!AGEもこの観点から解釈できますかね?
M : いやーよく分かんないだよねー。
G : 分からんのかい!
M : そういや、前から思ってたんだけど、なんで「分布pに関するvの期待値」と「分布qのvに関する期待値」を比較するんだろうな?
をKL divergenceとか使って分布の距離測ればいいのに。。。
G : 俺もそれやりたい!
M : ちょっと待て。これを見てみろ。
FをパラメトライズされたGを通してZから生成される確率測度の集合だとしたら
ってなるね。。。
G : これ俺がやりたかったやつやん!wwww
M : Sigh. People are smart. What a pain.
G : すいません。会話形式で書くとき、:より後ろに文章きて欲しいんですけど、誰かやり方知ってますか?教えてください。