# wgan
WGAN
제 WGAN 정리가 사라졌습니다 하.. 1. Metric for WGAN >https://velog.io/@sjinu/Metric-for-WGAN 2. WGAN 위의 링크에서 WGAN에 쓰이는 Wasserstein Distance의 장점을 살펴봤습니다. 이제, 단순히 GAN의 loss함수에서 기존의 크로스 엔트로피($\approx KL, JS$ 발산)에서 Wasserstein Distance로 바꾸어주면 되는데요, 수식의 계산이 상당히 어렵습니다. > 가능한 분포들의 조합을 모두 이용해야 하는데, 실질적으로 불가능하다. 
1. WGAN-GP 1.1. WGAN WGAN은 기존 GAN 모델이 사용한 BCE Loss에서 도출된 KL,JS 발산의 단점을 해결하기 위해서 제안된 Wasserstein Distance를 도입한 GAN모델입니다. > $W(\mathbb{P}r, \mathbb{P}g) = \inf{\gamma \in \Pi (\mathbb{P}r, \mathbb{P}g)} \mathbb{E}{(x, y) \sim \gamma} \left [ \lVert x - y \rVert \right ]$' 해당 Metric을 도입해 기존 GAN 모델의 한계를 개선하긴 했으나, WGAN을 실질적으로 구현하기 위해서 Kantrovich-Rubinstein Duality Theorhm을 사용했습니다. 다만, 이 정리를 사용하기 위해 판별자 함수는 1-립시츠 조건을 만족시켜야 했었습니다. > (**Kantrovich-Rubinstein Dua
WGAN-GP, GAN 평가
WGAN-GP (1) introduction > $W(\mathbb{P}r, \mathbb{P}g) = \inf{\gamma \in \Pi (\mathbb{P}r, \mathbb{P}g)} \mathbb{E}{(x, y) \sim \gamma} \left [ \lVert x - y \rVert \right ]$' WGAN은 KL-divergence와 JS-divergence metric의 단점을 W-distance를 이용함으로써 해결했다.(판별자가 먼저 학습이 완료 되어도 유의미한 gradient를 만들 수 있기 때문에 생성자의 학습이 가능하다. 원 논문에서는 판별자 5회- 생성자 1회 학습 진행) 그러나 수식의 계산이 힘들다는 단점이 존재했다. (x,y)쌍은 단순 샘플링을 통해서 해결할 수 있지만, $\Pi (\mathbb{P}r, \mathbb{P}g)$ (marginaldl Pr, Pg인 모든 결합 분포의 집합)을 모두 탐색하긴 어려울 것이다.
[정리] Metric for WGAN
Vanilla GAN의 문제는 아래와 같습니다. GAN에서 BCE loss를 사용할 때에는 기울기소실이 일어난다. 즉, 위의 그림과 같이 분포가 상당히 멀다면(즉, 아직 모델이 데이터의 분포를 잘 모사하지 못했다면) BCELoss의 특성 상 좋은 gradient feedback을 주기 힘들다. [출처 : deeplearning.ai "Build Basic Generative Adversarial Networks (GANs)" 강의자료] 이를 해결하기 위해 **WGAN

WGAN-GP - 개념이해
기존 GAN에서 Loss 함수를 개선한 것입니다. WGAN의 논문에는 수학과 증명에 관한 내용이 매우 많은데, 일체 제외하고 추상적으로만 설명 하겠습니다. 기존 GAN의 문제점 기존 GAN은 Loss 계산해서 Binary cross Entropy를 사용하는데 이는 Kullback-Leibler(KL) Divergence와 연관있는 LossFunction으로 사용되었습니다. 이 계산 방식을 간단히 설명하자면, .png) 빨간 원과 노란 원이 겹치는 정도라고 보면 될 것입니다. 진짜 이미지가 생성하는 데이터 분포와 Generat

GAN의 기초(GAN,DCGAN,WGAN,CGAN)
작성자 : 광운대학교 전자통신공학과 신민정 Generative Modeling 생성모델링은 가지고있는 데이터 분포에서 sampling한 것 같은 새로운 데이터를 만드는 것입니다. 생성모델링은 판별모델링과 비교하면 이해하기 쉽습니다. 판별모델링은 label y가 필요한 supervised learning이고, 생성모델링은 label y가 필요없는 unsupervised learning입니다. [label y가 있는 경우도 존재] 판별모델링 : Sample x가 주어졌을 때, label y의 확률 $P(y|x)$를 추정 생성모델링 : Sample x의 $P(x)$를 추정, _[ label이 있는 경우(with condition vector)는 $P(x|y)$를 추정(아래 CGAN에서 설명)