Математический анализ
Частные производные
В 2012 году AlexNet обучился за 5 дней на двух GPU и выиграл ImageNet с отрывом 10%. Каждый из 60 миллионов параметров обновлялся по одному правилу: шагнуть против частной производной функции потерь. Без частных производных глубокое обучение осталось бы теорией.
- Обратное распространение ошибки в нейронных сетях: $\frac{\partial L}{\partial w}$ для каждого веса
- Оптимизация гиперпараметров: скорость обучения, размер батча, регуляризация
- Компьютерное зрение: градиент яркости $\frac{\partial I}{\partial x}$ для детекции рёбер
- Физическое моделирование: уравнение теплопроводности $\frac{\partial T}{\partial t} = k \frac{\partial^2 T}{\partial x^2}$
- Экономика: предельная полезность $\frac{\partial U}{\partial x_i}$ при фиксированных остальных благах
Цели урока
- Вычислять частные производные функций нескольких переменных по определению и правилам дифференцирования
- Применять теорему Шварца для проверки равенства смешанных производных
- Строить вычислительный граф и применять цепное правило для многомерных функций
Предварительные знания
- Производная функции одной переменной
- Цепное правило для функций одной переменной
- Понятие предела и непрерывности
Частная производная: фиксируем всё кроме одного
Частная производная $\frac{\partial f}{\partial x}$ отвечает на вопрос: как изменится $f$ при бесконечно малом изменении $x$, если все остальные переменные заморожены? Геометрически - это наклон касательной к сечению поверхности плоскостью $y = \text{const}$.
Теорема Шварца и смешанные производные
Теорема Шварца: если $f_{xy}$ и $f_{yx}$ непрерывны в окрестности точки, то $f_{xy} = f_{yx}$. Это экономит половину вычислений для матрицы Гессе и позволяет менять порядок дифференцирования в физических уравнениях.
Теорема требует непрерывности смешанных производных. Функция $f(x,y) = \frac{xy(x^2-y^2)}{x^2+y^2}$ при $(x,y)\neq(0,0)$ и $f(0,0)=0$ является контрпримером: $f_{xy}(0,0) \neq f_{yx}(0,0)$.
Цепное правило в многомерном случае
Если $f(x_1,\ldots,x_n)$ и каждое $x_i = g_i(t)$, то $\frac{df}{dt} = \sum_{i=1}^n \frac{\partial f}{\partial x_i}\frac{dx_i}{dt}$. В нейронных сетях каждый узел вычислительного графа реализует именно это правило, накапливая градиент от выхода к входу.
Определение и геометрический смысл
В нейросети с 50 миллионами параметров каждый шаг обучения требует вычисления ∂L/∂wᵢ для каждого веса - насколько функция потерь L меняется, если изменить только один вес wᵢ, оставив остальные 49 999 999 параметров неподвижными. Это и есть частная производная: изменение функции нескольких переменных по одной из них при фиксированных остальных.
Численное дифференцирование через конечные разности используется в gradient checking - процедуре отладки backpropagation. При обучении нейросети вычисляются аналитические градиенты (быстро), а численные служат эталоном для проверки корректности реализации. Погрешность порядка 1e-5 считается приемлемой.
Функция f(x, y) = x³y² + sin(y). Чему равна ∂f/∂x?
При частном дифференцировании все переменные, кроме выбранной, считаются константами.
Правила вычисления и теорема Шварца
Матрица Гессе - вторые частные производные функции потерь - определяет кривизну loss surface нейросети. Метод Adam неявно аппроксимирует диагональ Гессиана через скользящее среднее квадратов градиентов. Симметричность матрицы Гессе (Hᵢⱼ = Hⱼᵢ) - прямое следствие теоремы Шварца о независимости смешанных производных от порядка дифференцирования.
Гессиан используется в методах второго порядка оптимизации (Newton, L-BFGS). Симметричность Гессиана гарантирует вещественные собственные значения - именно они определяют кривизну loss surface и различают минимумы от сёдловых точек.
Почему матрица Гессе нейросети всегда симметрична?
Ответ следует непосредственно из определения и свойств рассматриваемого математического объекта.
Backpropagation как цепочка частных производных
Обучение ResNet-50 на ImageNet за одну эпоху требует прохода обратного распространения ошибки через 50 слоёв. На каждом слое вычисляются частные производные ∂L/∂W через цепное правило: ∂L/∂W = (∂L/∂y)·(∂y/∂W), где y - выход слоя. Вся математика backprop - это итеративное применение правила дифференцирования сложной функции нескольких переменных.
Gradient check - стандартная процедура отладки при реализации backprop. Если аналитический и численный градиенты расходятся больше чем на 1e-4, в реализации цепного правила есть ошибка. PyTorch и JAX автоматизируют вычисление частных производных через autograd - автоматическое дифференцирование по вычислительному графу.
В сети с тремя слоями ∂L/∂W₁ проходит через сколько применений цепного правила?
При частном дифференцировании все переменные, кроме выбранной, считаются константами.
Частные производные функции $f(x,y) = x^2 y + \sin(xy)$
$\frac{\partial f}{\partial x} = 2xy + y\cos(xy)$ - дифференцируем по $x$, считая $y$ константой. $\frac{\partial f}{\partial y} = x^2 + x\cos(xy)$ - дифференцируем по $y$, считая $x$ константой.
Backpropagation через вычислительный граф
Для $L = (\hat{y} - y)^2$, $\hat{y} = \sigma(wx + b)$: $\frac{\partial L}{\partial w} = \frac{\partial L}{\partial \hat{y}} \cdot \frac{\partial \hat{y}}{\partial z} \cdot \frac{\partial z}{\partial w}$ где $z = wx+b$. Каждый множитель - локальная частная производная одного узла графа.
Итоги
- Частная производная $\frac{\partial f}{\partial x_i}$ фиксирует все переменные кроме $x_i$ - это однопеременное дифференцирование на плоском сечении
- Теорема Шварца гарантирует $f_{xy} = f_{yx}$ при непрерывности смешанных производных - порядок не важен
- Многомерное цепное правило $\frac{df}{dt} = \nabla f \cdot \dot{x}$ - основа backpropagation в любой нейронной сети
Связь с другими темами
Частные производные собираются в вектор градиента $\nabla f$ (следующий урок) и матрицу Гессе $H$ (урок об экстремумах). Та же идея лежит в основе уравнений в частных производных: теплопроводность, диффузия, электродинамика - все записываются через $\frac{\partial}{\partial x_i}$.
- Связанные темы — развивает
Вопросы для размышления
- Почему теорема Шварца требует непрерывности смешанных производных, а не просто их существования?
- Как изменится вычислительный граф backpropagation, если функция активации не дифференцируема в нуле (как ReLU)?
- В физике часто меняют порядок дифференцирования под знаком интеграла. Какие условия нужны для законности этой операции?