[GAN] GAN 모델 안정화를 위한 기법 - DCGAN
# [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
DCGAN (Deep Convolutional Generative Adversarial Networks)
DCGAN은 GAN(Generative Adversarial Networks)의 한 형태로, 주로 이미지 생성 작업에 사용되며, 특히 딥러닝과 컨볼루셔널 신경망(CNN) 기술을 기반으로 합니다.
DCGAN의 특징
- 아키텍처: DCGAN은 전통적인 GAN에 비해 특별한 아키텍처를 가지고 있다. 생성자와 판별자 모두에서 컨볼루셔널과 전치 컨볼루셔널 층을 사용한다.
- 업샘플링과 다운샘플링: 생성자는 전치 컨볼루션을 사용하여 저차원의 잠재 공간에서 고차원 이미지로 업샘플링을 수행한다. 반면, 판별자는 컨볼루션을 사용하여 이미지를 다운샘플링하고 진위를 판별한다.
- 배치 정규화: DCGAN은 배치 정규화를 사용하여 각 층의 입력을 정규화하고, 학습 과정을 안정화시킨다.
입력 activation 에서 주어지는 각각의 값에 상수 배를 취하고, output activation 에 붙여주는 방식으로 output activation map을 얻어낼 수 있다.
-> deconvolution 과정임
Deconvolutional (Transposed Convolution)의 역할
1. 업샘플링
- 기능: DCGAN의 생성자는 저해상도에서 고해상도 이미지로 업샘플링하는 과정을 거칩니다.
- 방법: 이를 위해 전치 컨볼루션(Transposed Convolution) 또는 일명 'deconvolution’을 사용합니다.
2. 이미지 생성 과정
- 입력: 생성자는 낮은 차원의 잠재 공간(latent space)에서 무작위로 샘플링한 벡터를 입력받습니다.
- 변환: 이 벡터는 여러 층의 전치 컨볼루션을 통해 점차적으로 업샘플링되고, 이미지의 크기와 깊이가 증가합니다.
- 출력: 최종적으로 고해상도 이미지가 생성됩니다.
특징
- 픽셀 간의 관계 학습: 전치 컨볼루션은 픽셀 간의 복잡한 관계를 학습하여 세밀한 이미지 패턴 생성
- 보다 세밀한 이미지: 이 과정을 통해 더 세밀하고 구조적인 디테일을 가진 이미지 생성
정리
- DCGAN은 이미지 생성을 위해 전치 컨볼루션을 사용하여 저차원의 정보를 고차원 이미지로 변환하는 과정을 통해 고해상도 이미지를 생성합니다.
- 'Deconvolutional’이라는 용어는 역사적으로 사용되었지만, 기술적으로는 전치 컨볼루션(Transposed Convolution)이라는 용어가 더 정확합니다.
activation 크기를 점진적으로 늘려주면서 generator 구조를 제안하였음
침실 이미지에서 사용된 입력 벡터가 0.7, 1.2 와 같은 2차원이라고 치자.
또다른 벡터 2.1, -0.5 벡터로 생성된 이미지는 다음과 같은거임
이 벡터들 간의 선형적인 내분점을 생각해볼 수 있음
중점에 해당하는 벡터는 평균을 낸 벡터가 될 수 있음
Z벡터들은 일반적으로 특징에 맞게 매핑되는 벡터라고 생각할 수 있다.
위와같이 표준정규분포에 존재하는 벡터를 뽑을 수 있다.
그리고, 세 개의 벡터 간의 덧셈, 뺄셈을 통해 또다른 벡터를 이용해서 새로운 이미지를 얻을 수 있다.
(웃는 여자) - (무표정한 여자) + (무표정한 남자) = 웃는 남자
(안경쓴 남정) - (안경안쓴 남성) + (안경 안쓴 여성) = 안경 쓴 여성
장점
- 이미지 품질: 고해상도 및 세밀한 디테일을 가진 이미지 생성이 가능하다.
- 학습 안정성: 배치 정규화를 통해 모델의 학습 안정성이 향상된다.
- 다양한 응용: DCGAN은 다양한 이미지 생성 작업에 적용 가능하다.
단점 및 한계점
- 모드 붕괴: 여전히 모드 붕괴(mode collapse) 문제가 발생할 수 있음
- 상세한 튜닝 필요: 효과적인 학습을 위해 네트워크 아키텍처와 하이퍼파라미터에 대한 세밀한 조정이 필요함
- 복잡한 데이터 처리 한계: 매우 복잡하거나 다양한 데이터셋에 대해서는 만족스러운 결과를 생성하기 어려울 수 있음
후속 GAN 연구
- Conditional GAN: 조건부 정보를 추가하여 특정 조건에 맞는 이미지를 생성한다.
- CycleGAN: 서로 다른 도메인 간의 이미지를 변환할 수 있다. 예를 들어, 여름 풍경을 겨울 풍경으로 변환하는 등의 작업이 가능하다.
- StyleGAN: 더욱 세밀한 스타일 제어와 고품질 이미지 생성을 위해 설계되었다. 특히 얼굴 이미지 생성에 뛰어난 성능을 보인다.
- BigGAN: 대규모 데이터셋과 더 큰 모델을 사용하여 더 높은 해상도와 품질의 이미지를 생성한다.
DCGAN은 이미지 생성 분야에서 중요한 발전을 이루었으며, 이후의 여러 GAN 연구에 영감을 주었다. DCGAN의 아키텍처와 기법은 현재의 많은 고급 GAN 모델의 기초가 되었다.
이 글은 옵시디언 프로그램을 통해 티스토리에 게시되었습니다.