Математический анализ

Функции нескольких переменных

Цели урока

  • Понять, почему функции многих переменных - основа ML и оптимизации
  • Интерпретировать поверхности, параболоиды и седловые точки
  • Читать линии уровня как инструмент анализа loss landscape
  • Понять, когда многомерный предел существует, а когда нет

Предварительные знания

  • Что такое функция (вход -> выход)
  • Пределы - куда стремится функция
  • The Concept of a Limit
  • Continuity of a Function

Функция потерь GPT-4 принимает 1.8 триллиона переменных (параметров) и возвращает одно число - loss. Каждый шаг Adam обновляет все 1.8 трлн одновременно. Это математика функций многих переменных в production при масштабе, немыслимом 20 лет назад.

  • GPT-4: L(theta) с theta в R^{1.8T} - функция 1.8 триллиона переменных
  • ResNet-50: backward pass вычисляет 25M частных производных за один проход
  • Adam optimizer: momentum в пространстве параметров = gradient descent на поверхности
  • Li et al. 2018: визуализация loss landscape ResNet как поверхности в 3D
  • Kaggle: hyperparameter tuning = поиск минимума f(lr, dropout, batch_size, ...)

GPT-4 и 1.8 триллиона переменных

Функция потерь GPT-4 - это $L(\theta)$, где $\theta \in \mathbb{R}^{1.8\text{ трлн}}$. Градиент $\nabla L$ - вектор из 1.8 триллиона чисел. Каждый шаг Adam optimizer обновляет все 1.8 трлн параметров одновременно. Это и есть функция нескольких переменных в production.

ResNet-50 обрабатывает изображение $224 \times 224 \times 3 = 150528$ входных пикселей - это функция 150528 переменных. Backward pass вычисляет 25 миллионов частных производных за один проход.

Какая из этих ситуаций НЕ требует функции нескольких переменных?

Перевод температуры - это функция ОДНОЙ переменной: $F = 1.8C + 32$. Всё остальное требует двух или более входных данных.

Поверхности: loss landscape нейросетей

График функции $f(x,y)$ - это поверхность в 3D. Loss surface нейросети при двух параметрах выглядит как горный ландшафт с долинами (локальные минимумы), перевалами (седловые точки) и вершинами. Исследователи из Facebook AI в 2018 году буквально нарисовали такой landscape для ResNet-56.

Параболоид f(x,y) = x^2 + y^2: - f(0,0) = 0 (минимум) - f(1,0) = 1, f(0,2) = 4, f(1,1) = 2 - Форма: спутниковая антенна / чаша Adam Седло f(x,y) = x^2 - y^2: - f(0,0) = 0 (не min, не max) - Вдоль x: x^2 растёт -> минимум - Вдоль y: -y^2 убывает -> максимум - Критическая точка (0,0) - седловая

Седловые точки - главная проблема оптимизации нейросетей: градиент там равен нулю, как в минимуме, но точка не является минимумом. Adam optimizer использует momentum, чтобы вырываться из седловых точек.

Summarise the key idea of: Как это выглядит: рассмотрим горы.

Линии уровня: как читать loss landscape

TensorBoard отображает loss curves - одну переменную (время). Но loss landscape - это многомерная поверхность. Исследователи из Li et al. (2018) проецируют её на 2D через два случайных направления и рисуют линии уровня. Густые линии = крутой склон = нестабильное обучение.

Линия уровня c: все точки, где x^2 + y^2 = c Это окружность радиуса sqrt(c). c = 1: r = 1.0 (единичная окружность) c = 4: r = 2.0 c = 9: r = 3.0 Линии уровня = концентрические окружности. Чем ближе к центру, тем плотнее = тем круче склон.

Градиент всегда перпендикулярен линиям уровня. Gradient descent движется вдоль этого перпендикуляра - поэтому он находит минимум по кратчайшему пути вниз по склону.

Видите густые линии уровня на loss landscape. Что это значит?

Близкие линии уровня = большой перепад на малом расстоянии = большой градиент = нестабильный gradient descent. Именно поэтому gradient clipping используется при крутых склонах loss.

Пределы: путь имеет значение

В одномерном случае к точке можно подойти только с двух сторон: слева или справа. В двумерном - **бесконечное количество путей**: вдоль любой прямой, параболы, спирали. Предел существует, только если по всем путям получается одно и то же значение.

Вдоль оси x (y=0): x*0/(x^2+0) = 0 Вдоль оси y (x=0): 0*y/(0+y^2) = 0 Кажется, предел = 0. Но: Вдоль y=x: x*x/(x^2+x^2) = x^2/(2x^2) = 1/2 Вдоль осей -> 0, по диагонали -> 1/2. Предел не существует.

Даже если вдоль ВСЕХ прямых получается одинаковый ответ, предел может не существовать - нужно проверять и параболические пути. В ML это объясняет, почему loss landscape вдоль одного направления выглядит гладко, но оптимизация может вести себя непредсказуемо в другом направлении.

Почему в многомерном случае пределы сложнее, чем в одномерном?

На прямой - два пути. На плоскости - бесконечно много. И нужно, чтобы ВСЕ пути давали одинаковый ответ.

Практика

Три задачи: от конкретных вычислений до исследования предела.

L(w, b) = (w*x + b - y)^2 при x=2, y=3 L(1.0, 0.0) = (1*2 + 0 - 3)^2 = (-1)^2 = 1.0 L(1.5, 0.0) = (1.5*2 + 0 - 3)^2 = 0^2 = 0.0 (оптимум!) L(1.0, 1.0) = (1*2 + 1 - 3)^2 = 0^2 = 0.0 (тоже оптимум)

Линия уровня c: x + 2y = c, или y = (c-x)/2 Это прямые с наклоном -1/2. - c = 0: прямая y = -x/2 - c = 2: прямая y = 1 - x/2 - c = -2: прямая y = -1 - x/2 Параллельные прямые. Поверхность z = x+2y - наклонная плоскость. Градиент: (1, 2) - перпендикулярен каждой линии уровня.

Вдоль x-оси (y=0): x^2/x^2 = 1 Вдоль y-оси (x=0): -y^2/y^2 = -1 1 != -1 => предел не существует. Физический смысл: эта функция постоянна на лучах из начала координат, но принимает разные значения на разных лучах.

Summarise the key idea of: Практика.

Куда ведёт эта тема

Функции нескольких переменных - фундамент всего дальнейшего в ML

  • Частные производные — Как быстро меняется loss вдоль каждого параметра?
  • Градиент и gradient descent — Направление наибольшего убывания loss - основа обучения нейросетей
  • Оптимизация — Поиск минимума loss в пространстве миллионов параметров
  • Ряды Тейлора — Многомерный Тейлор: квадратичное приближение loss = основа L-BFGS

Итоги

  • Функция $f: \mathbb{R}^n \to \mathbb{R}$ - несколько входов, один выход; loss нейросети - именно такая
  • График $f(x,y)$ - поверхность в 3D: параболоид (чаша), седло - ключевые формы в оптимизации
  • Линии уровня - 'срезы' поверхности; густые линии = большой градиент = нестабильное обучение
  • Градиент $\nabla f$ перпендикулярен линиям уровня и указывает направление наибольшего роста
  • Предел существует, только если ВСЕ пути к точке дают одинаковый результат

Вопросы для размышления

  • Почему седловые точки сложнее для gradient descent, чем локальные минимумы?
  • Как li et al. визуализировали loss landscape ResNet в 2D?
  • Почему gradient clipping применяют при крутых склонах loss?
  • Если предел по всем прямым одинаковый, гарантирует ли это существование предела?

Связанные уроки

  • stats-21
Функции нескольких переменных

0

1

Войти