[논문 학습] CycleGAN (251120)

WonTerry·2025년 11월 20일

Deep Learning

목록 보기
1/26
  • 참고 문헌(논문) : "Unified Microphone Conversion: Many-to-Many Device Mapping via Feature-wise Linear Modulation", (Deeply Inc., 2025)
  • 참고 문헌(도서) : "딥러닝 파이토치 교과서", (pp. 730~, 서지영, 2022)

PIX2PIX 에서 CycleGAN 으로

  • 데이터 쌍이 필요하다는 단점이 있다. 신발의 외곽선(에지)마나 표현된 이미지에서 완전한 신발 이미지를 생성하고 싶다면, 신발의 외곽선(에지)이미지(Xi)와 실제 신발 이미지(Yi)에 대한 데이터 쌍이 필요하다.
  • 쌍을 이루지 않는 이미지(unpaired image)로 학습할 수 있는 방법이 필요한데, 이때 사용하는 것이 CycleGAN이다.

Cycle GAN

  • CycleGAN은 짝지어진 데이터(paired data) 없이, 서로 다른 두 도메인 A ↔ B 사이를 변환하는 모델이다. 예를 들어 "말 사진 → 얼룩말 사진", "여름 사진 → 겨울 사진"으로 변환하는 모델이다.
  • 핵심 구성 요소

    Generator G(A→B)
    Generator F(B→A)
    Discriminator D_A, D_B
    Cycle Consistency Loss

Forward Translation

Generator G는 도메인 A 이미지를 입력받아, 도메인 B 스타일로 변환한 결과를 생성한다.
Discriminator D_B는 “진짜 B인지 / G가 만든 가짜 B인지” 구분하며 학습한다.
즉, G는 D_B를 속이도록 학습된다.

Backword Translation

반대로 Generator F는 B 이미지를 A 스타일로 변환하고,
Discriminator D_A가 이를 감시하며 학습한다.

순환 일관성(Cycle Consistency Loss)

A 이미지를 G를 거쳐 B'가 되고, 다시 F를 거쳐 A'가 되는데
A'가 A와 거의 동일해야 한다는 규칙이다.

A → G(A)=B' → F(B')=A'
B → F(B)=A' → G(A')=B'

이 규칙 덕분에 쌍(pair)이 없어도 학습이 가능하다.


CycleGAN은 PIX2PIX처럼 생성자 하나, 판별자 하나를 사용하는 대신 생성자 둘, 판별자 둘을 사용한다.
생성자를 학습할 때는 손실함수 Lcy를 사용한다.


논문 연구

  • 논문에서는 “마이크(또는 기기)별 녹음 특성 차이 때문에 음향 모델이 오류를 내는 문제”를 해결하려고 한다.
  • 기기 A로 녹음된 소리를 마치 기기 B로 녹음된 것 같은 사운드로 변환(generation) 하고 싶다. 그래서 이전 연구에서는 마이크 A ↔ 마이크 B 변환을 위해 CycleGAN 구조를 사용했다.
  • 이 방식의 문제는, “기기마다 따로 CycleGAN을 만들어야 한다"는 문제점이 있다.

iPhone→Galaxy 변환 모델
Galaxy→iPad 변환 모델
iPad→Apple Watch 변환 모델

기기 수가 많아지면 모델이 기하급수적으로 늘어나며, 이 문제가 논문 전체의 출발점이다.

  • CycleGAN 기반 이전 방식은 두 기기 간 1:1 변환 모델을 기기마다 따로 훈련해야 한다.
    이는 확장성이 낮다.
    → 하나의 통합 CycleGAN 생성기(Generator) + 기기 특성(주파수 응답)을 넣기 위한 FiLM conditioning → 어떤 기기 → 어떤 기기로든 변환 가능 (many-to-many)

바로 이 점에서 이 논문은 CycleGAN을 능가하는 구조를 제안한다.

논문에서 제시한 Unified Microphone Conversion

기존 CycleGAN,

  • 두 도메인 A ↔ B
  • Generator 2개(G_AB, G_BA), Discriminator 2개

논문에서 제안한 구조,

  • Generator는 하나만 사용
  • Discriminator는 기기 수만큼(k개) 준비
  • Generator 내부에 FiLM Encoder가 추가되어 기기 특성을 조절

논문에서 Generator는 입력으로 다음 두 가지를 받는다.

  • 입력 스펙트로그램(audio spectrogram)
  • 기기 간 주파수 응답 차이(frequency response diference) : 타깃 기기-입력 기기 주파수 응답 계산

FiLM Encoder

  • FiLM(Feature-wise Linear Modulation)은,
    중간 feature map에 대해 (scale γ, shift β) 값을 적용하여 모델 동작을 조정하는 방법이다.
  • 논문에서는 FiLM Encoder가,

주파수 응답 차이 → (γ, β) 출력,
Generator의 특정 레이어(첫 Residual Block)의 feature map을 조절 한다는 점이 핵심이다.

즉,
“기기마다 다른 색깔 렌즈를 끼워서 Generator가 다르게 행동하게 만드는 것”이다.

Cycle Consistency는 유지

  • CycleGAN의 가장 중요한 특징인 “cycle consistency loss”는 그대로 유지된다.
    논문에서 cycle loss weight=10으로 강조한다.
  • 입력 → 타깃 기기 변환 → 다시 원래 기기 변환
    이 원본에 가까워야 한다는 규칙을 유지해 CycleGAN의 강점을 이용한다.

Synthetic Frequency Response Difference

  • 여기서 또 중요한 공헌점이 등장하는데, 실제 기기별 주파수 응답을 얻는 것은 어렵다는 점에서,
    그논문은 합성된(fake) 주파수 응답 곡선을 랜덤 생성하는 방법을 제안한다. (논문 3.3)
  • 이렇게 얻은 synthetic response difference를 FiLM Encoder에 넣어서
    더 다양한 데이터 변환을 만들고
    → SEC(Sound Event Classification) 모델의 일반화 성능이 더 올라간다.

논문의 의미 (정리)

✔ ① CycleGAN의 한계를 극복한 Many-to-Many 변환
기존: 기기 A↔B 모델 따로 훈련 → 기기 수 많아지면 불가능
논문: 단일 Generator + FiLM = 모든 기기 변환 가능

✔ ② 주파수 응답 특성을 직접 활용
단순 스타일 변환이 아니라
실제 오디오 기기 특성(주파수 응답)을 수치적으로 반영

✔ ③ Synthetic Response로 확장성 극대화
측정 장비 없이 다양한 기기 환경을 학습에 포함 가능
실용성 매우 높음(산업 관점에서 큰 장점)

✔ ④ SEC(Sound Event Classification) 성능 향상
다양한 기기에서 녹음된 소리를 잘 분류할 수 있게 함
기존 방법 대비 높은 F1-score 확보

profile
Hello, I'm Terry! 👋 Enjoy every moment of your life! 🌱 My current interests are Signal processing, Machine learning, Python, Database, LLM & RAG, MCP & ADK, Multi-Agents, Physical AI, ROS2...

0개의 댓글