반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

bro's coding

WGAN.weight clipping(가중치 클리핑) 본문

[AI]/GAN

WGAN.weight clipping(가중치 클리핑)

givemebro 2020. 7. 15. 14:50
반응형

 

WGAN의 가중치 클리핑 (Weight Clipping)

Wasserstein GAN(WGAN)은 기존 GAN의 훈련 불안정성을 개선하기 위해 등장한 모델로, Wasserstein 거리(지구 거리)를 사용하여 생성자와 판별자 간의 차이를 측정합니다. WGAN에서는 판별자가 1- Lipschitz 연속 조건을 만족해야 하는데, 이를 간단히 구현하기 위해 가중치 클리핑(weight clipping)을 사용합니다.

가중치 클리핑의 개념

  • WGAN의 판별자(critic)가 Lipschitz 연속성을 만족하려면 네트워크의 가중치가 특정 범위 내에 제한되어야 합니다.
  • 훈련 중 판별자의 모든 가중치를 일정 범위 [−c, c]로 제한하는 방법이 가중치 클리핑입니다.
  • 이를 통해 판별자가 Lipschitz 조건을 근사적으로 만족하도록 합니다.

가중치 클리핑의 구현 방식

  1. 판별자의 가중치를 업데이트한 후, 각 가중치를 특정 범위로 자릅니다.
  2. 예를 들어, 가중치 w[-0.01, 0.01] 범위를 벗어나면, 해당 값을 범위 내로 조정합니다.
  3. 수식으로 표현하면 다음과 같습니다:w = clip(w, -c, c)

가중치 클리핑의 장점

  • 간단한 구현으로 Lipschitz 연속성을 근사적으로 유지할 수 있음.
  • 훈련 불안정성을 감소시키고 WGAN의 수렴 특성을 향상.

가중치 클리핑의 단점

  • 모든 가중치를 단순히 잘라내기 때문에 표현력이 제한될 수 있음.
  • 네트워크가 과도하게 제한되면 gradient vanishing 문제가 발생할 수 있음.
  • 따라서 최근에는 Gradient Penalty와 같은 대안이 더 널리 사용됨.

결론

WGAN에서 가중치 클리핑은 Lipschitz 연속성을 보장하기 위한 간단한 방법으로, 훈련 안정성을 가져다주는 중요한 요소입니다. 그러나 단점도 존재하기 때문에, 이를 보완하기 위해 WGAN-GP(WGAN with Gradient Penalty)와 같은 방식이 제안되었습니다.

 

https://broscoding.tistory.com/308

 

반응형

'[AI] > GAN' 카테고리의 다른 글

WGANGP.source  (0) 2020.07.15
WGANGP.train.faces  (0) 2020.07.15
Threshold(임계치)  (0) 2020.07.15
GAN VS DCGAN  (0) 2020.07.15
WGAN.source  (0) 2020.07.15
WGAN.mode collapse(모드 붕괴)  (0) 2020.07.15
GAN.source  (0) 2020.07.15
WGAN.example.train.cifar  (0) 2020.07.14
Comments