Mathematical Foundations

VII.3 · Information Theory

How uncertain is the whole distribution?

Change explicit weights, inspect the normalized rational masses, and see each mass-weighted surprise contribution before they sum to entropy.

Expected surprise of a distribution

One normalized probability distribution
One normalized probability distributionExact normalized masses [0.5, 0.25, 0.25]. Entropy ≈ 1.03972 nats; maximum ≈ 1.09861 for 3 fixed outcomes. Entropy averages surprise across possible observations.11: approximately 0.52: approximately 0.253: approximately 0.250.523.5

Horizontal: outcome · vertical: probability mass from the exact normalized distribution

Explorer: Mass × surprise = actual entropy contribution
OutcomeExact pSurpriseContribution (nats)
10.5≈ 0.693147≈ 0.346574
20.25≈ 1.38629≈ 0.346574
30.25≈ 1.38629≈ 0.346574
Actual entropy contributions in nats
  1. Outcome 1: ≈ 0.346574
  2. Outcome 2: ≈ 0.346574
  3. Outcome 3: ≈ 0.346574

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

Exact normalized masses [0.5, 0.25, 0.25]. Entropy ≈ 1.03972 nats; maximum ≈ 1.09861 for 3 fixed outcomes. Entropy averages surprise across possible observations.

Entropy (nats)
1.039721
Maximum (nats)
1.098612
Exact total mass
1

= exact rational or mathematical boundary · ≈ approximate binary64 evaluation

Edit nonnegative integer weights. The table openly normalizes them; these controls are weights, not already normalized probabilities.

from 0 to 100, whole numbers only

from 0 to 100, whole numbers only

from 0 to 100, whole numbers only

Exact normalized masses [0.5, 0.25, 0.25]. Entropy ≈ 1.03972 nats; maximum ≈ 1.09861 for 3 fixed outcomes. Entropy averages surprise across possible observations.

H(P)=−∑ipilog⁡piH(P)=-\sum_i p_i\log p_i
0log⁡0:=00≤H(P)≤log⁡n0\log0:=0\qquad 0\le H(P)\le\log n

Normalize declared weights

Weights [2, 1, 1] become the exact masses in the table.

pi=wi/∑jwjp_i=w_i/\sum_jw_j

Change explicit weights, inspect the normalized rational masses, and see each mass-weighted surprise contribution before they sum to entropy.

Intuition

A point mass always produces the same outcome and has no uncertainty. Spreading fixed total mass over several outcomes creates uncertainty. Entropy asks how surprising an observation is on average under that distribution.

Definition

For a finite discrete distribution P=(p1,…,pn)P=(p_1,\ldots,p_n) with pi≥0p_i\ge0 and ∑ipi=1\sum_i p_i=1, H(P)=−∑ipilog⁡pi=EP[I(X)]H(P)=-\sum_i p_i\log p_i=\mathbb E_P[I(X)]. Natural logs give nats; base-2 logs give bits. Define the zero-mass contribution by 0log⁡0=00\log0=0.

Mechanics

The controls are nonnegative integer weights. The displayed rule pᵢ=wᵢ/Σwⱼ normalizes those weights once into authoritative exact masses. The probability graph and contribution bars both use that derived distribution; bar lengths encode actual pᵢIᵢ values, which also appear in the table. An all-zero weight vector is rejected.

Derivation

Take the expectation of surprise: each −log⁡pi-\log p_i occurs with probability pip_i. The limit lim⁡p↓0plog⁡p=0\lim_{p\downarrow0}p\log p=0 follows by writing p=e−tp=e^{-t}, so plog⁡p=−te−t→0p\log p=-te^{-t}\to0. Every positive-mass surprise is nonnegative, so H≥0H\ge0. Equality requires all positive mass to be at probability 1. For the upper bound, strict concavity of log gives ∑pi>0pilog⁡(1/pi)≤log⁡(∑pi>01)≤log⁡n\sum_{p_i>0}p_i\log(1/p_i)\le\log(\sum_{p_i>0}1)\le\log n. Equality at fixed support n requires every pi=1/np_i=1/n.

Worked examples

For P=(1/2,1/4,1/4)P=(1/2,1/4,1/4), surprises are (1,2,2)(1,2,2) bits and contributions are (1/2,1/2,1/2)(1/2,1/2,1/2) bits. Thus H(P)=3/2H(P)=3/2 bits. For a uniform three-outcome distribution, H=log⁡23≈1.584963H=\log_2 3\approx1.584963 bits. For (1,0,0)(1,0,0), every contribution is zero.

Worked example: Expected surprise of a distribution

One normalized probability distribution
One normalized probability distributionExact normalized masses [0.5, 0.25, 0.25]. Entropy ≈ 1.03972 nats; maximum ≈ 1.09861 for 3 fixed outcomes. Entropy averages surprise across possible observations.11: approximately 0.52: approximately 0.253: approximately 0.250.523.5

Horizontal: outcome · vertical: probability mass from the exact normalized distribution

Worked example: Mass × surprise = actual entropy contribution
OutcomeExact pSurpriseContribution (nats)
10.5≈ 0.693147≈ 0.346574
20.25≈ 1.38629≈ 0.346574
30.25≈ 1.38629≈ 0.346574
Actual entropy contributions in nats
  1. Outcome 1: ≈ 0.346574
  2. Outcome 2: ≈ 0.346574
  3. Outcome 3: ≈ 0.346574

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

Exact normalized masses [0.5, 0.25, 0.25]. Entropy ≈ 1.03972 nats; maximum ≈ 1.09861 for 3 fixed outcomes. Entropy averages surprise across possible observations.

Entropy (nats)
1.039721
Maximum (nats)
1.098612
Exact total mass
1

= exact rational or mathematical boundary · ≈ approximate binary64 evaluation

Edit nonnegative integer weights. The table openly normalizes them; these controls are weights, not already normalized probabilities.

from 0 to 100, whole numbers only

from 0 to 100, whole numbers only

from 0 to 100, whole numbers only

Exact normalized masses [0.5, 0.25, 0.25]. Entropy ≈ 1.03972 nats; maximum ≈ 1.09861 for 3 fixed outcomes. Entropy averages surprise across possible observations.

H(P)=−∑ipilog⁡piH(P)=-\sum_i p_i\log p_i
0log⁡0:=00≤H(P)≤log⁡n0\log0:=0\qquad 0\le H(P)\le\log n

Normalize declared weights

Weights [2, 1, 1] become the exact masses in the table.

pi=wi/∑jwjp_i=w_i/\sum_jw_j

Replay the actual mathematical inputs, terms and result.

Executable reference code

Run the standalone pedagogical version to see each operation; the NumPy companion shows the practical array form. Both include assertions so you can check the worked examples as you run them.

code/python/information_entropy.py
"""Exact normalization, then an explicit expected-surprise sum."""
from fractions import Fraction
from math import log, fsum
def entropy(weights,unit='nats'):
    if not 1<=len(weights)<=6 or any(type(w) is not int or not 0<=w<=1000000 for w in weights) or sum(weights)==0 or unit not in ('nats','bits'):
        raise ValueError('Nonnegative integer weights with positive total; nats or bits')
    masses=[Fraction(w,sum(weights)) for w in weights]
    terms=[0.0 if not p else float(p)*(log(p.denominator)-log(p.numerator))/(log(2) if unit=='bits' else 1) for p in masses]
    return masses,terms,fsum(terms)
if __name__=='__main__':
    assert entropy([1,0,0],'bits')[2]==0
    assert entropy([2,1,1],'bits')[2]==1.5
    assert entropy([1,1],'bits')[2]==1
    print(entropy([2,1,1],'bits'))
code/python/information_entropy_numpy.py
"""Normalize weights openly; mask zeros before logarithms, never 0 × infinity."""
import numpy as np
def entropy(weights,unit='nats'):
    w=np.asarray(weights,dtype=float)
    if w.ndim!=1 or not 1<=w.size<=6 or not np.all(np.isfinite(w)) or np.any((w<0)|(w>1000000)|(w!=np.floor(w))) or w.sum()==0 or unit not in ('nats','bits'):raise ValueError('Invalid weights or unit')
    p=w/w.sum();positive=p>0;terms=np.zeros_like(p)
    terms[positive]=-p[positive]*np.log(p[positive])/(np.log(2) if unit=='bits' else 1)
    return p,terms,float(terms.sum())
if __name__=='__main__':
    assert entropy([1,0,0],'bits')[2]==0
    assert entropy([2,1,1],'bits')[2]==1.5
    print(entropy([2,1,1],'bits'))

Explore

Compare Point mass and Uniform masses without changing support size. Then move weight into one outcome and identify the contribution that changes. Make one weight zero and explain why its infinite single-event surprise contributes zero to the expectation.

Common mistakes and counterexamples

Entropy belongs to a distribution; surprise belongs to one observation. A rare event can have huge surprise while contributing little to entropy. Entropy does not ignore probabilities and merely count labels. A zero-weight label still belongs to the fixed support used for the maximum comparison.

Numerical considerations

Supported distributions have 1–6 outcomes with integer weights up to 1,000,000 in the model (controls use 0–100). Exact rational normalization preserves total mass exactly. Zero terms are branched before evaluating products; no 0×∞ is computed. Logarithms and entropy sums use binary64 and are checked against exact Fraction/Decimal100 sources at 2e−12 scaled absolute/relative budget. Numerical examples verify implementation; concavity supplies the mathematical maximum proof.

Engineering and ML connections

Entropy is the best distribution-averaged log loss attainable by predicting the target distribution itself. Cross entropy will measure a prediction distribution against this baseline, and KL will expose the excess loss.

Continue from the preceding mathematical connection.

Exercises

Predict, compute and explain the actual quantities. Each question offers corrective feedback and a worked solution.

calculation

Two equally likely outcomes

Compute entropy of (1/2,1/2) in bits.

calculation

Point mass

Compute entropy of (1,0,0) in bits.

calculation

Read actual contributions

For (1/2,1/4,1/4), find all three contribution terms and entropy in bits.

construction

Maximum at fixed support

Which distribution maximizes entropy over four fixed outcomes?

Choose one answer

explanation

Observation versus distribution

Does one surprising observation imply the distribution has high entropy?

Choose one answer

Summary and checkpoints

A point mass always produces the same outcome and has no uncertainty. Spreading fixed total mass over several outcomes creates uncertainty. Entropy asks how surprising an observation is on average under that distribution. Check the assumptions, unit and boundary before interpreting the computed result.

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