Self-Attention Generative Adversarial Networks - 설명

2020. 2. 16. 22:43관심있는 주제/GAN

728x90

Abstract

기존의 convolutional GAN은 저해상도 피쳐 맵에서 공간적으로만 로컬 포인트의 함수로 고해상도 디테일을 생성함.
SAGAN에서는 모든 특징의 위치로부터 힌트를 사용하여 데이터를 생성함.
게다가 discriminator는 이미지의 먼 부분에서 매우 상세한 형상이 서로 일치하는지 확인할 수 있다.
최근 연구에서 GAN의 성능은  Generator의 조절에 영향을 미침.
이러한 통찰력에서 저자는 SN을 GAN generator에 적용함. 이것이 훈련 역학을 개선한다는 것을 발견했다고 함.

SAGAN은 기존 것보다 36.8 -> 52.52(Inception score) 27.62-> 18.65(Frechet Inception distance(FID))


Introduction

이미지 생성은 컴퓨터 비전에서 중요한 문제이다.
그러나 일반적인 Convolutional GAN들은 다중 범주 데이터셋을 훈련할 때 모델링이 더 어려움.
convolution operator는 local receptive field를 가지기 때문에, long range 의존성은 몇몇의 convolutional alyer을 통과한 후에 처리된다. 
이것은 다양한 이유로 장기 의존성에 대한 학습을 방해할 수 있다.
즉, 작은 모델은 이러한 의존성을 나타내지 못할 수 있고, 최적화 알고리즘은 이러한 의존성을 포착하기 위해 여러 계층을 세심하게 조정하는 매개변수 값을 발견하는 데 어려움을 겪을 수 있으며, 이전에 볼 수 없었던 입력에 적용되었을 때 이러한 매개변수화는 통계적으로 취약하고 실패하기 쉽다.
Convolutional kernel의 크기를 크게하는 것은 network의 표현하는 capacity를 증가시킨다. 그러나 이렇게 하면 지역적인 Convolutional structure를 사용할 때 얻는 계산과 통계인 효율을 잃게 된다.
반면에 Self Attention은 long-range dependency 계산과 통계적인 면에서 균형감을 얻을 수 있다.
Self attention 모듈은 모든 포지션에서 피처들의 가중화된 합으로써 포지션에서 계산한다.

본 논문은 그래서 Self-Attention GAN을 제안함. 
self-attention은 convolution을 보완하고 그리고 먼 거리에 있는 모델링에 도움을 주며, 이미지 영역 사이에서 다중 레벨 의존성에도 도움을 줄 수 있다. 
self-attention을 사용함으로써, generator는 모든 위치에서 세심하게 생성할 수 있고 discriminator는 전체적인 이미지에서 복잡한 기하학적인 제약을 가할 수 있다.


3. Self-Attention Generative Adversarial Network

B_ji 는 j 번째 영역을 합성할 때 i 번째 위치를 참여하는 범위를 나타낸다.
여기서 C는 channel의 수 N은 이전 hidden layer로부터 피처들의 피처 위치들의 수.
attention layer의 output은 o이다. 
실험에서는 k=8 사용했다고 함. 

attention output에다가 scale parameter를 곱하고 input feature map을 더했다.
r는 초기에는 0으로 했다가 r이 네트워크가 먼저 지역 이웃의 단서에 의존할 수 있게 한다.
점차적으로 비지역적 증거에 더 많은 비중을 두는 법을 배우게 된다.

왜 이것을 하는지에 대한 직관은 간단하다:
우리는 쉬운 일을 먼저 배운 다음 점차적으로 일의 복잡성을 증가시키고자 한다.
SAGAN에서는 제안된 attention module은 generator와 discriminator에 적용된다.

hinge loss


4. Techniques to Stabilize the Training of GANs

1. Spectral Normalization 사용

2.  TTUR(two timescale update rule)이 효과적이라는 것을 확인함.


4.1. Spectral normalization for both generator and discriminator

generator에서 spectral normalization은 비정상적인 gradient를 막아주고 parameter의 크기의 확대를 막아준다.
경험적으로 sn 을 generator와 discriminator를 사용하는 것이 generator update 당 discriminator update를 더 적게 한다는 것을 확인함. 계산량도 줄어듬. 그래서 안정적임.

4.2. Imbalanced learning rate for generator and discriminator updates

discriminator의 정규화는 종종 학습 과정을 느리게 함.
실제로 정규화된 discriminator을 사용한 방법들은 보통 generator 한번 업데이트 시 5번의 업데이트를 한다든지와 같은 방법을 주로 사용함. Huseel 등(Heusel et al., 2017)은 별도의 학습 속도 사용을 주장해 왔다.(generator와 discriminator) 
TTUR?...

 


> 최근 기존에 자주 사용하던 구조에 대해서 아쉬움이 있어서 Attention에 대해서 보고 있다.
Fully connected는 파라미터가 너무 많아서 먼가 아쉽고, CNN는 Local receptive field나 보다 전반적인 것을 학습하지 못하는 것 같아서 아쉽다고 생각한다.
그러다가 갓 Attention에 대해서 알게되었지만, 이 놈을 정형 데이터에 적용하는 것을 어떻게 해야 할지가 참 어려운 것 같다. ㅠㅠ 적용하는 것이 맞는 방식인지도 의문이 들기도 한다.

728x90