목록Research/Operations (4)
숟가락 그만 얹어

후아, 다른 분들이 정리해둔 포스팅을 읽고 겨우겨우 따라갈 수 있었다... GAN의 training stability를 향상하기 위해 dicriminator의 각 layer weight를 largest singular value로 나누어준다. 왜??? - 각 layer weight의 largest singular value는 Lipschitz norm의 역할을 한다. - Lipschitz norm은 함수의 기울기를 일정 미만 (gradient의 principle direction scale)으로 제한시키는 역할을 한다. - 이를 spectral_norm(gradient(g(h)))로 구할 수 있는데 g(h) = Wh라면 이는 spectral_norm(W)과 같고, spectral norm은 largest..

Vector norm의 정의 Vector의 길이 ||v||를 표현하는 수단. 자주 접하게 되는 l1-norm, l2-norm 등이 이에 해당한다. Positivity, homogeneity, triangle inequality를 만족해야 한다. Matrix norm의 정의 Linear operator의 크기 ||A||를 표현하는 수단. ||Ax||

Convolution에서 batch normalization (BN)을 위한 parameter 추정 시 activation shape이 (B, W, H, C)라면 mean과 variance는 tf.reduce_mean_var(input, [0, 1, 2])으로 계산된다. 위 방법은 batch size에 따라 statistics가 크게 영향을 받으므로 one sample을 이용한 layer normalization (LN), instance normalization (IN)이 제안되었고, one sample에 대해 channel group을 나누고 각 group에 대한 statistics를 계산하는 group normalization (GN)도 소개되었다. 그런데 충분한 크기의 batch가 가능한 경우에는..

WaveNet paper만 봐서는 어떻게 동작하는지 잘 모르겠어서 이것저것 찾아보았다. 1-D convolution에서 causal을 구현하려면 zero padding을 input의 왼쪽 side에만 붙이면 된다. (output[t]가 input[t+1:]에 영향을 받지 않게 된다) Stride가 1이면 input과 output의 shape이 같다. 논문에서의 dilation과 Pytorch에서의 dilation의 의미가 조금 다른 것 같은데, 전자는 두 step 사이의 거리를 2^(dilation)으로 정의한 것 같고 후자는 (dilation - 1)이다. Input의 양 side에 padding을 붙이고 convolution 계산 후에 오른쪽 side를 제거할 수도 있다. References [1] ..