출처 링크: https://arxiv.org/abs/1609.04802
주의: 제가 읽고 이해한대로 작성한 논문 리뷰입니다. 오역이나 학문적으로 틀린 내용이 있을 수 있습니다

SRGAN

서론

  • super resolution 문제는 유일한 하나의 정답이 없는 불량조건문제(ill-posed problem)이다.
  • 기존에는 SR을 위해 pixel-wise MSE를 줄이고 PSNR을 최대화 하는 방식으로 진행됐다.
  • 그러나 이것들은 경계선을 과하게 부드럽게 만들고 평가 계수가 개선되더라도 실질적으로는 성능이 나아지지 않았다.
  • 따라서 본 논문에서는 기존 방식과는 다른 loss function을 제시하고, GAN을 사용한 SR을 제안한다.

본론

GAN 구조

  • SRGAN은 generator와 discriminator로 구성된다.
  • generator는 잔차연결과 PReLU를 사용한 residual block 5개, pixel suffler을 사용한 block 두개로 이루어져 있다.
  • discriminator는 conv layer와 batch normalization, Leaky ReLU를 조합한 블럭 7개로 이루어져 있다.

perceptual loss function

  • perceptual loss function은 content loss와 adversarial loss를 결합한 loss function이다.
  • content loss는 VGG loss를 사용한다. VGG loss는 VGG network에서 추출된 특성맵의 유클리드 거리를 구하는 방식이다.
  • adversarial loss는 generator가 생성한 super resolution 이미지를 discriminator가 진짜 이미지로 분류할 확률에 log를 취하여 합한 것이다. 즉 discriminator가 분류를 잘 못할 수록 adversarial loss가 줄어든다.

SRGAN 설계

  • VGG 특성맵은 MSE와 비슷한 스케일이 되도록 1/12.75로 스케일링 되었다.

  • optimization 방법으로 adam이 선택되었고 베타값은 0.9이다. 학습률은 0.00001로 설정했다. 또한 100000번의 학습 iteration을 거쳤다.

  • test 과정에서는 batch normalization 블록을 사용하지 않았다.

결론

  • MSE를 loss로 사용하면 PSNR은 최대화할 수 있지만 adversarial loss와 결합되더라도 VGG loss를 사용하는 것에 비해 인지적인 최적화 수준은 낮다.
  • VGG54를 사용한 SRGAN이 기존 SRResNet에 비해 통계적으로 유의미하게 더 성능이 좋았다.
  • 더 깊은 layer의 VGG를 사용한 VGG loss를 사용할 경우 질감의 디테일이 더 좋아지는 경향을 확인할 수 있었다.
  • SRGAN이 다른 모든 super resolution 네트워크의 성능을 큰 격차로 이겼다.

Discussion

  • 본 논문의 SRGAN은 시간적으로 최적화된 모델이 아니므로 실시간 동영상의 SR에는 적합하지 않다. 그러나 연구에 따르면 더 얕은 layer를 사용하면 성능은 비슷한 반면에 훨씬 더 높은 시간효율성을 보여준다.
  • ResNet 디자인이 더 깊은 network에 큰 효과를 가져왔다고 추정한다.
  • SRGAN의 layer가 깊을수록 매우 훈련하기 어려워진다는 사실도 알아냈다.
  • VGG54을 사용한 VGG loss가 좀 더 사실적인 super resolution 이미지를 만들 수 있다는 사실을 알았다.

+ Recent posts