Welcome to Avi's reading-list!
I'm Avi Amalanshu, an incoming MS in ML student at CMU and former 5 year B.Tech + M.Tech student at IIT-KGP. I'm interested in representaiton learning, particularly pertaining to higher-order reasoning and symbolic execution. Check out my website to learn more.
About This:
Right now, this thing is documenting my summer readings. For the past few years, I've saved a bunch of blogs, papers and texts that I found intriguing but didn't immediataely have the time to do justice to. This is probably the last time in the forseeable future that I can read whatever I want out of my own curiosity, so I plan on clearing out that backlog.
I also want to hit the ground running with my coursework at CMU this Fall. So I will read as close to that material as my whimsies permit. And revise some basics.
Use the sidebar to navigate. Happy reading!
Summer Syllabus
- Analysis
- Real Analysis introduction
- Measure Theory
- Functional Analysis basics
- Category Theory
- Combinatorics
- Combinatorics introduction
- Enumerative combinatorics
- Extremal combinatorics basics
- Symbolic methods
- Linear Algebraic methods
- Probability & Statistics
- Programming Languages
- Computer Systems
- Novels
- Algorithms
Analysis
Introduction to Real Analysis
- Abbott chapters 1-4
- Carothers chapters 1, 3-4
- Big Rudin chapters 2-5
Measure Theory
- PMATH450
- Big Rudin chapters 6-8
Functional Analysis Basics
- Inf Desc chapters 1-5
- Carothers chapters 10-12
Bibliography
- Abbott: Stephen Abbott; Understanding Analysis
- Carothers: N. L. Carothers; Real Analysis
- Big Rudin: Walter Rudin; Real and Complex Analysis
- PMATH450: Laurent W. Marcoux; An introduction to Lebesgue Measure and Fourier Analysis
- Inf Desc: Clive Newstead; An infinite descent into pure mathematics
Category Theory
- WWC chapters 1.0-1.2
- Chapter 0 chapters 1-3
- nLab wikies Category, Category Theory
- ...
- Work chapters 1-2, 5-7
- CTC chapters 1-5
- Categories OCW chapters 2, 4-7
Bibliography
- WWC Eyesomorphic; Category Theory and Why We Care
- Ch0: Paolo Aluffi; Algebra: Chapter 0
- nLab: various; nLab Wiki
- Work: Saunders Mac Lane; Categories for the Working Mathematician
- CTC: Emily Riehl; Category Theory in Context
- Categories OCW David Spivak and Brendan Fong; MIT OCW: Applied Category Theory
Combinatorics
- MAT307 lectures 1-6
- ...
- PTC
- CTGD
Enumerative Basics
- Inf Desc chapters 6-8
- Ardila lectures 1-7
- Counting
Symbolic Methods
- Ardila lectures 10-19
- Analytic chapters 1-3
Linear Algebraic Methods
- LinAlg
Extremal Basics
- Extremal chapters 6-8
Bibliography
- MAT307: Jacob Fox; MAT 307: Combinatorics
- PTC: Titu Andreescu and Zuming Feng; A Path to Combinatorics for Undergraduates
- CTGD: Kenneth P. Bogart; Combinatorics through Guided Discovery
- Inf Desc: Clive Newstead; An infinite descent into pure mathematics
- Ardila: Federico Ardila; Enumerative Combinatorics
- Counting: G. E. Martin; Counting: The Art of Enumerative Combinatorics
- Analytic: Philippe Flajolet and Robert Sedgewick; Analytic Combinatorics
- LinAlg: Lazslo Babai and Peter Frankl; Linear Algebra Methods in Combinatorics
- Extremal: Stasys Jukna; Extremal Combinatorics
Probability & Statistics
Probability Theory
- Wasserman chapters 1-5
- Probability Course
Statistical Learning Theory
- ESL chapter 1, 5
- MacKay chapter 3
- Wasserman chapter 6, 8-10
Supervised Learning
- ESL chapter 2
Regression
- ESL chapter 3
- Wasserman chapter 13
Classification
- ESL chapter 4
- MacKay chapter 20-22
Model Selection and Complexity
- ESL chapter 7
- MacKay chapter 28
Additive Models and Trees
- ESL chapters 9-10
Information and Coding Theory
- MacKay chapters 4-6, 8-17, 24
Probabilistic Graphical Models
Graphical Models
- Murphy chapter 4
Undirected Models
- MacKay chapter 31
- Wasserman chapter 18
Directed Models
- MacKay chapter 37
- Wasserman chapter 17
Variational Methods
- MacKay chapter 33
Sampling and Monte Carlo Methods
- MacKay chapter
s29-30, 32 - Bishop-Bishop chapter 14
Deep Generative Models
- MacKay chapter 43
- VAEs
- Bishop-Bishop chapters 17-18, 20
Causality and GNNs
- Bishop-Bishop chapter 13
- Wasserman chapter 16
- Bayesian Epistemology
- Elements of Causal Inference chapters 1, 3-4
- Pearl chapters 7-11
Bibliography
- Wasserman: Larry Wasserman; All of Statistics
- Probability Course: H. Pishro-Nik; Introduction to probability, statistics, and random processes
- ESL: Trevor Hastie, Robert Tibshirani and Jerome Friedman; Elements of Statistical Learning
- MacKay: David J. C. MacKay; Information Theory, Inference, and Learning Algorithms
- PGM: Daphne Koller and Nir Friedman; Probabilistic Graphical Models: Principles and Techniques
- Bishop: Christopher M. Bishop; Pattern Recognition
- Bishop-Bishop: Christopher M. Bishop and Hugh Bishop; Deep Learning: Foundations and Concepts
- Murphy: Kevin Murphy; Machine Learning: Advanced Topics
- Blei et al.: David M. Blei, Alp Kucukelbir, Jon D. McAuliffe; Variational Inference: A Review for Statisticians
- VAEs: Diederik P. Kingma, Max Welling; An Introduction to Variational Autoencoders
- Bayesian Epistemology: https://plato.stanford.edu/entries/epistemology-bayesian/
- Pearl Judea Pearl; Causality
- Elements of Causal Inference: Peters, Janzing and Scholkopf; Elements of Causal Inference
- Wainwright-Jordan: Martin J. Wainwright and Michael I. Jordan; Graphical Models, Exponential Families, and Variational Inference
Programming Languages
Lambda Calculus
- Programming w/ Math
- Lambda Tutorial
Language Design
C
- Brief Intro to C
- DevC
C++
- History of Cpp
- Brief Intro to Cpp
- Evolution of Cpp
- ThrivingCpp
Declarative and Functional Languages
Lisp & co.
- Evolution of Lisp
- Evolution of EmacsLisp
- History of Clojure
Haskell
- History of Haskell
- GreatGood
ML
- History of StandardML
Prolog
- Brief Intro to Prolog
- BirthOfProlog
Bibliography
- Programming w/ Math: Eyesomorphic; Programming with Mathematics
- Lambda Tutorial: Raul Rojas; A Tutorial Introduction to the Lambda Calculus
- Brief Intro to C: W. M. McKeeman; A brief introduction to C in HOPL-II, 1993
- DevC: Dennis M. Ritchie; The Develompent of the C Programming Language in HOPL-II, 1993
- History of Cpp: Bjarne Stroustrup; A History of C++: 1979-1991 in HOPL-II, 1993
- Evolution of Cpp: Bjarne Stroustrup; Evolution of lving a language in and for the real world: C++ 1991-2006 in HOPL-III, 2007
- ThrivingCpp: Bjarne Stroustrup; Thriving in a crowded and changing world: C++ 2006-2020 in HOPL-IV, 2021
- Brief Intro to Cpp: Jerry Schwarz; A brief introduction to C++ in HOPL-II, 1993
- Evolution of Lisp: Guy L. Steele and Richard P. Gabriel; The Evolution of lution of Lisp in HOPL-II, 1993
- Evolution of EmacsLisp: Stefan Monnier and Michael Sperber; Evolution of lution of Emacs Lisp in HOPL-IV, 2021
- History of Clojure: Rich Hickey; A History of Clojure in HOPL-IV, 2021
- History of Haskell: Paul Hudak et al. A history of Haskell: being lazy with class in HOPL-III, 2007
- GreatGood: Miran Lipovaca; Learn You A Haskell For A Great Good
- History of StandardML: David MacQueen, Robert Harper, John Reppy; The History of Standard ML in HOPL-IV, 2021
- BriefHistory of Prolog: Fernando Pereira; A Brief Introduction to Prolog
- BirthOfProlog: Colmerauer and Roussel; The Birth of Prolog in HOPL-II, 1993
Computer Systems
Books/Monographs
Papers
- Matt Kline; What every systems programmer should know about concurrency
- Ulrich Drepper; What Every Programmer Should Know About Memory
- Alexander Stephan and Lars Wustrich; The Path of a Packet through the Linux Kernel
Blogs
- Matthew Plant; Writing a Simple Garbage Collector in C
- Tal Hoffman; Software Transactional Memory: a stairway to lock-free programming heaven?
- Sidharth M.; How Nginx Handles Thousands of Concurrent Requests
- Toby (from Wales); PicoCTF 2021 - Binary Exploitation Challenge Writeups
Other
Algorithms
Novels
See my Goodreads: click here
Old
Inference and Learning
I think people just getting into ML often try to get away with the bare minimum of probability. I am a staunch believer in studying in-context from statistics and information theory, even if your personal interests don't require them (if they do, I suggest a more rigorous treatment than what I prescribe here). Besides gaining a more fundamental and usable understanding, the bigger picture-view makes it easier to focus on the right things. And, extra insight never hurt anyone.
Probability & Statistics Basics
- Though quite brief, worth a skim for context: Pishro-Nik's online probability text. (H. Pishro-Nik, "Introduction to probability, statistics, and random processes", available at probabilitycourse.com, Kappa Research LLC, 2014).
- Bertsekas and Tsitsiklis' book is not only a great introduction to the tools you'll need but is also covered through free lecture notes and a great MIT OCW course w/ lecture videos. (D.P. Bertsekas, J.N. Tsitsiklis "Introduction to probability" 2nd ed, Athena Scientific, 2008).
- The first few chapters of Steven Kay's parametric estimation book will give you an idea of theoretical constraints such as bias-variance tradeoff. Plus, it's a new (sigproc) angle to look at the same thing; always useful. If you find yourself interested in Bayesian methods the second half of the book may also be useful. (S.M. Kay "Fundamentals of statistical signal processing: estimation theory", Prentice-Hall signal processing series, 1993)
Information Theory and Inference
- David MacKay's book is a fantastic and very readable introduction to the math behind inference. The book mentions which chapters are useful for which readers. Could skip the stuff on coding theory but it's fun + useful for some emerging ML topics. (D.J. MacKay "Information Theory, Inference, and Learning Algorithms" v7.2, Cambridge University Press, 2005)
- If you're interested in insight on issues with sample complexity/data efficiency, Chapter 11 of Cover & Thomas might be useful. (T.M. Cover, J.A. Thomas "Elements of Information Theory" 2nd ed, Wiley, 1991)
Alternatively...
I've heard ISLR/ISLP is great and covers pretty much all the important parts of what I've described above. I haven't read it myself (it's rather new), but it looks great if you're into less math rigor and more English-heavy explanations. The authors are folks who have developed some pretty fundamental works in statistics in their own research. (G. James, D. Witten, T. Hastie, R. Tibshirani, J. Taylor "An introduction to statistical learning" w/ Applications in Python, Springer, 2023).
State-of-the-Art Learning
- Though some think it's long in the tooth, at least the first two sections of the OG Deep Learning book are excellent background. (I. Goodfellow, Y. Bengio, A. Courville "Deep learning", MIT Press, 2016).
- The Bishops' Deep Learning book is a more modern (as of '24) book. I haven't read this myself either but the author's OG ML book, Pattern Recognition & Machine Intelligence, was great. (C.M. Bishop, H. Bishop "Deep Learning Foundations and Concepts", Springer, 2024).
Special Topics
WIP
Monographs
I love monographs because you can basically inhale one in a single evening and be ready to put in work the next morning. Here are some monographs + other short texts that I found useful in various categories:
Awesome Machine Learning Monographs
...and book chapters
Neurosymbolic and Neurocausal Learning
- Neuro-Causal Models (Aragam and Ravikumar 2024)
- Causal Fairness Analysis - A Causal Toolkit for Fair Machine Learning (Plečko and Bareinboim 2024)
- Neurosymbolic AI for Reasoning Over Knowledge Graphs: A Survey (DeLong et al. 2023)
- Neurosymbolic Programming (Chaudhuri et al. 2021)
Conformal Prediction
- Conformal Prediction: A Gentle Introduction (Angelopoulos et al. 2022)
- A Tutorial on Conformal Prediction (Shafer and Vovk 2008)
Distributed Learning
- Advances and Problems in Federated Learning (Kairouz et al. 2019)
Misc.
- Foundation Models for Natural Language Processing (Paaß and Giesselbach 2023) -- technically a book but pick any chapter 🤪
- An Introduction to Variational Autoencoders (Kingma and Welling 2019)
- Algorithms for Reinforcement Learning (Szepesvàri 2009)
- Learning Deep Architectures for AI (Bengio 2009)
Awesome Systems Monographs
Messing around with systems is the right way to do things. Blogs are a more intimate and accessible way for people who have messed around with systems to communicate their findings. I plan to make a blog post section here, which will probably be more useful than this.
PL
- Program Synthesis (Gulwani et al. 2017)
- Lectures on Constructive Functional Programming (Bird 1988)
OS
- The little book about OS development (Helin and Renberg 2015)
- Writing a Simple Operating System -- From Scratch (Blundell 2009)
Hardware/Arch
- CPU Land (Mattick @ Hack Club 2023)
Awesome Programming Monographs
(...and whitepapers/What Every Programmer Should Know About X)
- What every systems programmer should know about concurrency (Kline 2020)
- What Every Programmer Should Know About Memory (Drepper 2007)
- The Practice of Programming (Kernighan and Pike 1999)
- C Traps and Pitfalls (original 29-page paper here) (Koenig, 1989)
Papers
WIP. For now, enjoy Ilya Sutskever(?)'s 27 papers.
Conferences
Coming soon. (Think something like Awesome Papers)