learn-ml-strategy-with-phoebe / Leader session 3 of 6
Learn ML Strategy with Phoebe · Leader session 3 of 6

Look at 100 mistakes

Lanternfish's species classifier is wrong on 120 of its 1,000 dev images, and the team has five opinions about why. The most senior engineer wants to build a deer-versus-elk model. The product lead wants the night-blur problem fixed. The field team thinks half the labels are wrong. Nobody has sat down with the mistakes. One afternoon with about a hundred of them and a spreadsheet ends the argument, puts a ceiling on every project on the list, and with two columns most sheets leave off produces an order of work that the current sprint plan can be held against.

🟡 Core Data and product leaders 45 min
0-3 · Welcome 3-22 · The spreadsheet and the ceiling 22-40 · Build-along: read one spreadsheet 40-45 · Q&A
Part 0

Where session 3 sits in the leader track

Six sessions, 45 minutes each, no code, one decision: what to work on next for one classifier. Session 1 was why iteration speed decides projects. Session 2 was the single number the team optimises. Tonight is the cheapest, most under-used instrument in the discipline: a spreadsheet filled in while looking at the model's actual mistakes. Session 4 splits the error into its sources, session 5 finds the weak stage in a pipeline, and session 6 is the one-page memo that gets the team to act on all of it. The classifier throughout belongs to Lanternfish, a wildlife-camera startup whose model is wrong on 12 percent of its dev set.

Live = presented in the 45 minutes Self-study = the full depth, after class 🔍 Every diagram zooms

★ What you walk out with tonight. The habit of asking "how many of the mistakes does this project actually touch" before funding it, and the one-line arithmetic that answers it: a category holding 5 percent of the errors caps the project at 5 percent of the error, so 90 percent accurate becomes at best 90.5. Two columns to add to any error sheet, weeks and points per week, that turn a list of causes into an order of work. And the measured cost of ignoring that order: 11.2 percent error through week 6 instead of 6.2.

LiveWhy looking at mistakes comes before choosing a project3 min▶

Every project proposal in machine learning is an implicit claim about the errors: "the model is wrong because of X, and fixing X will help". Almost nobody checks the claim, because checking it means sitting with the wrong answers one at a time, and that feels like clerical work next to building a model. It is the opposite. It is the only step in the whole loop where a person learns what the model is actually getting wrong, rather than what they assumed it would.

The instrument is deliberately humble: a spreadsheet, a person, about a hundred misclassified examples, an afternoon. Its output is a share per suspected cause, and that share is a hard ceiling on what any project aimed at that cause can deliver. A team that reads the sheet before the sprint plan funds projects by ceiling; a team that does not funds them by who argued best.

Real world

Lanternfish's most senior engineer had spent three weeks scoping a deer-versus-elk specialist model before anyone opened the misclassified images. When the sheet was filled in, deer mistaken for elk was 19 percent of the errors. Night infrared blur was 33 percent. Wrong labels, which nobody had listed as a cause at all, were 14 percent and fixable in a week.

Self-studyThe vocabulary for tonight3 min▶
  • Dev set - the examples the team tunes and chooses on, drawn from the traffic the field will judge. Lanternfish's has 1,000 images and the model is wrong on 120.
  • Misclassified example - one dev set item the model got wrong. The raw material of the afternoon.
  • Error analysis - looking through misclassified examples and categorising them by suspected cause, so projects can be compared by how many errors each one touches.
  • Category share - the fraction of the looked-at errors that tick a given cause. The bottom row of the sheet.
  • Ceiling - the most a project can improve the error rate, which is the share of the errors it addresses. A project that fixes a 5 percent category can improve a 90 percent system to 90.5 at best.
  • Points per week - a project's ceiling, in points of error, divided by the weeks it takes. The column that ranks projects.
  • Eyeball dev set - the part of the dev set a person actually looks at. Lanternfish's is 500 images holding 64 of the 120 errors, which is why the shares below are shares of 64. The other half stays unseen for reasons practitioner session 4 owns.
Part 1 · covers chapters 14 and 15

Error analysis: look at dev set examples to evaluate ideas

10 min live

Chapter 14 of Machine Learning Yearning is titled "Error analysis: Look at dev set examples to evaluate ideas", and the whole method is in the title. Before a project is funded, somebody looks at the examples the model gets wrong and counts how many of them the project would touch. The count is a ceiling. The senior engineer's favourite category is rarely the biggest one, and the sheet says so in an afternoon.

The error-analysis spreadsheet: one row per misclassified image, one column per suspected cause Image Night blur Deer vs elk Half in frame Empty frame Wrong label Comments img 0417 ✓ very dark, grainy img 0088 ✓ antlers hidden img 0231 ✓ ✓ dark and cut off img 0502 ✓ a branch moved img 0655 ✓ label says fox img 0719 ✓ tail only 58 more rows, the same drill Share of 64 33 percent 19 percent 19 percent 16 percent 14 percent one image may tick two The ceiling of any re-label project is this cell: 14 percent of the errors, and not one more Fill the sheet, read the bottom row. No project can help more than its column's share.
🔍 Click to zoom - the sheet, the share row, and the ceiling one column puts on one project.
LiveThe practice: about 100 mistakes, one spreadsheet, one afternoon3 min▶

Chapter 15 describes the mechanics in a sentence: "I usually create a spreadsheet and fill it out while looking through ~100 misclassified dev set images." One row per wrong image. One column per suspected cause, written down before starting, from whatever the team already believes is going wrong. A comments column for whatever does not fit. The person looks at the image, ticks the columns that apply, jots a phrase, moves on. When a comment repeats three times, it becomes a new column and the earlier rows get a second pass.

The bottom row is the point of the exercise: the share of the looked-at errors that tick each column. Lanternfish's afternoon, over the 64 errors in the half of the dev set the team looks at, produced night infrared blur 33 percent, deer mistaken for elk 19, animal half out of frame 19, empty frame called animal 16, and a column nobody had proposed, wrong label, 14.

About a hundred is the right size for a reason. Fewer and the shares wobble with which particular examples happened to be wrong; more and the afternoon becomes a week, and the point of the exercise is that it is cheap enough to repeat every time the model changes.

LiveThe ceiling: the most a project can possibly do4 min▶

Chapter 14 makes the arithmetic explicit. If 5 percent of the misclassified examples fall in the category a project would fix, then "5% is a 'ceiling' (meaning maximum possible amount) for how much the proposed project could help". A system that is 90 percent accurate has 10 percent error; removing 5 percent of that error takes it to 9.5 percent error, so the system improves "at best" from 90 percent to 90.5. That is the outcome if the project works perfectly, and projects do not work perfectly.

The ceiling is what turns a proposal into a number. "Build a deer-versus-elk model" is an argument. "Build a deer-versus-elk model, which touches 19 percent of the errors, and if it removed 70 percent of those it would take at most 1.7 points off the error rate" is a bid, with a maximum written on the front.

Real world

The night-blur column at 33 percent means no denoising project, however brilliant, can remove more than a third of Lanternfish's errors. The wrong-label column at 14 percent means re-labelling cannot fix more than a seventh. Both statements were news to the team, and neither took more than the afternoon to establish.

LiveWhy the sheet beats intuition3 min▶

Intuition about errors is intuition about the errors a person happens to remember, and people remember the interesting ones. A deer that looks exactly like an elk is a story. A frame that is too dark to see anything is not. The sheet counts both the same, which is exactly what intuition cannot do.

  • The favourite category is rarely the biggest. It is usually the hardest, because hard problems are what senior people enjoy. Hard and large are different properties, and only the sheet distinguishes them.
  • Causes nobody proposed show up. Wrong labels were not on Lanternfish's list. They were 14 percent of the errors and the cheapest thing on the eventual sheet to fix.
  • The argument ends. Five opinions about why the model is wrong become five columns with a share under each. What remains to argue about is cost, and that is the next part.
Self-studyHow to run the afternoon well4 min▶
  • One person, not a committee. A single pair of eyes ticks consistently. Two people in a room negotiate every borderline case and the afternoon becomes a day.
  • Someone who knows the domain. Whoever can tell a deer from an elk in infrared should be the one looking, not whoever wrote the model. At Lanternfish that was a field biologist, and she is the one who found the wrong labels.
  • Start the columns from the team's beliefs and let the comments column add the rest. The sheet is allowed to disagree with the people who designed it.
  • Let a row tick more than one column. A dark image with the animal half out of frame is both. Forcing one cause per row hides the overlap that decides whether two projects compete for the same errors.
  • Keep the sheet. After the next model change, redo it. The columns that shrink tell you the change worked; the ones that do not tell you what it did not touch.
  • Look only at the half meant for looking. Lanternfish looks at 500 of its 1,000 dev images and keeps the other 500 unseen, so that after a quarter of tuning to what it saw there is still an honest number left. Practitioner session 4 owns the why; the leader's job is to insist the unseen half exists.
Part 2 · covers the two extra columns and the order they produce

The two columns most sheets leave off

9 min live

The share row ranks causes by size. It does not rank projects, because projects cost different amounts. Add a column for how many weeks each project takes and a column for its ceiling in points of error divided by those weeks, and the sheet produces an order of work. It is rarely the order the team wanted, and the cost of the difference can be counted.

CategoryEyeball errorsShareProjectWeeksCeilingPoints per week
Night infrared blur2133 percentInfrared denoising pass32.50.84
Deer mistaken for elk1219 percentDeer-vs-elk specialist model81.70.21
Animal half out of frame1219 percentOcclusion augmentation41.20.30
Empty frame called animal1016 percentMotion-trigger filter21.60.80
Label was wrong914 percentRe-label the dev set11.61.62
Five projects ranked by points of dev error per week, from the same sheet 1.62 per week Re-label the dev set 1 wk · ceiling 1.6 pts the smallest column 0.84 per week Infrared denoising pass 3 wk · ceiling 2.5 pts the biggest column, 33 percent 0.80 per week Motion-trigger filter 2 wk · ceiling 1.6 pts 0.30 per week Occlusion augmentation 4 wk · ceiling 1.2 pts 0.21 per week Deer-vs-elk specialist 8 wk · ceiling 1.7 pts the project the team wanted Ceiling alone puts the specialist model near the top. Dividing by weeks makes it the last project on the list.
🔍 Click to zoom - the same five projects, ranked by what they return per week of the team's time.
LiveAdd weeks, then divide3 min▶

The ceiling column is the share of errors times the fraction the project would actually remove, expressed in points of dev error. Wrong labels are 14 percent of the errors; re-labelling catches about 90 percent of those; at 12.8 percent error on the looked-at half that is 1.6 points. The deer-versus-elk specialist touches 19 percent, would remove perhaps 70 percent of those, and comes to 1.7 points. On ceiling alone the two projects are neighbours.

The weeks column is the estimate the team already has, because it is the same estimate they put in the sprint plan. Re-labelling is one week. The specialist model is eight. Divide, and the neighbours are 1.62 points per week against 0.21. The whole disagreement about what to do first was a disagreement about a number nobody had computed.

Sorted, the sheet reads re-label, denoise, motion filter, occlusion, specialist. The middle two are 0.84 and 0.80, near enough that the two-week job goes ahead of the three-week one so its points land earlier; the timeline below follows that order.

LiveThe order the sheet produces against the order the team wanted4 min▶

Both orders do the same five projects, so both finish in the same place: 3.6 percent error on the unseen half of the dev set at week 18. What differs is everything before that. Measured on the half of the dev set the team never looks at, so that the number is honest:

  • Sheet order (re-label, motion filter, denoise, occlusion, specialist): 11.2 percent to 10.2 after week 1, 9.0 after week 3, 6.2 by week 6, 3.6 at week 18.
  • Team order (specialist model first, then the rest): still 11.2 through week 6, 9.2 at week 8 when the specialist ships, 3.6 at week 18.

Order does not change where a team finishes. It changes how long the field lives with the error. In the team's order, the cameras ran at double-digit error for eight weeks longer than they needed to, and the product built on top of them inherited every one of those weeks.

Real world

The specialist model was genuinely good work when it shipped in week 8. It shipped to a system that was still 11.2 percent wrong, when a one-week re-label and a two-week motion filter would have had the same system at 9.0 percent by week 3. Nobody had funded the eight-week project because they had computed 0.21 points per week. They had funded it because it was interesting, and the column is what makes interesting visible as a cost.

Self-studyThe honest limits of the sheet4 min▶
  • Every error counts the same. A rare protected species mislabelled as a common one is one tick, and a blurry deer is one tick. The sheet does not know the difference unless a severity column is added, with a weight per row, and the shares recomputed with it. A real deployment adds that column first; it reorders the middle of the sheet and does not rescue either wrong order.
  • One example can tick several columns. A dark frame with the animal half out of shot is both night blur and occlusion, so the shares can sum past 100 and two projects can compete for the same errors. Fixing one shrinks the other's ceiling. Re-run the sheet after each project rather than trusting the original shares to the end.
  • The shares are of the errors you looked at. 64 errors give shares that would move by a few points on a different 64. Ranking on a two-point difference in share is ranking on noise; ranking 33 against 14 is not.
  • The ceiling assumes the project works. A 90 percent removal rate is a hope until it is measured. The sheet ranks bids, and a bid can still lose.
  • Weeks are estimates. The same estimates the sprint plan already runs on, no better and no worse. If the team's week estimates are off by half, so is the points-per-week column, in the same proportion for every row.
Build-along

Read one spreadsheet

★ 18 min · everyone builds

Bring the error spreadsheet for one model your team owns, or the nearest thing to one: a bug list, a triage log, a folder of screenshots someone kept. If you have nothing, use the Lanternfish sheet above. The exercise is reading and sorting, not building; the point is to see your own sprint plan next to the order the sheet produces.

Get the team's actual error spreadsheet, or the nearest thing to it. If nobody has one, that is the first finding of the session, and the homework is to have someone sit with a hundred mistakes before the next sprint planning. Do not accept a summary; ask for the rows.

Add the share column if it is missing. Count the ticks in each cause column and divide by the number of rows. Write the shares along the bottom. This row is the ceiling of every project on the list, and most sheets stop before it.

Add weeks per project, then points per week. Take the week estimates from the sprint plan as they stand. For each project, ceiling in points divided by weeks. Use the team's own removal estimate for the ceiling; if there is none, use the share itself and say so.

Sort by points per week. Read the order aloud. Note where the biggest category landed and where the most interesting project landed. They are rarely in the same place, and neither is usually first.

Put the sorted sheet next to the current sprint plan. Mark every project that sits in a different position on the two lists. Each mark is a conversation to have this week, with a number on each side of it, and the sorted sheet is the artifact you bring to that conversation.

★ The sorted sheet, as the one-page artifact to bring to sprint planning Lanternfish species classifier - error sheet, 64 looked-at errors, 12.8 percent on the looked-at half rank project category share weeks ceiling pts/wk sprint slot 1 Re-label the dev set Label was wrong 14% 1 1.6 1.62 not planned 2 Infrared denoising pass Night infrared blur 33% 3 2.5 0.84 slot 2 3 Motion-trigger filter Empty frame called animal 16% 2 1.6 0.80 slot 4 4 Occlusion augmentation Animal half out of frame 19% 4 1.2 0.30 slot 3 5 Deer-vs-elk specialist model Deer mistaken for elk 19% 8 1.7 0.21 slot 1 marked: rank 1 (absent from the plan), rank 5 (planned first, ranks last) expected on the unseen half: 6.2 percent by week 6 in sheet order, 11.2 in plan order, 3.6 at week 18 either way

The sheet is not the decision, it is the floor under it. A team can still choose the specialist model first, for a reason the sheet does not hold: a customer commitment, a hire who needs the project, a dependency. The difference is that they now choose it knowing it costs eight weeks at 11.2 percent, and that sentence goes in the plan.

Homework

Before session 4

30 min plus one afternoon
  1. For one model your team owns, arrange for one domain-literate person to sit with about a hundred of its mistakes and fill a sheet with a column per suspected cause. Book the afternoon in a calendar; it does not happen otherwise.
  2. Read the share row and write down the biggest column. Compare it with the project at the top of the current sprint. If they differ, write one sentence on why.
  3. Add weeks and points per week, sort, and put the two orders side by side. Count the projects that moved more than one position.
  4. Add a severity weight per row, recompute the shares, and note which rows changed order. Then bring the three numbers session 4 needs: training error, dev error, and the team's best estimate of how well a person does the same task.
Check yourself

Three questions

A system is 90 percent accurate. The error sheet shows 5 percent of its mistakes fall in the category a proposed project would fix. If the project works perfectly, where does accuracy end up?

The share of errors in a category is a ceiling on how much a project aimed at it can help. Five percent of the errors is half a point of a 10 percent error rate, and that is the best case.

Re-labelling the dev set touches the smallest column on Lanternfish's sheet, 14 percent, yet ranks first. Why?

Ceiling and weeks are two columns, and the ranking needs both. On ceiling alone re-label and the specialist model are neighbours at 1.6 and 1.7; divided by weeks they are first and last.

A rare protected species mislabelled as a common one and a blurry deer each appear as one tick on the sheet. What does the sheet need before its shares reflect what the field cares about?

Every error counts the same on a plain sheet. A severity weight per row is the first extension a real deployment adds, and it reorders the middle of the sheet without rescuing either wrong order of work.

Sources covered

What tonight maps to

✓ Machine Learning Yearning, chapter 14 Error analysis: look at dev set examples to evaluate ideas. The ceiling, with the 5 percent and 90-to-90.5 arithmetic quoted from the text.
✓ Machine Learning Yearning, chapter 15 Evaluating multiple ideas in parallel: the spreadsheet with about 100 misclassified dev images, a column per cause, a share row at the bottom, and rows that may tick several columns.
✓ The points-per-week order, from the Lanternfish bench The weeks and points-per-week columns and the 6.2-versus-11.2 timeline, computed on the bench that practitioner session 10 runs live.
◐ Machine Learning Yearning, chapters 17 to 18 Why the 64 errors are the looked-at half of the dev set and the other half stays unseen. Practitioner session 4 owns it.
◐ Severity weighting of error categories Named as the first extension. Every error counts the same on the sheet as shown.
· Metric definitions, thresholds, calibration Not covered by design. The model-evaluation course owns how to score; the sheet takes the score as given.

Session 3 cheat sheet

About 100 mistakes, one afternoonOne row per wrong example, one column per suspected cause, a share row at the bottom.
Share is a ceilingA 5 percent category caps its project at 5 percent of the error: 90 becomes at best 90.5.
Favourite is rarely biggestHard and large are different properties. Only the sheet tells them apart.
Two more columnsWeeks and points per week. Ceiling alone funds the wrong thing.
1.62 against 0.21Re-label the dev set against the specialist model. Neighbours on ceiling, first and last on points per week.
6.2 by week 6, or 11.2Same five projects, same 3.6 at week 18. Order decides how long the field waits.
Every tick counts the sameAdd a severity column before trusting the shares on anything the field weights differently.
Sheet next to sprint planEvery project in a different position on the two lists is a conversation with a number on each side.