Discrete Probability Distributions for Machine Learning