AICurious Logo

What is: Cosine Normalization?

SourceCosine Normalization: Using Cosine Similarity Instead of Dot Product in Neural Networks
Year2000
Data SourceCC BY-SA - https://paperswithcode.com

Multi-layer neural networks traditionally use dot products between the output vector of previous layer and the incoming weight vector as the input to activation function. The result of dot product is unbounded. To bound dot product and decrease the variance, Cosine Normalization uses cosine similarity or centered cosine similarity (Pearson Correlation Coefficient) instead of dot products in neural networks.

Using cosine normalization, the output of a hidden unit is computed by:

o=f(netnorm)=f(cosθ)=f(wxwx)o = f(net_{norm})= f(\cos \theta) = f(\frac{\vec{w} \cdot \vec{x}} {\left|\vec{w}\right| \left|\vec{x}\right|})

where netnormnet_{norm} is the normalized pre-activation, w\vec{w} is the incoming weight vector and x\vec{x} is the input vector, (\cdot) indicates dot product, ff is nonlinear activation function. Cosine normalization bounds the pre-activation between -1 and 1.