ClassGAN: GAN의 학습 안정성 및 생성 이미지 다양성 증진을 위한 클래스 판별망 구조
Copyright ⓒ 2022 The Digital Contents Society
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-CommercialLicense(http://creativecommons.org/licenses/by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.
초록
최근 생성 모델은 이미지 스타일 변환(Image style transfer), 스타일 합성, 배경 복원(Inpainting) 등 다양한 분야에서 응용되고 있다. 그러나 대표적인 생성모델인 GAN은 mode collapsing 등의 문제로 학습이 원활하지 못한 문제가 있다. 또한 생성모델을 효과적으로 응용하기 위해서는 학습한 이미지의 다양한 특성을 추출하여 이미지를 생성하는 것이 중요한데 GAN은 이를 제어하는 것이 불가능하다. 이런 문제를 완화하기 위해 본 논문에서는 GAN의 판별망의 타겟을 기존 참, 거짓에서 원-핫 클래스로 변경하였다. 이렇게 변경을 하면 GAN의 생성망을 학습할 때 판별망의 타겟에 따라서 어떤 클래스의 특성을 생성망으로 보내줄지 결정할 수 있다. 이런 특성은 학습 안정성을 높여주며 생성망이 보다 더 다양한 이미지를 생성할 수 있도록 할 수 있다. 본 논문에서는 MNIST, CIFAR-10 등의 데이터셋을 이용하여 다양한 방법을 실험하였다. 성능지표인 density와 coverage로 비교한 결과 DCGAN에 비하여 방법 1은 각각 약 160%, 50%의 성능 향상을, 방법 2는 유사한 성능을 보였다. 본 논문에서는 판별망의 타겟을 class별로 구분하도록 하였으나 특징 등 다른 기준으로 구분하는 방법으로 확장할 수 있다.
Abstract
Recently, Generative models such as style transfer, style synthesis, background inpainting are applied to a diversity of areas. But GAN of typical generative model can’t be trained well with some problems like mode collapsing. Although it is important that GAN generates images extracting various features of datasets to make the best use of it, it is impossible to control. To relieve this problem, we changed discriminator’s targets from binary to multiple one-hot class on this paper. By changing them, we can decide which features of the classes we will send to generator depending on discriminator’s targets. So, we can generate more varied images stably. On this paper, we experiment many kinds of methods with MNIST, CIFAR-10 datasets. Compared to DCGAN, method 1 increases about 160% of density and 50% of coverage and method 2 shows similar performances. We divide discriminator’s targets depending on the classes on this paper, but we can divide it with other criterion like feature to expand it.
Keywords:
AI, Generative network, Mode collapsing, Manifold control, Diversity키워드:
인공지능, 생성망, 모드 붕괴, 매니폴드 제어, 다양성Ⅰ. 서 론
2014년에 발표된 GAN(Generative Adversarial Networks)[1]은 판별망과 생성망이 경쟁적으로 학습을 하여 새로운 이미지를 생성하는 생성모델로서 각광을 받았다. 그러나 초기에는 학습이 제대로 수행되지 않았으며 생성하는 이미지의 품질이 좋지 않았다. 이러한 문제를 상당 부분 해결한 방법이 DCGAN[2]으로 이후 관련 연구가 활성화되어 다양한 분야에 많은 응용연구가 수행되었다[3]-[5]. GAN의 대표적인 응용연구로는 특정 화가의 화풍으로 이미지를 변환하는 Style transfer[3], 실제 존재하는 사람의 얼굴로 착각할 정도의 고품질로 이미지를 만드는 StyleGAN[4] 등이 있다. 또한 자신의 얼굴을 디즈니 캐릭터로 변환시켜주는 등 실생활에 유용한 기능들을 구현해준다.
그러나 GAN은 이러한 많은 연구에도 불구하고 학습이 불안정하여 수렴하지 않는 경우가 많으며 학습이 되더라도 특정 클래스만 만들어내는 mode collapsing이 발생하곤 한다. 또한, 생성하는 이미지의 다양성이 부족한 문제가 있는데 이러한 문제점들은 GAN[1]의 활용을 어렵게 한다.
우리는 본 논문에서 이러한 기존의 문제를 완화하고자 GAN 판별망의 출력 타겟을 True/False에서 클래스별 원-핫 인코딩된 타겟으로 변경하였다. 이렇게 변경하면 단순 True/False로 출력 타겟을 주는 것에 비하여 클래스별로 다양한 방법으로 타겟을 설정하여 기존 문제점을 크게 완화할 수 있다. 클래스별로 타겟을 설정할 때 다양한 방법이 가능한데 본 논문에서는 그 중 의미가 큰 3가지 방법을 제시하고 실험하였다. 첫 번째 방법 1은 판별망의 출력 중에 가장 높은 것의 타겟만 1로 설정하여 생성망을 학습하는 방법이다. 이렇게 학습하면 해당 이미지를 가장 잘 학습한 출력에서 정보를 생성망으로 가져오기 때문에 기존 GAN에 비하여 안정적인 학습이 가능하다. 또한 클래스별로 다른 특성을 생성망으로 가져올 수 있어서 생성되는 이미지가 보다 더 명확히 학습데이터의 특성을 따라갈 수 있다. 두 번째 방법은 판별망의 모든 출력별로 하나씩 타겟으로 설정하여 생성망을 학습시키는 방법이다. 이렇게 하면 모든 판별망의 타겟으로부터 정보를 가져와서 생성망을 학습하기에 각 클래스별 특징을 모두 학습하게 된다. 결국 다양한 특징이 다양하게 조합되는 이미지를 생성할 수 있다. 세 번째 방법은 첫 번째 방법과 두 번째 방법의 사이에 있는 방법으로서 출력 중에 가장 높은 것의 타겟과 추가적으로 다른 하나의 타겟을 더 지정하여 학습을 하는 방법이다. 추가적으로 선택하는 타겟은 사용자의 의도에 따라서 선택할 수 있다. 위의 세 가지 방법 이외에 목적에 따라서 다른 방법을 개발하여 생성되는 매니폴드 공간을 다양하게 제어할 수 있다. 본 연구의 기본적인 아이디어는 학술대회 논문[9]에서 제시하였다. 본 논문에서는 다양한 실험 및 이를 통한 평가결과와 분석을 추가하였다.
본 논문에서 제안한 방법의 성능을 정량적으로 평가하기 위하여 생성한 이미지들의 품질과 다양성을 평가하는 성능 지표인 DC(Density&Coverage)[6]를 통해 측정하였다. DC는 최근에 발표된 성능지표로 기존에 사용하던 IS나 FID보다 우수하다고 알려져 있다. 다만 이 논문에서 제시하는 다양성인 Coverage(C)는 생성망이 생성하는 이미지가 많은 학습데이터를 포함한다는 의미로서 우리가 본 논문에서 이야기하는 생성 이미지의 다양성과는 약간 다른 의미이다. 본 논문에서 이야기하는 다양성은 생성된 이미지가 많은 학습데이터의 특징을 포함한다는 뜻이다. 그래서 본 논문에서는 다양성을 DC가 아닌 정성적 방법으로 실험결과를 보여준다.
제안한 방법의 성능은 DCGAN의 성능과 비교하였는데, DCGAN을 사용한 이유는 학습 안정성, mode-collapsing 발생, 그리고 다양한 이미지 생성 측면에서 그 이후에 개발된 특정 목적의 GAN보다 더 비교하기에 적합하기 때문이다. 실험결과 세 방법 모두 MNIST, Fashion-MNIST, CIFAR-10등의 데이터셋에서 DCGAN에 비해 높은 성능을 보여주었다.
우리가 제안한 방법은 학습데이터를 클래스로 구분하여 학습하는 방법으로 레이블이 있어야 한다. 하지만 이는 위에서 언급한 것처럼 mode-collapsing을 완화하고 다양한 이미지를 학습시키고자 하는 것으로 클래스가 명확한 의미를 갖지 않아도 된다. 이를 증명하기 위하여 MNIST 학습데이터의 클래스를 무작위로 할당하고 실험한 경우에도 학습이 잘 되며 더 다양한 이미지를 생성하는 것을 볼 수 있었다. 이는 특정 목적에 따라서 클래스를 배치해서 학습을 할 수 있다는 것으로 제안한 방법의 확장성을 보여준다. 결국 본 논문에서 제안한 방법은 DCGAN 이후에 개발된 특화된 GAN에 적용해서도 동일한 효과를 보일 것으로 예상된다.
본 논문의 구성은 다음과 같다. 2절에서는 관련 연구에 대하여 기술한다. 3절에서 제안한 ClassGAN에 대하여 설명하며 각종 실험 결과와 분석은 4절에 있다. 마지막으로 5절의 결론으로 끝을 맺는다.
Ⅱ. 관 련 연 구
2-1 생성모델
GAN[1]은 적대적 생성이라는 이름에서 알 수 있듯이 생성망(Generator)과 판별망(Disciminator)의 경쟁을 통해 학습한다. 실제 데이터의 분포를 학습하여 실제 이미지와 유사한 이미지를 생성하는 것이 목표이며 이 때 생성망은 판별망을 통해 전달 받는 정보를 기반으로 학습을 하게 된다. 또 다른 생성 모델인 VAE[7]에 비해 하이퍼 파라미터에 민감하지만 더욱 깔끔한 이미지를 생성한다는 장점이 있다.
DCGAN[2]은 기존 GAN의 MLP 구조를 Convolution layer로 바꾸었다. 그 결과, mode collapsing 현상이 완화되었으며 더욱 고해상도의 이미지를 생성하는 것이 가능해졌다.
2-2 평가지표
대표적인 생성모델의 평가지표로는 Inception Score(IS)와 Frechet Inception Distance(FID)가 있다. 하지만 두 가지 지표 모두 품질과 다양성에 대해 종합적으로 나타내기 때문에 이 둘을 독립적으로 확인하고 싶을 때는 적합하지 못하다는 단점이 있다.
이러한 단점을 보완하기 위한 지표로는 Precision & Recall[8]이 있다. Precision은 생성 이미지의 분포에 들어가는 실제 이미지의 비율로 얼마나 실제 같은 이미지를 생성하는지를 나타냄으로 품질을 나타낸다. Recall은 실제 이미지의 분포에 들어가는 생성 이미지의 비율로 다양성을 나타내 mode collapsing의 정도를 확인할 수 있다. 그러나 이 지표 또한 완전 동일한 분포임에도 불구하고 둘 다 1이 되지 않으며, 이상치에 취약하다는 문제점이 있어 이를 해결한 DC[6](Density와 Coverage)가 발표되었다. DC에서는 각각의 샘플 포인트가 아닌 샘플들의 분포를 이용하여 측정함으로써 문제를 해결하였다.
Density(D)는 품질을 나타내는 지표로 얼마나 실제 이미지와 유사한 이미지를 생성하는가를 나타내며, Coverage(C)는 다양성을 나타내는 지표로 얼마나 다양한 클래스의 이미지들을 생성하는가를 나타낸다.
Ⅲ. ClassGAN
3-1 ClassGAN
GAN의 목표는 생성망이 생성하는 데이터의 분포를 실제 데이터의 분포와 최대한 유사하게 만들어 실제 데이터와 구별하기 어려운 이미지를 생성하는 것이다. 이 때 생성망은 실제 이미지에 직접적으로 접근할 수 없기 때문에 판별망의 판단을 근거로 학습을 하게 된다. 기존 GAN의 판별망에서 사용하는 이진 분류의 경우 True/False 만으로 판별망이 학습한 학습 정보를 생성망으로 가져오기 때문에 학습이 잘 안 되고 mode-collapsing 문제가 발생하며 학습데이터의 특징을 많이 포함하는 다양한 이미지를 만드는데 어려움이 있다. 즉, 판별망의 True/False만으로 피드백을 받아 생성망의 가중치를 갱신하므로 초기에 확률값이 높았던 특정 이미지만을 지속적으로 생성할 확률이 높아진다.
위와 같은 문제를 해결하고자 우리는 판별망의 출력을 단순히 True/False만을 출력하는 것에서 나아가 학습 데이터의 클래스를 원-핫으로 출력하는 ClassGAN을 제안한다. 그림 1은 기존 GAN과 ClassGAN의 차이를 보여준다. 기존 GAN에서는 그림 1(a)처럼 판별망을 학습할 때 실제 데이터는 1로, 생성망이 만들어낸 가짜 데이터는 0으로 타겟을 설정하여 학습한다. 그리고 생성망을 학습할 때는 생성망이 만든 가짜 이미지에 대하여 판별망의 타겟을 1로 두고 학습한다.
이에 비하여 본 논문에서 제안한 ClassGAN에서는 다음과 같이 학습한다. 판별망은 클래스의 종류에 Fake 라벨을 더해 총 N + 1개로 분류를 한다. 손실함수로 Cross Entropy Loss를 사용하며 실제 이미지는 각자 해당하는 클래스의 라벨을, 가짜 이미지는 Fake Label(N + 1)을 타겟으로 두고 학습한다.
(1) |
기존의 GAN과 달리 손실함수로 Cross Entropy Loss를 사용하기 때문에 생성망으로 보내는 정보를 제어할 수 있다. Cross Entropy Loss는 수식(1)에서 q가 p의 분포를 따라가도록 학습하므로 p의 설정을 통해 의도성을 부여할 수 있다. 방법 1에서는 판별망의 출력 중 가장 큰 것의 타겟만 1로 설정하여 생성망을 학습한다. 따라서, 실제 이미지 중 가장 유사한 클래스의 이미지의 분포를 따라가도록 학습한다. 그 결과 실제 이미지 못지않게 선명한 이미지들을 생성해낸다.
방법 2에서는 판별망의 모든 출력별로 하나씩 타겟으로 설정하여 생성망을 학습한다. 따라서 생성망은 혼란스러운 학습을 하게 되며 그 결과 특정 클래스와 유사한 이미지보다는 여러 클래스들의 특징들이 섞인 이미지들을 많이 생성한다. 이러한 특징은 GAN을 이용한 디자인과 같은 응용에서 좀 더 다양한 디자인을 생성할 수 있는 장점을 부여한다.
3-2 Manifold control
동일한 데이터셋에 대하여 우리는 방법 1과 2를 통해 2가지의 매니폴드를 형성할 수 있다. 방법 1의 매니폴드에는 각 클래스가 강조되어 학습되며 방법 2의 매니폴드에는 여러 클래스가 강조되어 학습된다.
ClassGAN은 두 가지 방식에 이외에도 무수한 조합이 가능하다. 최대 출력의 타겟을 1로 두는 방법 1과 모든 타겟을 각각 1로 두는 방법 2 사이에는 최대 출력값의 타겟을 기점으로 다른 타겟들을 섞어주는 방식들을 고려할 수 있다. 1개부터 N - 1개까지 섞어줄 수 있으며 N - 1개를 섞어주는 경우 방법 2와 동일하다. 그 결과 타겟 설정 방식을 달리함으로써 매니폴드를 제어할 수 있으며 이는 의도에 따른 다양한 이미지를 생성할 수 있다는 점에서 활용성이 크다.
Ⅳ. 실 험
우리는 MNIST, Fashion MNIST 그리고 CIFAR-10을 이용하여 실험을 하였다. DC[6] 성능지표를 통해 ClassGAN이 DCGAN[2]에 비해 품질과 다양성 측면에서 월등함을 보였으며, Interpolation 이미지를 통해 타겟 설정 방식에 따라 다른 매니폴드가 형성됨을 보인다. 우리가 DCGAN을 비교 대상으로 선정하여 실험한 이유는 더 최근에 개발된 GAN들의 경우 각 방법별로 새로운 특징을 갖고 있어서 우리가 제안한 측면에서의 비교가 더 어려워지는 문제점이 있기 때문이다.
본 논문에서는 클래스별로 구분하여 학습하는 것으로 실험하였으나 이미지의 특징과 같은 다른 기준으로 구분하여 학습하면 그 기준에 따라 제어할 수 있다는 장점이 있다. 또한, ClassGAN은 기본적으로 라벨이 필요한 지도학습이지만 MNIST 실험에서 실제 숫자 레이블과 무관하게 무작위로 클래스를 구분하여 학습한 경우에도 생성망이 숫자를 잘 생성하는 것을 보여 비지도학습의 가능성도 나타낸다.
4-1 MNIST & CIFAR10
그림 2는 MNIST를 활용하여 학습한 후 생성된 이미지들을 interpolation을 통해 비교한 결과이다. 그림 2(a) DCGAN의 경우 대부분의 이미지들이 식별 가능 하지만 구불거리고 뚜렷하지 못하다.
그림 2(b) 방법 1은 DCGAN에 비해 뚜렷한 숫자 모양을 보이며 식별이 어려운 이미지들이 거의 없다. 즉, 매니폴드 상에서 대부분의 데이터가 클래스 공간에 존재한다. 그림 2(c) 방법 2는 클래스를 특정하기 어려운 이미지들이 많이 보인다. 즉, 매니폴드 상에서 대부분의 데이터가 클래스 사이 공간에 존재한다. 그림 2(d) Target mix는 숫자들이 잘 섞이는 것을 보이기 위해 4, 5, 7(0, 1, 2로 라벨링)의 세 가지 클래스만 사용하였다. 타겟의 구성은 출력의 최대값 인덱스와 추가적인 하나의 클래스를 더해주어 학습한다.
예를 들어 0이 최대값 인덱스인 경우 0과 1을 타겟으로 두고 학습하였다. 그 결과 해당 클래스들이 섞인 새로운 매니폴드가 형성됨을 볼 수 있다.
그림 3은 이미지에 라벨을 무작위로 부여하여 학습한 결과이다.
무작위 라벨임에도 불구하고 숫자 형태의 이미지를 만들어내 ClassGAN이 제한적으로 지도학습으로만 활용되는 것이 아니라 비지도학습 형태로도 쓰일 수 있음을 보인다. 이는 특정 목적에 따라서 클래스를 배치해서 학습을 할 수 있다는 것으로 제안한 방법의 확장성을 보여준다.
그림4는 CIFAR-10을 활용하여 학습한 후 DCGAN과 방법 1에서 유사한 이미지를 생성했을 때의 모습을 비교한 결과이다. 방법 1의 이미지에서 배의 그림자, 말의 갈기, 자동차 바퀴의 휠과 같은 세부 특성들을 더욱 세밀하고 다양하게 표현하고 있음을 볼 수 있다. 기존 GAN은 여러 클래스를 함께 학습하여 특성들이 혼합되는 반면 방법 1에서는 클래스별로 특성을 생성망에 넘겨주기 때문에 이와 같은 장점을 가진다.
4-2 DC 실험결과
그림 5(a)는 MNIST를 DCGAN과 ClassGAN으로 학습시켜 얻은 생성 이미지를 DC[6]로 평가한 결과이다. Density(D)와 Coverage(C)는 각각 품질과 다양성을 평가하는 요소로 방법 1이 DCGAN에 비해 각각 약 160%, 50% 의 성능향상을 보여준다. 그림 5(b)는 MNIST, Fashion MNIST, CIFAR-10에서 각 방법별로 Density와 Coverage를 보여준다. 이 실험에서도 방법 1이 Density와 Coverage 모두에서 가장 좋은 결과를 보였으며 방법 2의 경우에는 DCGAN과 유사한 결과를 보여주었다. 이를 통해 우리의 방법이 mode collapsing 현상을 완화하고 더 좋은 품질의 이미지를 생성하는데 효과적임을 알 수 있다. 뿐만 아니라, 의도적으로 학습에 혼동을 준 방법 2도 DCGAN과 유사한 성능을 보였는데 이는 방법 2가 클래스 사이 공간의 이미지들을 많이 생성할지라도 클래스 공간에서의 이미지들은 충분히 다양하고 좋은 품질의 이미지들을 생성함을 나타낸다.
Ⅴ. 결 론
본 논문에서는 클래스별 원-핫 인코딩을 활용하여 타겟의 구성을 다양하게 둘 수 있는 ClassGAN을 제안하였다. MNIST, Fashion MNIST 그리고 CIFAR-10을 통해 실험한 결과 True/False의 이진 분류를 사용하는 DCGAN에 비해 mode collapsing 문제가 완화되며 생성 이미지의 품질이 향상되는 것을 보였다. 방법 1은 density와 coverage를 측정한 결과 약 160%, 50%의 성능 향상을 보였으며 방법 2는 의도적으로 클래스의 특징들을 섞어주었음에도 불구하고 유사한 성능을 보였다. 또한, 하나의 타겟을 이용하는 방법 1과 N개의 타겟을 이용하는 방법 2 사이에서 타겟을 섞어주는 방식을 통해 수많은 매니폴드를 형성할 수 있음을 보였다. 이는 원하는 매니폴드 공간을 만들어 더욱 다양한 형태의 이미지들을 형성해낼 수 있음을 시사한다. 따라서, ClassGAN은 1) 더 좋은 품질과 다양성을 가진 이미지들을 생성하며, 2) 다양한 매니폴드 공간을 의도에 따라 형성할 수 있다는 점에서 의의가 있다.
Acknowledgments
본 연구는 한성대학교 교내학술연구비 지원과제입니다.
References
- Ian J Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, and Yoshua Bengio, “Generative adversarial networks”, Neural Information Processing Systems(NIPS), Motreal, Dec 2014.
- A. Radford, L. Metz, and S. Chintala, “Unsupervised representation learning with deep convolutional generative adversarial networks”, International Conference on Learning Representations (ICLR), San Juan, Puerto Rico, May 2016.
- Jun-Yan Zhu, Taesung Park, Phillip Isola, and Alexei A. Efros, “Unpaired Image-To-Image Translation Using Cycle-Consistent Adversarial Networks”, IEEE International Conference on Computer Vision (ICCV), Venice, Italy, pp. 2223-2232, October 2017.
- Tero Karras, Samuli Laine, and Timo Aila, “A Style-Based Generator Architecture for Generative Adversarial Networks”, IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), CA, USA, pp. 4401-4410 June 2019. [https://doi.org/10.1109/CVPR.2019.00453]
- Dmitry Ulyanov, Andrea Vedaldi, and Victor Lempitsky, “Deep Image Prior”, IEEE Conference on Computer Vision and Pattern Recognition (CVPR), UT, USA, pp. 9446-9454, June 2018.
- Muhammad Ferjad Naeem, Seong Joon Oh, Youngjung Uh, Yunjey Choi, and Jaejun Yoo, “Reliable Fidelity and Diversity Metrics for Generative Models“, 37th International Conference on Machine Learning, PMLR, 119:7176-7185, April 2020.
- Kingma, Diederik P, and Welling, Max, “Auto-Encoding Variational Bayes”, 2nd International Conference on Learning Representations (ICLR), Banff, AB, Canada, April 2014.
- Mehdi S. M. Sajjadi, Olivier Bachem, Mario Lucic, Olivier Bousquet, and Sylvain Gelly, “Assessing generative models via precision and recall”, Neural Information Processing Systems(NIPS), Montreal, Canada, Dec 2018.
- Kyongjun Kim, Sung Hoon Jung, “ClassGAN: Class Discriminant Networks for Enhancing Training Stability and Generated Image Diversity of GAN”, In Proceedings of the IEIE Fall Conference, Inchon, pp. 723-724, Nov 2021.
저자소개
2015년~현 재 : 한성대학교 (경제학과 학사)
※관심분야 : 3D vision, Tracking, Generative network 등
1988년 : 한양대학교 전자공학과 (공학사)
1991년 : KAIST 전기및전자공학과 (공학석사)
1995년 : KAIST 전기및전자공학과 (공학박사)
1996년~현 재 : 한성대학교 AI응용학과 교수
※관심분야 : 인공지능, 지능시스템, 문화기술