Non-linear Metric Learning