Mathematical Foundations

VII.6 · Information Theory

How do unconstrained scores become probabilities?

Edit the class scores and inspect exponentials, their denominator and normalized probabilities. Compare naive computation with the stable pipeline.

Scores → exponentials → probabilities

Explorer: Actual naive and stable probability computation
ClassInput zNaive exp(z)Naive pStable p
12≈ 7.38906≈ 0.665241≈ 0.665241
21≈ 2.71828≈ 0.244728≈ 0.244728
30≈ 1≈ 0.0900306≈ 0.0900306
Stable output probabilities
  1. Class 1 probability: ≈ 0.665241
  2. Class 2 probability: ≈ 0.244728
  3. Class 3 probability: ≈ 0.0900306

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

Logits are scores, not probabilities. Input +∞ and NaN are rejected; an explicit −∞ excludes a class. All −∞ has no normalizable mass. Finite logits can still have numerical underflow.

Effective logits [2, 1, 0]. m=2; shifted exponentials [≈ 1, ≈ 0.367879, ≈ 0.135335]; denominator ≈ 1.50321. Stable sum ≈ 1; normalization error ≈ 1.11022e-16 ≤ ≈ 4.26326e-14 budget. Naive path: finite.

Maximum input logit
2
Shifted exponential denominator
1.503215
Stable log-sum-exp
2.407606
Selected class probability
0.665241
Selected stable log probability
−0.407606
Naive binary64 denominator
11.107338
Normalization error
1.11022×10⁻¹⁶
Common-shift probability difference
0

= exact rational or mathematical boundary · ≈ approximate binary64 evaluation

from −1000 to 1000, up to 2 decimal places

from −1000 to 1000, up to 2 decimal places

from −1000 to 1000, up to 2 decimal places

from −1000 to 1000, up to 2 decimal places

from 0 to 2, whole numbers only

Effective logits [2, 1, 0]. m=2; shifted exponentials [≈ 1, ≈ 0.367879, ≈ 0.135335]; denominator ≈ 1.50321. Stable sum ≈ 1; normalization error ≈ 1.11022e-16 ≤ ≈ 4.26326e-14 budget. Naive path: finite. Common-shift probability difference ≈ 0.

m=max⁡izi,log⁡∑iezi=m+log⁡∑iezi−mm=\max_i z_i,\quad\log\sum_i e^{z_i}=m+\log\sum_i e^{z_i-m}
log⁡pi=(zi−m)−log⁡∑jezj−m\log p_i=(z_i-m)-\log\sum_j e^{z_j-m}
softmax⁡(z+c1)=softmax⁡(z)\operatorname{softmax}(\mathbf z+c\mathbf1)=\operatorname{softmax}(\mathbf z)

Find and subtract the actual maximum

m=2. Shifted logits [0, -1, -2].

z~i=zi−m\widetilde z_i=z_i-m

Edit the class scores and inspect exponentials, their denominator and normalized probabilities. Compare naive computation with the stable pipeline.

Intuition

Scores can be negative or larger than one because they are not probabilities. Exponentiating makes relative scores positive; dividing by their total makes the outputs sum to one. A common offset changes the exponential scale but cancels out of the mathematical probabilities.

Definition

For a nonempty finite logit vector z∈Rn\mathbf z\in\mathbb R^n, pi=softmax⁡(z)i=ezi/∑jezjp_i=\operatorname{softmax}(\mathbf z)_i=e^{z_i}/\sum_j e^{z_j}. Every mathematical output is positive and their sum is one. An optional explicit −∞ score denotes an excluded class with zero mass; at least one score must remain finite.

Mechanics

Each score control changes one entry in the authoritative vector. The table exposes actual naive exponentials and probabilities alongside stable output. The inspector exposes the naive denominator, shifted denominator, log-sum-exp and selected class probability. Common finite shift changes the effective input vector, with a displayed probability difference relative to the original scores.

Derivation

Sum the output probabilities to obtain ∑iezi/∑jezj=1\sum_i e^{z_i}/\sum_j e^{z_j}=1. For a common finite shift c, ezi+c=ecezie^{z_i+c}=e^ce^{z_i}, so the common factor cancels: softmax⁡(z+c1)=softmax⁡(z)\operatorname{softmax}(\mathbf z+c\mathbf1)=\operatorname{softmax}(\mathbf z). The same cancellation permits subtraction of the largest score before exponentiation.

Worked examples

For logits (log⁡2,0)(\log2,0), exponentials are (2,1), denominator 3 and probabilities (2/3,1/3). For equal logits (0,0,0), outputs are (1/3,1/3,1/3). The canonical scores (2,1,0) produce approximately (0.665241,0.244728,0.090031). Adding 1000 preserves the mathematical ratios even though direct exponentials overflow.

Worked example: Scores → exponentials → probabilities

Worked example: Actual naive and stable probability computation
ClassInput zNaive exp(z)Naive pStable p
12≈ 7.38906≈ 0.665241≈ 0.665241
21≈ 2.71828≈ 0.244728≈ 0.244728
30≈ 1≈ 0.0900306≈ 0.0900306
Stable output probabilities
  1. Class 1 probability: ≈ 0.665241
  2. Class 2 probability: ≈ 0.244728
  3. Class 3 probability: ≈ 0.0900306

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

Logits are scores, not probabilities. Input +∞ and NaN are rejected; an explicit −∞ excludes a class. All −∞ has no normalizable mass. Finite logits can still have numerical underflow.

Effective logits [2, 1, 0]. m=2; shifted exponentials [≈ 1, ≈ 0.367879, ≈ 0.135335]; denominator ≈ 1.50321. Stable sum ≈ 1; normalization error ≈ 1.11022e-16 ≤ ≈ 4.26326e-14 budget. Naive path: finite.

Maximum input logit
2
Shifted exponential denominator
1.503215
Stable log-sum-exp
2.407606
Selected class probability
0.665241
Selected stable log probability
−0.407606
Naive binary64 denominator
11.107338
Normalization error
1.11022×10⁻¹⁶
Common-shift probability difference
0

= exact rational or mathematical boundary · ≈ approximate binary64 evaluation

from −1000 to 1000, up to 2 decimal places

from −1000 to 1000, up to 2 decimal places

from −1000 to 1000, up to 2 decimal places

from −1000 to 1000, up to 2 decimal places

from 0 to 2, whole numbers only

Effective logits [2, 1, 0]. m=2; shifted exponentials [≈ 1, ≈ 0.367879, ≈ 0.135335]; denominator ≈ 1.50321. Stable sum ≈ 1; normalization error ≈ 1.11022e-16 ≤ ≈ 4.26326e-14 budget. Naive path: finite. Common-shift probability difference ≈ 0.

m=max⁡izi,log⁡∑iezi=m+log⁡∑iezi−mm=\max_i z_i,\quad\log\sum_i e^{z_i}=m+\log\sum_i e^{z_i-m}
log⁡pi=(zi−m)−log⁡∑jezj−m\log p_i=(z_i-m)-\log\sum_j e^{z_j-m}
softmax⁡(z+c1)=softmax⁡(z)\operatorname{softmax}(\mathbf z+c\mathbf1)=\operatorname{softmax}(\mathbf z)

Find and subtract the actual maximum

m=2. Shifted logits [0, -1, -2].

z~i=zi−m\widetilde z_i=z_i-m

Replay actual scores, normalization, log probabilities and the selected result.

Executable reference code

The standalone pedagogical implementation exposes the operations. Its NumPy companion uses array reductions and explicit domain/mask guards. Both include assertions for the hand-worked examples.

code/python/information_softmax.py
"""Scores become positive exponentials and then normalized probabilities."""
from math import exp,fsum,isfinite,inf
def softmax(logits):
    if not 1<=len(logits)<=6 or any(not isfinite(z) and z!=-inf for z in logits):raise ValueError('Finite scores or explicit −infinity')
    m=max(logits)
    if m==-inf:raise ValueError('All excluded: normalization undefined')
    exponentials=[exp(z-m) for z in logits]
    denominator=fsum(exponentials)
    return exponentials,denominator,[e/denominator for e in exponentials]
if __name__=='__main__':
    assert softmax([0,0])[2]==[.5,.5]
    assert softmax([1,2,3])[2]==softmax([101,102,103])[2]
    assert softmax([1000,0,-1000])[2]==[1,0,0]
    print(softmax([2,1,0]))
code/python/information_softmax_numpy.py
"""NumPy score normalization with max-shifting and declared input policies."""
import numpy as np
def softmax(logits):
    z=np.asarray(logits,dtype=float)
    if z.ndim!=1 or not 1<=z.size<=6 or np.any(np.isnan(z)) or np.any(z==np.inf):raise ValueError('Invalid logits')
    if np.all(z==-np.inf):raise ValueError('All excluded: normalization undefined')
    with np.errstate(under='ignore',over='ignore'):e=np.exp(z-z.max())
    return e,float(e.sum()),e/e.sum()
if __name__=='__main__':
    assert np.array_equal(softmax([0,0])[2],[.5,.5])
    assert np.allclose(softmax([1,2,3])[2],softmax([1001,1002,1003])[2])
    print(softmax([2,1,0]))

Explore

Predict which class gets the largest mass. Change one score through the keyboard and numeric field, then apply a common shift. Select Overflow + tiny probability and compare the naive denominator failure with the stable prediction. Use Equal logits to confirm the uniform output.

Common mistakes and counterexamples

Logits need not sum to one, and negative logits are not negative probabilities. Softmax is invariant to a common additive shift, not to arbitrary changes of relative score or multiplication by a common factor. The selected class is a user-chosen index; it is not secretly replaced by the argmax.

Numerical considerations

The bounded explorer has 1–6 model classes and three canonical editable classes. Finite controls accept two-place scores and shifts in [−1000,1000]. Real exponentials are finite for finite scores, but binary64 exp(1000) overflows. Stable shifted exponentials are at most one. Normalization is checked at 32×epsilon×6, about 4.27e−14; independent Decimal400 reference probabilities have a separate 2e−14 absolute comparison tolerance. Adding a huge common shift in binary64 can round away the original score differences, so invariance is a mathematical identity with a numerical input-rounding caveat.

Engineering and ML connections

Classification and vocabulary prediction use relative scores to define categorical probabilities. A logit is an input to this transformation, not an event probability. Cross entropy scores the resulting prediction against a target, and the next chapter retains log probabilities without taking a logarithm of underflowed outputs.

Connect to the accepted prerequisite mechanism.

Exercises

Predict intermediate quantities, calculate small cases and explain numerical or mask boundaries.

calculation

Equal scores

For three equal logits, give each output probability.

calculation

Inspect the denominator

For logits (log 2,0), exponentials are (2,1). Give the denominator and first probability.

explanation

Scores are not probabilities

A logit equals −2. Is the prediction invalid?

Choose one answer

prediction

Common shift

What happens mathematically if every finite logit increases by 100?

Choose one answer

construction

Naive overflow

Why can a naive probability become NaN at logits (1000,0)?

Choose one answer

Summary and checkpoints

Scores can be negative or larger than one because they are not probabilities. Exponentiating makes relative scores positive; dividing by their total makes the outputs sum to one. A common offset changes the exponential scale but cancels out of the mathematical probabilities. Read the actual pipeline, preserve the log information and state which inputs contribute.

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