Spectral Normalization is a normalization technique used for generative adversarial networks, used to stabilize training of the discriminator. Spectral normalization has the convenient property that the Lipschitz constant is the only hyper-parameter to be tuned.
It controls the Lipschitz constant of the discriminator f by constraining the spectral norm of each layer g:h_in→hout. The Lipschitz norm ∥g∥_Lip is equal to sup_hσ(∇g(h)), where σ(a) is the spectral norm of the matrix A (L_2 matrix norm of A):
σ(a)=max_h:h=0∥h∥_2∥Ah∥_2=max_∥h∥_2≤1∥Ah∥_2
which is equivalent to the largest singular value of A. Therefore for a linear layer g(h)=Wh the norm is given by ∥g∥_Lip=sup_hσ(∇g(h))=sup_hσ(W)=σ(W). Spectral normalization normalizes the spectral norm of the weight matrix W so it satisfies the Lipschitz constraint σ(W)=1:
Wˉ_SN(W)=W/σ(W)