Learning Machine is a handbook of answers, and its author has moved on
A handbook for ML built on answers.
At a glance
- What is it?
- A Jupyter notebook handbook built while the author was a teaching assistant, aggregating the questions students actually asked into eight chapters, with an index that puts gradients before layers and tasks before building blocks. The archive note at the top says no update is planned, and the packaging pins Python 3.10 exactly.
- Who is it for?
- Use Learning Machine if what you want is a fast first pass over the machine learning vocabulary with runnable notebooks attached, especially if you already program and do not have a semester to give. It works best as an answer to one narrow question at a time, which is how it was built and how the index is organised.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 147 days ago.
- What is it written in?
- Mainly Jupyter Notebook, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 10, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The page opens by saying it is finished
The first thing the README says is that the project is over, and it says so in the author's own words rather than in a deprecation notice. The archive note at the top explains that the book was created while the author was a teaching assistant for machine learning, that it aggregated students' questions and turned them into a book, and that no update is planned in the near future. It also points somewhere else: the author is now mainly working on aioway, described as a deep learning algorithm compiler. That framing matters for how the rest of the page reads, because a handbook built out of real questions ends up with a different shape from a textbook built out of a syllabus, and the shape is visible in the index. The practical consequence for anyone arriving now is that the content is a snapshot from a course that ran in 2021, not a text that tracks the field. The repository has no GitHub releases at all, the version number is nowhere in the configuration, and the default branch was last pushed on 16 May 2026. The rendered handbook lives at lml.rentruewang.com, with a second copy served from the project's GitHub Pages, and the README still asks readers to star the repository if it helps them, which describes how the project spread in 2021 rather than how it is maintained now.
The argument against other material is length, mathematics and clarity
The stated case for writing it comes as three complaints, and each one is a design constraint rather than a grievance. Too long, on the grounds that half an hour just to read through is already too much. Too math heavy, on the grounds that it takes forever to understand. And too confusing, on the grounds that the concepts are not straightforward. The response to all three is concision with an explicit accessibility target: as concise as possible while still being graspable. The audience section narrows that further and is worth reading closely. It is aimed at learners who want to grasp an idea quickly without diving deep into a topic, and it calls itself a handbook for people who want to preserve their time, which is a different promise from a course, a textbook or a reference manual. One prerequisite is stated, and it is modest: at least some basic understanding of programming. There is no mathematics prerequisite listed, which is consistent with the complaint about math-heavy resources, and it also means the notebooks assume you can read code without being walked through it.
The index runs tasks before building blocks and gradients before both
The index is where the answers-based premise becomes visible. It is organised into nine top-level groups and reads as a map of questions rather than a map of theory. Getting Started moves through data, model, loss function, approximation and then gradients, with two notebooks underneath gradients covering the loss function derivative and back propagation. Common Tasks then covers regression, auto regression and classification. Common Building Blocks is the long one: linear layers with their gradients, convolution, recurrent layers with LSTM and GRU underneath, embedding, dropout, normalization, padding and pooling, and a transformer entry that fans out into attention, self attention, a notebook comparing transformers against RNNs, training, teacher forcing, tokenization and one on using a transformer without training it. Activation functions are broken out separately with ReLU, Sigmoid, Softmax and Tanh. The ordering is the interesting part. Gradients appear inside Getting Started instead of after the layers that need them, and common tasks precede the building blocks, so the reading order is roughly what you want to do before what you want to understand in depth. Two conventions are worth noticing because they explain the shape of the whole index. Every entry is a relative link into book/ rather than a page anchor, so the table of contents doubles as the directory listing of the repository. And the recurrent branch nests LSTM and GRU under recurrent rather than treating them as separate building blocks, while attention and self attention sit under the transformer rather than beside it, which is a 2021 ordering that a current course might reverse.
ReLU links to the Q-learning notebook, and one filename has a typo spliced into it
Two links in the index are wrong, and both are worth knowing before anyone plans a reading path around them. The ReLU entry under Activation points at ./book/reinforce/value-based/q-learning.ipynb, which is a reinforcement learning notebook rather than a page about an activation function, so following the index literally drops you into the Q-learning chapter. And the Gradients link under Getting Started is written as gradients.ipynbdients, a filename with a stray fragment spliced into the extension. Neither mistake is conceptual, and both are the sort of thing that survives in a repository with no releases and no link checking. The index is dense enough that a link checker would have caught both the first time the file moved. Their presence is a fair signal about how much attention the tree receives now, and checking the two paths yourself takes a minute and removes the only real trap in the table of contents. Everything else in the index resolves to a notebook under book/, with the directory structure mirroring the chapter grouping. The reinforcement learning group is the other place worth checking a path before you rely on it: value-based q-learning appears both as a nested notebook under value and as the mistaken target of the ReLU link, so the real file lives at the reinforcement path rather than the activation one.
Python 3.10 exactly, torch from 2.1.2, and jupyter-book does the building
The build configuration says more about what it takes to run the book than the README does. The declared Python requirement is an exact pin, ==3.10.*, so a 3.11 or 3.12 interpreter will not satisfy it and the environment has to be made to match rather than adjusted. The dependencies are jupyter-book 0.15.1 or newer to build the site, plus matplotlib, numpy, scipy and torch for the notebooks themselves, with torch at 2.1.2 or newer. That makes this a real computational dependency rather than a read-only text, and the pinned interpreter is the older half of the pair. The project name is learning-machine, the licence is Apache-2.0, and the version is declared dynamic rather than written into the file, which means it is derived from source control at build time through setuptools-scm. With no GitHub releases to tag against, the built site has no release numbers to show. Development tooling is PDM based, with distribution set to false so the project is used in place rather than published to a package index, and the development dependencies are the formatting trio of autoflake, black and isort. A lock file is committed, so a reproducible environment is achievable for anyone willing to match the interpreter. Two details in the same file repay a second look. The version is marked dynamic with setuptools-scm doing the work, which means a build from a shallow clone without tags produces an odd version rather than a clean one. And distribution being false is a deliberate choice for a project whose name would be awkward on a public index, so there is nothing to pip install and the notebooks are meant to be run from a clone.
Reinforcement learning is taught as a vocabulary before an algorithm
The reinforcement learning chapter is built as a vocabulary before it is built as a method. State, agent, action and reward come first, then online versus offline, then value with Q-learning underneath it, then policy, policy gradient and actor critic. That ordering is the teaching move: the terms arrive as nouns before the procedures that use them, which is exactly what a question-driven handbook can do and a syllabus cannot, since the student asking what a reward is has not yet seen the machinery that computes one. The same pattern runs through the rest of the index. Generative Models covers auto encoders with their architecture, a semi supervised variant and the variational one, then generative adversarial networks and Gaussian mixture models. Improving Models takes on saliency maps, meta learning, life long learning and compression. Reuse Existing Models separates transfer learning from domain adaptation with a notebook comparing them directly, then covers knowledge distillation. Beyond Supervised Training gathers clustering, decision trees, self supervised and semi supervised learning, and Other Things To Notice collects the unglamorous knobs: batch size, gradient norm, saddle point, learning rate, optimizer, overfit and underfit. That chapter is the one a working practitioner skips and the one a beginner needs, since those are the settings that decide whether any of the building blocks behaves the way the text says it will.
A small repository with no releases and no build output
The repository is small and straightforward about what it holds. At the top level there is the README, a book directory containing the notebooks, pyproject.toml, a committed lock file, the licence as LICENSE.md, a code of conduct, a contribution guide and a .github directory, with no build output and nothing to install as a package. The primary language GitHub reports is Jupyter Notebook, which matches a project whose unit of content is a notebook rather than a module. Reading it needs either a Jupyter environment with torch in it, or the rendered site, which is published at lml.rentruewang.com and also served from the project's GitHub Pages. The logo was drawn in Inkscape from a meme, which sets the tone: this was a side project made to be readable, not infrastructure. A contribution guide and a code of conduct sit at the top level, so outside contributions were an anticipated path even though there is no test suite or release process visible in the tree. Two things to keep in mind when deciding whether to work through it. It is tied to a 2021 course, so a textbook published later may name some of the same ideas differently, and the pinned toolchain means recent torch tutorials may not match what the notebooks assume. And nothing in the repository is versioned for you to compare against, so if you plan to cite what you learned, record the commit you read.
Editorial conclusion
Use Learning Machine if what you want is a fast first pass over the machine learning vocabulary with runnable notebooks attached, especially if you already program and do not have a semester to give. It works best as an answer to one narrow question at a time, which is how it was built and how the index is organised. Do not reach for it as a reference to look things up in, because there is no concept index, no version history and no release series to pin, and the two broken links in the table of contents are a small demonstration of how little the tree is checked now. Three things to settle before you start. Whether you can create a Python 3.10 environment, since the requirement is pinned exactly and everything else follows from that. Whether you intend to execute the notebooks, which means installing torch, or only read the rendered site at lml.rentruewang.com. And how much of the reinforcement learning and generative model material you actually need, since those two chapters are the ones a working practitioner will already know and the ones a beginner asks for first.
Frequently asked questions
What is Learning Machine?
A machine learning handbook that accompanies the Machine Learning with Hung-Yi Lee course and is built from the questions students asked while the author was a teaching assistant. It aims to be concise and easy to grasp, aimed at learners who want to understand an idea quickly rather than study a topic in depth, and assumes only basic programming ability.
What does Learning Machine need to run?
The project pins Python to exactly 3.10 with a requirement of ==3.10.*, and depends on jupyter-book, matplotlib, numpy, scipy and torch 2.1.2 or newer. The notebooks can also be read without executing them on the rendered site at lml.rentruewang.com.
What topics does the Learning Machine index cover?
Getting Started covers data, model, loss function, approximation and gradients. Then come common tasks, building blocks from linear and convolution through recurrent layers and transformers to the activation functions, a chapter on batch size, learning rate, optimizer, overfit and underfit, generative models including auto encoders, GANs and Gaussian mixture models, improving models, reuse of existing models through transfer learning and distillation, methods beyond supervised training, and reinforcement learning from state and reward through Q-learning, policy gradient and actor critic.
Is Learning Machine still being updated?
The archive note in the README says the book was created while the author was a teaching assistant, that it aggregated students' questions, and that no update is planned in the near future, pointing instead to the author's work on aioway, a deep learning algorithm compiler. The repository publishes no releases, and its default branch was last pushed on 16 May 2026.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/rentruewang-learning-machine)