ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [논문 리뷰] Conditional Generative Adversarial Nets
    Paper Review/Generative Model 2022. 1. 20. 13:15

    Abstract 

    Generative Adversarial Nets의 조건을 추가한 conditional 버전을 소개한다. 기존 GAN은 데이터 분포를 학습하기 때문에 원하는 조건의 데이터를 생성할 수 없다. 이 논문에서는 기존 GAN에 라벨링(추가 정보)를 함께 넣어 우리가 원하는대로 제어할 수 있는 모델을 설명한다. Generator와 Discriminator에 조건을 추가하여 이 모델이 클래스 레이블에 조건을 부여한 MNIST 숫자를 생성해내는 것을 보여준다. 또한 이 모델을 이용하여 multi-modal model을 학습하는 방법을 설명한다. 또한, 이를 통한 descriptive tags를 생성하는 방법을 보여주는 이미지 태깅에 대한 예시를 보여준다. 

    1. Introduction

    간단히 GAN의 장점을 살펴보면 다음과 같다. 마르코프 연쇄의 불필요성, 역전파를 통한 그래디언트 확보, 다양한 factor와 model의 간단한 결합이 있다. 또한 log-likelihood estimate과 realistic sample을 생성할 수 있다. 

     

    Unconditioned generative model에서는 생성되는 데이터에 대한 제어가 없다. 하지만 conditioning을 통해 추가 정보에 따라 데이터 생성 과정을 조절할 수 있다. 여기서, 일부 데이터나 다른 modality를 가지는 데이터를 conditioning으로 사용할 수 있다. 이러한 conditional GAN을 구성하는 방법을 설명하고 클래스 레이블에 따라 조절된 MNIST dataset과 multi-modal learning을 위한 두 가지 실험을 진행했다. 

    2. Related Work

    2.1 Multi-modal learning for image labeling 

    최근 성공적인 supervised neural network들이 많지만, 여기에는 크게 두 가지의 문제가 존재한다. 

     

    1. 많은 수의 예측된 출력 범주를 수용할 수 있는 모델로 확장하는 것 
    2. 일대일 매칭이 아닌 image labeling같은 일대다 매칭

    문제 1을 해결하기 위한 방법은 다른 modality에서 추가 정보를 활용하는 것이다. 

    문제 2를 해결하기 위한 방법은 Conditional probabilistic generative model을 사용하는 것이다. 여기서 입력은 conditinal 변수로 간주되고 일대다 매핑은 조건부 분포를 예측하는 것으로 이루어진다. 

    3. Conditinoal Adversarial Nets

    3.1 Generative Adversarial Nets 

    GAN은 데이터 생성 모델을 훈련시키는 방법이며 실제 데이터 분포를 포착하는 Generative model G와 샘플이 G가 아닌 실제 훈련 데이터에서 나올 확률을 추정하는 Discriminative model D로 구성된다. 

     

    • 데이터 x에 대한 Generator 분포인 p_g를 학습하기 위해 generator는 prior noise distribution p_z(z)에서 데이터 공간으로의 매핑 함수인 G(z;θg)로 구축한다.
    • Discriminator D는 샘플이 p_g가 아닌 실제 학습 데이터에서 나올 확률을 0~1 사이의 단일 스칼라 값을 출력한다. 

     하지만 이 GAN은 생성되는 데이터를 조절할 수 없다는 단점이 존재한다. 

     

    # GAN 참고 

     

    [논문 리뷰] Generative Adversarial Nets

    Abstract adversarial process를 통해 두 가지 모델을 동시에 학습하는 generative model을 추정하는 프레임워크 제안 generator G : 입력 정보를 바탕으로 가상의 결과물을 만들어내는 모델 discriminator D : G..

    hhhhhsk.tistory.com

     

    3.2 Conditional Adversarial Nets 

    Conditional GAN은 기존 GAN에 y라는 추가정보를 함께 넣어 조건부 모델로 확장시켜준다. y는 class label이나 다른 modality의 데이터가 될 수 있다. 이 추가정보 y는 Generator와 Discriminator에 각각 입력으로 넣어준다. 

     

    • Generator에서 입력 노이즈인 p_z(z)와 y는 joint hidden representation으로 결합되며, D와의 적대적 훈련 프레임워크는 이러한 숨겨진 representation을 구성하는 방법에 상당한 유연성을 제공한다. 
    • Discriminator에서는 x와 y는 입력과 discriminative function으로 표시된다. 

    4. Experimental Results

    4.1 Unimodal

    one-hot 인코딩된 class label을 조건으로 하는 MNIST 이미지에 대해 CGAN을 훈련시켰다. 

     

    Generator에서 변수 z와 y를 각각 hidden layer에 매핑된다. hidden ReLU layer를 통해 합쳐지고 784(28x28)차원의 MNIST 샘플을 생성하기 위해 sigmoid layer를 거친다.

     

    Discriminaotr에서는 x와 y를 각각 다른 hidden layer에 전달하고 maxout layer에 매핑한다. 이후, sigmoid layer를 통해 최종 출력값을 출력한다. 

    Table 1은 MNIST 데이터 셋의 Parzen window-based log-likelihood estimate을 보여준다. 각 10개 클래스에서 1000개의 샘플이 추출되었고, Parzen window가 샘플들에 적용되었다. 이후, Parzen window 기반으로 density function을 추정하여 테스트 세트의 log-likelihood를 추정한다. 

     

    다른 네트워크들과는 유사한 결과를 보여주지만, 성능이 우수하다고 볼 수는 없다. 이러한 결과는 효과의 입증보다는 개념의 증명을 위해 사용한다. 하이퍼파라미터의 최적화와 아키텍처 구조에 대한 추가 연구를 통해 성능을 더 향상시킬 수 있다. 

     

    각 행은 하나의 레이블에 conditioned 되었으며 각 열은 서로 다른 표본으로 생성된다. 

    4.2 Multimodal

    노이즈 변수에 이미지의 feature들을 추가 정보로써 입력하여 tag-vector를 생성하는 실험을 수행한다. 

    입력 정보는 image 도메인이지만, 출력은 word token이라는 점에서 multimodal learning으로 볼 수 있다. 

     

    이 실험에서는 MIR FLickr 25000 데이터 세트를 활용했으며 이 데이터에는 tag가 달린 이미지와 UGM(user-generated metadata)를 포함한다. UGM은 사람이 이미지에 객체를 자연어로 설명하는 방법에 가깝고 각 사용자마다 표현하는 어휘가 다르기 때문에 이 실험에서 유용하게 사용된다. 즉, 이미지가 condition으로 들어가고 tag의 word2vec를 생성하는 형태이다. 

     

    이미지의 feature를 추출하기 위해 ImageNet에 pre-trained 된 convolutional model을 사용해 마지막 fc layer의 출력값을 사용한다. 

     

    Word representation 위해서 먼저 YFCC100M 2 데이터세트 메타데이터에서 사용자 태그, 제목 설명을 결합하여 텍스트 수집한다. 텍스트를 전처리하고 cleaning 단어 벡터 크기가 200 skip-gram model 훈련시켰다. 그리고 단어에서 200 미만의 단어를 생략하고 247465크기의 dictionary 만들었다.

     

    Discriminator에서는 결국 (x, y) pair가 (G(z), y) pair와 matching이 되는지를 판단하게 된다. 

     

    평가를 위해 이미지에 대해 100개의 샘플을 생성하고 샘플에 대한 단어 벡터 표현의 코사인 유사성을 사용하여 가장 가까운 상위 20개의 단어를 찾는다. 그리고 100개의 샘플 가장 일반적인 상위 10개의 단어를 선택한다. 

     

    Table 2는 여러 이미지들에 대해 사람이 직접 넣은 태그와 CGAN이 생성해낸 태그를 비교한 테이블이다. 

    5. Future Work 

    이 논문에서의 결과는 Conditional GAN의 잠재력을 보여주고 다양한 응용에 대한 가능성을 보여준다. 

     

    또한, 이번 실험에서는 개별적인 태그를 사용했지만, 여러 태그를 동시에 사용한다면 더 좋은 결과를 얻을 수 있을 것이다.

     

    추가 연구의 또 다른 방향은 언어 모델을 학습시키기 위한 계획을 구축하는 것이라고 한다. 

     

     

     

     

     

     

     

     

     

    paper
    https://arxiv.org/abs/1411.1784
    참고 
    https://blog.naver.com/phj8498/222551382807

     

     

Designed by Tistory.