GAN loss의 단점을 극복하기 위한 Perceptual loss

1. motivation

 

CycleGAN이 unsupervised data set으로 학습할 수 있다는 가능성을 보여주었고

 

심지어 더 쉬운 MAE loss나 MSE loss를 사용한 학습 방법이 있는데

 

supervised data set을 이용한 conditional GAN(Pix2Pix)을 주로 사용하는 이유는....

 

선명한 이미지를 얻을 수 있다는 장점이 있기 때문임

 

그러나 conditional GAN은 학습이 대단히 어렵다.

 

discriminator와 generator의 alternating training이라는 구현이 어려우면서 실제로 원하는대로 잘 안되는 단점이 크다.

 

GAN을 안쓰고는 선명한 이미지를 얻을 수 있는 방법은 없을까?

 

 

2. perceptual loss vs. GAN loss

 

GAN loss(adversarial loss)는 generator와 discriminator의 adversarial training으로 구현이 어렵고 coding도 어렵다.

 

그러나 pre-trained network가 필요없다는 장점이 있다. 그래서  데이터만 잘 주어진다면 다양한 곳에 응용가능성이 있다.

 

perceptual loss는 일반적인 neural network 학습처럼 simple forward와 backpropagation으로 쉽게 학습이 가능하고 coding도 쉽다.

 

오직 high quality output을 편하게 만들기 위함으로 pre-trained network가 필요하다는 단점이 있다.

 

 

3. idea

 

pre-trained network의 (first layer) filter은 human visual perception과 비슷하다.

 

pre-trained network의 초기 layer의 filter를 시각화한 모습

 

image의 edge를 파악하거나 색을 파악하거나 방향성을 파악하거나

 

사람의 perception과 비슷한 부분들이 있음

 

pre-trained network의 early layer는 자기만의 인지능력을 이용하여 주어진 image를 perceptual space로 변환하고 있다.

 

 

4. 구조

 

image transform net은 주어진 input image를 오직 하나의 style로만 바꿔줄 수 있다.

 

pre-trained network(보통 VGG16사용)를 loss network로 사용하며 학습중에는 fix되어 weight update가 안된다.

 

input을 image transform net에 넣어 얻은 output, style target과 content target을 loss network에 넣어 중간 중간 feature를 뽑는다.

 

이들의 backpropagation으로 image transform net이 학습되는 구조

 

perceptual loss에 의한 학습 구조

 

style target에 의한 loss는 여러번(1.2,2.2,3.3,4.3layer 4번) 계산되고

 

content target에 의한 loss는 한번만 계산(최종 feature가 아니고 중간  3.3layer 1번)되는 것이 하나의 포인트?

 

 

5. feature reconstruction loss

 

이미지를 변경할 때 고려해야하는 첫번째 포인트는 이미지의 본질인 content가 유지되면서 변경되어야한다는 것.

 

인간의 visual perception과 비슷한 pre-trained network가 output image를 관찰한 결과(output)와

 

content target을 관찰한 결과를 바라볼 때 비슷하게 바라봐야한다는 것이다

 

image transform net에 의한 output과 스타일이 바뀌지 않은 원본 이미지 X를 content target으로 loss network에 넣어줌

 

loss network가 생성한 output의 feature map과 content target인 X로부터 얻은 feature map의 차이 L2 loss를 계산한다.

 

output이 원본 이미지 X의 content를 잘 포함하는지 알아봐주는 loss

 

이 loss를 최소화하는 방향으로 backpropagation을 통해 image transform net을 학습

 

그림으로 나타낸 feature reconstruction loss의 개념

 

위에서 언급했지만 최종 feature map이 아니고 중간 3.3 layer에서 구한 feature map으로 계산

 

 

6. style reconstruction loss

 

이미지를 변경할 때 고려해야할 두번째 포인트는 이미지의 스타일이 제대로 변경되었는지 여부다.

 

이렇게 바뀌었으면 하는 스타일은 가지는 이미지 Z를 style target으로 넣는다.

 

style target과 transform된 이미지 output을 pretrained network에 넣어 feature map으로 각각 뽑는다.

 

feature construction loss와는 다르게 단순히 L2 loss를 계산하지 않는다.

 

style을 진정으로 담기 위해 feature map의 gram matrix를 구하여 L2 loss를 계산한다.

 

이미지의 style이라는 것은 각 공간의 위치마다 다른게 아닌 전반적인 경향으로

 

이미지 전반에 담긴 feature map의 통계적 특징을 gram matrix로 담아 계산하는 것이다.

 

하나의 feature map에서 구하는게 아니라 중간 중간 여러군데(4군데에서 구한다고함)의 feature map 각각에서 loss를 모두 계산

 

style reconstruction loss를 계산하는 그림

 

서로 다른 layer에서 계산한 여러 feature map에서 계산하라고 언급도 나와있음

 

 

7. gram matrix

 

수학적으로 행렬 X에 대하여 $X^{T}X$가 gram matrix

 

X의 열벡터 $x_{1}, x_{2}, ... , x_{n}$에 대하여  $X^{T}X$는 열벡터들의 내적인 $x_{I}*x_{J}$를 원소로 갖는 행렬

 

내적은 무슨 의미를 갖는가? 두 벡터의 유사도를 측정하는 지표이다.

 

앞에서 feature map의 각 채널은 image로부터 detection하는 정보들이 다양하다는 것을 배웠다.

 

C개의 채널을 가지는 W*H의 spatial dimension을 가지는 feature map에 대하여 reshape하여 (H*W)*C의 matrix와 이것의 transpose C*(H*W) matrix를 곱한다.

 

이렇게 하면 i채널과 j채널의 유사도를 (i,j)원소로 가지는 gram matrix가 구해진다.

 

feature map의 공간정보를 압축시켜 feature map에 담긴 전체적인 경향성을 하나의 matrix로 보고자함

 

feature map의 각 채널이 탐지하는 style 정보가 gram matrix에 압축되어 들어감

 

feature map에서 gram matrix를 구하는 방법

 

8. 학습

 

중간 3.3 layer에서 계산한 content target의 feature map과 transform image feature map의 단순 L2 loss로 feature reconstruction loss 계산

 

transform image의 feature map이 content target의 feature map에 담긴 contents 정보를 배워가도록 학습을 진행

 

1.2, 2.2, 3.3, 4.3 layer 4군데에서 계산한 style target의 feature map과 transform image feature map 각각의 gram matrix를 이용한 L2 loss로 style reconstruction loss 계산

 

transform image의 gram matrix가 style target의 gram matrix에 담긴 style 정보를 배워가도록 학습을 진행

 

다양한 level의 layer에서 잡아주는 image의 style 정보를 모두 가져오기 위해서 그런듯?

 

각 reconstruction loss의 가중합(각 가중치는 hyperparameter)으로 전체 image transform net의 train loss로 사용

 

super resolution같이 style은 변하지 않고 quality만 높이려하는 것은 feature reconsturction loss만 사용하기도 함

 

perceptual loss를 사용한 style transfer

 

내용은 유지한채 스타일만 잘 변경

 

TAGS.

Comments