Not super sure it works, but seems to train to an equilibrium atleast
Got a max-likelihood assignment out of CUDA, after training on some examples. Time to test from Java.