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

09.1 Рисуем зависимости вычисления

Местные производные и правило цепочки уже знакомы.

Каждое действие получает входы от предыдущих действий. Если обозначить эти связи, получится вычислительный граф.

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

Операция хранит родителей

Распишем формулу как DAG: связи идут от операндов к результатам. Leaf содержит число; операция знает родителей, forward value и локальные производные. Топологический порядок гарантирует готовность родителей перед вычислением узла. N03,N10.

Сквозной пример: x=2,w=3,b=1,a=xw,z=a+b,L=z². Узлы a,z,L зависят от предыдущих. Идентичность узла отличается от равенства значений: разные переменные могут содержать одинаковые числа.

Редактор. Граф задаётся JSON-массивом до20 узлов. Разрешены leaf,add,mul,tanh,relu. Parents должны быть объявлены раньше, IDs уникальны, output — последний узел. Это ограниченный декларативный формат, не выполнение JavaScript/Python из textarea. Изменять значения leaves можно непосредственно в JSON.

Эксперимент. Сравните z*z с выражением, где две копии z имеют разные IDs. Forward может совпасть, но структура накопления различается. Цикл и неизвестный parent отвергаются с объяснением.

Под капотом. Память графа включает edges, промежуточные values и gradients, а не только параметры модели. Общий узел достаточно вычислить один раз, но кратность его использования нельзя потерять. Это различие станет ключевым для обратного прохода.

x,w,b=2,3,1
a=x*w; z=a+b; L=z*z
assert (a,z,L)==(6,7,49)

Код повторяет только что разобранные операции. Полный проверяемыйPython-пример главы доступен отдельным файлом; показанный короткий фрагмент не заменяет его реализацию.

Граф хранит операции и зависимости, из которых вычисляются values и derivatives.

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

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