Compute gradient seperately, and find a failing test
Fix a bug where h probability updates ignored step
Normalise before checking for local maximum