Geometric Optimisation On Manifolds With Applications To Deep Learning