Обучение нейросетей: от тензоров и обратного распространения до линейной регрессии 0:05
В лекции курса Stanford CS221 преподаватель Стэнфордского университета разбирает фундаментальные строительные блоки современного машинного обучения: тензоры, алгоритм обратного распространения ошибки (backpropagation) и классическую задачу линейной регрессии. Основной упор сделан на механику вычислений и переход от ручного дифференцирования к использованию вычислительных графов.
🧠 Тензоры и библиотека Einops 0:05
В основе всех вычислений лежат тензоры, которые можно считать «атомами» машинного обучения.
- Иерархия тензоров: тензоры имеют «порядок» (количество осей), что предпочтительнее термина «ранг» из линейной алгебры.
- Порядок 0: скаляры (числа).
- Порядок 1: векторы.
- Порядок 2: матрицы.
- Именование осей: использование библиотеки
einopsпозволяет присваивать осям тензоров осмысленные имена (например,exampleилиfeature), что значительно повышает читаемость кода по сравнению с абстрактными индексами. - Операция
einsum: это «мастер-функция», объединяющая множество операций (сумма, произведение элементов, скалярное произведение, внешнее произведение, транспонирование) через единый механизм маршрутизации осей.- При
einsumаргументы слева от стрелки — входные оси, справа — выходные. - Если индекс присутствует во входных данных, но отсутствует на выходе (как
kпри матричном умножении), происходит суммирование по этому индексу.
- При
📉 Обратное распространение ошибки и графы вычислений 17:07
Для обучения моделей необходимо оптимизировать параметры, минимизируя функцию потерь. Градиент показывает направление, в котором функция возрастает быстрее всего, поэтому для минимизации нужно двигаться в противоположную сторону.
Механика вычислений
Вместо ручного вычисления производных для каждой сложной функции используется автоматическое дифференцирование (autodiff) через построение вычислительного графа.
- Прямой проход (Forward pass): вычисление значений всех узлов от входных данных до результата (скаляра).
- Топологическая сортировка: определение порядка обработки узлов графа.
- Обратный проход (Backward pass): проход от корня к листьям, где
backwardкаждого узла передает градиент (производную по отношению к результату) его зависимостям, используя цепное правило.
По мнению преподавателя, понимание работы графа крайне важно, так как, несмотря на наличие библиотек вроде PyTorch или JAX, глубокое знание «кухни» алгоритма дает лучшую интуицию при проектировании архитектур.
📊 Линейная регрессия как задача обучения 56:32
Процесс машинного обучения — это не просто написание кода, а поиск оптимального предиктора в заданном пространстве.
Три столпа машинного обучения
- Гипотетический класс (Hypothesis class): выбор архитектуры модели (множества возможных функций) и ограничение пространства параметров.
- Функция потерь (Loss function): математическая мера того, насколько плохо модель предсказывает данные (например, среднеквадратичная ошибка, где остаток — это расстояние от прогноза до целевого значения).
- Оптимизация (Optimization): нахождение параметров, минимизирующих потери.
Градиентный спуск
Это основной метод оптимизации, где параметры обновляются итеративно:
- Вычисляется градиент функции потерь для текущего набора параметров.
- Параметры сдвигаются в сторону, противоположную градиенту.
- Learning rate (скорость обучения): критически важный гиперпараметр, определяющий размер шага. Слишком большое значение может привести к расходимости и краху обучения.
Хотя градиентный спуск гарантированно работает для выпуклых функций, в глубоком обучении функции чаще всего не являются таковыми, однако метод показывает высокую эффективность на практике.