issues
search
ciplab
/
2019-winter-reading-project
0
stars
0
forks
source link
Spectral Normalization
#4
Closed
simcity429
closed
4 years ago
simcity429
commented
4 years ago
specNorm.pptx
wgan_20190923.pdf
WGAN-GP 및 PyTorch 구현 가이드
kingsj0405
commented
4 years ago
Wasserstein GAN
Suggested Problem: No Support Intersection Case
학습이 망한다!(No Gradient)
Wasserstein Distance(Earth Mover's Distance)를 가져와서 쓸건데 얘가 untractable하다
그래서 근사해서 쓰려고한다
Kantorovich-Rubinstein Duality Theorem를 쓸건데... Lipschitz condition을 만족시켜야한다는 조건이 있다...
Lipschitz condition: 완만해야한다
solution. Just clip!(e.g. 0.01) Terrible! But working!
Implementation Detail: sigmoid + clipping
Plus: Momentum이랑 Lipshitz가 상성이 안 좋아서 RMS-prob을 사용한다!
kingsj0405
commented
4 years ago
Improved Training of Wasserstein GANs
이전의 문제는 값을 clipping 하는 게 너무 끔찍한 해결책이었다
Gradient의 L2 norm을 Loss로 이용한다!
real과 L2 norm의 내분
sigma
로 적당히 한다
kingsj0405
commented
4 years ago
2019.01.13 여기까지 2019.01.14에 이어서
kingsj0405
commented
4 years ago
Spectral Normalization for Generative Adversarial Networks, Miyato2018, ICRL
WGAN-GP에서 GP-term을 생각해보면 data 중심의 사고였다
고유값 분해 --> 특이값 분해 --> network를 하나의 선형변환으로 본다면?(물론 아니다)
Spectral Norm은 가장 큰 singular value다!
직관적으로는 matrix의 한 vector로 scaling 하는 것 중에 가장 큰 값(how much stretch)
Spectral Normalization은 그냥 전체를 Spectral Norm으로 나눈다
그러면 Spectral Norm이 1이 된다
그러면 Lipschitz 1 condition을 만족하고
Activation Function은 보통 Lipschizt 1 condition을 만족한다
Others
Weight Normalization, 과한 조건
Orthogonal Normalization, 과한 조건
Spectral Normalization: SVD 말고 빠르게 구하는 방법이 있다
Pytorch Hook이 있다(Custom Module doesn't work)
source code