[논문 리뷰] Unsupervised Representation Learning with Deep Convolutional Generatvie Adversarial Network

SimBa's avatar
Feb 08, 2025
[논문 리뷰] Unsupervised Representation Learning with Deep Convolutional Generatvie Adversarial Network
  • 그동안 CNN에서 지도학습은 많은 관심을 받았었음. 하지만, 상대적으로 비지도 학습은 많은 관심을 받지 못함
  • 본 연구에서는 비지도 학습에서 좋은 성능을 낼 수 있는 DCGAN을 소개하고자 함
 
 

1. Introduction

  • 좋은 intermediate representation을 학습하기 위해 unlabeled images nad videos를 거의 무제한으로 활용할 수 있음
  • 본 연구에서는 좋은 이미지 표현을 만들기 위해 GAN으로 학습하는 것을 제안하고자 함 → 그 위해 지도 학습에 의한 task를 위해 feature extractor로서 generator과 discriminator를 재사용
  • 하지만, GAN이 무엇을 학습하는지 이해하고 시각화하는 것, multi-layer GAN의 intermediate representation에 대한 연구는 매우 적었음
  • 본 연구의 기여점
    • Convolutional GAN의 architectual tolology(구조)에 대한 제약 조건을 제안하고 평가 → 대부분의 환경에서 안정적으로 학습할 수 있도록 함 → 이러한 architecture class를 DCGAN (Deep Convolutional GAN)이라고 명명
    • 학습된 discriminator를 image classification에 활용 → 다른 비지도 학습 알고리즘과ㅗ 경쟁력 있는 성능이 있음을 보임
    • GAN이 학습한 필터를 시각화 → 특정 필터가 특정 객체를 그리는 법을 학습했음을 보여줌
    • generator이 흥미로운 vector arithemetic (벡터 산술) 속성을 가지고 있어, 생성된 샘플의 다양한 의미적 특성을 쉽게 조작할 수 있음을 보임
 
 

2.1 Representation Learning from Unlabeled Data

  • unsuprvised representation learning의 고전적인 접근 방법
    • data에 대해 clustering (ex. K-means) → cluster를 활용하여 향상된 classification score 제공
    • 강력한 image representation을 학습하기 위해 image patch에 대해 hierarchical clustering (두 클러스터 사이의 거리를 측정해서 거리가 가까운 클러스터끼리 묶는 방식) 가능
    • auto-encoder 학습, code의 구성요소 분리, ladder structure
      • image를 compact code로 인코딩한 후, 해당 코드를 디코딩하여 원본 이미지와 최대한 유사하게 복원
      • image pixel로부터 좋은 feature representation을 학습하는데 효과적임이 입증됨
    • Deep Belief Network (DBN) : hierarchical representation을 학습하는데 효과적
 

2.2 Generating Natural Images

  • non-parametric
    • 이미 존재하는 image의 데이터베이스로부터 매칭, image의 patch를 매칭
    • texture synthesis
    • super-resolution
    • in-painting (다양한 원인으로 인해 훼손된 영상 또는 배경 제거 등의 목적으로 영상의 일부분이 삭제되 었을 때 시각적으로 자연스럽게 복원하는 기법)
  • parametric
    • variational samping이 이미지 생성에서 약간의 성공을 거두었으나, blurry 문제가 있었음
      • variational sampling : variaional inference와 sampling method를 사용하여, 확률 분포를 근사하는 방법
      • variational inference : 확률 밀도를 근사하여 최적화하는 기계학습 기법
    • forward diffusion process를 반복하여 이미지 형성
    • GAN : noisy and incomprehensible
    • laplcian pyramid extensiosn : 여러 모델을 연쇄적으로 연결할 때 발생하는 noise → 물체가 흔들림
    • recurrent network & deconvolution network : 이미지 생성에서는 좋은 성능을 보이지만, 지도 학습을 위한 task에는 generator를 활용하지 않음
 

2.3 Visualizing the Internals of CNNs

  • CNN의 한계 : 인간이 짠 알고리즘이 실제로 network에서 어떻게 작동하는지 알 수 없는 black-box 방법임
  • Deconvolution : CNN의 특징을 되돌려서 필터가 이미지에서 어떤 정보를 추출하는지 시각적으로 확인할 수 있음
  • filtering the maximal acivation : 필터가 가장 강하게 반응하는 이미지 영역을 찾아, 필터가 무엇을 감지하고 있는지 분석할 수 있음
  • gradient descent : input image에 경사하강법을 사용하면 신경망의 출력이 특정 필터를 활성화시키도록 이미지 수정
 
 

3. Approach and Model Architecture

  • deterministic spatial pooling function을 strided convolution으로 교체 → 네트워크가 spatial downsampling을 학습할 수 있도록 함
    • spatial upsampling을 학습할 수 있도록 generator에 사용
    • 판별자에도 사용
  • convolutional featyre의 맨 위에 fc layer 제거
    • global average pooling은 모델의 안정성을 높여주지만 수렴 속도를 느리게 함
    • 생성자와 판별자 둘 다에서 중간 단계의 layer를 highest convolutional feature 직접적으로 연결한 것의 성능이 더 좋았음
    • 생성자
      • GAN의 첫 번째 layer : Z로부터 input으로 들어갈 noise 추출
      • 위와 같은 GAN의 첫 번째 layer이 바로 matirx multiplcation으로 fc layer을 호출 → 그 결과는 4차원의 텐서로 reshaped됨 → 이 결과가 convolutional stack의 시작으로 사용됨
    • 판별자
      • 맨 마지막 convolution layer가 flatten됨 → 하나의 sigmoid output 생성
  • Batch Normalization
    • 각 단계의 input을 으로 정규화
    • deep generator가 모든 샘플이 단일 샘플로 붕괴되는 것을 방지하는 데 중요한 역할을 함
    • 생성자의 output layer, 판별자의 input layer에는 적용 X
  • activation function
    • 생성자 : output layer은 Tanh 사용, 이를 제외한 모든 layer에서는 ReLU
    • 판별자 : 모든 layer에서 LeakyReLU
notion image
notion image
  • 위에서 설명했다시피 fc layer와 pooling layer 없음
notion image
 
 

4. Details of Adversarial Training

  • training dataset : LSUN, Imagenet-1K, Fasces dataset
  • Tanh 함수를 위한 scaling 을 제외한 데이터 전처리는 하지 않음
  • mini-batch stochastic gradient descent (SGC) → mini-batch size = 128
  • weight initialization =
  • LeakyReLU에서 leak의 기울기 = 0.2
  • optimizer : Adam
  • learning rate = 0.0002
 
 

5. Empirical Validation of DCGANs Capabilities

  • 비지도 학습의 평가 방법 : 학습된 표현(특징)의 품질을 평가하는 일반적인 방법 중 하나는 해당 표현을 특징 추출기로 사용하여 지도 학습(supervised learning) 데이터셋에서 선형 모델을 학습하고 성능을 평가
  • K-means를 활용한 특징 학습
    • K-means를 활용한 single-layer 특징 추출 방법이 강력한 성능을 보임
    • 48000개의 feature map → 80.6%의 정확도
  • DCGAN을 활용한 특징 학습
    • 판별자의 모든 convolutional feature 사용
    • 각 층의 출력을 max-pooling → (4, 4) grid 형태로 변환
    • 이 특징을 flatten → 28672 차원의 벡터로 만듦
    • L2 정규화된 선형 SVM 분류기로 학습
    • 결과 : 82.8%로 K-means보다 좋은 성능을 보임
 
 

6. Investigating and Visualizing the Internals of the Networks

6.1 Walking in the Latent Space

  • walking on the mainfold (latent space 위를 이동)하면 다음과 같은 것을 알 수 있음
    • memorization (과적합) 여부
      • sharp transitions(갑작스러운 변화) 발생 → 모델이 데이터를 단순히 암기했을 가능성 有
    • 공간이 hierarchially collapsed(계층적으로 압축)된 방식
    • latent space에서의 이동이 semantic change(의미론적 변화)를 유발
      • 예를 들어, 이미지 생성에서 객체가 추가되거나 제거되는 현상이 나타남 → 모델이 interesting representation을 학습했다는 증거가 됨
      • notion image
         

6.2 Visualzing the Discriminator Features

  • 이전 연구에서는 지도 학습된 CNN은 강력한 특징을 학습할 수 있음을 증명했었음
  • 본 연구에서는 비지도 학습된 DCGAN도 계층적 특징을 학습할 수 있음을 증명
  • guided backpropagation 기법 → DCGAN의 판별자가 어떤 특징을 반응하는지 분석
    • 예를 들어, 침실 이미지에서 침대, 창문과 같은 주요 부분을 활성화
    • 무작위로 초기화된 신경망은 의미 있는 특징을 전혀 활성화하지 않음
    • 💡
      [back propagation]
      • ReLU 와 backpropagation을 변형하여 오직 중요하다고 판단된 특징만 visulaize하는 방식
      • 불필요한 noise를 제거하고, 더 명확한 feature map 생성
      notion image
 

6.3 Manipulating the Generator Representation

6.3.1 Forgetting To Draw Certain Objects
  • 생성자가 어떤 representatio을 학습하는지 알아보고자 함
  • 생성자에서 “창문”을 아예 제거하고 실험을 진행해봄
    • “창문”을 제거한 이미지로 학습시킨 생성자 → 창문을 다른 객체로 대체하여 침실 그림을 그림
    • notion image
6.3.2 Vector Arithemetic on Face Samples
  • representation 공간에서 벡터 연산이 의미 있는 방식으로 작동하는지 실험함
    • Word2Vec : 단어의 의미를 벡터로 변환하는 기법 개발
      • 단순한 벡터 연산을 수행하면 의미론적으로 일관된 결과가 나온다는 점을 보임
      • vector(”King”) - vector(”Man”) + vector(”Woman”) → vector(”Queen”)
  • Word embedding에서 보이는 벡터 공간의 선형적 구조가 이미지 생성 모델의 Z 공간에도 나타나는지 분석
    • Z 벡터(latent space) : 이 벡터가 특정한 특징(얼굴 방향, 개체 종류…)을 결정하는 역할
    • 특정 시각적 개념과 관련된 이미지들을 생성하는 Z 벡터를 추출 → 3개의 샘플을 평균
    • 결과
      • 단순한 벡터 연산이 Z 공간에서도 유의미한 결과를 만들어냄
      • 특정 얼굴의 방향을 바꾸는연산이 선형적으로 적용될 수 있음 (ex. vector(”얼굴이 왼쪽을 바라봄”) - vector(”오른쪽을 바라봄”) + vector(”다른 얼굴”) → vector(”새로운 얼굴이 오른쪽을 바라봄”) )
      • notion image
    • 특히, conditional GAN에서 활용하면 객체의 크기, 회전, 위치 등의 속성을 조절하는데 효과적일 수 있음
 
Share article

심바