Unsupervised Learning For Anomaly Detection