Understanding unsupervised learning