Information theory and inference, taught together in this exciting textbook, lie at the heart of many important areas of modern technology - communication, signal processing, data mining, machine learning, pattern recognition, computational neuroscience, bioinformatics and cryptography. The book introduces theory in tandem with applications. Information theory is taught alongside practical communication systems such as arithmetic coding for data compression and sparse-graph codes for error-correction. Inference techniques, including message-passing algorithms, Monte Carlo methods and variational approximations, are developed alongside applications to clustering, convolutional codes, independent component analysis, and neural networks. Uniquely, the book covers state-of-the-art error-correcting codes, including low-density-parity-check codes, turbo codes, and digital fountain codes - the twenty-first-century standards for satellite communications, disk drives, and data broadcast. Richly illustrated, filled with worked examples and over 400 exercises, some with detailed solutions, the book is ideal for self-learning, and for undergraduate or graduate courses. It also provides an unparalleled entry point for professionals in areas as diverse as computational biology, financial engineering and machine learning.

• Readable, fun and enthusiastic introduction to a dynamic and exciting field • Covers theory and applications in tandem, including discussion of state-of-the-art codes used in data compression, error correction and learning; and Bayesian models and Monte Carlo methods • Contains lots of worked examples and exercises, many of which have full solutions in the book

### Contents

1. Introduction to information theory; 2. Probability, entropy and inference; 3. More about inference; Part I. Data Compression: 4. The source coding theorem; 5. Symbol codes; 6. Stream codes; 7. Codes for integers; Part II. Noisy-Channel Coding: 8. Dependent random variables; 9. Communication over a noisy channel; 10. The noisy-channel coding theorem; 11. Error-correcting codes and real channels; Part III. Further Topics in Information Theory: 12. Hash codes; 13. Binary codes; 14. Very good linear codes exist; 15. Further exercises on information theory; 16. Message passing; 17. Constrained noiseless channels; 18. Crosswords and codebreaking; 19. Why have sex? Information acquisition and evolution; Part IV. Probabilities and Inference: 20. An example inference task: clustering; 21. Exact inference by complete enumeration; 22. Maximum likelihood and clustering; 23. Useful probability distributions; 24. Exact marginalization; 25. Exact marginalization in trellises; 26. Exact marginalization in graphs; 27. Laplace's method; 28. Model comparison and Occam's razor; 29. Monte Carlo methods; 30. Efficient Monte Carlo methods; 31. Ising models; 32. Exact Monte Carlo sampling; 33. Variational methods; 34. Independent component analysis; 35. Random inference topics; 36. Decision theory; 37. Bayesian inference and sampling theory; Part V. Neural Networks: 38. Introduction to neural networks; 39. The single neuron as a classifier; 40. Capacity of a single neuron; 41. Learning as inference; 42. Hopfield networks; 43. Boltzmann machines; 44. Supervised learning in multilayer networks; 45. Gaussian processes; 46. Deconvolution; Part VI. Sparse Graph Codes; 47. Low-density parity-check codes; 48. Convolutional codes and turbo codes; 49. Repeat-accumulate codes; 50. Digital fountain codes; Part VII. Appendices: A. Notation; B. Some physics; C. Some mathematics; Bibliography; Index.

### Reviews

'This is an extraordinary and important book, generous with insight and rich with detail in statistics, information theory, and probabilistic modeling across a wide swathe of standard, creatively original, and delightfully quirky topics. David MacKay is an uncompromisingly lucid thinker, from whom students, faculty and practitioners all can learn.' Peter Dayan and Zoubin Ghahramani, Gatsby Computational Neuroscience Unit, University College, London

'This is primarily an excellent textbook in the areas of information theory, Bayesian inference and learning algorithms. Undergraduates and postgraduates students will find it extremely useful for gaining insight into these topics; however, the book also serves as a valuable reference for researchers in these areas. Both sets of readers should find the book enjoyable and highly useful.' David Saad, Aston University

'An utterly original book that shows the connections between such disparate fields as information theory and coding, inference, and statistical physics.' Dave Forney, Massachusetts Institute of Technology

'An instant classic, covering everything from Shannon's fundamental theorems to the postmodern theory of LDPC codes. You'll want two copies of this astonishing book, one for the office and one for the fireside at home.' Bob McEliece, California Institute of Technology

'… a quite remarkable work … the treatment is specially valuable because the author has made it completely up-to-date … this magnificent piece of work is valuable in introducing a new integrated viewpoint, and it is clearly an admirable basis for taught courses, as well as for self-study and reference. I am very glad to have it on my shelves.' Robotica

'With its breadth, accessibility and handsome design, this book should prove to be quite popular. Highly recommended as a primer for students with no background in coding theory, the set of chapters on error correcting codes are an excellent brief introduction to the elements of modern sparse graph codes: LDPC, turbo, repeat-accumulate and fountain codes are described clearly and succinctly.' IEEE Transactions on Information Theory