[ML][GAN][paper] CGAN
Goal : CGAN 이해하기
Abstract
CNN은 이미 많은 분야에서 공통적으로 사용되는 net가 되었습니다. CNN은 loss function을 최소화하는 방법을 배웁니다. 하지만 학습 과정이 매우 자동적으로 진행될 수 있음에도 사람의 수동적인 노력이 많이 수반되어야 합니다.
만약 우리가 CNN에게 유클리디안 거리를 최소화하라고 알려준다면 굉장히 blur한 이미지를 얻게 됩니다. 왜냐하면 유클리디안 거리는 가능한 모든 output을 평균내기 때문에 blurring을 야기합니다.
CGAN은 입력 이미지에서 출력 이미지로의 mapping을 배우는 것뿐만 아니라, 이 mapping의 loss function을 배웁니다. 이 말은 단순히 training data로부터 mappipng을 배우고 암기하는 것이 아니라, loss function을 학습함으로서 새로운 데이터에 적용할 수 있음을 의미합니다.
만약 사실과 구별되지 않도록 만드는 것만이 유일한 목표라면, 이 목표를 이루기 위한 loss function을 학습할 것입니다. 이 과정은 GAN에 의해서 진행되었고, 더이상 blur한 이미지가 도출될 가능성은 작아집니다.
GAN은 데이터에 따라서 적응할 loss를 학습하기 때문에 전통적인 다양한 문제에 적용될 수 있습니다.
image2image 변환 문는 주로 per-pixel classification/regression 문제로 공식화 됩니다. 이 공식들은 output space를 unstructured로 간주하는데, 이는 각각의 output pixel들이 conditionally 모든 input image들과 독립적이라는 의미입니다(인접한 픽셀간에는 서로 영향을 미치지 않는 독립적인 관계). CGAN은 이와 다르게 structued loss를 학습합니다. structured loss는 output의 ‘joint configuration(연관 관계)’ penalize합니다. 연관 관계에 있는 pixel들에 대해서 패널티를 부과하는 것은 그들의 관계를 인정하고 이에 대한 대응을 취하는 것으로 생각할 수 있습니다.(여기서 패널티는 output과 taret의 차이를 줄이기 위한 수단을 의미합니다) 정리하자면 픽셀들 사이의 연관관계를 고려하기 때문에 유클리디안 거리를 최소화하는 CNN보다 더 좋은 결과를 얻을 수 있게 됩니다.
패널티를 부과하는 방법은 논문에 따라서
- conditional random fields
- the SSIM metric
- feature matching
- nonparametric losses
- convolutional pseudo-prior
- losses based on matching covariance statistics
의 방법을 사용합니다.