- 참고 문헌(논문) : "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 확보