생성적 적대 신경망

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

생성적 적대 신경망(GAN)은 1991년 제안된 인공지능 모델로, 두 개의 신경망, 즉 생성자(generator)와 감별자(discriminator)를 경쟁적으로 학습시켜 데이터의 특징을 학습하고 새로운 데이터를 생성하는 기술이다. 생성자는 실제 데이터와 유사한 데이터를 생성하려 하고, 감별자는 생성된 데이터와 실제 데이터를 구별하도록 훈련된다. GAN은 이미지, 비디오, 오디오 등 다양한 데이터를 생성하는 데 사용되며, 과학, 의료, 예술, 엔터테인먼트 등 여러 분야에서 응용되고 있다. GAN은 훈련의 불안정성, 모드 붕괴 등의 문제점을 가지고 있으며, 이를 해결하기 위한 다양한 변형과 기술들이 개발되었다.

생성적 적대 신경망
📚 더 읽어볼만한 페이지
  • 비지도 학습 - 챗GPT
    챗GPT는 오픈AI가 개발한 GPT-3.5 기반의 대화형 인공지능 서비스로, 인간과 유사한 텍스트 생성, 코드 생성, 보고서 작성, 번역 등의 다양한 기능을 제공하지만, 편향된 정보 생성, 데이터 유출, 윤리 및 저작권 문제 등의 논란도 있으며, 유료 서비스를 포함한 다양한 형태로 제공되고, 지속적인 모델 개발을 통해 성능을 향상시키고 있다.
  • 비지도 학습 - 환각 (인공지능)
    인공지능 환각은 인공지능이 사실이 아닌 정보를 사실처럼 생성하는 현상으로, 대규모 언어 모델의 부정확한 정보 생성 문제를 설명하기 위해 사용되며, 데이터 불일치, 모델 오류, 훈련 데이터 부족 등이 원인으로 발생하여 다양한 완화 기술이 연구되고 있다.
  • 인지과학 - 연결주의
    연결주의는 정신 현상을 단순한 단위들의 네트워크로 설명하는 인공지능 및 인지과학의 접근 방식이며, 뇌의 뉴런을 모방한 인공 신경망을 기반으로 학습을 통해 지식을 습득하고 다양한 분야에 응용된다.
  • 인지과학 - 마음
    마음은 의식, 사고, 지각, 감정, 동기, 행동, 기억, 학습 등을 포괄하는 심리적 현상과 능력의 총체이며, 다양한 분야에서 연구되고 인간 삶의 중추적인 역할을 한다.
  • 인공신경망 - 인공 뉴런
    인공 뉴런은 인공신경망의 기본 요소로서, 입력 신호에 가중치를 곱하고 합산하여 활성화 함수를 거쳐 출력을 생성하며, 생물학적 뉴런을 모방하여 설계되었다.
  • 인공신경망 - 퍼셉트론
    퍼셉트론은 프랭크 로젠블랫이 고안한 인공신경망 모델로, 입력 벡터에 가중치를 곱하고 편향을 더한 값을 활성화 함수에 통과시켜 이진 분류를 수행하는 선형 분류기 학습 알고리즘이며, 초기 신경망 연구의 중요한 모델로서 역사적 의미를 가진다.

2. 정의

2.1. 수학적 정의

원래의 GAN은 다음과 같은 게임으로 정의된다.

확률 공간 (\Omega, \mu_{\text{ref}})는 GAN 게임을 정의한다.

두 명의 플레이어가 있다: 생성자(generator)와 감별자(discriminator).

생성자의 전략 집합\mathcal P(\Omega)이며, 이는 \Omega상의 모든 확률 측도 \mu_G의 집합이다.

감별자의 전략 집합은 마르코프 커널 \mu_D: \Omega \to \mathcal P[0, 1]의 집합이며, 여기서 \mathcal P[0, 1][0, 1]상의 확률 측도 집합이다.

GAN 게임은 영합 게임이며, 목표 함수는 다음과 같다.

L(\mu_G, \mu_D) := \operatorname E_{x\sim \mu_{\text{ref}}, y\sim \mu_D(x)}[\ln y] + \operatorname E_{x\sim \mu_G, y\sim \mu_D(x)}[\ln (1-y)].

생성자는 목표를 최소화하는 것을 목표로 하며, 감별자는 목표를 최대화하는 것을 목표로 한다. 생성자의 과제는 \mu_G \approx \mu_{\text{ref}}에 접근하는 것이며, 이는 자신의 출력 분포를 기준 분포에 가능한 가깝게 일치시키는 것이다. 감별자의 과제는 입력이 기준 분포에서 온 것으로 보일 때 1에 가까운 값을 출력하고, 입력이 생성자 분포에서 온 것처럼 보일 때 0에 가까운 값을 출력하는 것이다.

2.2. 실제 구현

생성 네트워크는 후보를 생성하고, 판별 네트워크는 이를 평가한다. 이 경쟁은 데이터 분포를 기반으로 작동한다. 일반적으로 생성 네트워크는 잠재 공간에서 관심 데이터 분포로 매핑하는 방법을 학습하고, 판별 네트워크는 생성기가 생성한 후보와 실제 데이터 분포를 구별한다. 생성 네트워크의 훈련 목표는 판별 네트워크의 오류율을 높이는 것이다(즉, 판별자가 합성되지 않았다고 생각하는(즉, 실제 데이터 분포의 일부인) 새로운 후보를 생성하여 판별 네트워크를 "속이는" 것이다).

알려진 데이터 세트는 판별기의 초기 훈련 데이터로 사용된다. 훈련에는 판별기에 훈련 데이터 세트의 샘플을 제시하여 허용 가능한 정확도를 얻을 때까지 진행된다. 생성기는 판별기를 속이는 데 성공하는지에 따라 훈련된다. 일반적으로 생성기는 미리 정의된 잠재 공간(예: 다변량 정규 분포)에서 샘플링된 무작위 입력으로 시드된다. 그 후, 생성기에 의해 합성된 후보는 판별기에 의해 평가된다. 생성기가 더 나은 샘플을 생성하고 판별기가 합성 샘플을 플래그 지정하는 데 더 능숙해지도록 독립적인 역전파 절차가 두 네트워크 모두에 적용된다. 이미지 생성에 사용될 때, 생성기는 일반적으로 디컨볼루션 신경망이고, 판별기는 컨볼루션 신경망이다.

3. 수학적 특징

3.1. 전략 집합 선택

가장 일반적인 버전의 생성적 적대 신경망(GAN) 게임에서 판별자의 전략 집합은 모든 마르코프 커널 \mu_D: \Omega \to {\mathcal {P}}[0,1]을 포함하고, 생성자의 전략 집합은 \Omega에 대한 임의의 확률 분포 \mu_G를 포함한다.

그러나 임의의 \mu_G에 대한 최적의 판별자 전략은 결정적이므로, 판별자의 전략을 결정적 함수 D:\Omega \to [0, 1]로 제한해도 일반성을 잃지 않는다. 대부분의 응용 분야에서 D는 심층 신경망 함수이다.

생성자의 경우, \mu_G는 이론적으로 계산 가능한 임의의 확률 분포일 수 있지만, 실제로 이는 일반적으로 푸시포워드 측도로 구현된다. 즉, \mu_G = \mu_Z \circ G^{-1}이다. 이는 계산하기 쉬운 확률 분포 (예: 균등 분포 또는 정규 분포)인 \mu_Z로부터의 확률 변수 z \sim \mu_Z로 시작하여 함수 G: \Omega_Z \to \Omega를 정의하는 방식이다. 그러면 분포 \mu_GG(z)의 분포가 된다.

결과적으로, 생성자의 전략은 일반적으로 G로 정의되며, z \sim \mu_Z는 암묵적으로 남겨둔다. 이러한 형식론에서 GAN 게임 목표는 다음과 같다.L(G, D) := \operatorname E_{x\sim \mu_{\text{ref}}}[\ln D(x)] + \operatorname E_{z\sim \mu_Z}[\ln (1-D(G(z)))].

3.2. 생성 재매개변수화

GAN 아키텍처는 최적화를 \min_G \max_D L(G, D) 형태의 게임으로 변환한다. 이는 \min_\theta L(\theta) 형태의 일반적인 최적화와는 다르다. 또한, \mu_G \mu_Z \circ G^{-1}로 분해하는데, 이는 재매개변수화 트릭으로 이해할 수 있다.

GAN 이전의 생성 모델 학습 방법들은 "최대 우도 추정 및 관련 전략에서 발생하는 다루기 어려운 확률적 계산"으로 어려움을 겪었다.

한편, 킹마(Kingma)와 웰링(Welling), 레젠데(Rezende) 등은 재매개변수화라는 동일한 아이디어를 일반적인 확률적 역전파 방법으로 발전시켰으며, 초기 응용 분야 중 하나는 변분 오토인코더였다.

3.3. 이동 순서 및 전략적 균형

원 논문과 대부분의 후속 논문에서는 일반적으로 생성자(generator)가 "먼저 움직이고", 판별자(discriminator)가 "두 번째로 움직인다"고 가정하며, 이는 다음과 같은 미니맥스 게임을 제공한다:\min_{\mu_G}\max_{\mu_D} L(\mu_G, \mu_D) := \operatorname E_{x\sim \mu_{\text{ref}}, y\sim \mu_D(x)}[\ln y] + \operatorname E_{x\sim \mu_G, y\sim \mu_D(x)}[\ln (1-y)].

생성자와 판별자의 전략 집합이 모두 유한한 수의 전략으로 구성되어 있다면, 미니맥스 정리에 의해\min_{\mu_G}\max_{\mu_D} L(\mu_G, \mu_D)= \max_{\mu_D}\min_{\mu_G} L(\mu_G, \mu_D)즉, 이동 순서는 중요하지 않다.

그러나 전략 집합이 모두 유한하게 구성되지 않기 때문에 미니맥스 정리가 적용되지 않으며, "균형(equilibrium)"의 개념은 섬세해진다. 즉, 다음과 같은 여러 가지 다른 균형 개념이 있다.

* 생성자가 먼저 움직이고 판별자가 두 번째로 움직일 때의 균형:\hat \mu_G \in \arg\min_{\mu_G}\max_{\mu_D} L(\mu_G,\mu_D),\quad
\hat \mu_D \in \arg\max_{\mu_D} L(\hat\mu_G, \mu_D), \quad

* 판별자가 먼저 움직이고 생성자가 두 번째로 움직일 때의 균형:\hat \mu_D \in \arg\max_{\mu_D}\min_{\mu_G} L(\mu_G, \mu_D), \quad
\hat \mu_G \in \arg\min_{\mu_G} L(\mu_G,\hat \mu_D),
* 내쉬 균형 (\hat \mu_D, \hat\mu_G)
, 이는 동시 이동 순서에서 안정적이다:\hat \mu_D \in \arg\max_{\mu_D} L(\hat\mu_G, \mu_D), \quad \hat \mu_G \in \arg\min_{\mu_G} L(\mu_G, \hat\mu_D)

일반적인 게임의 경우, 이러한 균형은 일치하지 않거나 심지어 존재하지 않을 수도 있다. 원래 GAN 게임의 경우, 이러한 균형은 모두 존재하며 모두 동일하다. 그러나 보다 일반적인 GAN 게임의 경우, 이러한 균형이 반드시 존재하거나 일치하지는 않는다.

3.4. 주요 정리

생성적 적대 신경망(GAN)의 원래 논문은 두 가지 주요 정리를 증명했다.

정리: 고정된 생성자 전략 \mu_G에 대해, 최적의 판별자 D^* = \arg\max_{D} L(\mu_G, D)는 다음과 같다.

\begin{align}
D^*(x) &= \frac{d\mu_{\text{ref}}}{d(\mu_{\text{ref}} + \mu_G)}\\[6pt]
L(\mu_G, D^*) &= 2D_{JS}(\mu_{\text{ref}}; \mu_G) - 2\ln 2
\end{align}

여기서 미분은 라돈-니코딤 미분이고, D_{JS}는 젠센-섀넌 발산이다. 즉, 최적의 판별자는 젠센-섀넌 발산을 계산한다.

해석: 고정된 생성자 전략 \mu_G에 대해, 최적의 판별자는 기준 분포와 생성자 분포 간의 우도 비를 추적한다.

:\frac{D(x)}{1-D(x)} = \frac{d\mu_{\text{ref}}}{d\mu_G}(x) = \frac{\mu_{\text{ref}}(dx)}{\mu_G(dx)}; \quad D(x) = \sigma(\ln\mu_{\text{ref}}(dx) - \ln\mu_G(dx))

:여기서 \sigma로지스틱 함수이다.

특히, 이미지가 기준 분포에서 나올 사전 확률이 \frac 12와 같다면, D(x)x가 기준 분포에서 나왔을 사후 확률이다.

:D(x) = \Pr(x \text{는 기준 분포에서 나왔다} \mid x).

정리: 임의의 GAN 게임에 대해, 시퀀셜 평형이자 내쉬 균형인 쌍 (\hat\mu_D, \hat\mu_G)가 존재한다.

\begin{align}
& L(\hat\mu_G, \hat\mu_D) = \min_{\mu_G}\max_{\mu_D} L(\mu_G, \mu_D) =& \max_{\mu_D}\min_{\mu_G} L(\mu_G, \mu_D) = -2\ln 2\\[6pt]
& \hat \mu_D \in \arg\max_{\mu_D}\min_{\mu_G} L(\mu_G, \mu_D), &\quad \hat \mu_G \in \arg\min_{\mu_G}\max_{\mu_D} L(\mu_G, \mu_D)\\[6pt]
& \hat \mu_D \in \arg\max_{\mu_D} L(\hat\mu_G, \mu_D), &\quad \hat \mu_G \in \arg\min_{\mu_G} L(\mu_G, \hat\mu_D)\\[6pt]
& \forall x\in \Omega, \hat \mu_D(x) = \delta_{\frac 1 2}, &\quad\hat \mu_G = \mu_{\text{ref}}
\end{align}


즉, 생성자는 기준을 완벽하게 모방하고, 판별자는 모든 입력에 대해 결정적으로 \frac 12를 출력한다. 이는 고유한 평형점이다.

4. 학습 및 평가

4.1. 불안정한 수렴

생성적 적대 신경망(GAN) 게임은 생성자와 판별자 모두 전체 전략 집합에 접근할 수 있을 때 고유한 전역 평형점을 갖지만, 제한된 전략 집합을 가질 때는 더 이상 평형이 보장되지 않는다.

실제로 생성자는 매개변수 \theta를 가진 신경망에 의해 계산된 함수인 G_\theta가 균등 분포 또는 정규 분포와 같이 쉽게 샘플링된 분포인 \mu_Z \circ G_\theta^{-1} 형태의 측정값에만 접근할 수 있다. 판별자는 매개변수 \zeta를 가진 신경망에 의해 계산된 함수인 D_\zeta 형태의 함수에만 접근할 수 있다. 이러한 제한된 전략 집합은 전체 전략 집합의 "극히 작은 부분"을 차지한다.

평형이 존재하더라도 모든 가능한 신경망 함수의 고차원 공간에서 검색해야만 찾을 수 있다. 평형을 찾기 위해 경사 하강법을 사용하는 표준 전략은 GAN에 대해 종종 작동하지 않으며, 종종 게임이 여러 실패 모드 중 하나로 "붕괴"된다. 수렴 안정성을 개선하기 위해 일부 훈련 전략은 저해상도 이미지 또는 단순한 이미지(균일한 배경의 객체 하나)를 생성하는 것과 같이 더 쉬운 작업으로 시작하여 훈련 중에 작업의 난이도를 점차적으로 높인다. 이것은 본질적으로 교육과정 학습 방식을 적용하는 것으로 해석된다.

4.2. 모드 붕괴 (Mode Collapse)

GAN은 제대로 일반화하지 못하고 입력 데이터에서 전체 모드를 놓치는 모드 붕괴로 어려움을 겪는 경우가 많다. 예를 들어, 각 숫자의 많은 샘플을 포함하는 MNIST 데이터 세트에 대해 훈련된 GAN은 숫자 0의 그림만 생성할 수 있다. 이를 "헬베티카 시나리오"라고 불렀다.

이것이 일어날 수 있는 한 가지 방법은 생성기가 판별기보다 너무 빨리 학습하는 경우이다. 판별기 D가 일정하게 유지되면 최적의 생성기는 \arg\max_x D(x)의 요소만 출력한다. 예를 들어, MNIST 데이터 세트를 생성하기 위한 GAN 훈련 중에 몇 번의 에포크 동안 판별기가 다른 숫자보다 숫자 0을 약간 더 선호하는 경우 생성기는 숫자 0만 생성할 기회를 잡을 수 있으며, 판별기가 개선된 후 로컬 최솟값에서 벗어날 수 없다.

일부 연구자는 근본적인 문제를 누락 패턴을 감지하지 못하는 약한 판별 네트워크로 인식하는 반면, 다른 연구자는 목적 함수의 잘못된 선택을 탓한다. 많은 해결책이 제안되었지만, 이는 여전히 미해결 문제로 남아 있다.

최첨단 아키텍처인 BigGAN(2019)조차도 모드 붕괴를 피할 수 없었다. 저자들은 "모델이 좋은 결과를 얻을 수 있을 만큼 충분히 훈련된 시점에, 훈련의 후반 단계에서 붕괴가 발생하도록 허용"하는 방법으로 해결했다.

4.3. 두 시점 갱신 규칙 (TTUR)

두 시점 갱신 규칙(TTUR)은 생성적 적대 신경망(GAN)의 수렴을 안정화하기 위해 제안된 방법이다. 생성자의 학습률을 판별자의 학습률보다 낮게 설정하는 것이 핵심이다. 생성자가 판별자보다 천천히 학습하도록 하여, 생성자가 "판별자가 수집한 정보를 포착하지 않고 지속적으로 새로운 영역으로 몰아넣는 것"을 방지한다.

TTUR 하에서 훈련된 GAN을 포함한 일반적인 게임들은 온건한 가정 하에서 정지된 국소 내쉬 균형으로 수렴한다는 것이 증명되었다.

또한, 아담 확률적 최적화를 사용하여 모드 붕괴(mode collapse)를 방지하고, GAN의 성능 평가를 위해 프레셰 시작 거리(Fréchet inception distance)를 사용할 것을 제안했다.

4.4. 기울기 소실 (Vanishing Gradient)

판별자가 생성자에 비해 너무 빠르게 학습하면, 판별자는 \mu_{G_\theta}, \mu_{\text{ref}}를 거의 완벽하게 구별할 수 있게 된다. 이 경우, 생성자 G_\theta\theta를 어떤 방향으로 변경하더라도 손실이 매우 높은 상태로 고정될 수 있으며, 이는 기울기 \nabla_\theta L(G_\theta, D_\zeta)가 0에 가까워진다는 것을 의미한다. 이러한 경우 생성자는 학습할 수 없으며, 이는 기울기 소실 문제이다.

직관적으로 말하면, 판별자가 너무 뛰어나 생성자는 그 보상을 개선하기 위해 어떤 작은 단계도 취할 수 없기 때문에 (경사 하강법에서는 작은 단계만 고려된다) 시도조차 하지 않는 상황이 발생한다.

이 문제를 해결하는 한 가지 중요한 방법은 Wasserstein GAN이다.

4.5. 평가

GAN(생성적 적대 신경망)은 일반적으로 생성기의 출력이 얼마나 다양한지 측정하는 Inception 점수(IS) 또는 생성기의 출력이 참조 세트와 얼마나 유사한지를 측정하는 Fréchet inception distance(FID)로 평가된다. Inception 점수는 Inception-v3와 같은 이미지 분류기에 의해, Fréchet inception distance는 최종 레이어가 없는 Inception-v3와 같은 학습된 이미지 특징 추출기에 의해 분류된다. 이미지 생성을 위한 새로운 GAN 아키텍처를 제안하는 많은 논문에서는 해당 아키텍처가 FID 또는 IS에서 최첨단 기술을 어떻게 갱신하는지 보고한다.

또 다른 평가 방법은 학습된 지각적 이미지 패치 유사성(LPIPS)이다. 이는 학습된 이미지 특징 추출기 f_\theta: \text{Image} \to \R^n로 시작하여, (x, x', \operatorname{perceptual~difference}(x, x')) 집합에 대한 지도 학습을 통해 미세 조정된다. 여기서 x는 이미지이고, x'는 해당 이미지의 변형된 버전이며, \operatorname{perceptual~difference}(x, x')는 피험자가 보고한 대로 얼마나 다른지를 나타낸다. 모델은 \|f_\theta(x) - f_\theta(x')\| \approx \operatorname{perceptual~difference}(x, x')를 근사하도록 미세 조정된다. 그런 다음 이 미세 조정된 모델을 사용하여 \operatorname{LPIPS}(x, x') := \|f_\theta(x) - f_\theta(x')\| 를 정의한다.

다른 평가 방법은 에서 검토된다.

5. 변형

GAN(Generative Adversarial Networks, 생성적 적대 신경망)에는 다양한 변종들이 존재한다. 가장 두드러진 변종들은 다음과 같다.

=== 조건부 GAN (Conditional GAN, cGAN) ===
조건부 생성적 적대 신경망(Conditional GAN, cGAN)은 표준 GAN과 유사하지만, 추가 정보를 기반으로 샘플을 조건부로 생성할 수 있다. 예를 들어, 강아지 사진이 주어졌을 때 고양이 얼굴을 생성하는 데 조건부 GAN을 사용할 수 있다.

GAN 게임의 생성자는 \\(\Omega\\) 확률 공간에서 확률 분포 \\(\mu_G\\)를 생성한다. 조건부 GAN은 각 주어진 클래스 레이블 \\(c\\)에 대해 \\(\Omega\\)에서 다른 확률 분포 \\(\mu_G(c)\\)를 생성한다. 예를 들어, ImageNet과 유사한 이미지를 생성하려면 생성자는 클래스 레이블 "고양이"가 주어졌을 때 고양이 사진을 생성할 수 있어야 한다.

원 논문에서 저자들은 GAN이 생성자와 판별자 모두에게 레이블을 제공하여 조건부 GAN으로 쉽게 확장될 수 있다고 언급했다.

조건부 GAN 게임은 클래스 레이블이 제공되는 GAN 게임이다.
:L(\mu_G, D) := \operatorname E_{c \sim \mu_C, x\sim \mu_{\text{ref}}(c)}[\ln D(x, c)] + \operatorname E_{c \sim \mu_C, x\sim \mu_G(c)}[\ln (1-D(x, c))]
여기서 \\(\mu_C\\)는 클래스에 대한 확률 분포이고, \\(\mu_{\text{ref}}(c)\\)는 클래스 \\(c\\)의 실제 이미지에 대한 확률 분포이며, \\(\mu_G(c)\\)는 클래스 레이블 \\(c\\)가 주어졌을 때 생성자에 의해 생성된 이미지의 확률 분포이다.

2017년에는 조건부 GAN이 ImageNet의 1000개 이미지 클래스를 생성하도록 학습되었다.

=== 대체 아키텍처를 사용한 GAN ===
GAN은 일반적인 프레임워크이며 생성자 G와 판별자 D의 합리적인 매개변수화로 실행할 수 있다. 원본 논문에서 저자들은 다층 퍼셉트론 네트워크와 합성곱 신경망을 사용하여 이를 시연했다. 많은 대체 아키텍처가 시도되었다.

* 심층 합성곱 GAN (DCGAN): 생성자와 판별자 모두를 위해 완전히 합성곱 네트워크인 합성곱-역합성곱 층으로만 구성된 딥 네트워크를 사용한다.

* 자기-주의 GAN (SAGAN): DCGAN으로 시작하여 잔차 연결된 표준 자기-주의 모듈을 생성자와 판별자에 추가한다.

* 변형 자동 인코더 GAN (VAEGAN): 생성자를 위해 변형 자동 인코더 (VAE)를 사용한다.

* 트랜스포머 GAN (TransGAN): 순수한 트랜스포머 아키텍처를 생성자와 판별자 모두에 사용하며, 합성곱-역합성곱 층이 전혀 없다.

* 플로우-GAN: 생성자를 위해 플로우 기반 생성 모델을 사용하여 우도 함수를 효율적으로 계산할 수 있다.

=== 대체 목적 함수를 사용한 GAN ===
GAN(생성적 적대 신경망)의 많은 변형은 단순히 생성자와 판별자의 손실 함수를 변경하여 얻을 수 있다.

원래 GAN:

원래 GAN 목표를 비교하기에 더 편리한 형태로 재구성했다.
*\begin{cases}
\min_D L_D(D, \mu_G) = -\operatorname E_{x\sim \mu_{G}}[\ln D(x)] - \operatorname E_{x\sim \mu_{\text{ref}}}[\ln (1-D(x))]\\
\min_G L_G(D, \mu_G) = -\operatorname E_{x\sim \mu_G}[\ln (1-D(x))]
\end{cases}

원래 GAN, 비포화 손실:

생성자에 대한 이 목표는 더 빠른 수렴을 위해 원래 논문에서 권장되었다.
*L_G = \operatorname E_{x\sim \mu_G}[\ln D(x)]
이 목표를 사용하는 효과는 Arjovsky et al.의 2.2.2절에서 분석되었다.

원래 GAN, 최대 가능도:

*L_G = \operatorname E_{x\sim \mu_G}[({\exp} \circ \sigma^{-1} \circ D) (x)]
여기서 \sigma는 로지스틱 함수이다. 판별자가 최적일 때, GAN이 최대 가능도 추정을 "직접" 수행할 수 없더라도 생성자 그래디언트는 최대 가능도 추정과 동일하다.

힌지 손실 GAN:
* L_D = -\operatorname E_{x\sim p_{\text{ref}}}\left[\min\left(0, -1 + D(x)\right)\right] -\operatorname E_{x\sim\mu_G}\left[\min\left(0, -1 - D\left(x\right)\right)\right]
* L_G = -\operatorname E_{x\sim \mu_G} [D(x)]

최소 제곱 GAN:
*L_D = \operatorname E_{x\sim \mu_{\text{ref}}}[(D(x)-b)^2] + \operatorname E_{x\sim \mu_G}[(D(x)-a)^2]
*L_G = \operatorname E_{x\sim \mu_G}[(D(x)-c)^2]
여기서 a, b, c는 선택할 매개변수이다. 저자는 a = -1, b = 1, c = 0을 권장했다.

=== 바서슈타인 GAN (Wasserstein GAN, WGAN) ===
바서슈타인 GAN(WGAN)은 GAN 게임을 두 가지 측면에서 수정한다.

* 판별자의 전략 집합은 유한한 립시츠 노름을 가진 유형 D: \Omega \to \R의 측정 가능한 함수 집합이다. (\|D\|_L \leq K , 여기서 K 는 고정된 양의 상수이다.)
* 목표 함수는 다음과 같다.L_{WGAN}(\mu_G, D) := \operatorname E_{x\sim \mu_G}[D(x)] -\mathbb E_{x\sim \mu_{\text{ref}}}[D(x)]

WGAN의 목적 중 하나는 모드 붕괴 문제를 해결하는 것이다. 저자들은 "어떤 실험에서도 WGAN 알고리즘에 대한 모드 붕괴의 증거를 발견하지 못했다"고 주장한다.

5.1. 조건부 GAN (Conditional GAN, cGAN)

조건부 생성적 적대 신경망(Conditional GAN, cGAN)은 표준 GAN과 유사하지만, 추가 정보를 기반으로 샘플을 조건부로 생성할 수 있다. 예를 들어, 강아지 사진이 주어졌을 때 고양이 얼굴을 생성하는 데 조건부 GAN을 사용할 수 있다.

GAN 게임의 생성자는 \\(\Omega\\) 확률 공간에서 확률 분포 \\(\mu_G\\)를 생성한다. 조건부 GAN은 각 주어진 클래스 레이블 \\(c\\)에 대해 \\(\Omega\\)에서 다른 확률 분포 \\(\mu_G(c)\\)를 생성한다. 예를 들어, ImageNet과 유사한 이미지를 생성하려면 생성자는 클래스 레이블 "고양이"가 주어졌을 때 고양이 사진을 생성할 수 있어야 한다.

원 논문에서 저자들은 GAN이 생성자와 판별자 모두에게 레이블을 제공하여 조건부 GAN으로 쉽게 확장될 수 있다고 언급했다.

조건부 GAN 게임은 클래스 레이블이 제공되는 GAN 게임이다.
:L(\mu_G, D) := \operatorname E_{c \sim \mu_C, x\sim \mu_{\text{ref}}(c)}[\ln D(x, c)] + \operatorname E_{c \sim \mu_C, x\sim \mu_G(c)}[\ln (1-D(x, c))]
여기서 \\(\mu_C\\)는 클래스에 대한 확률 분포이고, \\(\mu_{\text{ref}}(c)\\)는 클래스 \\(c\\)의 실제 이미지에 대한 확률 분포이며, \\(\mu_G(c)\\)는 클래스 레이블 \\(c\\)가 주어졌을 때 생성자에 의해 생성된 이미지의 확률 분포이다.

2017년에는 조건부 GAN이 ImageNet의 1000개 이미지 클래스를 생성하도록 학습되었다.

5.2. 대체 아키텍처를 사용한 GAN

GAN은 일반적인 프레임워크이며 생성자 G와 판별자 D의 합리적인 매개변수화로 실행할 수 있다. 원본 논문에서 저자들은 다층 퍼셉트론 네트워크와 합성곱 신경망을 사용하여 이를 시연했다. 많은 대체 아키텍처가 시도되었다.

* 심층 합성곱 GAN (DCGAN): 생성자와 판별자 모두를 위해 완전히 합성곱 네트워크인 합성곱-역합성곱 층으로만 구성된 딥 네트워크를 사용한다.

* 자기-주의 GAN (SAGAN): DCGAN으로 시작하여 잔차 연결된 표준 자기-주의 모듈을 생성자와 판별자에 추가한다.

* 변형 자동 인코더 GAN (VAEGAN): 생성자를 위해 변형 자동 인코더 (VAE)를 사용한다.

* 트랜스포머 GAN (TransGAN): 순수한 트랜스포머 아키텍처를 생성자와 판별자 모두에 사용하며, 합성곱-역합성곱 층이 전혀 없다.

* 플로우-GAN: 생성자를 위해 플로우 기반 생성 모델을 사용하여 우도 함수를 효율적으로 계산할 수 있다.

5.3. 대체 목적 함수를 사용한 GAN

GAN(생성적 적대 신경망)의 많은 변형은 단순히 생성자와 판별자의 손실 함수를 변경하여 얻을 수 있다.

원래 GAN:

원래 GAN 목표를 비교하기에 더 편리한 형태로 재구성했다.
*\begin{cases}
\min_D L_D(D, \mu_G) = -\operatorname E_{x\sim \mu_{G}}[\ln D(x)] - \operatorname E_{x\sim \mu_{\text{ref}}}[\ln (1-D(x))]\\
\min_G L_G(D, \mu_G) = -\operatorname E_{x\sim \mu_G}[\ln (1-D(x))]
\end{cases}

원래 GAN, 비포화 손실:

생성자에 대한 이 목표는 더 빠른 수렴을 위해 원래 논문에서 권장되었다.
*L_G = \operatorname E_{x\sim \mu_G}[\ln D(x)]
이 목표를 사용하는 효과는 Arjovsky et al.의 2.2.2절에서 분석되었다.

원래 GAN, 최대 가능도:

*L_G = \operatorname E_{x\sim \mu_G}[({\exp} \circ \sigma^{-1} \circ D) (x)]
여기서 \sigma는 로지스틱 함수이다. 판별자가 최적일 때, GAN이 최대 가능도 추정을 "직접" 수행할 수 없더라도 생성자 그래디언트는 최대 가능도 추정과 동일하다.

힌지 손실 GAN:
* L_D = -\operatorname E_{x\sim p_{\text{ref}}}\left[\min\left(0, -1 + D(x)\right)\right] -\operatorname E_{x\sim\mu_G}\left[\min\left(0, -1 - D\left(x\right)\right)\right]
* L_G = -\operatorname E_{x\sim \mu_G} [D(x)]

최소 제곱 GAN:
*L_D = \operatorname E_{x\sim \mu_{\text{ref}}}[(D(x)-b)^2] + \operatorname E_{x\sim \mu_G}[(D(x)-a)^2]
*L_G = \operatorname E_{x\sim \mu_G}[(D(x)-c)^2]
여기서 a, b, c는 선택할 매개변수이다. 저자는 a = -1, b = 1, c = 0을 권장했다.

5.4. 바서슈타인 GAN (Wasserstein GAN, WGAN)

바서슈타인 GAN(WGAN)은 GAN 게임을 두 가지 측면에서 수정한다.

* 판별자의 전략 집합은 유한한 립시츠 노름을 가진 유형 D: \Omega \to \R의 측정 가능한 함수 집합이다. (\|D\|_L \leq K , 여기서 K 는 고정된 양의 상수이다.)
* 목표 함수는 다음과 같다.L_{WGAN}(\mu_G, D) := \operatorname E_{x\sim \mu_G}[D(x)] -\mathbb E_{x\sim \mu_{\text{ref}}}[D(x)]

WGAN의 목적 중 하나는 모드 붕괴 문제를 해결하는 것이다. 저자들은 "어떤 실험에서도 WGAN 알고리즘에 대한 모드 붕괴의 증거를 발견하지 못했다"고 주장한다.

5.5. 두 명 이상의 플레이어를 사용한 GAN

5.6. 대규모 또는 소규모 GAN

5.6.1. BigGAN

BigGAN은 대규모(최대 8천만 개의 매개변수)로 훈련된 셀프 어텐션 GAN으로, 이미지넷의 대형 이미지(최대 512 x 512 해상도)를 생성하며, 수렴을 위한 수많은 엔지니어링 트릭을 사용한다.

5.6.2. 가역적 데이터 증강 (Invertible Data Augmentation)

훈련 데이터가 불충분하면, 기준 분포 \mu_{\text{ref}}는 훈련 데이터 세트가 제공하는 경험적 분포로 잘 근사될 수 없다. 이러한 경우, 더 작은 데이터 세트에서 GAN을 훈련할 수 있도록 데이터 증강을 적용할 수 있지만, 단순한 데이터 증강은 문제를 야기한다.

원래 GAN 게임을 다음과 같이 약간 재구성해 보자.

:\begin{cases}
\min_D L_D(D, \mu_G) = -\operatorname E_{x\sim \mu_{\text{ref}}}[\ln D(x)] - \operatorname E_{x\sim \mu_G}[\ln (1-D(x))]\\
\min_G L_G(D, \mu_G) = -\operatorname E_{x\sim \mu_G}[\ln (1-D(x))]
\end{cases}

이제 시맨틱을 보존하는 변환 T: \Omega \to \Omega을 무작위로 샘플링하고 이를 데이터 세트에 적용하여 데이터 증강을 사용하여 재구성된 GAN 게임을 얻는다.

:\begin{cases}
\min_D L_D(D, \mu_G) = -\operatorname E_{x\sim \mu_{\text{ref}}, T\sim \mu_\text{trans}}[\ln D(T(x))] - \operatorname E_{x\sim \mu_G}[\ln (1-D(x))]\\
\min_G L_G(D, \mu_G) = -\operatorname E_{x\sim \mu_G}[\ln (1-D(x))]
\end{cases}

이것은 x\sim \mu_{\text{ref}}, T\sim \mu_\text{trans}T(x)에 의해 샘플링된 다른 분포 \mu_{\text{ref}}'를 가진 GAN 게임과 동일하다. 예를 들어, \mu_{\text{ref}}가 ImageNet의 이미지 분포이고, \mu_\text{trans}가 동일 변환을 확률 0.5로, 수평 반전을 확률 0.5로 샘플링하면, \mu_{\text{ref}}'는 ImageNet과 수평 반전된 ImageNet의 결합된 이미지 분포이다.

그러한 훈련의 결과는 \mu_{\text{ref}}'을 모방하는 생성기가 된다. 예를 들어, 데이터 증강이 무작위 자르기를 사용한다면, 무작위로 잘린 것처럼 보이는 이미지를 생성한다.

해결책은 생성된 이미지와 실제 이미지 모두에 데이터 증강을 적용하는 것이다.

:\begin{cases}
\min_D L_D(D, \mu_G) = -\operatorname E_{x\sim \mu_{\text{ref}}, T\sim \mu_\text{trans}}[\ln D(T(x))] - \operatorname E_{x\sim \mu_G, T\sim \mu_\text{trans}}[\ln (1-D(T(x)))]\\
\min_G L_G(D, \mu_G) = -\operatorname E_{x\sim \mu_G, T\sim \mu_\text{trans}}[\ln (1-D(T(x)))]
\end{cases}

저자들은 단 100개의 이미지로 구성된 작은 데이터 세트를 사용하여 고품질의 생성을 시연했다.

StyleGAN-2-ADA 논문은 데이터 증강에 대한 또 다른 점을 지적하는데, 그것은 가역적이어야 한다는 것이다. ImageNet 사진 생성을 계속 예로 들어보면, 데이터 증강이 "사진을 0, 90, 180, 270도로 동일한 확률로 무작위로 회전"인 경우, 생성기가 어느 것이 올바른 방향인지 알 방법이 없다. 잠재 z에 대해 생성된 이미지 G(z)G'(z)를 90도 회전한 것이 되도록 두 개의 생성기 G, G'를 고려해 보라. 그들은 정확히 동일한 예상 손실을 갖게 되므로 서로 선호되지 않는다.

해결책은 가역적인 데이터 증강만 사용하는 것이다. "사진을 0, 90, 180, 270도로 동일한 확률로 무작위로 회전"하는 대신, "사진을 90, 180, 270도로 0.1 확률로 무작위로 회전하고, 0.7 확률로 사진을 그대로 유지"를 사용한다. 이러한 방식으로, 생성기는 여전히 증강되지 않은 ImageNet 사진과 동일한 방식으로 이미지를 유지하도록 보상받는다.

추상적으로, 분포 \mu_\text{trans}에서 변환 T: \Omega \to \Omega를 무작위로 샘플링하는 효과는 마르코프 커널 K_\text{trans}: \Omega \to \mathcal P (\Omega)를 정의하는 것이다. 그런 다음, 데이터 증강된 GAN 게임은 생성기가 다음과 같은 \hat \mu_G\in \mathcal P(\Omega)를 찾도록 한다.

:K_\text{trans}*\mu_{\text{ref}} = K_\text{trans}*\hat\mu_{G}

여기서 *는 마르코프 커널 컨볼루션이다.
데이터 증강 방법은 해당 마르코프 커널 K_\text{trans}가 다음을 만족하는 경우 가역적으로 정의된다.

:K_\text{trans}*\mu= K_\text{trans}*\mu' \implies \mu = \mu' \quad \forall \mu, \mu' \in \mathcal P(\Omega)

정의에 의해, 여러 가역적인 데이터 증강 방법을 구성하면 또 다른 가역적인 방법이 생성됨을 즉시 알 수 있다. 또한 정의에 의해, 데이터 증강 방법이 가역적이면, GAN 게임에서 사용하는 것은 생성기에 대한 최적의 전략 \hat \mu_G를 변경하지 않으며, 이는 여전히 \mu_{\text{ref}}이다.

가역적인 마르코프 커널의 두 가지 전형적인 예가 있다.

이산적인 경우: 가역적인 확률 행렬, \Omega가 유한할 때.

예를 들어, \Omega = \{\uparrow, \downarrow, \leftarrow, \rightarrow\}가 4개의 방향을 가리키는 화살표의 4개 이미지 집합이고, 데이터 증강이 "사진을 90, 180, 270도로 확률 p로 무작위로 회전하고, 0.7 확률로 사진을 그대로 유지"하는 경우, 마르코프 커널 K_\text{trans}는 확률 행렬로 나타낼 수 있다.

:[K_\text{trans}] = \begin{bmatrix}
(1-3p) & p & p & p \\
p & (1-3p) & p & p \\
p & p & (1-3p) & p \\
p & p & p & (1-3p)
\end{bmatrix}

그리고 K_\text{trans}[K_\text{trans}]가 가역 행렬, 즉 p \neq 1/4일 때 가역 커널이다.

연속적인 경우: 가우시안 커널, \Omega = \R^n일 때, n \geq 1.

예를 들어, \Omega = \R^{256^2}가 256x256 이미지의 공간이고, 데이터 증강 방법이 "가우시안 노이즈 z\sim \mathcal N(0, I_{256^2})를 생성한 다음 이미지에 \epsilon z를 더한다"면, K_\text{trans}\mathcal N(0, \epsilon^2 I_{256^2})의 밀도 함수에 의한 컨볼루션이다. 이것은 가역적인데, 가우시안에 의한 컨볼루션은 열 커널에 의한 컨볼루션이므로, 임의의 \mu\in\mathcal P(\R^n)가 주어지면, 컨볼루션된 분포 K_\text{trans} * \mu\R^n을 정확히 \mu에 따라 가열한 다음 시간 \epsilon^2/4를 기다림으로써 얻을 수 있다. 이를 통해 열 방정식\epsilon^2/4만큼 "시간을 거꾸로" 실행하여 \mu를 복구할 수 있다.

가역적인 데이터 증강의 더 많은 예는 해당 논문에서 찾을 수 있다.

5.6.3. SinGAN

SinGAN은 단일 이미지만을 훈련 데이터로 사용하여 데이터 증강을 극한까지 밀어붙이며, 이를 기반으로 데이터 증강을 수행한다. GAN 아키텍처는 다중 스케일 파이프라인을 사용하여 이러한 훈련 방식에 맞게 조정된다.

생성자 G는 일련의 생성자 G = G_1 \circ G_2 \circ \cdots \circ G_N로 분해되며, 가장 낮은 생성자는 가장 낮은 해상도에서 이미지 G_N(z_N)을 생성한다. 그런 다음 생성된 이미지는 r(G_N(z_N))으로 확대되어 다음 레벨로 전달되어 더 높은 해상도에서 이미지 G_{N-1}(z_{N-1} + r(G_N(z_N)))를 생성하며, 이 과정이 반복된다. 판별자 또한 피라미드 구조로 분해된다.

5.7. StyleGAN 시리즈

엔비디아 연구 부서에서 발표한 일련의 아키텍처는 다음과 같다.

* 프로그레시브 GAN (Progressive GAN)

프로그레시브 GAN은 GAN의 생성기를 작은 규모에서 큰 규모로 피라미드 방식으로 성장시켜 대규모 이미지 생성을 안정적으로 훈련하는 방법이다. 생성기를 G = G_1 \circ G_2 \circ \cdots \circ G_N으로, 판별기를 D = D_1 \circ D_2 \circ \cdots \circ D_N로 분해한다.

훈련 과정에서, 처음에는 4x4 이미지를 생성하기 위해 G_N, D_N만 GAN 게임에 사용된다. 그런 다음 8x8 이미지를 생성하기 위해 G_{N-1}, D_{N-1}이 추가되어 GAN 게임의 두 번째 단계에 도달하고, 이 과정을 반복하여 1024x1024 이미지를 생성하는 GAN 게임에 도달한다.

GAN 게임의 각 단계 간의 충격을 피하기 위해, 각 새로운 레이어는 "블렌딩"된다. 예를 들어, 두 번째 단계 GAN 게임이 시작되는 방식은 다음과 같다.

* 바로 전까지, GAN 게임은 4x4 이미지를 생성하고 판별하는 G_N, D_N 쌍으로 구성된다.
* 바로 후, GAN 게임은 8x8 이미지를 생성하고 판별하는 ((1-\alpha) + \alpha\cdot G_{N-1})\circ u \circ G_N, D_N \circ d \circ ((1-\alpha) + \alpha\cdot D_{N-1}) 쌍으로 구성된다. 여기서 함수 u, d는 이미지 업샘플링 및 다운샘플링 함수이고, \alpha는 0에서 1로 부드럽게 변하는 블렌드 인 팩터(이미지 합성의 알파와 유사)이다.

* StyleGAN-1

StyleGAN-1과 StyleGAN-2의 주요 아키텍처
StyleGAN-1과 StyleGAN-2의 주요 아키텍처

StyleGAN-1은 신경 스타일 전송과 점진적 GAN의 조합으로 설계되었다.

StyleGAN-1의 주요 아키텍처적 선택은 점진적 GAN과 유사한 점진적 성장 메커니즘이다. 생성된 각 이미지는 상수 4x4x512 배열로 시작하여 스타일 블록을 반복적으로 통과한다. 각 스타일 블록은 신경 스타일 전송이 그람 행렬을 사용하는 방식과 유사하게, 아핀 변환("적응형 인스턴스 정규화")을 통해 "스타일 잠재 벡터"를 적용한다. 그런 다음 노이즈를 추가하고 정규화(평균을 빼고 분산으로 나눔)한다.

훈련 시, 일반적으로 생성된 이미지당 하나의 스타일 잠재 벡터만 사용되지만, 때로는 각 스타일 블록이 다른 스타일 블록의 도움 없이 자체 스타일화를 수행하도록 장려하기 위해 두 개("혼합 정규화")를 사용한다(다른 스타일 블록은 완전히 다른 스타일 잠재 벡터를 받을 수 있기 때문).

훈련 후, 여러 스타일 잠재 벡터를 각 스타일 블록에 공급할 수 있다. 하위 계층에 공급되는 것은 대규모 스타일을 제어하고, 상위 계층에 공급되는 것은 세밀한 스타일을 제어한다.

두 이미지 x, x' 간의 스타일 혼합도 수행할 수 있다. 먼저, 경사 하강법을 실행하여 G(z)≈x, G(z')≈x'가 되도록 z, z'를 찾는다. 이를 "이미지를 스타일 잠재 공간으로 투영"이라고 한다. 그런 다음, z를 하위 스타일 블록에, z'를 상위 스타일 블록에 공급하여 x의 대규모 스타일과 x'의 세밀한 스타일을 가진 합성 이미지를 생성할 수 있다. 여러 이미지를 이런 방식으로 합성할 수도 있다.

* StyleGAN-2

StyleGAN-2는 스타일 잠재 벡터를 사용하여 컨볼루션 레이어의 가중치를 변환함으로써 StyleGAN-1을 개선하여 "블롭" 문제를 해결했다.

이는 위에서 설명한 가역적 데이터 증강을 사용하는 StyleGAN-2-ADA("ADA"는 "적응형"을 의미)에 의해 업데이트되었다. 또한 0에서 시작하여 "과적합 휴리스틱"이 목표 수준에 도달할 때까지 점진적으로 증가시켜 적용되는 데이터 증강의 양을 조정하여 "적응형"이라는 이름이 붙었다.

* StyleGAN-3

StyleGAN-3는 공식 영상에서 볼 수 있는 "텍스처 스티킹" 문제를 해결함으로써 StyleGAN-2를 개선했다. 그들은 나이퀴스트-섀넌 샘플링 정리를 통해 이 문제를 분석했으며, 생성기의 레이어가 작동하는 픽셀의 고주파 신호를 활용하도록 학습한다고 주장했다.

이를 해결하기 위해, 생성기가 픽셀을 단순히 이산 신호로 처리하는 대신, 픽셀이 나타내는 연속 신호에 충실하게 작동하도록 각 생성기 레이어 사이에 엄격한 저역 통과 필터를 적용할 것을 제안했다. 또한 더 많은 신호 필터를 사용하여 회전 및 이동 불변성을 부과했다. 그 결과 StyleGAN-3는 텍스처 스티킹 문제를 해결할 수 있을 뿐만 아니라 부드럽게 회전하고 이동하는 이미지를 생성할 수 있다.

5.7.1. 프로그레시브 GAN (Progressive GAN)

프로그레시브 GAN은 GAN의 생성기를 작은 규모에서 큰 규모로 피라미드 방식으로 성장시켜 대규모 이미지 생성을 안정적으로 훈련하는 방법이다. SinGAN과 마찬가지로, 생성기를 G = G_1 \circ G_2 \circ \cdots \circ G_N으로 분해하고, 판별기를 D = D_1 \circ D_2 \circ \cdots \circ D_N로 분해한다.

훈련 과정에서, 처음에는 4x4 이미지를 생성하기 위해 G_N, D_N만 GAN 게임에 사용된다. 그런 다음 8x8 이미지를 생성하기 위해 G_{N-1}, D_{N-1}이 추가되어 GAN 게임의 두 번째 단계에 도달하고, 이 과정을 반복하여 1024x1024 이미지를 생성하는 GAN 게임에 도달한다.

GAN 게임의 각 단계 간의 충격을 피하기 위해, 각 새로운 레이어는 "블렌딩"된다(논문의 그림 2). 예를 들어, 두 번째 단계 GAN 게임이 시작되는 방식은 다음과 같다.

* 바로 전까지, GAN 게임은 4x4 이미지를 생성하고 판별하는 G_N, D_N 쌍으로 구성된다.
* 바로 후, GAN 게임은 8x8 이미지를 생성하고 판별하는 ((1-\alpha) + \alpha\cdot G_{N-1})\circ u \circ G_N, D_N \circ d \circ ((1-\alpha) + \alpha\cdot D_{N-1}) 쌍으로 구성된다. 여기서 함수 u, d는 이미지 업샘플링 및 다운샘플링 함수이고, \alpha는 0에서 1로 부드럽게 변하는 블렌드 인 팩터(이미지 합성의 알파와 유사)이다.

5.7.2. StyleGAN-1

StyleGAN-1과 StyleGAN-2의 주요 아키텍처
StyleGAN-1과 StyleGAN-2의 주요 아키텍처

StyleGAN-1은 신경 스타일 전송과 점진적 GAN의 조합으로 설계되었다.

StyleGAN-1의 주요 아키텍처적 선택은 점진적 GAN과 유사한 점진적 성장 메커니즘이다. 생성된 각 이미지는 상수 4x4x512 배열로 시작하여 스타일 블록을 반복적으로 통과한다. 각 스타일 블록은 신경 스타일 전송이 그람 행렬을 사용하는 방식과 유사하게, 아핀 변환("적응형 인스턴스 정규화")을 통해 "스타일 잠재 벡터"를 적용한다. 그런 다음 노이즈를 추가하고 정규화(평균을 빼고 분산으로 나눔)한다.

훈련 시, 일반적으로 생성된 이미지당 하나의 스타일 잠재 벡터만 사용되지만, 때로는 각 스타일 블록이 다른 스타일 블록의 도움 없이 자체 스타일화를 수행하도록 장려하기 위해 두 개("혼합 정규화")를 사용한다(다른 스타일 블록은 완전히 다른 스타일 잠재 벡터를 받을 수 있기 때문).

훈련 후, 여러 스타일 잠재 벡터를 각 스타일 블록에 공급할 수 있다. 하위 계층에 공급되는 것은 대규모 스타일을 제어하고, 상위 계층에 공급되는 것은 세밀한 스타일을 제어한다.

두 이미지 x, x' 간의 스타일 혼합도 수행할 수 있다. 먼저, 경사 하강법을 실행하여 G(z)≈x, G(z')≈x'가 되도록 z, z'를 찾는다. 이를 "이미지를 스타일 잠재 공간으로 투영"이라고 한다. 그런 다음, z를 하위 스타일 블록에, z'를 상위 스타일 블록에 공급하여 x의 대규모 스타일과 x'의 세밀한 스타일을 가진 합성 이미지를 생성할 수 있다. 여러 이미지를 이런 방식으로 합성할 수도 있다.

5.7.3. StyleGAN-2

StyleGAN-2는 스타일 잠재 벡터를 사용하여 컨볼루션 레이어의 가중치를 변환함으로써 StyleGAN-1을 개선하여 "블롭" 문제를 해결했다.

이는 위에서 설명한 가역적 데이터 증강을 사용하는 StyleGAN-2-ADA("ADA"는 "적응형"을 의미)에 의해 업데이트되었다. 또한 0에서 시작하여 "과적합 휴리스틱"이 목표 수준에 도달할 때까지 점진적으로 증가시켜 적용되는 데이터 증강의 양을 조정하여 "적응형"이라는 이름이 붙었다.

5.7.4. StyleGAN-3

StyleGAN-3는 공식 영상에서 볼 수 있는 "텍스처 스티킹" 문제를 해결함으로써 StyleGAN-2를 개선했다. 그들은 나이퀴스트-섀넌 샘플링 정리를 통해 이 문제를 분석했으며, 생성기의 레이어가 작동하는 픽셀의 고주파 신호를 활용하도록 학습한다고 주장했다.

이를 해결하기 위해, 생성기가 픽셀을 단순히 이산 신호로 처리하는 대신, 픽셀이 나타내는 연속 신호에 충실하게 작동하도록 각 생성기 레이어 사이에 엄격한 저역 통과 필터를 적용할 것을 제안했다. 또한 더 많은 신호 필터를 사용하여 회전 및 이동 불변성을 부과했다. 그 결과 StyleGAN-3는 텍스처 스티킹 문제를 해결할 수 있을 뿐만 아니라 부드럽게 회전하고 이동하는 이미지를 생성할 수 있다.

6. 응용

* 애니메이션이나 실사풍 일러스트 자동 생성
* 실제로 정장을 하지 않아도, 단정하게 회의에 참여
* 사이버 보안을 향상시키기 위한 데이터 익명화

6.1. 과학

반복적 재구성을 통해 천체 사진을 천문 이미지로 재구성한다. 암흑 물질 연구를 위해 중력 렌즈 현상을 시뮬레이션하며, 특정 방향의 암흑 물질 분포를 모델링하고 발생할 중력 렌즈 현상을 예측한다. 고 에너지 제트 형성 및 입자 샤워를 입자 물리학 실험의 열량계를 통해 모델링한다. 입자 물리학 실험의 계산 집약적인 시뮬레이션에서 병목 현상을 근사하며, 현재 및 제안된 CERN 실험과 관련된 응용 분야에서 이러한 방법이 시뮬레이션을 가속화하거나 시뮬레이션 충실도를 향상시킬 수 있는 잠재력을 입증했다. 난류 흐름에서 속도 및 스칼라 필드를 재구성한다.

생성적 적대 신경망(GAN)으로 생성된 분자는 생쥐 실험을 통해 검증되었다.

6.2. 의료

의료 영상 분야의 주요 관심사 중 하나는 환자 프라이버시를 보호하는 것이다. 이러한 이유로 연구자들은 연구 목적으로 의료 영상을 얻는 데 어려움을 겪는 경우가 많다. GAN은 이러한 문제를 해결하기 위해 합성 의료 영상인 MRI 및 PET 영상을 생성하는 데 사용되어 왔다.

GAN은 부분적 또는 완전한 시력 상실을 방지하는 데 필수적인 조기 진단을 돕는 녹내장 이미지를 감지하는 데 사용될 수 있다.

GAN은 사망한 역사적 인물의 법의학적 얼굴 재구성을 생성하는 데 사용되어 왔다.

6.3. 악의적인 목적

GAN 기반의 인간 이미지 합성이 악의적인 목적으로 사용될 가능성에 대한 우려가 제기되었다. 예를 들어, 거짓으로, 어쩌면 죄를 뒤집어씌울 수 있는 사진과 비디오를 제작하는 것이다. GAN은 존재하지 않는 사람들의 독특하고 현실적인 프로필 사진을 생성하여 가짜 소셜 미디어 프로필 생성을 자동화하는 데 사용될 수 있다.

실제 사람의 사진처럼 보이지만 속임수를 쓰는 StyleGAN이 생성한 이미지이다. 이 이미지는 초상화 분석을 기반으로 StyleGAN에 의해 생성되었다.
실제 사람의 사진처럼 보이지만 속임수를 쓰는 StyleGAN이 생성한 이미지이다. 이 이미지는 초상화 분석을 기반으로 StyleGAN에 의해 생성되었다.

GAN이 생성한 또 다른 초상화 예시
GAN이 생성한 또 다른 초상화 예시


2019년에 캘리포니아 주는 2019년 10월 3일에 [https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=201920200AB602 법안 AB-602]를 검토하고 통과시켰는데, 이 법안은 묘사된 사람의 동의 없이 인간 이미지 합성 기술을 사용하여 가짜 포르노를 만드는 것을 금지하며, [https://leginfo.legislature.ca.gov/faces/billTextClient.xhtml?bill_id=201920200AB730 법안 AB-730]은 선거 60일 이내에 정치 후보자의 조작된 비디오 배포를 금지한다. 두 법안 모두 하원 의원 마크 버먼이 작성했으며, 주지사 개빈 뉴섬이 서명했다. 이 법률은 2020년에 발효되었다.

미국 방위고등연구계획국(DARPA)의 미디어 포렌식 프로그램은 GAN을 사용하여 제작된 가짜 미디어를 포함하여 가짜 미디어에 대응하는 방법을 연구한다.

6.4. 패션, 예술, 광고

GAN(생성적 적대 신경망)은 예술 작품을 생성하는 데 사용될 수 있다. 2019년 3월, 더 버지는 "GAN이 생성한 이미지가 현대 AI 예술의 특징적인 모습이 되었다"고 썼다. GAN은 사진 인페인팅, 패션 모델, 그림자, 인테리어 디자인, 산업 디자인, 신발 등의 사실적인 렌더링을 생성하는 데에도 사용될 수 있다. 이러한 네트워크는 페이스북에서 사용된 것으로 알려졌다.

일부에서는 "창의적 적대 네트워크"로 GAN을 예술적 창의성에 활용하는 연구를 진행해 왔다. 14세기부터 19세기까지 위키아트의 15,000점의 초상화 세트를 기반으로 훈련된 GAN은 2018년 그림 에드몽 드 벨라미를 생성했으며, 이는 432,500달러에 판매되었다.

GAN은 비디오 게임 모드 커뮤니티에서 오래된 비디오 게임의 저해상도 2D 텍스처를 업스케일링하여 4k 이상의 해상도로 다시 생성한 후 게임의 기본 해상도에 맞게 다운 샘플링하는 방식으로 사용되었다 (이는 슈퍼샘플링 안티앨리어싱과 유사).

2020년에는 아트브리더가 심리 웹 호러 시리즈 벤 드라운드의 속편에서 주요 적대자를 생성하는 데 사용되었다. 저자는 나중에 GAN 응용 프로그램이 예산과 인력이 부족한 독립 예술가에게 자산 생성에 도움이 되는 능력을 칭찬했다.

2020년 5월, 엔비디아 연구원들은 AI 시스템("GameGAN"이라고 함)을 훈련시켜 단지 게임 플레이를 관찰하는 것만으로 팩맨 게임을 재현하도록 했다.

2019년 8월, 각 12,197개의 MIDI 노래와 함께 가사와 멜로디 정렬이 쌍으로 이루어진 대규모 데이터 세트가 조건부 GAN-LSTM을 사용하여 가사에서 신경 멜로디를 생성하기 위해 만들어졌다(GitHub의 출처 참조 [https://github.com/yy1lab/Lyrics-Conditioned-Neural-Melody-Generation AI Melody Generation from Lyrics]).

6.5. 기타

생성적 적대 신경망(GAN)은 다음과 같은 다양한 분야에 응용되어 왔다.

* 개인의 외모가 나이에 따라 어떻게 변화하는지를 보여준다.
* 이미지로부터 객체의 3D 모델을 재구성한다.
* 3D 포인트 클라우드 형태로 새로운 객체를 생성한다.
* 비디오에서 움직임 패턴을 모델링한다.
* 지도에서 누락된 특징을 채우고, 지도 제작에서 지도 스타일을 변환하거나 스트리트 뷰 이미지를 증강한다.
* 피드백을 사용하여 이미지를 생성하고 이미지 검색 시스템을 대체한다.
* 기후 변화가 특정 주택에 미치는 영향을 시각화한다.
* 목소리를 듣고 사람의 얼굴 이미지를 재구성한다.
* 해당 인물의 단일 사진만으로 그 사람이 말하는 비디오를 생성한다.
* 반복적인 시퀀스 생성한다.

7. 역사

1991년, 위르겐 슈미트후버는 제로섬 게임에서 "인공적 호기심", 신경망에 관한 논문을 발표했다. 첫 번째 네트워크는 출력 패턴에 대한 확률 분포를 모델링하는 생성 모델이고, 두 번째 네트워크는 이러한 패턴에 대한 환경의 반응을 예측하기 위해 경사 하강법으로 학습한다. GAN은 첫 번째 네트워크의 출력이 주어진 집합에 속하는지에 따라 환경 반응이 1 또는 0인 경우로 간주될 수 있다.

2010년 Olli Niemitalo는 적대적 네트워크와 관련된 아이디어를 블로그 게시물에서 발표했지만, 이 아이디어는 구현되지 않았고 생성기에 확률성이 포함되지 않아 생성 모델이 아니었다. 이는 현재 조건부 GAN 또는 cGAN으로 알려져 있다. 2013년에는 Li, Gauci, Gross가 GAN과 유사한 아이디어를 동물 행동 모델링에 사용했다. GAN의 또 다른 영감은 노이즈 대비 추정이었으며, 이는 GAN과 동일한 손실 함수를 사용하며 Goodfellow가 2010년부터 2014년까지 박사 과정에서 연구했다.

적대적 기계 학습은 생성 모델링 외에도 다른 용도로 사용되며 신경망 이외의 모델에도 적용될 수 있다. 2006년에는 제어 이론에서 신경망을 기반으로 한 적대적 학습이 최소화 정책(제어기)과 최대화 정책(교란) 사이의 반복을 번갈아 가면서 게임 이론적 의미에서 강력한 제어기를 훈련하는 데 사용되었다.

2017년에는 픽셀 정확도보다 사실적인 질감에 초점을 맞춰 이미지 향상에 GAN이 사용되어 고배율에서 더 높은 이미지 품질을 생성했다. 같은 해, 최초의 얼굴이 생성되었고, 2018년 2월 그랑 팔레에서 전시되었다. 2019년 StyleGAN에 의해 생성된 얼굴은 딥페이크와 비교되었다.

8. 데이터 증강

GAN의 학습은 불안정하고 방대한 양의 데이터를 필요로 한다. 안정성을 높이고 데이터량을 보충하여 일반화 성능을 높이기 위해, GAN에서도 데이터 증강이 이용된다.

하지만 판별자(Discriminator/Critic) 측에만 데이터 증강을 수행하면 오히려 성능이 저하되는 것으로 알려져 있다. 이는 판별자가 데이터 증강의 유무를 판별에 사용해 버리고, 이를 속이기 위해 생성자(Generator)가 데이터 증강을 모방한 출력을 생성하기 때문이라고 생각된다. 이를 피하기 위해, 생성자 출력에도 데이터 증강을 수행함으로써 유효한 데이터 증강이 가능해진다.

9. 관련 항목

*이안 굿펠로우: 구글 과학자
*얀 르쿤: 페이스북 인공지능 연구소 소장
*DCGAN
*스타일GAN/StyleGAN영어
*CycleGAN
*파이돈 - GAN을 사용한 캐릭터 생성 적용 사례. 플롯에서도 GAN이 사용되었다.