論文解説: Glow: 可逆1x1ConvによるFlowベースの生成モデル
論文
Glow: Generative Flow with Invertible 1x1 Convolutions
概要
Flowベースの生成モデルとして、可逆1x1 Convによる生成モデルを提案する。提案モデルは標準的なベンチマークにおける対数尤度評価で改善を記録した。また、目的関数を対数尤度とする提案手法は大きな画像の生成タスクにてリアルな画像を効率的に生成できることを示した。
研究の位置付け
近年の成功をおさめた生成モデルには、対数尤度ベースのものとGANによるものである。対数尤度ベースの手法には1) 自己回帰モデル, 2) 変分エンコーダ(VAE), 3) Flowベースの生成モデルの3つがあるが、提案手法は3番目のグループに属する。
評価方法
6つの典型的なベンチマークによって対数尤度を評価した。いずれにおいても既存手法であるRealNVPを凌駕した(図1)。また、生成された顔画像はGANに匹敵するほど十分リアルなものだった(図2)。また、2つ顔画像の線形補完(図3)やセマンティックな編集(図4)においても意味のある画像を生成した。
図1: 対数尤度の評価結果
図2: 提案モデルが生成した顔画像
図3: 顔画像の線形補完
図4: セマンティックな編集
所感
- 各レイヤの計算を可逆にすることで、Forward pathのみ用意すれば順方向の変換と逆変換を両方計算できるというアイデアが秀逸
- 1x1convレイヤはパラメータの初期化時は可逆になることが保証されるが、学習時にパラメータ更新後も可逆になるかどうかは保証されないのでは?
付録: 背景についての補足
Flowベースの生成モデルの特徴
Flowベースの生成モデルは自己回帰モデル、VAEやGANと比較して以下のメリットがある。
- 潜在変数と対数尤度の推定を厳密にすることができる。VAEは対数尤度の下限を計算する近似手法であるし、GANは潜在変数を推定するネットワークを持たない。
- 効率的な学習と生成。PixelCNNのような自己回帰モデルは並列処理が困難である。これに対し、Flowベースの手法は学習、生成時ともに並列化が可能である。
- 潜在空間の情報を下位タスクに利用できる。データ点どうしの補完やデータ点の意味的な編集が可能である。
- メモリ消費の大幅な節約。可逆なニューラルネットワークはメモリ消費が深さ方向に対して定数コストであることが知られている。
Flowベース手法の概要
データセット
一般的なFlowベースの手法において、生成モデルとは、潜在変数
ここで、変換
ニューラルネットワークのように多層からなる変換は、合成関数を用いて以下のように書ける。
これを写像で表すと、
となる。この一連の写像によるシーケンスを(normalizing) flowと呼ぶ。このフローは確率変数の変数変換を繰り返し適用したものであるから、対数尤度(1)は、
と書ける(
したがって、ニューラルネットワークを設計する際はなるべくヤコビアンが対角行列となるようにレイヤの構造を選択する。また、パラメータを用いて可逆的に変換が可能になるようなものを用いる。
学習時は上記の方法で計算した対数尤度を直接最大化する。また、生成時は潜在変数
提案手法で使用する可逆レイヤ
提案手法では以下の3つを使用する。
- Actnorm
- 可逆1x1 convolution
- Affine coupling layer
Actnorm
Batch Normの代用として使用。チャネルごとにアフィン変換(スケーリングとバイアスの加算)を行う。
可逆1x1 convolution
既存手法であるpermutation操作を一般化したもの。変換行列が可逆となるようにランダムな回転行列で初期化する。変換行列をLU分解することで
Affine coupling layer
入力テンソルを2分割する。片方のテンソルには変換を適用せず、アフィン変換のパラメータの計算に用いる。パラメータは浅いニューラルネットワークで推定する。もう片方のテンソルには計算したパラメータを用いてアフィン変換を適用する。片方を不変にする理由は、逆変換を計算可能にするため[1]。最終的に2つのテンソルを結合したものを出力する。
-
仮に入力値を変更してしまった場合、アフィン変換のパラメータが特定できず、逆変換を計算できない。 ↩︎
Discussion