이번에는 생성모델의 시초라고도 볼 수 있는 GAN을 리뷰해 보겠다. 대게 이런 특정 task의 시초가 되는 논문은 장황한 수식과 설명이 함께 있는 경우가 많은데 이 논문은 상대적으로 길이는 짧은 편인 것 같다.
모델 아키텍쳐에 관한 설명이 간단하여 이에 대해 골머리를 썩일 필요도 없는데 이 논문의 가장 중요한 파트인 Loss function의 증명 부분이 유난히 이해하기 어려웠다. 물론 워낙 유명해서 관련 자료가 많아 이해정도는 쉽게 가능하다.
Abstract & Introduction
이 당시만해도 딥러닝에 추가적인 기법을 이용해 생성을 시도하는 논문이 있었으며 저자는 이 방법이 생성에 그다지 유리하지 않다고 생각해 추가적인 생성 모델을 제작했다고 한다.
데이터의 분포를 찾는 Generator model(G)과 데이터가 데이터셋에서 온 것인지 생성된 것인지 판별하는 Discriminative model(D)을 사용해 generative model을 학습시키는 법을 제안한다.
저자는 G를 판별기가 없는 지폐위조범에 D를 경찰에 비유하며 두 모델의 경쟁을 통해 최종적으로는 G의 생성물을 D가 구별할 수 없게 된다고 한다. 이 방법이 그 유명한 minimax game이다.
Adversarial nets
전체 아키텍처를 G가 D에 적대하여 생성한다는 의미로 Adversarial networks라 칭한다.
noise vector space $z$에서 데이터를 생성하는 $G(z)$와 $x$가 데이터셋에서 왔을 확률을 예측하는 $D(x)$가 메인이 되는 구조이며 D의 예측률을 올리는 동시에 G가 D의 예측률을 떨어트리도록 동시에 학습하는게 이 아키텍처의 주요 파트이다.
여기서 동시에 학습한다는 의미는 사전훈련된 D를 사용하는게 아닌 G와 D 모두 초기화된 상태에서 동시에 번갈아서 학습을 진행한다는 뜻이다. 왜냐하면 초기 D의 성능이 너무 좋을시 loss function의 우항인 $log(1-D(G(z)))$에서 D가 1에 가까운 값을 반환하므로 값이 너무 작아져 학습이 어려울 수 있기 때문이다.
G와 D가 번갈아 학습하는 과정을 그림으로 간략히 보여주면 위와 같다.
G: 초록색
D: 파란색
Data distribution: 검은색 점
z->x: z에서 균등하게 샘플을 뽑아 x로 생성
Theoretical Results
이 파트에선 먼저 훈련과정을 더 자세히 알려주는데 Generator의 loss function에는 좌항이 없다는 점을 제외하면 위의 loss function과 특별히 다른 점은 없다.
이 논문에서는 모델의 디테일보다는 제안한 loss function의 전역최소점이 존재하는지를 수식적으로 증명한다.
1. Global Optimality of $p_g = p_data$
2. Convergence of $Algorithm 1$
Global Optimality of $p_g = p_data$
연산과정이 꽤 복잡한데 수식유도보다는 어떤 의미를 가지는지 알아보겠다.
먼저 G가 고정되어 있을때 최적의 D에 대한 식을 위와 같이 가정한다.
loss function을 적분하면 위와 같이 연산된다. $alog_(y) + blog_(1-y)$의 최댓값은 $\frac{a}{a+b}$이므로 위의 loss function을 아래와 같이 변형시킬 수 있다.
$p_g = p_{data}$일때 최솟값에 도달하므로 eq(1)의 $D_g(x)$가 $\frac{1}{2}$이며 아래와 같이 식을 전개할 수 있다.
결과적으로는 $p_g$와 $p_{data}$가 JSD식에 들어가는데 JSD는 거리함수이므로 두 확률분포가 같을 때가 전역최소점임을 알 수 있다.
Convergence of $Algorithm 1$
V(G,D)에서 최적의 D를 가정하고 G에 대한 수식인 U($p_g$,D)로 나타낼 수 있다. 이때 최적의 D에서 전역최적점을 가지는 것을 위에서 증명했으므로 $p_{g}$가 $p_{x}$로 수렴됨을 알 수 있다.
Experiments
실험은 3개의 데이터셋을 통해 진행되었다.
- MNIST
- Toronto Face Database(TFD)
- CIFAR-10
G는 Relu와 sigmoid를 혼합하여 학습시켰고 D는 추가로 maxout activation과 Dropout을 사용하였다. maxout은 꽤 생소한 activation인데 Ian goodfellow가 고안한 activation function으로 Dropout과 함께 사용하면 효과가 좋다고 한다. 자세히 알고 싶다면 이 블로그의 글에서 잘 설명해 놓은 듯하다.
이미지 생성모델의 성능을 비교한 절대적 지표는 없기에 확실히 다른 모델보다 좋다고 판단할 수는 없지만 GAN을 통해 생성한 이미지가 이 정도의 퀄리티라면 충분히 경쟁가능하다고 주장했다.
Conclusions and future work
1. 노이즈 벡터가 아닌 conditional vector c를 G와 D에 추가하면 $p(x | c)$역시 생성가능하다
2. Learned approximate inference can be performed by training an auxiliary network to predict zgiven x. This is similar to the inference net trained by the wake-sleep algorithm [15] but with the advantage that the inference net may be trained for a fixed generator net after the generator net has finished training.
3. One can approximately model all conditionals p(x S | x 6 S ) where S is a subset of the indicesof x by training a family of conditional models that share parameters. Essentially, one can use adversarial nets to implement a stochastic extension of the deterministic MP-DBM
4. 준지도 학습: 라벨값을 제한하여 분류기의 성능을 증가시킬 수 있다.
5. 효율성 향상: 추후에 G와 D를 학습하는 방식이나 학습을 위해 z를 샘플링하는 분포까지 고려할 수 있게 되면 학습이 더 쉬워질 수 있다.
(2와 3은 무슨 뜻인지 정확히 몰라 원문을 그대로 적었습니다)
여태껏 봐왔던 논문들은 아키텍처적으로 차이점을 둔 논문들이 많았는데 GAN은 기존과는 확연히 다른 학습방법과 이에 대한 증명까지 완료한것에서 수학적인 detail에 감탄했다. 최근 딥러닝 논문들은 성능은 대다수 empirical한 방법으로 증명하는데 생서모델의 특징인지 저자의 수학적 base 때문인지는 몰라도 생성모델의 시초가 되기에 충분한 위상을 가진 탄탄한 논문인 것 같다.
'Paper review' 카테고리의 다른 글
Learning to Compare Relation Network for Few-Shot Learning(RelationNet, 2018) 리뷰 (1) | 2024.01.06 |
---|---|
GAN구현(Pytorch) (1) | 2023.12.22 |
A Closer Look at Few-shot Classification(2019) 리뷰 (0) | 2023.12.15 |
An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale(ViT, 2020) 리뷰 (1) | 2023.11.29 |
[Paper review] Convolutional Networks for BiomedicalImage Segmentation(U-Net, 2015) (0) | 2023.06.19 |