Mathematical Foundations

VII.4 · Information Theory

What does a prediction cost under the target distribution?

Keep the target explicit, edit predicted weights, and compare distribution-averaged cross entropy with the loss of one observed class.

Target versus predicted distribution

Explorer: Ordered classes: source P, prediction Q
ClassExact PExact QCE termKL term
10.50.25≈ 0.693147≈ 0.346574
20.250.5≈ 0.173287≈ -0.173287
30.250.25≈ 0.346574≈ 0
Actual cross-entropy contributions (nats)
  1. Class 1: ≈ 0.693147
  2. Class 2: ≈ 0.173287
  3. Class 3: ≈ 0.346574

Bar length = absolute contribution on a shared scale; sign and infinities appear in the labels.

Target P = [0.5, 0.25, 0.25]; prediction Q = [0.25, 0.5, 0.25]. H(P,Q) ≈ 1.21301 nats. This is an average over target P; a single realized NLL is a different observation-level quantity.

Cross entropy (nats)
1.213008
Target entropy (nats)
1.039721
Realized class 1 NLL (nats)
1.386294

= exact rational or mathematical boundary · ≈ approximate binary64 evaluation

P is the fixed target (1/2,1/4,1/4). Edit Q’s nonnegative integer weights; Q is normalized openly. The one-hot option explicitly replaces P by an observed label.

from 0 to 100, whole numbers only

from 0 to 100, whole numbers only

from 0 to 100, whole numbers only

from 0 to 2, whole numbers only

Target P = [0.5, 0.25, 0.25]; prediction Q = [0.25, 0.5, 0.25]. H(P,Q) ≈ 1.21301 nats. This is an average over target P; a single realized NLL is a different observation-level quantity.

H(P,Q)=−∑ipilog⁡qiH(P,Q)=-\sum_i p_i\log q_i
pi=0⇒term=0pi>0, qi=0⇒+∞p_i=0\Rightarrow\text{term}=0\qquad p_i>0,\ q_i=0\Rightarrow+\infty

Name the ordered distributions

Fixed P [0.5, 0.25, 0.25]; normalized prediction Q [0.25, 0.5, 0.25]. Selected source P, prediction Q.

∑ipi=∑iqi=1\sum_i p_i=\sum_i q_i=1

Keep the target explicit, edit predicted weights, and compare distribution-averaged cross entropy with the loss of one observed class.

Intuition

Predicting an outcome poorly is costly when that outcome is common under the target. Cross entropy combines the target frequencies with the surprise assigned by a prediction. One observed label instead incurs just its own negative log probability.

Definition

For normalized discrete distributions P and Q on the same ordered support, H(P,Q)=−∑ipilog⁡qiH(P,Q)=-\sum_i p_i\log q_i. P is the target; Q is the prediction. A realized label y has negative log-likelihood Ly=−log⁡qyL_y=-\log q_y. For a one-hot target pi=1{i=y}p_i=\mathbf1\{i=y\}, cross entropy equals that realized NLL.

Mechanics

P starts fixed at (1/2,1/4,1/4). Only Q’s integer weights are editable and are normalized explicitly. The Target type selector deliberately replaces P by a one-hot observed class. The inspector keeps average cross entropy and the selected class’s NLL separate; the table and bars expose each actual contribution.

Derivation

Take the expectation under P of the prediction’s negative log score: EP[−log⁡qX]=∑ipi(−log⁡qi)\mathbb E_P[-\log q_X]=\sum_i p_i(-\log q_i). In the one-hot case, every term except i=y has zero target weight, leaving −log⁡qy-\log q_y. An iid labeled dataset uses a sum of realized NLLs, or a mean whose denominator counts its contributing observations. Empirical class frequencies recover cross entropy if the same Q is used for all observations.

Worked examples

For P=(1/2,1/4,1/4) and Q=(1/4,1/2,1/4), the bit contributions are (1,1/4,1/2), giving H(P,Q)=7/4H(P,Q)=7/4 bits. If class 1 is the actual observed target, its NLL is 2 bits, which differs from that distribution average. For a target class with q=0, the NLL and one-hot cross entropy are infinite.

Worked example: Target versus predicted distribution

Worked example: Ordered classes: source P, prediction Q
ClassExact PExact QCE termKL term
10.50.25≈ 0.693147≈ 0.346574
20.250.5≈ 0.173287≈ -0.173287
30.250.25≈ 0.346574≈ 0
Actual cross-entropy contributions (nats)
  1. Class 1: ≈ 0.693147
  2. Class 2: ≈ 0.173287
  3. Class 3: ≈ 0.346574

Bar length = absolute contribution on a shared scale; sign and infinities appear in the labels.

Target P = [0.5, 0.25, 0.25]; prediction Q = [0.25, 0.5, 0.25]. H(P,Q) ≈ 1.21301 nats. This is an average over target P; a single realized NLL is a different observation-level quantity.

Cross entropy (nats)
1.213008
Target entropy (nats)
1.039721
Realized class 1 NLL (nats)
1.386294

= exact rational or mathematical boundary · ≈ approximate binary64 evaluation

P is the fixed target (1/2,1/4,1/4). Edit Q’s nonnegative integer weights; Q is normalized openly. The one-hot option explicitly replaces P by an observed label.

from 0 to 100, whole numbers only

from 0 to 100, whole numbers only

from 0 to 100, whole numbers only

from 0 to 2, whole numbers only

Target P = [0.5, 0.25, 0.25]; prediction Q = [0.25, 0.5, 0.25]. H(P,Q) ≈ 1.21301 nats. This is an average over target P; a single realized NLL is a different observation-level quantity.

H(P,Q)=−∑ipilog⁡qiH(P,Q)=-\sum_i p_i\log q_i
pi=0⇒term=0pi>0, qi=0⇒+∞p_i=0\Rightarrow\text{term}=0\qquad p_i>0,\ q_i=0\Rightarrow+\infty

Name the ordered distributions

Fixed P [0.5, 0.25, 0.25]; normalized prediction Q [0.25, 0.5, 0.25]. Selected source P, prediction Q.

∑ipi=∑iqi=1\sum_i p_i=\sum_i q_i=1

Replay the named distributions, actual contribution terms and summed loss.

Executable reference code

The pedagogical version keeps exact source masses and branches on support. The NumPy version uses masks before logarithms and ratios. Both files include assertions for the hand-worked examples.

code/python/information_cross.py
"""P weights the observations; Q supplies their predicted probabilities."""
from fractions import Fraction as F
from math import log, inf, fsum
def cross_entropy(p,q,unit='nats'):
    p=[F(str(x)) for x in p];q=[F(str(x)) for x in q]
    if not 1<=len(p)<=6 or len(p)!=len(q) or any(x<0 for x in p+q) or sum(p)!=1 or sum(q)!=1 or unit not in ('bits','nats'):raise ValueError('Same support; normalized distributions')
    scale=log(2) if unit=='bits' else 1
    terms=[0.0 if not a else inf if not b else -float(a)*(log(b.numerator)-log(b.denominator))/scale for a,b in zip(p,q)]
    return terms,fsum(terms)
if __name__=='__main__':
    assert cross_entropy([0,1,0],['1/2','1/4','1/4'],'bits')[1]==2
    assert cross_entropy([1,0],[0,1])[1]==inf
    assert cross_entropy([1,0],[1,0])[1]==0
    print(cross_entropy(['1/2','1/2'],['1/4','3/4']))
code/python/information_cross_numpy.py
"""Vectorized target-weighted log loss with explicit zero-target masking."""
import numpy as np
def cross_entropy(p,q,unit='nats'):
    p=np.asarray(p,dtype=float);q=np.asarray(q,dtype=float)
    if p.ndim!=1 or not 1<=p.size<=6 or p.shape!=q.shape or not np.all(np.isfinite(p)) or not np.all(np.isfinite(q)) or np.any(p<0) or np.any(q<0) or abs(p.sum()-1)>1e-12 or abs(q.sum()-1)>1e-12 or unit not in ('bits','nats'):raise ValueError('Normalized finite distributions')
    terms=np.zeros_like(p);positive=p>0
    with np.errstate(divide='ignore'):terms[positive]=-p[positive]*np.log(q[positive])/(np.log(2) if unit=='bits' else 1)
    return terms,float(terms.sum())
if __name__=='__main__':
    assert cross_entropy([0,1,0],[.5,.25,.25],'bits')[1]==2
    assert cross_entropy([1,0],[0,1])[1]==np.inf
    assert cross_entropy([1,0],[1,0])[1]==0
    print(cross_entropy([.5,.5],[.25,.75]))

Explore

Select bits and compare the three contribution terms. Switch to one observed true class and move its predicted weight to zero. Change the target class explicitly and identify the one table row carrying the whole loss. Restore the distribution average and compare it with the realized NLL.

Common mistakes and counterexamples

H(P,Q) generally differs from H(Q,P). The target supplies weights, not logarithm arguments. A zero target mass contributes zero even when prediction is zero; never evaluate 0×log 0. A positive target mass at zero prediction contributes +∞. Epsilon smoothing is a changed model, not a free mathematical repair.

Numerical considerations

Both distributions are validated as exact rational masses with total exactly one. Predictions originate from visible nonnegative weights, whose all-zero vector is rejected. Logarithms are approximate; infinity arises from support mismatch rather than overflow. The finite sum is checked against Decimal100 at the declared 2e−12 scaled absolute/relative budget. The later logit pipeline computes NLL from stable log probabilities so probability underflow need not turn a finite NLL into infinity.

Engineering and ML connections

Classification trains predicted class probabilities against labels. Language models use a vocabulary prediction at each position and the observed next token as the label. Distribution-averaged cross entropy describes expected log loss; the training batch is a finite average over its actual observed targets. That scalar feeds gradient-based optimization.

Continue from the preceding information-theory mechanism.

Exercises

Compute actual terms and distinguish direction, support and observation from expectation.

calculation

Average prediction loss

For P=(1/2,1/2), Q=(1/4,3/4), express H(P,Q) in bits as −(1/2)log₂ a. What is a?

calculation

One observed class

For target (0,1,0) and Q=(1/2,1/4,1/4), find the realized NLL in bits.

prediction

Positive target, zero prediction

If pᵢ>0 but qᵢ=0, what does cross entropy report?

Choose one answer

explanation

Unused class

What is the contribution when pᵢ=qᵢ=0?

Choose one answer

construction

Train from observations

How is an average of observed-label NLLs related to H(P,Q)?

Choose one answer

Summary and checkpoints

Predicting an outcome poorly is costly when that outcome is common under the target. Cross entropy combines the target frequencies with the surprise assigned by a prediction. One observed label instead incurs just its own negative log probability. Always name the source and prediction before interpreting a loss.

The map of the book

97 of 97 chapters written · eight Parts

demo Foundation demo Try the live vector example Open as a page

Part I

Mathematical Language

The notation and mental objects everything else uses.

9 of 9 chapters written

  1. I.1 Scalars, quantities, units, powers and roots available
  2. I.2 Coordinates and points available
  3. I.3 Vectors: components, magnitude, and direction reference chapter available
  4. I.4 Algebraic expressions, equations and inequalities available
  5. I.5 Functions as input → transformation → output available
  6. I.6 Essential function families available
  7. I.7 Sets, intervals, and relations available
  8. I.8 Indexed quantities and summation available
  9. I.9 The notation map for ML available

Part II

Linear Algebra

Matrices as transformations: the strongest foundation in the book.

19 of 19 chapters written

  1. II.1 Vector addition and subtraction available
  2. II.2 Scalar multiplication and vector scaling available
  3. II.3 Norms, magnitude, and normalization available
  4. II.4 Dot product, angle, and orthogonality available
  5. II.5 Projection and distance to a direction available
  6. II.6 Linear combinations and span available
  7. II.7 Linear independence, basis, and coordinates available
  8. II.8 Matrices as linear transformations available
  9. II.9 Matrix × vector available
  10. II.10 Matrix × matrix as composition available
  11. II.11 Transpose and orthogonality available
  12. II.12 Determinant: orientation and area/volume scaling available
  13. II.13 Linear systems as intersecting constraints available
  14. II.14 Gaussian elimination and row operations available
  15. II.15 Rank and invertibility available
  16. II.16 Inverse matrices available
  17. II.17 Eigenvalues and eigenvectors available
  18. II.18 Orthogonal bases and least-squares geometry available
  19. II.19 Singular Value Decomposition available

Part III

Calculus

Change, local approximation, and sensitivity made visible.

15 of 15 chapters written

  1. III.1 Limits through approach available
  2. III.2 Continuity and local behavior available
  3. III.3 Derivative as secant → tangent available
  4. III.4 Derivative as rate of change and local linear model available
  5. III.5 Derivative rules available
  6. III.6 Chain rule available
  7. III.7 Multivariable functions and partial derivatives available
  8. III.8 Gradient and directional derivatives available
  9. III.9 Jacobian available
  10. III.10 Computational graphs and automatic differentiation available
  11. III.11 Hessian and curvature available
  12. III.12 Integrals as accumulation available
  13. III.13 Fundamental derivative/integral connection available
  14. III.14 Numerical differentiation available
  15. III.15 Numerical integration available

Part IV

Probability

Uncertainty through sample spaces, evidence, and repetition.

16 of 16 chapters written

  1. IV.1 Random experiments, outcomes, and sample spaces available
  2. IV.2 Events and probability mass available
  3. IV.3 Counting and finite probability where needed available
  4. IV.4 Conditional probability as restricted sample space available
  5. IV.5 Independence available
  6. IV.6 Bayes' theorem as probability-mass update available
  7. IV.7 Random variables available
  8. IV.8 PMF, PDF, and CDF available
  9. IV.9 Bernoulli and Binomial distributions available
  10. IV.10 Uniform and Gaussian distributions available
  11. IV.11 Expectation available
  12. IV.12 Variance and standard deviation available
  13. IV.13 Joint, marginal, and conditional distributions available
  14. IV.14 Covariance and correlation available
  15. IV.15 Law of Large Numbers available
  16. IV.16 Central Limit Theorem available

Part V

Statistics

From observed data to estimates, intervals, and likelihood.

10 of 10 chapters written

  1. V.1 Data summaries: mean, median, mode available
  2. V.2 Spread: variance, standard deviation, robust interpretation available
  3. V.3 Population, sample, and sampling variability available
  4. V.4 Estimators and estimation available
  5. V.5 Confidence intervals through repeated sampling available
  6. V.6 Covariance matrices and multivariate spread available
  7. V.7 Regression fundamentals available
  8. V.8 Likelihood available
  9. V.9 Maximum Likelihood Estimation available
  10. V.10 Maximum A Posteriori estimation available

Part VI

Optimization

Learning as repeated parameter updates governed by an objective.

10 of 10 chapters written

  1. VI.1 Objective functions and optimization landscapes available
  2. VI.2 Local vs global optima and stationary points available
  3. VI.3 Convexity available
  4. VI.4 Gradient descent flagship chapter available
  5. VI.5 Learning rate and convergence behavior available
  6. VI.6 Momentum available
  7. VI.7 Stochastic and mini-batch gradient descent available
  8. VI.8 Adam intuition available
  9. VI.9 Constraints and projected/penalized intuition available
  10. VI.10 Numerical stopping and optimization diagnostics available

Part VII

Information Theory

Logarithms, entropy, and the loss behind token prediction.

8 of 8 chapters written

  1. VII.1 Logarithms and log probabilities in computation available
  2. VII.2 Self-information available
  3. VII.3 Entropy available
  4. VII.4 Cross entropy and negative log-likelihood available
  5. VII.5 KL divergence available
  6. VII.6 Logits and softmax available
  7. VII.7 Numerical stability: log-sum-exp and stable softmax available
  8. VII.8 From token logits to language-model loss available

Part VIII

Numerical Computing

Why equivalent expressions behave differently on real machines.

10 of 10 chapters written

  1. VIII.1 Floating-point representation available
  2. VIII.2 Rounding and representation error available
  3. VIII.3 Error propagation and conditioning available
  4. VIII.4 Catastrophic cancellation available
  5. VIII.5 Overflow and underflow available
  6. VIII.6 Stable algorithms available
  7. VIII.7 Numerical linear algebra realities available
  8. VIII.8 Sparse matrices and sparse structure available
  9. VIII.9 Vectorized computation available
  10. VIII.10 Reproducibility, random seeds, and nondeterminism available