Вычислительный граф: выражение как схема
Зачем это нужно: нейросеть — это не одна функция, а цепочка из многих: линейный шаг, потом активация, потом следующий линейный шаг, и так далее (в «Логистической регрессии» цепочка была короче: ). Чтобы посчитать производную такой цепочки, удобно сперва нарисовать её как схему — вычислительный граф. Эта статья строит только схему и считает по ней число вперёд (прямой ход); что делать с производными по этому графу — в следующей статье. Если незнакома сама идея наклона-производной, начни с «Производных: что такое наклон функции» и «Больше примеров производных».
Вычислительный граф — кружки-операции, стрелки-зависимости между ними. Представь кухонный рецепт: блюдо не готовится одним действием, оно расписано на шаги — нарезать, обжарить, смешать, — и каждый шаг берёт то, что получилось на предыдущем, и выдаёт что-то новое. Или сборочный конвейер: одна станция закручивает гайку, следующая красит корпус, третья упаковывает — каждая делает одну простую операцию и передаёт результат дальше. Вычислительный граф — то же самое, только для математического выражения: он режет его на маленькие пронумерованные операции, и каждая по отдельности элементарна.
Возьмём игрушечный пример, специально попроще нейросети, чтобы видеть механику голыми руками: функция трёх чисел
Буквы здесь ничего не значат физически — просто три независимых входа. Разобьём вычисление на элементарные шаги — это и есть узлы графа:
- (первое умножение)
- (сложение)
- (второе умножение)
Три шага — три стрелки: и вливаются в , и вливаются в , вливается в . Слева направо этот проход называют прямым ходом (forward pass) — он просто вычисляет число, ничего не гадая.
Если можешь пересказать: вычислительный граф — это рецепт или конвейер для выражения, разбитый на пронумерованные шаги-узлы со стрелками-зависимостями между ними; проход слева направо — прямой ход, — продолжай к числам.
Возьмём числа: , , . Считаем шаг за шагом:
Прямой ход на этих числах даёт . То же самое, только длиннее и с активациями между слоями, происходит в предсказании нейросети: числа текут слева направо по графу, и на выходе получается результат — как в логистической регрессии, только с большим числом узлов.
Если можешь пересказать: вычислительный граф разбивает выражение на элементарные шаги-узлы; прямой ход слева направо просто вычисляет число, — листай дальше.
Что дальше
Прямой ход посчитал число, но не сказал, насколько изменится, если чуть подвинуть , или . Ответ — обратный ход по этому же графу, тема «Производных с вычислительным графом».