Значения ещё не являются производными
Forward идёт по топологическому списку. В примере a=2×3=6,z=6+1=7,L=7×7=49. Leaves x,w,b остаются прежними, optimizer не вызывается.
| Узел | Родители | Операция | Value |
|---|---|---|---|
| a | x,w | x×w | 6 |
| z | a,b | a+b | 7 |
| L | z,z | z×z | 49 |
«Далее» показывает один именованный узел. Будущие значения не помечаются как уже пройденные. Чистое вычислительное ядро может заранее подготовить deterministic snapshots, но UI показывает состояние именно выбранного кадра, а не смешивает его с окончательным ответом.
Эксперимент. Замените x на0: a=0,z=1,L=1. Затем b на0: L=0. После изменения JSON курсор и обратная трасса сбрасываются; старый результат не выдаётся за актуальный.
Граница. Совпадение loss не доказывает правильности backward. Можно вычислить верный forward и потерять вклад общего узла при differentiation. Проверка производных нужна отдельно. Если менять leaf.data между forward и backward без пересчёта, сохранённые local derivatives станут устаревшими. Учебный редактор пересобирает граф для нового входа.