Clean up softmax, use discrete_distribution for exponential weighted sampling