機械学習とかコンピュータビジョンとか

CVやMLに関する勉強のメモ書き。

Understanding and Improving Interpolation in Autoencoders via an Adversarial Regularizerを読んだのでメモ

はじめに

Understanding and Improving Interpolation in Autoencoders via an Adversarial Regularizerを読んだのでメモ.

気持ち

Autoencoderはデータの潜在的な表現を学習することができ,その潜在空間上でデータ間の補間を行うと,デコードされた画像も連続的に変化していくことが知られている.ただし,時たま何の意味もなさないデータが生成される場合があるので,そこをより良くしていきたい,つまりhigh-qualityなinterpolationがしたいという思い.

Adversarial Regularizer

今回は多層ニューラルネットを使ったautoencoderを考える.encoderをz=f_\theta(x),decoderを\hat{x}=g_\phi(z)として,目的関数には二乗誤差を使う.\theta,\phiニューラルネットの学習パラメータ.補間は潜在空間上で\hat{x}_\alpha=g_\phi(\alpha z_1+(1-\alpha)z_2),\:\alpha\in[0,1]として行う.ただし,z_1=f_\theta(x_1),\:z_2=f_\theta(x_2)

High-qualityな補間の特徴として,補間の途中の画像もreal dataと見分けが付かないような画像であり,データ間の特徴を滑らかに変化させていくことがあげられる.ただし,後半の定義は難しいので今回はrealistic側を重点的に考える.

本物の画像と見分けが付かないようなということでGANの考えを導入する.するとGANのdiscriminator(論文ではcriticと表現)は次の目的関数を最小化するよう学習する.

\displaystyle
\mathcal{L}_d=||d_\omega(\hat{x}_\alpha)-\alpha||^2+||d_\omega(\gamma x+(1-\gamma)g_\phi(f_\theta(x))||^2

\gammaスカラーのハイパーパラメータ.第1項目はデータの混ざり具合を判断する項で,2項目は二つの関数からなる正則化項となっていて,データ空間での補間に対してdiscriminatorが0を出力するようにするもの.別に重要ではないけどあった方がadversarial lerning processが安定するとのこと.正直この正則化の意味はちょっとよくわからなかった.

Autoencoder側の目的関数は正則化項が加わって以下のように表される.

\displaystyle
\mathcal{L}_{f,g}=||x-g_\phi(f_\theta(x))||^2+\lambda||d_\omega(\hat{x}_\alpha)||^2

\lambdaはハイパーパラメータで\alphaにかかわらずdiscriminatorの出力を0にしようとするもの.これが\mathcal{L}_d最大化の代わりになっている.

まとめると,discriminatorを\mathcal{L}_d最小化で学習して,autoencoderを\mathcal{L}_{f,g}最小化で学習する.

以降論文ではかなり密な実験と考察が続くがその辺は割愛(むしろここからが論文の本番ではあるが).

まとめ

以前,潜在空間の補間をgeodesicsに沿ってやると綺麗になるというのがあったけど,このアプローチなら線形補間で十分になるからなかなか賢いアプローチだなあという感じ.