alterna ai
ALTERNA AI / ГЛАВА 09 · 02

09.2 Сначала получаем значения

На предыдущей странице: рисуем зависимости вычисления.

Идём в порядке зависимостей: нельзя вычислить сумму до её слагаемых. Правильные значения ещё не доказывают правильности производных.

Сохраним зависимости выполненных действий и пройдём от ошибки назад. Вклады разных путей к общему весу складываются. Это автоматическое дифференцирование, а не новый способ угадывать направление.

Значения ещё не являются производными

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 станут устаревшими. Учебный редактор пересобирает граф для нового входа.

Можно потерять accumulation при верном forward.

Чувствительность одного действия. Как этот вопрос продолжает полученный результат?

Python-примеры главы 09 Академическая база →