As described in Section 2.1, learning a supervised learning model is sometimes equivalent to maximizing the likelihood function so that the observed data is most probable. However, this approach often leads to excessively complex models and overfitting. To avoid this problem, one common solution is to apply Bayesian treatment, which gives us a probabilistic model and automatically determines its complexity . Briefly speaking, with Bayesian learning, we assign a prior distribution on the model parameters and then use the observed data to update this prior. For example, to apply Bayesian treatment on the Multiple Linear Regression model in Section 2.1, instead of directly fitting the parameters 𝒘, we introduce a prior distribution over 𝒘 and 𝜖: 𝑝(𝒘|𝛼) = 𝒩(0, 𝛼 -1 𝑰), 𝑝(𝜖|𝛽) = 𝒩(0, 𝛽 which not only estimates the value of 𝑦 * but also gives its uncertainty. Such Bayesian treatments can also be applied to other types of models such as Logistic Regression and Generalized Linear Models (GLM).