Click here to read the original paper on this. Below is code to implement both the Euclidean and KL divergence versions. Below that is KL divergence run on various numbers of components, showing the results of each iteration of NMF. The more components we allow ourselves to use, the better approximation we get, but the less meaningful each component is.
KL Divergence Examples
K = 3
Griffin-Lim Inverse of W*H
Your browser does not support the audio element.
NMF Iterations
Components
Components
Filtered
0
Your browser does not support the audio element.
Your browser does not support the audio element.
1
Your browser does not support the audio element.
Your browser does not support the audio element.
2
Your browser does not support the audio element.
Your browser does not support the audio element.
K = 5
Griffin-Lim Inverse of W*H
Your browser does not support the audio element.
NMF Iterations
Components
Components
Filtered
0
Your browser does not support the audio element.
Your browser does not support the audio element.
1
Your browser does not support the audio element.
Your browser does not support the audio element.
2
Your browser does not support the audio element.
Your browser does not support the audio element.
3
Your browser does not support the audio element.
Your browser does not support the audio element.
4
Your browser does not support the audio element.
Your browser does not support the audio element.