Open Yagami360 opened 5 years ago
画像の自己回帰モデルの基本
画像の自己回帰モデルにおいては、上図のように、画像の左上のピクセルを開始時点、右下のピクセルを終了時点として、上行から下行へ、各行で左から右へ移動しながら次のピクセルの条件付き確率分布を予想することを逐次繰り返すことで画像生成を行う。最終的な画像全体の確率分布は、以下の式のように、これら各ピクセルの条件付き確率の積(=同時確率分布)で得られる。
又、各ピクセルのRBG 値は、R → G → B の順に予想し、各々のピクセルの値は、これら条件付き確率の積(=同時確率分布)で得られる。
本手法では、このような画像の自己回帰モデルに対して、その長期依存性をうまく捉えるために、RNN の LSTM でモデル化する。 更に、条件付き確率分布を softmax 層での多項分布で近似することで、離散的な確率分布でモデル化する。これにより、連続的な確率分布でモデル化するよりも学習しやすくなり、又、その確率分布の形状(下図)により、ぼやけた画像を生成しずらくなるという利点が得られる。
PixelRNN PixelRNN は以下のような Row LSTM と Diagonal BiLSTM の2種類のタイプの LSTM から構成される。
Row LSTM
Row LSTM は、1次元の畳み込み+LSTM で構成される。 まず、画像の各行全体で1次元の畳み込みを行う。この畳み込みを各行で繰り返すことで、上図のように三角形状に畳み込みが行われて情報が集約されることになる。 ※ この Row LSTM では、上方向の Context(=画像の各ピクセルの情報) は全て活用していることになるが、画像全体の Context は活用していないことに注目
次に、畳み込まれた各行の入力マップ x 全体に対して、LSTM の各ゲートを、一般的な LSTM と同様にして、以下の式に従って更新する。
Diagonal BiLSTM
Diagonal BiLSTM は、上図のように、2次元の LSTMをそれぞれ左上から右下に向かっての経路(上図青丸)と、右上から左上へ向かっての経路(上図薄い青丸)の双方から対角線上に画像をスキャンする。 ※ この Diagonal BiLSTM では、画像全体の Context が活用出来ていることに注目。但し、その分計算コストは大きい。
このような対角線上での処理を少ない計算コストで実現するために、本手法では、以下の図のように、各行を前の行に対して右側に1オフセット分ずらすことで同様の処理を実現している。
LSTM の各ゲートの更新は、先の Row LSTM と同様にして、以下の式で行う。
PixelCNN
PixelCNN は、上図のように、畳み込み処理時に、畳み込みカーネルの上半分のみを利用して畳み込みを行う畳み込みネットワークである。 ※ この PixelCNN では、画像全体の Context が活用出来ていないことに注目。但し、その分計算コストは小さい。
Residual Connections 学習の収束性を向上させ、ネットワークの中で入力信号をより直接的に伝搬させるために、本手法では下図のように、PixelCNN や PixelRNN 中のある LSTM から別のネットワークへの入力の間に、ResNet で使われているような Residual Connections の構造を導入している。
Masked Convolution
画像の自己回帰モデルにおいては、各ピクセル値の RGB 値は、R → G →B の順番に予想していくことになるが、例えば、G 値を予想する際には、以前に予想した隣接するピクセル値に加えて、今回のピクセルでのR値も入力情報(=Context)として利用することになり、各ピクセルの各々の RGB値が複雑に絡み合っていることになる。
本手法では、このような複雑に絡み合った依存関係を制限するために、ネットワーク内の接続関係を重みパラメータを0にすることで制限する上図のようなマスク構造(MaskA, MaskB)を導入している。
具体的には、まず MaskA は、ネットワークの第1層目の畳み込み処理のみに適用され、隣接するピクセルと既に予想されているRGB値(R→R,G→G,B→B)への接続を制限する。
次に MaskB は、ネットワークの第2層目以降の全て畳み込み処理に適用され、既に予想されているRGB値(R→R, G→G, B→B)への接続を許容し、MaskA の制約を弱める。
Multi-Scale PixelRNN
xxx
CIFAR-10 と ImageNet 32x32 での生成画像の定性的評価
古い手法なので、当時としては SOTA でも生成画像の品質は良くないが、RNN ベースのアーキテクチャ(Row LSTM+Diagonal BiLSTM)で画像の各ピクセルを時系列的に生成するアイデアは面白かった。
又、Masked Convolution でネットワークに制限をかける工夫も面白かったが、このような工夫では、モデルが複雑になり、アーキテクチャの汎用性は低下するように思えた。
0. 論文情報・リンク
1. どんなもの?
2. 先行研究と比べてどこがすごいの?
3. 技術や手法の"キモ"はどこにある?
画像の自己回帰モデルの基本
画像の自己回帰モデルにおいては、上図のように、画像の左上のピクセルを開始時点、右下のピクセルを終了時点として、上行から下行へ、各行で左から右へ移動しながら次のピクセルの条件付き確率分布を予想することを逐次繰り返すことで画像生成を行う。最終的な画像全体の確率分布は、以下の式のように、これら各ピクセルの条件付き確率の積(=同時確率分布)で得られる。
又、各ピクセルのRBG 値は、R → G → B の順に予想し、各々のピクセルの値は、これら条件付き確率の積(=同時確率分布)で得られる。
本手法では、このような画像の自己回帰モデルに対して、その長期依存性をうまく捉えるために、RNN の LSTM でモデル化する。 更に、条件付き確率分布を softmax 層での多項分布で近似することで、離散的な確率分布でモデル化する。これにより、連続的な確率分布でモデル化するよりも学習しやすくなり、又、その確率分布の形状(下図)により、ぼやけた画像を生成しずらくなるという利点が得られる。
PixelRNN PixelRNN は以下のような Row LSTM と Diagonal BiLSTM の2種類のタイプの LSTM から構成される。
Row LSTM
Row LSTM は、1次元の畳み込み+LSTM で構成される。 まず、画像の各行全体で1次元の畳み込みを行う。この畳み込みを各行で繰り返すことで、上図のように三角形状に畳み込みが行われて情報が集約されることになる。 ※ この Row LSTM では、上方向の Context(=画像の各ピクセルの情報) は全て活用していることになるが、画像全体の Context は活用していないことに注目
次に、畳み込まれた各行の入力マップ x 全体に対して、LSTM の各ゲートを、一般的な LSTM と同様にして、以下の式に従って更新する。
Diagonal BiLSTM
Diagonal BiLSTM は、上図のように、2次元の LSTMをそれぞれ左上から右下に向かっての経路(上図青丸)と、右上から左上へ向かっての経路(上図薄い青丸)の双方から対角線上に画像をスキャンする。 ※ この Diagonal BiLSTM では、画像全体の Context が活用出来ていることに注目。但し、その分計算コストは大きい。
このような対角線上での処理を少ない計算コストで実現するために、本手法では、以下の図のように、各行を前の行に対して右側に1オフセット分ずらすことで同様の処理を実現している。
LSTM の各ゲートの更新は、先の Row LSTM と同様にして、以下の式で行う。
PixelCNN
PixelCNN は、上図のように、畳み込み処理時に、畳み込みカーネルの上半分のみを利用して畳み込みを行う畳み込みネットワークである。 ※ この PixelCNN では、画像全体の Context が活用出来ていないことに注目。但し、その分計算コストは小さい。
Residual Connections 学習の収束性を向上させ、ネットワークの中で入力信号をより直接的に伝搬させるために、本手法では下図のように、PixelCNN や PixelRNN 中のある LSTM から別のネットワークへの入力の間に、ResNet で使われているような Residual Connections の構造を導入している。
Masked Convolution
画像の自己回帰モデルにおいては、各ピクセル値の RGB 値は、R → G →B の順番に予想していくことになるが、例えば、G 値を予想する際には、以前に予想した隣接するピクセル値に加えて、今回のピクセルでのR値も入力情報(=Context)として利用することになり、各ピクセルの各々の RGB値が複雑に絡み合っていることになる。
本手法では、このような複雑に絡み合った依存関係を制限するために、ネットワーク内の接続関係を重みパラメータを0にすることで制限する上図のようなマスク構造(MaskA, MaskB)を導入している。
具体的には、まず MaskA は、ネットワークの第1層目の畳み込み処理のみに適用され、隣接するピクセルと既に予想されているRGB値(R→R,G→G,B→B)への接続を制限する。
次に MaskB は、ネットワークの第2層目以降の全て畳み込み処理に適用され、既に予想されているRGB値(R→R, G→G, B→B)への接続を許容し、MaskA の制約を弱める。
Multi-Scale PixelRNN
xxx
4. どうやって有効だと検証した?
CIFAR-10 と ImageNet 32x32 での生成画像の定性的評価
5. 議論はあるか?
古い手法なので、当時としては SOTA でも生成画像の品質は良くないが、RNN ベースのアーキテクチャ(Row LSTM+Diagonal BiLSTM)で画像の各ピクセルを時系列的に生成するアイデアは面白かった。
又、Masked Convolution でネットワークに制限をかける工夫も面白かったが、このような工夫では、モデルが複雑になり、アーキテクチャの汎用性は低下するように思えた。
6. 次に読むべき論文はあるか?
7. 参考文献