I am going through this where the author is talking about calibration of prediction estimates of a neural network. I tried to find an intuitive explanation of what, why and how regarding calibration but couldn't find any. Can someone please explain it in most intuitive way before diving into the mathematics of it?
2 Answers
I would suggest checking the same concept in logistic regression, which is the limiting case of a classification neural net
a) logistic regression essentially is fitting a best fit sigmoid to the probability distribution of your class given your input features. If the log odds are actually a linear function, then the probability output will be correct.
b) if the log odds are not given by a linear function, then the probability will not be 'calibrated', and grouping the probability outputs will not match the real world probability. ( just as if you plot (y against y_hat) as linear regression output for true model y=x^2, actual model y_hat=ax (for x>0), you will not get a straight line through origin.
c) a hack to match the probabilites is to create a mapping function ( using the real world data to output probability bins)
AFAIK, the probability estimates of neural networks are maximum likelihood estimates so they are true probabilities. This assuumes you use log loss and all your tweaks are incorporated into the backprop calculation) - is dropout included in backprop?
Usual neural networks used for $k$-class classification use $k$ units in the output layer. These units output some numbers which relate to how much the network thinks the sample belongs to each of the $k$ classes: we assign the sample to the class with the highest output. Since these numbers can be quite arbitrary, we normalize them to sum up to one: that way we can use simple cross-entropy loss function to train that network. There are various ways to normalize the inputs, but the most popular one is exponential normalization, also known as softmax. It has the benefit over linear normalization that it can readily handle negative inputs too.
Softmax-normalized outputs from the network may look like: [0.1, 0.7, 0.2]
. Just like probability distribution, they sum up to one. It might suggest that the network is 70% certain that the given sample belongs to Class 2. In fact, we would be often very happy to get this uncertainty information: in some critical scenarios, uncertain samples could be given to a human expert to make the decision instead of the neural network.
Unfortunately, neural networks do not output uncertainties by default: These numbers are just arbitrary and don't really reflect the strength of the network belief in its prediction. They look like probabilities because we normalized them.
Probability calibration refers to methods that attempt to tackle this issue and force the networks to output actual probabilities.
-
$\begingroup$ Thanks for the answer.
They look like probabilities..
IMO,look like
isn't an accurate description because was the whole purpose of softmax to get probabilities out of logits. Please correct me if I am wrong $\endgroup$– enterMLCommented Jul 23, 2019 at 16:27