ENH: better search method: start from an existing solution, do gradient descent