← Мои дополнительные ресурсы

Понятное введение в нейронные сети и обратное распространение ошибки: создаем micrograd

Андрей Карпаты, эксперт в области Deep Learning, проводит пошаговый мастер-класс по созданию нейронной сети с нуля. В этом видео вы напишете micrograd — миниатюрную библиотеку автоматического дифференцирования (autograd), чтобы на интуитивном уровне понять, как работает обратное распространение ошибки (backpropagation) и обучение современных нейросетей.

The spelled-out intro to neural networks and backpropagation: building micrograd
2 часа 30 минутНачальный

Этот материал идеально подходит для новичков в машинном обучении, так как Андрей Карпаты начинает объяснение с «чистого листа» (пустого Jupyter-блокнота) и строит нейросеть с нуля, не пропуская ни одной детали. Вам не понадобятся глубокие знания сложных библиотек — весь код пишется на чистом Python, чтобы продемонстрировать, как обучение происходит «под капотом» на интуитивном уровне.

В центре урока — создание micrograd, миниатюрного движка автоматического дифференцирования (autograd), реализующего алгоритм обратного распространения ошибки. Весь код движка занимает около 100 строк, а сама нейросетевая библиотека поверх него — еще около 50, что делает его идеальным для изучения.

В отличие от промышленных библиотек (например, PyTorch), которые работают с тензорами (массивами) для эффективности, micrograd работает с обычными скалярными числами. Это педагогический прием: он позволяет не отвлекаться на сложные операции с массивами и сфокусироваться на математической сути работы нейронов и градиентов.

Ключевые темы урока:

  • Интуитивное понимание производных: Вы начнете с численной оценки производной (предела функции), чтобы понять, как изменение входных данных влияет на результат, прежде чем переходить к формулам.

  • Создание объекта Value: Пошаговая реализация класса-обертки для чисел, который отслеживает арифметические операции (сложение, умножение, возведение в степень) и строит граф вычислений.

  • Визуализация графов: Использование библиотеки Graphviz для наглядного отображения того, как данные проходят через нейросеть (forward pass) и как градиенты текут обратно.

  • Обратное распространение ошибки (Backpropagation):

    • Ручной расчет градиентов с использованием цепного правила (Chain Rule) для понимания логики процесса.
    • Реализация автоматического backward прохода с использованием топологической сортировки графа.
    • Решение проблемы перезаписи градиентов при повторном использовании переменных (аккумуляция градиентов).
  • Архитектура нейросети: Реализация абстракций «Нейрон» (с весами, смещением и функцией активации), «Слой» и «MLP» (многослойный перцептрон).

  • Цикл обучения:

    • Расчет функции потерь (MSE) для оценки качества предсказаний.
    • Реализация градиентного спуска (Gradient Descent) для обновления весов и минимизации ошибки.
    • Важность обнуления градиентов (zero_grad) перед каждым шагом обучения — разбор популярной ошибки новичков.

В финале лекции Андрей демонстрирует переход к PyTorch, показывая, что созданный вами код структурно идентичен профессиональным инструментам, но работает с тензорами для большей эффективности.

Репозиторий с кодом

karpathy/micrograd
Начальный

Весь цикл видео

Neural Networks: Zero to Hero
Начальный