0. Summary

기본 정보 : ArXiv,2017.11.24 (CVPR 2018 Oral), StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation

연구 배경

pix2pix, CycleGAN, DiscoGAN 같은 이미지-이미지 변환 모델은 두 도메인 사이의 변환에서는 큰 성과를 냈지만, 도메인이 셋 이상이면 확장성이 급격히 나빠진다. 도메인 $k$ 개 사이의 모든 변환을 배우려면 $k(k-1)$ 개의 생성기가 필요하고(Figure 2a), 각 생성기는 전체 데이터 중 두 도메인의 이미지만 보고 학습하므로 모든 도메인에 공통인 얼굴 형태 같은 전역 특징을 충분히 활용하지 못한다. 또한 CelebA(속성 라벨)와 RaFD(표정 라벨)처럼 라벨 집합이 다른 데이터셋을 함께 학습하는 것은 기존 틀에서 불가능했다. 각 데이터셋은 상대 데이터셋의 라벨을 갖고 있지 않기 때문이다.

제안 방법

StarGAN은 생성기 하나와 판별기 하나로 여러 도메인 사이의 모든 변환을 처리한다. 생성기 $G$ 는 이미지 $x$ 와 목표 도메인 라벨 $c$ 를 함께 받아 $G(x,c)$ 를 내고, 라벨은 공간적으로 복제되어 입력 이미지와 채널 방향으로 연결된다. 판별기 $D$ 는 진위 판별 출력 $D_{src}$ 와 도메인 분류 출력 $D_{cls}$ 를 함께 가지는 보조 분류기 구조다. 손실은 적대 손실(Eq. 1), 진짜 이미지의 원래 도메인을 맞추도록 $D$ 를 학습하고 생성 이미지가 목표 도메인으로 분류되도록 $G$ 를 학습하는 도메인 분류 손실(Eq. 2, 3), 그리고 $G(G(x,c),c’)\approx x$ 를 요구하는 재구성(순환 일관성) 손실(Eq. 4)로 구성된다. 여러 데이터셋을 함께 학습하기 위해 마스크 벡터 $m$ 을 도입하여, 라벨 벡터를 $\tilde c=[c_1,\ldots,c_n,m]$ 으로 통합하고 현재 데이터셋의 라벨만 분류 손실에 반영한다(Eq. 7). 학습 안정화를 위해 적대 손실은 WGAN-GP 형태(Eq. 8)를 쓴다.

발견 사실

CelebA의 머리색·성별·나이 변환에 대한 Amazon Mechanical Turk 평가에서 StarGAN은 단일 속성 변환에서 머리색 66.2%, 나이 70.6%의 표를 얻어 DIAT·CycleGAN·IcGAN을 크게 앞섰고(Table 1), 다중 속성 변환에서도 47.4~61.5%로 1위였다(Table 2). RaFD 표정 합성에서는 생성 이미지를 ResNet-18 분류기(실제 이미지 정확도 99.55%)로 분류했을 때 오류율이 2.12% 로 DIAT 4.10%, CycleGAN 5.99%, IcGAN 8.07%보다 낮았으며, 파라미터는 53.2M 하나로 DIAT(52.6M×7)의 약 1/7, CycleGAN(52.6M×14)의 약 1/14이었다(Table 3). CelebA와 RaFD를 마스크 벡터로 함께 학습한 StarGAN-JNT는 RaFD만 학습한 StarGAN-SNG보다 CelebA 얼굴의 표정 합성 품질이 높았고(Figure 6), 마스크 벡터를 잘못 주면 표정 대신 나이가 바뀌는 등 마스크가 의도대로 작동함을 확인했다(Figure 7).

핵심 기여

  1. 단일 생성기 다중 도메인 변환 : 목표 도메인 라벨을 입력으로 받는 생성기 하나와 보조 분류기를 가진 판별기 하나로 $k$ 도메인 사이의 모든 변환을 학습하여, 모델 수를 $k(k-1)$ 에서 1로 줄였다(Figure 2b). 모든 도메인 데이터를 한 생성기가 보므로 다중 과제 학습의 정규화 효과로 품질도 올랐다.
  2. 마스크 벡터로 다중 데이터셋 공동 학습 : 라벨 집합이 다른 데이터셋들을 하나의 모델로 함께 학습하는 방법을 제시했고, 이를 통해 RaFD의 표정 라벨을 CelebA 얼굴에 적용하는 것처럼 한 데이터셋에 없는 라벨로의 변환이 가능해졌다.
  3. 정량·정성 검증 : AMT 지각 평가, 분류 오류율, 파라미터 수 비교로 기존 2-도메인 모델 대비 품질과 효율을 동시에 보였다.

관련 개념

다중 도메인 이미지 변환과 확장성 문제

이미지-이미지 변환(image-to-image translation) 은 이미지의 어떤 측면(도메인)을 바꾸면서 나머지는 보존하는 문제입니다. 여기서 도메인은 같은 속성값을 공유하는 이미지 집합(예: 여성 얼굴, 금발, 웃는 표정)을 뜻하고, 속성은 그 도메인을 정의하는 의미 있는 특징을 뜻합니다. 이 논문의 출발점은 도메인이 많아질 때 기존 모델이 어떻게 무너지는가입니다.


📐 1. 2-도메인 모델의 확장 비용 (Figure 2)

Figure 2

모델 $k$ 도메인에 필요한 생성기 수 한 생성기가 보는 데이터
pix2pix / CycleGAN 류 (교차 도메인) $k(k-1)$ 두 도메인의 이미지만
StarGAN 1 모든 도메인의 이미지

Figure 2a처럼 4개 도메인이면 12개의 생성기가 필요합니다. 문제는 수만이 아닙니다. 각 생성기가 전체 데이터의 일부만 보기 때문에 얼굴 윤곽처럼 모든 도메인에 공통인 특징을 배우지 못해 품질이 떨어집니다. StarGAN의 별(star) 모양 위상(Figure 2b)은 하나의 생성기가 중심에서 모든 도메인을 연결합니다.


🗂️ 2. 다중 데이터셋 문제

CelebA는 머리색·성별·나이 같은 속성 라벨을, RaFD는 표정 라벨을 갖습니다. 두 데이터셋을 함께 학습하고 싶지만, CelebA 이미지에는 표정 라벨이 없고 RaFD 이미지에는 속성 라벨이 없습니다. 재구성 손실 $G(G(x,c),c’)$ 를 계산하려면 원래 라벨 $c’$ 의 전체 벡터가 필요한데, 한쪽 데이터셋의 라벨은 항상 비어 있습니다. 이 “부분 라벨” 문제가 마스크 벡터의 동기입니다.


🔗 3. 관련 접근과의 차이

접근 조건 방식 한계
조건부 GAN (Mirza & Osindero) 라벨을 $G$, $D$ 에 입력 변환이 아닌 생성
AC-GAN (Odena et al.) $D$ 에 보조 분류기 변환이 아닌 생성. StarGAN의 $D_{cls}$ 가 이 구조를 차용
IcGAN 인코더로 잠재 추출 후 조건부 생성 인코더-생성기 분리, 정체성 보존 약함
CycleGAN 순환 일관성으로 비짝 데이터 변환 2 도메인 한정
StarGAN 라벨 입력 + 보조 분류기 + 순환 일관성 위 요소들을 다중 도메인 변환에 결합

💡 Key Takeaway 문제는 “도메인이 많아지면 모델이 많아진다”가 아니라, “모델이 쪼개지면 각 모델이 데이터의 일부만 본다” 는 것입니다. StarGAN은 모델을 하나로 합쳐 데이터 전체를 활용하고, 마스크 벡터로 데이터셋 경계까지 넘습니다.

목적 함수: 적대·도메인 분류·재구성

StarGAN의 손실은 세 부분으로 이루어지며, 각각이 사실성, 도메인 변경, 내용 보존이라는 서로 다른 요구를 담당합니다(Section 3.1). 생성기 $G(x,c)$ 와 판별기 $D:x\to{D_{src}(x),D_{cls}(x)}$ 를 기준으로 정리합니다.


⚔️ 1. 적대 손실 (Eq. 1)

\[\mathcal{L}_{adv}=\mathbb{E}_x\big[\log D_{src}(x)\big]+\mathbb{E}_{x,c}\big[\log\big(1-D_{src}(G(x,c))\big)\big]\]

$D$ 는 최대화, $G$ 는 최소화합니다. 역할은 생성 이미지가 실제 이미지와 구분되지 않게 하는 것입니다. 실제 구현에서는 아래의 WGAN-GP 형태로 대체됩니다.


🏷️ 2. 도메인 분류 손실 (Eq. 2, 3)

판별기 위의 보조 분류기 $D_{cls}$ 를 두 방향으로 씁니다.

진짜 이미지에 대한 분류 손실 — $D$ 를 학습합니다. 진짜 이미지 $x$ 와 원래 도메인 $c’$ 에 대해

\[\mathcal{L}^r_{cls}=\mathbb{E}_{x,c'}\big[-\log D_{cls}(c'\mid x)\big]\]

가짜 이미지에 대한 분류 손실 — $G$ 를 학습합니다. 생성 이미지가 목표 도메인 $c$ 로 분류되도록

\[\mathcal{L}^f_{cls}=\mathbb{E}_{x,c}\big[-\log D_{cls}(c\mid G(x,c))\big]\]
손실 누가 최소화 효과
$\mathcal{L}^r_{cls}$ $D$ $D_{cls}$ 가 진짜 이미지의 도메인을 정확히 맞추는 분류기가 됨
$\mathcal{L}^f_{cls}$ $G$ $G$ 가 목표 도메인으로 분류될 만큼 속성을 실제로 바꾸도록 강제

적대 손실만으로는 $G$ 가 입력을 그대로 내보내도 “진짜 같다”는 평가를 받으므로, 분류 손실이 없으면 도메인 변경이 일어나지 않습니다.


🔄 3. 재구성 손실 (Eq. 4)

적대 손실과 분류 손실만으로는 생성 이미지가 입력의 내용(정체성, 자세 등)을 보존한다는 보장이 없습니다. CycleGAN의 순환 일관성을 같은 생성기를 두 번 적용하는 형태로 가져옵니다.

\[\mathcal{L}_{rec}=\mathbb{E}_{x,c,c'}\big[\|x-G(G(x,c),c')\|_1\big]\]

$x$ 를 목표 도메인 $c$ 로 보낸 뒤 원래 도메인 $c’$ 로 되돌리면 원본이 복원되어야 합니다. CycleGAN이 $G$ 와 $F$ 두 생성기를 쓰는 것과 달리 StarGAN은 생성기 하나가 도메인 라벨만 바꿔 양방향을 모두 담당합니다. L1 노름을 씁니다.


🧮 4. 전체 목적 (Eq. 5, 6)

\[\mathcal{L}_D=-\mathcal{L}_{adv}+\lambda_{cls}\mathcal{L}^r_{cls},\qquad \mathcal{L}_G=\mathcal{L}_{adv}+\lambda_{cls}\mathcal{L}^f_{cls}+\lambda_{rec}\mathcal{L}_{rec}\]

모든 실험에서 $\lambda_{cls}=1$, $\lambda_{rec}=10$ 입니다. 재구성 가중치가 10배 큰 것은 CycleGAN의 관행과 같으며, 정체성 보존을 강하게 요구한다는 뜻입니다.

💡 Key Takeaway 세 손실은 각각 “진짜처럼”(적대), “목표 도메인으로”(분류), “나머지는 그대로”(재구성) 를 담당합니다. 어느 하나가 빠지면 변환이 안 되거나, 사실성이 깨지거나, 정체성이 사라집니다.

학습 흐름 한눈에 보기 (Figure 3)

세 손실이 실제 학습 스텝에서 어떻게 배치되는지는 Figure 3에 정리되어 있습니다. 판별기와 생성기가 각각 무엇을 입력받고 어떤 손실로 갱신되는지를 따라가면 StarGAN의 동작이 분명해집니다.


🔄 1. 판별기 스텝 (Figure 3a)

Figure 3

입력 출력 손실
진짜 이미지 $x$ $D_{src}(x)$ → 진짜로 판정 $\mathcal{L}_{adv}$
진짜 이미지 $x$ $D_{cls}(c’\mid x)$ → 원래 도메인 $c’$ 로 분류 $\mathcal{L}^r_{cls}$
생성 이미지 $G(x,c)$ $D_{src}(G(x,c))$ → 가짜로 판정 $\mathcal{L}_{adv}$

판별기는 생성 이미지에 대해서는 분류 손실을 계산하지 않습니다. 가짜 이미지의 도메인을 맞추는 것은 생성기의 몫입니다.


🎨 2. 생성기 스텝 (Figure 3b–d)

단계 연산 손실
(b) 변환 $x$ + 목표 라벨 $c$ (공간 복제) → $G(x,c)$ –
(c) 재구성 $G(x,c)$ + 원래 라벨 $c’$ → $G(G(x,c),c’)$ $\mathcal{L}_{rec}$ (L1 vs. $x$)
(d) 속이기 $G(x,c)$ → $D_{src}$ 진짜로, $D_{cls}$ 는 $c$ 로 $\mathcal{L}{adv}$, $\mathcal{L}^f{cls}$

목표 라벨 $c$ 는 학습 중 무작위로 생성됩니다. 이로써 생성기는 모든 (원래 도메인, 목표 도메인) 조합을 고르게 경험하고, 테스트 시 임의의 목표 라벨을 유연하게 처리할 수 있습니다.


🧩 3. 라벨 입력의 구체적 형태

CelebA의 7개 도메인은 세 속성 그룹으로 나뉩니다.

그룹 인코딩 차원
머리색 원-핫 (검정/금발/갈색) 3
성별 이진 1
나이 이진 1

따라서 CelebA 라벨 $c$ 는 5차원이고, 이를 128×128로 공간 복제해 RGB와 연결하면 생성기 입력은 $128\times128\times8$ 이 됩니다. 머리색은 원-핫이므로 한 번에 하나만 고를 수 있고, 성별·나이는 독립적으로 켜고 끌 수 있어 다중 속성 동시 변환(Figure 4의 H+G+A)이 가능합니다.

💡 Key Takeaway 한 스텝은 “판별기: 진짜를 분류하고 가짜를 가려내기 → 생성기: 목표 도메인으로 바꾸고 되돌려 보기” 로 요약됩니다. 목표 라벨을 무작위로 뽑는 것이 모든 도메인 쌍을 한 모델이 배우게 하는 장치입니다.

마스크 벡터와 다중 데이터셋 학습

마스크 벡터(mask vector) 는 라벨 집합이 다른 여러 데이터셋을 하나의 StarGAN으로 학습하기 위한 장치입니다(Section 3.2). 핵심 아이디어는 “모르는 라벨은 무시하라”는 신호를 생성기에 명시적으로 주는 것입니다.


🧮 1. 통합 라벨 벡터 (Eq. 7)

\[\tilde c=[c_1,\ldots,c_n,m]\]
기호 의미
$c_i$ $i$ 번째 데이터셋의 라벨 벡터. 이진 속성은 이진 벡터, 범주형 속성은 원-핫 벡터
$m$ $n$ 차원 원-핫 마스크. 현재 이미지가 어느 데이터셋에서 왔는지 표시
알 수 없는 라벨 0으로 채움. 생성기는 마스크를 보고 이 부분을 무시하도록 학습

논문에서는 $n=2$ (CelebA, RaFD)이며, CelebA 이미지의 $\tilde c$ 는 $[c_{CelebA},\,\mathbf{0},\,(1,0)]$, RaFD 이미지는 $[\mathbf{0},\,c_{RaFD},\,(0,1)]$ 꼴입니다.


🏋️ 2. 학습 절차 (Figure 8, 부록)

  • 미니배치마다 CelebA와 RaFD를 번갈아 사용합니다.
  • 판별기의 $D_{cls}$ 는 두 데이터셋의 라벨을 모두 출력하지만, 분류 손실은 현재 데이터셋의 라벨에 대해서만 계산합니다(다중 과제 학습). CelebA 배치에서는 속성 분류 오류만, RaFD 배치에서는 표정 분류 오류만 최소화합니다.
  • 생성기는 마스크 벡터를 통해 어느 라벨 블록이 유효한지 알고, 유효한 블록에만 반응하는 법을 배웁니다.

이렇게 학습하면 판별기는 두 데이터셋의 모든 라벨에 대한 판별 특징을 배우고, 생성기는 모든 라벨을 제어할 수 있게 됩니다.


🎭 3. 데이터셋 경계를 넘는 변환 (Figure 1, 6, 7)

Figure 1

학습이 끝나면 CelebA 얼굴에 RaFD의 표정 라벨을 주어 CelebA에는 없는 표정 변환을 할 수 있습니다(Figure 1). 테스트 시 마스크를 $(0,1)$ 로 두고 RaFD 라벨 블록만 채우면 됩니다.

실험 관찰
StarGAN-SNG (RaFD만 학습) vs. StarGAN-JNT (공동 학습), CelebA 얼굴 표정 합성 (Figure 6) JNT가 더 선명하고 자연스러운 결과. RaFD는 약 500장/도메인으로 작아 SNG는 CelebA의 자연 얼굴 분포를 모르기 때문
마스크 벡터 조작 (Figure 7) 올바른 마스크 $(0,1)$ 이면 표정이 바뀌지만, 잘못된 마스크 $(1,0)$ 을 주면 표정 대신 나이가 바뀜. 생성기가 마스크를 실제로 사용한다는 증거

Figure 7

💡 Key Takeaway 마스크 벡터는 “이 라벨 블록은 유효하고 저 블록은 무시하라” 는 한 비트짜리 신호입니다. 이 신호 덕분에 라벨이 없는 데이터셋끼리도 한 모델에서 학습되고, 작은 데이터셋(RaFD)이 큰 데이터셋(CelebA)의 얼굴 분포를 빌려 쓸 수 있습니다.

네트워크 구조와 학습 설정

StarGAN의 네트워크는 CycleGAN의 생성기와 PatchGAN 판별기를 거의 그대로 가져오되, 조건 입력과 보조 분류기를 더한 것입니다(Section 4, 부록 Table 4–5). 새로움은 구조가 아니라 손실과 학습 방식에 있습니다.


🏗️ 1. 생성기 (Table 4)

단계 층 채널
입력 이미지 $(3)$ + 공간 복제된 라벨 $(n_c)$ 채널 연결 $3+n_c$
다운샘플 7×7 conv → 4×4 stride-2 conv ×2 64 → 128 → 256
병목 잔차 블록 ×6 (3×3 conv) 256
업샘플 4×4 stride-2 transposed conv ×2 128 → 64
출력 7×7 conv, Tanh 3

출력층을 제외한 모든 층에 인스턴스 정규화를 씁니다. 라벨을 공간 복제해 입력에 붙이는 방식은 단순하지만, 이후 StarGAN v2에서 AdaIN 기반 스타일 주입으로 대체됩니다.


🕵️ 2. 판별기 (Table 5)

단계 층 채널
특징 추출 4×4 stride-2 conv ×6, LeakyReLU(0.01), 정규화 없음 64 → 128 → 256 → 512 → 1024 → 2048
$D_{src}$ 3×3 conv → 1채널 PatchGAN 출력 국소 패치별 진위
$D_{cls}$ $h/64\times w/64$ 크기 conv → $n_d$ 채널 도메인 분류

PatchGAN은 이미지 전체가 아니라 국소 패치의 진위를 판정하여 고주파 세부에 집중합니다. 두 출력이 특징 추출기를 공유하므로 분류에 쓰이는 특징이 진위 판별에도 쓰입니다.


🛡️ 3. WGAN-GP 적대 손실 (Eq. 8)

학습 안정화와 품질 향상을 위해 Eq. 1을 Wasserstein 거리 + 그래디언트 페널티로 바꿉니다.

\[\mathcal{L}_{adv}=\mathbb{E}_x\big[D_{src}(x)\big]-\mathbb{E}_{x,c}\big[D_{src}(G(x,c))\big]-\lambda_{gp}\,\mathbb{E}_{\hat x}\Big[\big(\|\nabla_{\hat x}D_{src}(\hat x)\|_2-1\big)^2\Big]\]

$\hat x$ 는 진짜 이미지와 생성 이미지 쌍을 잇는 직선 위에서 균등 샘플링하며, $\lambda_{gp}=10$ 입니다. 판별기에 정규화 층이 없는 것도 WGAN-GP의 권고를 따른 것입니다.


⚙️ 4. 학습 설정 (Section 4.3)

항목 값
최적화 Adam, $\beta_1=0.5$, $\beta_2=0.999$
배치 16
판별기/생성기 갱신 비 5 : 1
학습률 (CelebA) 0.0001로 10 epoch, 이후 10 epoch 동안 선형 감소
학습률 (RaFD) 0.0001로 100 epoch, 이후 100 epoch 동안 선형 감소 (데이터 부족 보상)
증강 수평 뒤집기 확률 0.5
하드웨어 NVIDIA Tesla M40 1장, 약 1일 (256×256 다중 데이터셋 모델은 약 7일)

💡 Key Takeaway 구조는 CycleGAN 생성기 + PatchGAN 판별기 + 보조 분류기 로 거의 표준 부품입니다. StarGAN의 기여가 아키텍처가 아니라 조건화와 손실 설계에 있다는 점을 보여줍니다.

실험: CelebA 속성 변환과 RaFD 표정 합성

평가는 두 데이터셋, 세 가지 방식(AMT 지각 평가, 분류 오류율, 파라미터 수)으로 이루어집니다(Section 5). 비교 대상 DIAT, CycleGAN, IcGAN은 모두 2-도메인 모델이므로 도메인 쌍마다 따로 학습했습니다.


🗂️ 1. 데이터셋 (Section 4.1)

데이터셋 규모 사용 라벨 전처리
CelebA 202,599장, 40개 이진 속성 머리색(검정/금발/갈색), 성별, 나이 → 7개 도메인 178×218 → 178×178 크롭 → 128×128, 테스트 2,000장
RaFD 67명, 4,824장 8가지 표정 (분노, 경멸, 혐오, 공포, 행복, 슬픔, 놀람, 중립) 얼굴 중심 256×256 크롭 → 128×128

👥 2. CelebA: AMT 지각 평가 (Table 1, 2, Figure 4)

Figure 4

평가자는 사실성, 속성 변환 품질, 정체성 보존을 기준으로 네 방법 중 최선을 골랐습니다. 단일 속성 146명, 다중 속성 100명이 각각 30~40문항(검증 문항 포함)에 답했습니다.

Table 1

단일 속성 (득표 %) 머리색 성별 나이
DIAT 9.3 31.4 6.9
CycleGAN 20.0 16.6 13.3
IcGAN 4.5 12.9 9.2
StarGAN 66.2 39.1 70.6
다중 속성 (득표 %) 머리색+성별 머리색+나이 성별+나이 셋 모두
DIAT 20.4 15.6 18.7 15.6
CycleGAN 14.0 12.0 11.2 11.9
IcGAN 18.2 10.9 20.3 20.3
StarGAN 47.4 61.5 49.8 52.2

성별 변환에서 DIAT와의 차이는 작았습니다(39.1% vs. 31.4%). 다중 속성에서 StarGAN의 우위가 더 큰 것은, 2-도메인 모델이 여러 속성을 바꾸려면 변환을 여러 번 연쇄해야 해서 오류가 누적되는 반면 StarGAN은 한 번에 처리하기 때문입니다. 정성적으로(Figure 4) DIAT와 CycleGAN은 선명도가 떨어지고 흐릿하며, IcGAN은 정체성 보존에 실패하는 경우가 많았습니다.


🎭 3. RaFD: 분류 오류율과 파라미터 수 (Table 3, Figure 5)

Figure 5

중립 표정을 입력으로 나머지 7개 표정으로 변환하고, 실제 RaFD로 학습한 ResNet-18 분류기(실제 이미지 정확도 99.55%)로 생성 이미지의 표정을 분류했습니다.

방법 분류 오류율 (%) 파라미터 수
DIAT 4.10 52.6M × 7
CycleGAN 5.99 52.6M × 14
IcGAN 8.07 67.8M × 1
StarGAN 2.12 53.2M × 1
실제 이미지 0.45 –

StarGAN은 가장 낮은 오류율을 하나의 모델로 달성했습니다. DIAT는 중립→표정 7쌍, CycleGAN은 양방향 14개 생성기가 필요합니다. 저자들은 RaFD가 도메인당 약 500장에 불과한 상황에서 StarGAN이 모든 도메인 데이터를 한 생성기가 보는 다중 과제 학습의 정규화 효과 덕분에 더 좋은 품질을 냈다고 해석합니다.

💡 Key Takeaway 평가 결과는 “모델을 하나로 합치면 품질이 떨어진다”는 우려를 뒤집습니다. 데이터 전체를 보는 단일 생성기가 품질(오류율 2.12%)과 효율(파라미터 1/7~1/14)을 동시에 얻었습니다.

한계와 열린 방향

StarGAN은 다중 도메인 변환의 기준 모델이 되었지만, 설계상의 한계가 뚜렷했고 그 한계가 2년 뒤 StarGAN v2의 설계 동기가 되었습니다.


⚠️ 1. 한계

  • 결정론적 일대일 변환: 입력과 목표 라벨이 같으면 항상 같은 출력이 나옵니다. “금발”이라는 도메인 안에도 다양한 금발 스타일이 있지만 StarGAN은 도메인당 하나의 결과만 냅니다. 다양성(diversity)이 없습니다.
  • 라벨은 사람이 정의한 이산 속성: 변환할 수 있는 것은 데이터셋에 라벨로 주어진 속성뿐입니다. 라벨이 없는 스타일(헤어스타일 세부, 화장 등)은 제어할 수 없고, 참조 이미지로부터 스타일을 가져오는 것도 불가능합니다.
  • 라벨 주입 방식의 한계: 라벨을 공간 복제해 입력에 붙이는 방식은 단순하지만, 생성기 깊은 층까지 조건 정보를 전달하기에 약합니다.
  • 평가의 한계: AMT 평가는 참가자 수가 제한적이고, RaFD 평가는 분류기 하나에 의존합니다. FID 같은 분포 수준 지표가 없어 품질과 다양성을 객관적으로 비교하기 어렵습니다.
  • 실험 범위: 데이터셋 2개, 속성 소수에 그칩니다. 논문에 별도의 한계 절은 없으며 위 항목 대부분은 후속 연구에서 지적된 것입니다.
  • 논문 자체가 언급한 제약: RaFD는 도메인당 약 500장으로 작아 단독 학습 시 품질이 제한됩니다. 공동 학습이 이를 완화했지만 근본 해법은 아닙니다.

🔭 2. StarGAN v2로의 연결

StarGAN의 한계 StarGAN v2 (Choi et al., CVPR 2020)의 해법
도메인당 하나의 출력 스타일 코드 $s$ 를 도입해 같은 도메인 안에서 다양한 출력 생성
라벨만으로 조건화 매핑 네트워크 $F$ (잠재 → 스타일)와 스타일 인코더 $E$ (참조 이미지 → 스타일)로 잠재 기반·참조 기반 합성 모두 지원
라벨 공간 복제 입력 AdaIN 으로 스타일 코드를 생성기에 주입
단일 분류 헤드 도메인별 출력 분기를 가진 다중 과제 판별기
다양성 측정 부재 FID + LPIPS 로 품질과 다양성을 함께 평가

StarGAN v2의 Table 1은 StarGAN 기준선(FID 98.4)에서 시작해 각 요소를 추가하며 FID 13.7까지 내려가는 과정을 보여주는데, 이는 곧 StarGAN의 한계 목록을 하나씩 지워 나간 기록입니다.


🧭 3. 이 논문의 위치

StarGAN은 “조건 라벨 + 보조 분류기 + 순환 일관성” 이라는 조합으로 다중 도메인 변환을 정의한 논문입니다. 이후 다중 도메인 변환 연구(StarGAN v2, DRIT++, AttGAN, STGAN, RelGAN 등)는 대부분 이 틀을 기준선으로 삼았고, 마스크 벡터 방식의 부분 라벨 학습은 다중 데이터셋 공동 학습의 간단한 선례로 남았습니다.

💡 Key Takeaway StarGAN은 확장성 문제를 풀었지만 다양성 문제는 남겼습니다. “도메인 라벨”에서 “스타일 코드”로의 전환이 StarGAN v2의 핵심이며, 그 출발점이 바로 이 논문의 결정론적 일대일 변환이라는 한계입니다.