The Fix That Sharpened It
Ongoing research. This is an experimental result from active work, not a settled conclusion. The numbers are what we measured and the method is described so you can judge it, but the programme is still running and later experiments may revise what it means. More about this programme.
In plain English
What we asked. These models have a brief window, just before they suddenly get good, in which pausing part of the model is unusually costly. Pause it then and the model needs noticeably more training to recover; pause it for the same length at some other moment and it recovers much faster. A paper published last year reports that this kind of damage can be avoided by cycling the learning rate -- the setting that controls how big each adjustment is -- up and down as training proceeds, rather than holding it steady. That is a cheap thing to try on machinery we already had, so we tried it.
What we found. It does not avoid the damage. A pause during the critical window costs just as much with the cycling as without it. What the cycling does do is make a pause at some *other* moment much cheaper, more than halving its cost. So the gap between the two -- which is the thing that makes the window special in the first place -- gets slightly wider rather than narrower. The remedy does not remove the problem; it makes the problem easier to see.
Why it matters. Worth saying plainly: this does not mean the paper is wrong. It studies a different kind of setback in a different kind of model, and our result says the remedy does not carry over to our version, not that it fails in theirs. The part we would most want another researcher to copy is the correction we had to make. Our comparison pauses were placed at random moments, and with the rate going up and down, a pause placed while the rate happens to be low costs almost nothing -- not because of anything to do with the critical window, but because little was happening then anyway. Our first run had exactly that problem and it doubled the apparent effect. Any time something about training varies over the course of a run, check what your comparison is actually sitting on top of.
The rest of this page is the technical record: the design, every number, and the limits. It is written for a reviewer, and you do not need it to have understood the result above.
New here? How to read a research record
- Start at the verdict. Every record states, before the experiment was run, what result would have made us abandon the idea. That is the "kill test". Then it says whether the test fired. Nothing gets reinterpreted after the fact.
- Numbers in square brackets are uncertainty.
23.4 [18.1, 28.7]means our best estimate is 23.4 and the true value is probably somewhere in that range. If a range includes zero, we cannot claim an effect. - Negative results are kept. Roughly half of what is published here says an idea did not work, including several of our own. Those pages are not failures, they are the output. Work that only publishes what worked is not measuring anything.
- Read the Limits section. Every record ends with what it does not show. It is the most honest part of any experiment and usually the shortest.
- Pro tip: the figures near the top are designed to carry the result on their own. If you read nothing else, read the caption under each one, which says what it shows and what to take from it.
EXPLORATORY. Not a preregistered study. Local CPU, 48 training runs (56 including the discarded cyclic control arms), no GPU, no cost.
Program v2 Bucket N, item N7. Decisive computation: . Output: analysis/cyclic_critical_period.py. Reproduce with analysis/cyclic_critical_period.jsonpython analysis/cyclic_critical_period.py, or re-derive every endpoint with --reuse.
The question
On the Occurrence of Critical Learning Periods in Neural Networks (arXiv 2510.09687) reports that critical-period damage can be averted by a cyclic learning-rate schedule.
D5 established a critical period here with a measured window and a measured cost: freezing the recurrent matrices for 40 steps in the window ending at each run's own transition delays that transition by +19.1 steps, against +8.5 for the same freeze placed at a random earlier time in the same run, a paired difference of +10.6 [+8.3, +13.0].
Kill test, fixed in advance: the damage is unchanged.
The freeze is D5's, imported rather than described. K3 failed D5's anchor three times before diffing the source: D5 zeroes the gradient inside the window rather than clearing requires_grad, and under AdamW those differ by a factor of three.
Result
Eight seeds, six runs each: a no-freeze baseline, a targeted freeze and a random-time freeze, under each schedule.
| schedule | baseline transition | targeted delay | random delay | targeted − random |
|---|---|---|---|---|
| constant | 154.6 [147.8, 161.4] | +19.12 [+18.18, +20.07] | +8.75 [+6.71, +10.79] | +10.38 [+8.10, +12.65] |
| cyclic | 160.9 [156.3, 165.4] | +16.50 [+12.68, +20.32] | +3.62 [+3.00, +4.25] | +12.88 [+9.46, +16.29] |
Paired, cyclic minus constant: +2.50 [−2.29, +7.29], spans zero.
The kill test fires. The cyclic schedule does not avert the critical period's damage. If anything the point estimate moves the wrong way for the paper's claim, though the interval does not support saying so.
The anchor reproduces unusually precisely, on all three of D5's numbers: +19.12 against D5's +19.1, +8.75 against +8.5, +10.38 [+8.10, +12.65] against +10.6 [+8.3, +13.0].
The confound that had to be fixed, and how much it was worth
A window covers 40 steps of an 80-step cycle, so where it starts decides how much learning rate it contains. The first execution drew the random start uniformly and its windows landed at a mean in-window rate of 0.001386 [0.000869, 0.001904], against the targeted windows' 0.002037 [0.001693, 0.002380], 31% below the schedule mean. The random freeze then looked nearly free (+1.25 [−1.50, +4.00] steps of delay, an interval including zero), largely because it had been placed where little was going to happen anyway. That is a fact about the cycle, not about the critical period.
The random start is now snapped to the same phase of the cycle as the targeted window, giving the two arms an identical in-window rate profile, 0.002037 [0.001693, 0.002380] for both, by construction.
| uncorrected | corrected | |
|---|---|---|
| cyclic random delay | +1.25 [−1.50, +4.00] | +3.62 [+3.00, +4.25] |
| cyclic damage | +15.25 [+10.70, +19.80] | +12.88 [+9.46, +16.29] |
| paired, cyclic − constant | +4.88 [−1.24, +10.99] | +2.50 [−2.29, +7.29] |
The verdict does not change and the magnitude nearly halves. The confound was inflating the apparent difference by about a factor of two, and an unlucky draw could have pushed the paired interval clear of zero and produced the opposite headline.
K1's rule already said a random-time-matched arm must be matched on the thing that matters. Under a varying schedule, the thing that matters includes the schedule, a generalisation this programme did not have until now.
Two things worth keeping from the arms
Freezing at an arbitrary earlier time is much cheaper under a cyclic schedule, +3.62 [+3.00, +4.25] against +8.75 [+6.71, +10.79], non-overlapping, even with the in-window rate matched. Freezing at the critical moment is not: +16.50 [+12.68, +20.32] against +19.12 [+18.18, +20.07], overlapping. The schedule buys back the generic cost of an interruption and buys back none of the cost specific to interrupting the critical window. That makes the critical period more visible, not less.
The cyclic schedule trains slightly slower at identical mean rate. Its baseline transition is 160.9 against 154.6, about 6 steps later, with final accuracy indistinguishable (0.9874 against 0.9880). Mean-matching the schedule does not make the two equivalent.
Verdict
- The kill test fires. Paired difference
+2.50[−2.29, +7.29]; the damage is unchanged. - The anchor reproduces on all three of D5's numbers.
- The phase-matching correction halved the effect and is what the record turns on.
- The schedule makes off-target freezing cheaper and on-target freezing no cheaper, which sharpens the critical period rather than averting it.
- A mean-matched cyclic schedule still trains slightly slower.
Limits
- Eight seeds, one task, one width, one component, one amplitude, one period.
AMPLITUDE = 0.9andPERIOD = 80were chosen so a targeted window always covers a rise and a fall; a different cycle relative to the window could behave differently, and that is not swept. - This is not the paper's setting. arXiv 2510.09687 studies a data deficit early in training in vision networks; the analogue here is a component freeze in a tiny recurrent model on a synthetic task. A negative says the claim does not transfer to this instrument, not that the claim is wrong.
- "Damage" has two readings and they disagree in sign. The absolute cost of a targeted freeze falls slightly under the cyclic schedule (
+19.12 → +16.50, overlapping); the critical-period– specific cost does not (+10.38 → +12.88). This record takes the second as the endpoint because it is D5's, and reports the first. - The random arm is now constrained to one phase of the cycle, so it is matched on rate at the price of being drawn from a smaller set of placements. It remains independent of the run's own outcome, which is K1's other requirement.
- Delays are measured against each schedule's own baseline, so the comparison is within-schedule. Cross-schedule absolute step counts are not comparable, which is why the endpoint is a difference of differences.
Terms on this page
Every piece of vocabulary this record uses, in plain language. Generated from the text above, so it cannot drift out of step with it.
- accuracy
- The fraction of answers a model gets right on questions it was not trained on.
- AdamW
- A widely used training algorithm that adapts how big a step it takes for each individual parameter. The default in most modern AI training.
- baseline
- The thing you compare against. A result without one is not a result.
- confound
- A second explanation you did not control for. If bigger models both learn faster and score higher, then 'fast learners score higher' may be entirely about size and not about speed.
- control arm
- A version of the experiment run without the thing being tested, so you can tell the effect apart from whatever would have happened anyway.
- critical period
- A stretch of time during which something has to happen for development to proceed normally. Borrowed from biology, where it describes windows in which a young brain must receive certain input.
- freezing
- Stopping one part of a model from changing while the rest carries on learning. A way of asking what that part contributes, by taking it away.
- gradient
- The direction and amount by which each of a model's internal numbers should change to do slightly better. Training is repeatedly following it.
- kill test
- A condition written down before running the experiment that says what result would make us abandon the idea. Fixing it in advance is what stops a disappointing result being reinterpreted as an encouraging one.
- learning rate
- How big a step training takes each time it updates the model. Too small and nothing happens; too big and it never settles.
- recurrent
- A design that reads a sequence one item at a time, carrying memory forward. The main alternative is attention, which looks at everything at once.
- seed
- The number that fixes all the randomness in a training run. Same seed, same run. Running several seeds is how you tell a real effect from a lucky one.
- width
- How many internal numbers a model uses at each layer. The usual way we vary model size in these experiments.
Get new results as we publish them
Roughly monthly, one finding per email, in plain English first. Including the experiments that went against us, which are usually the useful ones. No sales email.
Double opt-in: we send a confirmation link and add nobody who does not click it. One-click unsubscribe on every email.