Tweek to mirror descent code that makes it 1000% better. Don't initialize weights randomly. If they are set to zero it works well, but will throw a divide by zero error on the first update (because the link function has a 1/norm(w) which is zero).