DL

[리뷰] NaturalInversion: Data-Free Image Synthesis Improving Real-World Consistency

김치말이삼겹살 2023. 7. 2. 17:09

안녕하세요.

 

최근에 Model Inversion이라는 주제에 관심이 있어 관련된 논문을 읽고 있습니다. 이어서 NaturalInversion이라는 주제로 글을 작성해보고자 합니다. 해당 논문은 아래 링크를 첨부해도록 하겠습니다. 

 

https://arxiv.org/abs/2306.16661

 

NaturalInversion: Data-Free Image Synthesis Improving Real-World Consistency

We introduce NaturalInversion, a novel model inversion-based method to synthesize images that agrees well with the original data distribution without using real data. In NaturalInversion, we propose: (1) a Feature Transfer Pyramid which uses enhanced image

arxiv.org

 

 

앞서 리뷰를 했던 논문인 DeepInversion과 비교를 해보자면, 훨씬 압도적인 선명도를 보입니다. 우선 그림으로 확인해보도록 하겠습니다. 

 

CIFAR-10 dataset으로 실험한 결과

 

기존의 DeepInversion의 경우보다 선명도가 훨씬 높음을 확인할 수 있습니다.

 

NaturalInversion에서는 3가지를 Main Contribution으로 언급이 되어 있습니다.

 

1. Feature Transfer Pyramid를 사용하여 기존보다 영상의 우선순위 정보를 더 잘 잡는다.

2. One-to-One Approach를 활용하여 1개의 batch step으로부터 1개의 batch sample을 생성해낸다. 이를 통해 Mode collapse를 해결할 수 있다.

3. Learnable Adaptive Channel Scaling을 사용하여 Original Image와 유사하게 만들기 위해 output image channel scaling을 진행한다.

 

저는 이 main contribution을 뒤집어서 아래와 같이 생각을 해보았는데요. 저자분께서 어떻게 DeepInversion에서 개선 사항을 이끌어내실지에 초점을 맞추어 생각해보는 것입니다.

 

1. 매 epoch마다, 혹은 batch마다 latent vector가 랜덤 샘플링될 때, generator의 output이 일정한가?

 

2. feature map으로부터 값을 얻을 때 입체적인 형태로의 값을 얻을 수는 없을까?

 

3. 사전 학습된 모델의 original 분포를 만들고자 하는 것이라면, 왜 dataset을 normalize한 것을 rescale하지 않을까?

 

우선 Feature Transfer Pyramid부터 설명하도록 하겠습니다. 

 

one-to-one generator로부터 생성된 image를 사전 학습된 classifier에 흘리면, 합성곱 layer에 의해 feature map이 생성될 것입니다. 그리고 제일 마지막에 생성된 feature map 에서부터 합성곱 layer를 다시 쌓기 시작하여, 각 layer에서 생성된 feature map을 element-wise하게 더해줍니다. 

여기서 m은 Feature Transfer Pyramid(이하 FTP)에서 l번째 feature enhancement map을 의미하고 f는 사전 학습된 classifier로부터 나온 N번째 feature map을 의미합니다. 그리고 W는 단일 FTP block을 의미하고, $$\phi$$ 는 upsampling을 의미합니다. 예를 들어 2*2 pixel size라면 4*4 pixel size로 확장합니다. FTP는 점진적으로 넓은 범위에서의 feature map을 담아내고, 더 풍성한 영상 정보를 담을 수 있게 됩니다.

 

이때, Upsample을 단순하게 진행할 경우에는 어떤 문제가 생길까요? 해상도가 더 낮아지게 되겠죠 그래서 FTP는 아래와 같이 구성하여 parameter를 줄이면서도 영상 정보를 잘 담아낼 수 있도록 합니다.

 

 

 

그리고 다음은 one-to-one generator입니다. one-to-one generator는 하나의 generator가 하나의 latent vector로만 학습한다는 개념입니다.

기존의 DeepInversion의 경우에는 하나의 generator가 epoch 마다 초기화되는 latent vector, 즉 여러 latent vector를 사용하는 one-to-many generator를 사용합니다. 이를 통해 NaturalInversion은 한 class에서 비슷한 이미지를 생성하는 문제인 mode collapse를 해결합니다.

 

mode collapse는 GAN에서, discriminator가 구별하지 못하는 이미지를 generator가 생성하게 되었을 때 그 분포를 다양하게 하지 못하는 경우 발생합니다. 예를 들어 사과 이미지를 만드는 경우 초록 사과가 아닌 빨간 사과만 계속해서 만드는 것을 말하는 것이죠.

 

이 방식을 이용해 하나의 latent vector는 여러 표현을 여러 epoch을 돌면서 학습할 수 있게 됩니다. 표현이 더 다양해질 수 밖에 없는 이유인 것입니다. 

 

마지막은 Adaptive Channel Scaling입니다. 이는 학습 가능한 파라미터로, B*C*1*1 차원으로 구성되었습니다. 이는 FTP로부터 생성된 사전학습 모델로부터 얻어낸 특징을 담아낸 이미지에 원본 이미지와 유사한 색상을 입히기 위해 진행되는 과정입니다. 색상이 R, G, B로 구성되므로 여기서 C는 3으로 볼 수 있겠네요.

 

그래서 전반적인 모델의 과정은 아래 그림과 같습니다. 

 

(b)에서 loss가 backpropagation되는 부분을 담았습니다. 결과 이미지가 생성되면, 이 loss는 one-to-one generator, FTP, 그리고 Adaptive Channel Scaling parameter로 backpropagation시킵니다. 그리고 loss는 아래와 동일합니다.

 

 

여기서 BN regularization은 DeepInversion에서의 Batch Norm 규제와 동일하고, Prior 규제 역시 마찬가지입니다. 이렇게 사전학습된 이미지와, label 사이의 cross-entropy loss를 구하여 점차 사전 학습 데이터가 학습한 데이터를 생성할 수 있게 되는 것입니다.

 

학습은 아래와 같이 진행됩니다.

3번이 epoch 밖에 있어 one-to-one이 되는 것입니다

NaturalInversion에서는 재밌는 실험이 많이 진행된 것 같습니다. 우선 NaturalInversion이 원본 데이터셋의 특징을 잘 잡는지를 확인하기 위해 저자들은 CIFAR10 dataset에 대한 feature 분포, DeepInversion으로 확인한 CIFAR10에 대한 특징, 그리고 NaturalInversion으로 근사한 CIFAR10 dataset feature 분포입니다.

 

CIFAR10과 비슷한 분포를 보이는 것을 확인할 수 있었습니다.

 

그리고 다음 실험은 CIFAR100으로 사전학습한 모델을 inversion하여 얻은 dataset으로 다른 모델을 scratch training을 하였을 때 얻은 성능입니다.

이전 모델들보다 확연히 좋은 성능을 보이는 것을 확인할 수 있습니다. 

 

그리고 Ablation study를 통해, 각 요소들이 어떤 것을 나타내는지 확인해보도록 하겠습니다.

기존보다 O2O에서 엄청난 성능을 이끌어내는 것을 확인할 수 있었습니다. 또한, FTP를 추가하는 것은 FID를 증가시켜, fidelity를 증가시키는 것을 확인할 수 있고, ACS를 통해 Recall이 2배가까이 증가하는 것을 보아 diversity를 증대시키는 것을 확인할 수 있습니다. 그리고 3개 다 사용하였을 때 O2O + FTP보다 precision이 감소하는 것을 볼 수 있는데, 이를 통해 diversity와 fidelity 사이의 trade-off가 있음을 짐작할 수 있습니다.

그리고 다음 ablation study로 FTP에서 사용한 feature map의 개수를 조정하는 것에 따른 FID score를 비교하는 것입니다. feature map 사용 개수와, feature stage를 처음과 , 다 반영하였을 때 FID를 비교한 것입니다.

one-to-one이 시사하는 것이 많음을 알려주는 그림이라고 생각이 듭니다. 학습도 잘 수렴하는 것을 확인할 수 있고요.

 

이렇게 해서 NaturalInversion에 대한 리뷰를 마치도록 하겠습니다.

 

감사합니다.

반응형