AI: 주요 문제 – Generator
ㅁ 주요 문제
1. Generator
ㅇ 정의:
GAN(Generative Adversarial Network)에서 가짜 데이터를 생성하는 신경망으로, 무작위 노이즈 벡터를 입력받아 실제 데이터와 유사한 샘플을 출력.
ㅇ 특징:
– 입력: 잠재 공간(latent space)의 랜덤 벡터
– 출력: 실제 데이터와 동일한 차원의 데이터
– 학습 목표: Discriminator를 속일 수 있는 데이터를 생성
– 역전파는 Discriminator의 판단 결과를 통해 간접적으로 받음
ㅇ 적합한 경우:
– 이미지, 오디오, 텍스트 등 다양한 데이터 생성
– 데이터 증강(Data Augmentation) 목적
– 예술 이미지, 스타일 변환, 합성 데이터 생성
ㅇ 시험 함정:
– Generator는 직접적으로 실제 데이터와 비교하여 학습하지 않음 (Discriminator의 피드백을 통해 학습)
– “Generator는 실제 데이터를 입력받아 가짜를 만든다” → X (실제 데이터는 입력되지 않음)
– Generator의 출력은 항상 완벽하게 실제와 동일하지 않음 (학습 정도에 따라 품질 차이)
ㅇ 시험 대비 “패턴 보기” 예시:
– O: “Generator는 잠재 벡터를 입력받아 실제 데이터와 유사한 샘플을 생성한다.”
– X: “Generator는 실제 데이터를 입력받아 이를 변형하여 가짜 데이터를 만든다.”
– O: “Generator는 Discriminator의 피드백을 통해 학습이 진행된다.”
– X: “Generator는 Discriminator의 가중치를 직접 수정한다.”
ㅁ 추가 학습 내용
학습 정리
1. Generator의 네트워크 구조 예시
– CNN 기반: 합성곱 연산을 통해 이미지의 공간적 특징을 학습하며, 업샘플링(Transpose Convolution, Upsampling + Convolution)으로 해상도를 점진적으로 높임.
– Transformer 기반: 자기 주의(Self-Attention) 메커니즘을 활용하여 전역적인 의존성을 학습하며, 시퀀스 형태로 변환된 데이터에서 장기적 관계를 잘 포착함.
2. Latent space의 의미와 차원 선택 영향
– Latent space는 데이터의 잠재적 표현을 담는 공간으로, Generator는 이 공간의 벡터를 입력받아 샘플을 생성함.
– 차원이 너무 낮으면 표현력이 부족해 다양성이 떨어지고, 너무 높으면 학습이 어려워지고 과적합 가능성이 커짐.
– 적절한 차원 선택은 생성 품질과 다양성 모두에 영향을 미침.
3. Mode collapse 현상과 Generator와의 관계
– Mode collapse는 Generator가 다양한 출력 대신 일부 패턴만 생성하는 문제.
– Generator가 Discriminator를 속이기 쉬운 특정 패턴에만 집중할 때 발생.
– 데이터 다양성 확보와 학습 안정화 기법으로 완화 가능.
4. Conditional GAN에서 Generator의 조건 입력 방식
– 조건 정보(레이블, 속성 등)를 잠재 벡터와 결합하여 입력.
– 결합 방식: 벡터 연결(concatenation), 조건을 임베딩 후 합성곱 층에 주입, 또는 조건을 Feature Map에 채널로 병합.
– 이를 통해 특정 클래스나 속성에 맞는 샘플 생성 가능.
5. 학습 안정화를 위한 기법
– Feature Matching: Discriminator의 중간 계층 특징 통계를 Generator 학습 목표로 사용하여 안정적 학습 유도.
– Label Smoothing: Discriminator 학습 시 레이블을 1.0 대신 0.9 등으로 부드럽게 하여 과도한 확신을 방지하고 일반화 성능 향상.
6. Wasserstein GAN에서 Generator의 손실 함수 차이점
– 기존 GAN: Generator 손실은 log(1 – D(G(z))) 또는 -log(D(G(z))) 형태.
– WGAN: Discriminator 대신 Critic을 사용하며, Generator는 Critic이 생성 샘플에 대해 높은 점수를 주도록 학습.
– 손실은 -E[Critic(G(z))] 형태로, 학습 안정성과 모드 붕괴 완화에 효과적.