[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 조건을 근사적으로 만족하도록 합니다.
가중치 클리핑의 구현 방식
- 판별자의 가중치를 업데이트한 후, 각 가중치를 특정 범위로 자릅니다.
- 예를 들어, 가중치
w가[-0.01, 0.01]범위를 벗어나면, 해당 값을 범위 내로 조정합니다. - 수식으로 표현하면 다음과 같습니다:
w = clip(w, -c, c)
가중치 클리핑의 장점
- 간단한 구현으로 Lipschitz 연속성을 근사적으로 유지할 수 있음.
- 훈련 불안정성을 감소시키고 WGAN의 수렴 특성을 향상.
가중치 클리핑의 단점
- 모든 가중치를 단순히 잘라내기 때문에 표현력이 제한될 수 있음.
- 네트워크가 과도하게 제한되면 gradient vanishing 문제가 발생할 수 있음.
- 따라서 최근에는 Gradient Penalty와 같은 대안이 더 널리 사용됨.
결론
WGAN에서 가중치 클리핑은 Lipschitz 연속성을 보장하기 위한 간단한 방법으로, 훈련 안정성을 가져다주는 중요한 요소입니다. 그러나 단점도 존재하기 때문에, 이를 보완하기 위해 WGAN-GP(WGAN with Gradient Penalty)와 같은 방식이 제안되었습니다.
https://broscoding.tistory.com/308
반응형