공부정리/Computer Vision

[GAN] GAN 모델 안정화를 위한 기법 - DCGAN

sillon 2024. 1. 8. 16:16
728x90
반응형

# [GAN] GAN 모델 안정화를 위한 기법 - DCGAN

인식 모델에서 주로 사용하는 CNN을 사용하면 이미지에서 사용되는 다양한 패턴들을 잘 추출하고 사용할 수 있다.

DCGAN Main contributions

  • 거의 대부분의 상황에서 안정적으로 학습이 가능한 GAN인 DCGAN을 제시한다.
  • 학습이 된 판별기(이하 D)가 이미지 분류에서 다른 비지도 알고리즘들과 비교했을때 대등한 성능을 보인다.
  • DCGAN이 학습한 filter들을 visualize하고, 특정 filter가 특정 object를 생성하는 역할을 한다는것을 알아냈다.
  • DCGAN이 벡터 산술 연산이 가능한 성질을 갖는다. Semantic quality를 갖는다.

출처: https://memesoo99.tistory.com/32?category=957105

Pasted image 20240108111631.png

DCGAN (Deep Convolutional Generative Adversarial Networks)

DCGAN은 GAN(Generative Adversarial Networks)의 한 형태로, 주로 이미지 생성 작업에 사용되며, 특히 딥러닝과 컨볼루셔널 신경망(CNN) 기술을 기반으로 합니다.

DCGAN의 특징

  • 아키텍처: DCGAN은 전통적인 GAN에 비해 특별한 아키텍처를 가지고 있다. 생성자와 판별자 모두에서 컨볼루셔널과 전치 컨볼루셔널 층을 사용한다.
  • 업샘플링과 다운샘플링: 생성자는 전치 컨볼루션을 사용하여 저차원의 잠재 공간에서 고차원 이미지로 업샘플링을 수행한다. 반면, 판별자는 컨볼루션을 사용하여 이미지를 다운샘플링하고 진위를 판별한다.
  • 배치 정규화: DCGAN은 배치 정규화를 사용하여 각 층의 입력을 정규화하고, 학습 과정을 안정화시킨다.

Pasted image 20240108113041.png

Pasted image 20240108133814.png

입력 activation 에서 주어지는 각각의 값에 상수 배를 취하고, output activation 에 붙여주는 방식으로 output activation map을 얻어낼 수 있다.
-> deconvolution 과정임

Deconvolutional (Transposed Convolution)의 역할

1. 업샘플링

  • 기능: DCGAN의 생성자는 저해상도에서 고해상도 이미지로 업샘플링하는 과정을 거칩니다.
  • 방법: 이를 위해 전치 컨볼루션(Transposed Convolution) 또는 일명 'deconvolution’을 사용합니다.

2. 이미지 생성 과정

  • 입력: 생성자는 낮은 차원의 잠재 공간(latent space)에서 무작위로 샘플링한 벡터를 입력받습니다.
  • 변환: 이 벡터는 여러 층의 전치 컨볼루션을 통해 점차적으로 업샘플링되고, 이미지의 크기와 깊이가 증가합니다.
  • 출력: 최종적으로 고해상도 이미지가 생성됩니다.

특징

  • 픽셀 간의 관계 학습: 전치 컨볼루션은 픽셀 간의 복잡한 관계를 학습하여 세밀한 이미지 패턴 생성
  • 보다 세밀한 이미지: 이 과정을 통해 더 세밀하고 구조적인 디테일을 가진 이미지 생성

정리

  • DCGAN은 이미지 생성을 위해 전치 컨볼루션을 사용하여 저차원의 정보를 고차원 이미지로 변환하는 과정을 통해 고해상도 이미지를 생성합니다.
  • 'Deconvolutional’이라는 용어는 역사적으로 사용되었지만, 기술적으로는 전치 컨볼루션(Transposed Convolution)이라는 용어가 더 정확합니다.

Pasted image 20240108144517.png

activation 크기를 점진적으로 늘려주면서 generator 구조를 제안하였음

Pasted image 20240108150305.png

침실 이미지에서 사용된 입력 벡터가 0.7, 1.2 와 같은 2차원이라고 치자.
또다른 벡터 2.1, -0.5 벡터로 생성된 이미지는 다음과 같은거임
Pasted image 20240108160730.png

이 벡터들 간의 선형적인 내분점을 생각해볼 수 있음

중점에 해당하는 벡터는 평균을 낸 벡터가 될 수 있음
Pasted image 20240108160933.png

Pasted image 20240108161044.png

Z벡터들은 일반적으로 특징에 맞게 매핑되는 벡터라고 생각할 수 있다.

Pasted image 20240108161205.png

위와같이 표준정규분포에 존재하는 벡터를 뽑을 수 있다.
그리고, 세 개의 벡터 간의 덧셈, 뺄셈을 통해 또다른 벡터를 이용해서 새로운 이미지를 얻을 수 있다.

(웃는 여자) - (무표정한 여자) + (무표정한 남자) = 웃는 남자

Pasted image 20240108161428.png

Pasted image 20240108161442.png
(안경쓴 남정) - (안경안쓴 남성) + (안경 안쓴 여성) = 안경 쓴 여성

장점

  1. 이미지 품질: 고해상도 및 세밀한 디테일을 가진 이미지 생성이 가능하다.
  2. 학습 안정성: 배치 정규화를 통해 모델의 학습 안정성이 향상된다.
  3. 다양한 응용: DCGAN은 다양한 이미지 생성 작업에 적용 가능하다.

단점 및 한계점

  1. 모드 붕괴: 여전히 모드 붕괴(mode collapse) 문제가 발생할 수 있음
  2. 상세한 튜닝 필요: 효과적인 학습을 위해 네트워크 아키텍처와 하이퍼파라미터에 대한 세밀한 조정이 필요함
  3. 복잡한 데이터 처리 한계: 매우 복잡하거나 다양한 데이터셋에 대해서는 만족스러운 결과를 생성하기 어려울 수 있음

후속 GAN 연구

  • Conditional GAN: 조건부 정보를 추가하여 특정 조건에 맞는 이미지를 생성한다.
  • CycleGAN: 서로 다른 도메인 간의 이미지를 변환할 수 있다. 예를 들어, 여름 풍경을 겨울 풍경으로 변환하는 등의 작업이 가능하다.
  • StyleGAN: 더욱 세밀한 스타일 제어와 고품질 이미지 생성을 위해 설계되었다. 특히 얼굴 이미지 생성에 뛰어난 성능을 보인다.
  • BigGAN: 대규모 데이터셋과 더 큰 모델을 사용하여 더 높은 해상도와 품질의 이미지를 생성한다.

DCGAN은 이미지 생성 분야에서 중요한 발전을 이루었으며, 이후의 여러 GAN 연구에 영감을 주었다. DCGAN의 아키텍처와 기법은 현재의 많은 고급 GAN 모델의 기초가 되었다.


이 글은 옵시디언 프로그램을 통해 티스토리에 게시되었습니다.

728x90
반응형