[논문 리뷰] Unsupervised Representation Learning with Deep Convolutional Generatvie Adversarial Network
Feb 08, 2025
![[논문 리뷰] Unsupervised Representation Learning with Deep Convolutional Generatvie Adversarial Network](https://image.inblog.dev?url=https%3A%2F%2Finblog.ai%2Fapi%2Fog%3Ftitle%3D%255B%25EB%2585%25BC%25EB%25AC%25B8%2520%25EB%25A6%25AC%25EB%25B7%25B0%255D%2520Unsupervised%2520Representation%2520Learning%2520with%2520Deep%2520Convolutional%2520Generatvie%2520Adversarial%2520Network%26logoUrl%3Dhttps%253A%252F%252Finblog.ai%252Finblog_logo.png%26blogTitle%3D%25EC%258B%25AC%25EB%25B0%2594&w=3840&q=75)
- 그동안 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. Related Work
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


- 위에서 설명했다시피 fc layer와 pooling layer 없음

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을 학습했다는 증거가 됨

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

6.3 Manipulating the Generator Representation
6.3.1 Forgetting To Draw Certain Objects
- 생성자가 어떤 representatio을 학습하는지 알아보고자 함
- 생성자에서 “창문”을 아예 제거하고 실험을 진행해봄
- “창문”을 제거한 이미지로 학습시킨 생성자 → 창문을 다른 객체로 대체하여 침실 그림을 그림

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(”새로운 얼굴이 오른쪽을 바라봄”) )
- 특히, conditional GAN에서 활용하면 객체의 크기, 회전, 위치 등의 속성을 조절하는데 효과적일 수 있음

Share article