Pixel Recurrent Neural Networks
WHY?
이미지의 generation을 위해서 density를 추정해야하는데 이는 매우 어려운 일이다.
WHAT?
pixelrnn은 새로운 픽셀의 확률 분포를 주어진 다른 픽셀들의 확률 분포로 가정한다.
p(x) = \Pi^{n^2}_{i=1}p(x_i|x_1, ..., x_{i-1})
그리고 각 픽셀의 색(RGB)의 값들도 순서대로 conditional하게 주어진다고 가정한다. 그리고 각 픽셀의 값의 분포를 continuous가 아닌 discrete로 가정하고 softmax를 통하여 추정하였다. 이렇게 다른 픽셀들로 부터 sequential하게 정보를 받는 방법으로 세가지 모델을 제안하였다.
첫번째 모델인 RowLSTM은 x_i
줄에서 자신을 포함한 왼쪽만 보는 Mask cnn을 사용하고 h_{i-1}
의 cnn을 사용하여 h_i
을 추정하는 LSTM모델을 사용한다. 그래서 삼각형과 같은 receptive field가 만들어진다. 두번째 모델인 Diagonal BiLSTM은 x_{i, j}
와 h_{i-1, j}, h_{i, j-1}
로 h_{i, j}
를 추정하는 LSTM모델과 그 반대방향(오른쪽 위에서 왼쪽 아래로)으로 추정하는 LSTM모델을 구한 후 두번째 결과를 한칸 아래로 내려서 첫번째 모델의 hidden layer와 더한다(Masking). 마지막 모델인 PixelCNN은 x_i
중심으로 자신을 포함하는 mask convolution을 사용하여 h_i
를 구한다. 이러한 기본적인 세가지 모델에 residual connection기법을 추가하였다.
So?
NLL을 기준으로 하였을때 기존보다 나은 image generation이 이루어졌다.