Here's how I describe KL Divergence, building up from simple to complex concepts.
surprisal: how surprised I am when I learn the value of X
Suprisal(x) = -log p(X=x)
entropy: how surprised I expect to be
H(p) = ๐ผ_X -log p(X)
= โ_x p(X=x) * -log p(X=x)
cross-entropy: how surprised I expect Bob to be (if Bob's beliefs are q instead of p)
H(p,q) = ๐ผ_X -log q(X)
= โ_x p(X=x) * -log q(X=x)
KL divergence: how much *more* surprised I expect Bob to be than me
Dkl(p || q) = H(p,q) - H(p,p)
= โ_x p(X=x) * log p(X=x)/q(X=x)
information gain: how much less surprised I expect Bob to be if he knew that Y=y
IG(q|Y=y) = Dkl(q(X|Y=y) || q(X))
mutual information: how much information I expect to gain about X from learning the value of Y
I(X;Y) = ๐ผ_Y IG(q|Y=y)
๐ผ_Y Dkl(q(X|Y=y) || q(X))
surprisal: how surprised I am when I learn the value of X
entropy: how surprised I expect to be cross-entropy: how surprised I expect Bob to be (if Bob's beliefs are q instead of p) KL divergence: how much *more* surprised I expect Bob to be than me information gain: how much less surprised I expect Bob to be if he knew that Y=y mutual information: how much information I expect to gain about X from learning the value of Y