Multivariate calculus#
The idea is the same: approximate the increment \(\Delta f\) by a linear function:
(cp. with (62)). Here differential \(Df(x)[h]\) is a linear function (which is usually called linear operator in multidimensional case) with respect to increment \(h\) which represents the main linear part of the increment \(\Delta f = f(x+h) - f(x)\).
Differentials of scalar functions#
In the previous section we considered the simplest case when \(f \colon \mathbb R \to \mathbb R\) is a real-valued function of real argument. Then its differential is written as \(df(x) = f'(x) dx\) or \(Df(x)[h] = f'(x)h\). Now see what happens when the function \(f\) has multidimensional domain.
Functions of vectors#
let \(f\colon \mathbb R^n \to \mathbb R\) and \(\boldsymbol x = (x_1, \ldots, x_n)^\mathsf{T}\). Then
Here \(\frac{\partial f(\boldsymbol x)}{\partial x_i}\) are partial derivatives of \(f\) at point \(\boldsymbol x\). The vector of partial derivatives
is called gradient of \(f\). Alternative notation for differential:
Note that both increment \(d\boldsymbol x\) and gradient \(\nabla f\) have the same shape as variable \(\boldsymbol x\): they are columns of size \(n\). All partial derivatives are functions of \(\boldsymbol x\), therefore, gradient also depends on \(\boldsymbol x\).
Question
How to write \(df\) in vector form if the argument of \(f\) is a row vector \(\boldsymbol x = (x_1, \ldots, x_n)\)?
Answer
The coordinate form is the same:
Now \(\nabla f(\boldsymbol x)\) and \(d\boldsymbol x\) are rows, hence
Alternative notation:
Note
Иногда приходится дифференцировать функции, зависящие от различных наборов аргументов, и тогда во избежание неоднозачности в индексе у буквы \(\nabla\) указывают аргумент, по которому осуществляется дифференцирование. Например, запись \(\nabla_{\boldsymbol w} f(\boldsymbol X, \boldsymbol y, \boldsymbol w)\) недвусмысленно даёт понять, что мы дифференцируем фукнцию \(f\) по вектору \(\boldsymbol w\), а \(\boldsymbol X\) и \(\boldsymbol y\) рассматриваем при этом как фиксированные параметры.
Differentials of vector functions#
Пусть \(f\colon \mathbb R^m \to \mathbb R^n\), тогда дифференциал должен быть линейным оператором из \(\mathbb R^m\) в \(\mathbb R^n\), то есть матрицей размера \(n\times m\). И, действительно, с помощью матрицы Якоби
differential is written as
Question
Let \(f\colon \mathbb R^m \to \mathbb R^n\) be a mapping from a row vector \(\boldsymbol x = (x_1, \ldots, x_m)\) to another row vector \((f_1(\boldsymbol x), \ldots, f_n(\boldsymbol x))\). How to write \(df\) in matrix form?
Answer
Значение дифференциала \(Df(\boldsymbol x)[\boldsymbol h]\) теперь должно быть вектором-строкой, а не вектором-столбцом. Этого легко добиться транспонированием (65):
Следует учесть, однако, что теперь приращение \(\boldsymbol h\) — это строка, поэтому его транспонировать не нужно. В итоге получаем
Differential in general case#
Функция \(f \colon X \to V\), \(X \subset U\), дифференцируема в точке \(x\in X\), если найдётся такой линейный оператор \(L\colon U \to V\), что справедливо равенство
Линейное отображение \(L\) из мира \(x\)-ов в мир значений \(f\) называется дифференциалом (производной, производным отображением) функции \(f\) в точке \(x\) и обозначается \(df(x)\) или \(Df(x)[h]\). Фактически дифференциал зависит от двух аргументов: \(df \colon X\times U \to V\), причём по второму аргументу он линеен. Среди всех линейных операторов из \(U\) в \(V\) дифференциал наилучшим образом приближает приращение функции:
Note
Нотация \(Df(x)[h]\) для дифференциала выглядит несколько громоздко, зато в неё явно включены обе переменные, от которых зависит дифференциал. При вычислении дифференциала функции \(f\) в произвольной точке \(x\) часто используют более короткую запись \(df(x)\) или даже \(df\); переменная приращения в таких случаях традиционно обозначается через \(dx\). Обозначение \(dx\) следует воспринимать как единый неделимый символ, по смыслу полностью тождественный приращению \(h\).
Special cases#
\(U = V = \mathbb R\):
\[ Df(x)[h] = f'(x)h \text{ or } df = f'(x)dx \]\(U = \mathbb R^n\), \(V = \mathbb R\):
\[ Df(\boldsymbol x)[\boldsymbol h] = \nabla f(\boldsymbol x)^{\mathsf T} \boldsymbol h \text{ or } df = \nabla f^{\mathsf T} d\boldsymbol x \]\(U = \mathbb R^{m\times n}\), \(V = \mathbb R\) (see next section):
\[ Df(\boldsymbol X)[\boldsymbol H] = \mathrm{tr}\big(\nabla f(\boldsymbol X)^{\mathsf T} \boldsymbol H\big) \text{ or } df = \mathrm{tr}\big(\nabla f^{\mathsf T} d\boldsymbol X\big) \]\(U = \mathbb R^{m}\), \(V = \mathbb R^n\):
\[ Df(\boldsymbol x)[\boldsymbol h] = J_f(\boldsymbol x) \boldsymbol h \text{ or } df = J_f d\boldsymbol x \]
Question
If \(f\colon U \to V\) is differentiable at point \(x\), what is the shape of \(Df(x)[h]\)?
Rules of differentiation#
Производная константы. Если \(f(x) = \mathrm{const}\), то \(f(x+h) - f(x) = 0\), и по определению \(Df(x)[h] = 0\). По этой же причине градиент постоянной функции векторного или матричного аргумента также равен нулю.
Дифференциал линейного отображения. Пусть \(f(x)\) — линейное отображение. Тогда
Поскольку справа линейное отображение, то по определению оно и является дифференциалом \(Df(x)[h]\).
Линейность дифференциала. Пусть функции \(f \colon X \to V\) и \(g \colon X \to V\) дифференцируемы в точке \(x\in X\) и \(\alpha, \beta \in \mathbb R\). Тогда функция \(\alpha f + \beta g\) дифференцируема в точке \(x\), и
\[ D(\alpha f + \beta g)(x)[h] = \alpha Df(x)[h] + \beta Dg(x)[h]. \]Дифференциал произведения. Пусть функции \(u \colon X \to \mathbb R\), \(v \colon X \to V\) дифференцируемы в точке \(x\). Тогда функция \(u\cdot v\) дифференцируема в точке \(x\), и
\[ D(uv)(x)[h] = Du(x)[h]\cdot v(x) + u(x)\cdot Dv(x)[h]. \]Это же правило сработает и для скалярного произведения:
\[ D \langle u(x), v(x)\rangle [h] = \langle Du(x)[h], v(x)\rangle + \langle u(x), Dv(x)[h]\rangle. \]Производная сложной функции. Пусть функция \(u \colon X \to Y\) дифференцируема в точке \(x\), а функция \(v \colon Y \to Z\) дифференцируема в точке \(u(x)\). Тогда их композиция \(v\circ u\) дифференцируема в точке \(x\), и
\[ D(u\circ v)(x)[h] = Dv(u(x))\Big[Du(x)[h]\Big]. \]Proof
Обозначим \(f(x) = (v\circ u)(x)\), тогда
\[ f(x+h) - f(x) = v(u(x+h)) - v(u(x)) \approx v\big(u(x) + Du(x)[h]\big) - v(u(x)). \]Получилось приращение функции \(v\), взятое в точке \(u(x)\) с приращением \(Du(x)[h]\). Приближённо оно равно дифференциалу \(Dv(u(x))\Big[Du(x)[h]\Big]\).
В частности, если \(Y \subset \mathbb R\) и \(Z = \mathbb R\), то \(d(v\circ u)(x) = v'(u(x))du(x)\).
Важный частный случай: дифференцирование перестановочно с линейным отображением. Пусть \(f(x) = L(v(x))\), где \(L\) — линейное отображение. Тогда \(DL(v(x))\) совпадает с самим \(L\) и формула упрощается:
\[ D(L\circ v)(x)[h] = L(Dv(x)[h]). \]
Second differential#
Дифференциал \(Df(x)[h]\) функции
где \(U\) и \(V\) — некоторые конечномерные пространства, зависит от двух аргументов: \(x\in X\) и \(h\in U\). Зафиксировав приращение \(h_1\in U\), получим функцию от переменной \(x\):
А значит, её тоже можно попробовать продифференцировать! Если это возможно, то её дифференциал \(Dg(x)[h_2]\) называется вторым дифференциалом функции \(f\), и обозначается
На сей раз это не линейный оператор, а билинейная форма: при фиксированном \(x_0\in X\) функция \(D^2f(x_0)[h_1, h_2]\) линейна по каждому из аргументов приращения.
Для функций \(f\colon \mathbb R^n \to \mathbb R\) второй дифференциал, как и любую билинейную форму, можно представить в виде матрицы:
Матрица \(\boldsymbol H_x\) назвается гессианом функции \(f\) в точке \(\boldsymbol x\) и обозначается \(\nabla^2 f( \boldsymbol x)\). Гессиан состоит из вторых частных производных:
Если все вторые частные производные функции \(f\) непрерывны, то её гессиан представляет собой симметричную матрицу (в этом состоит утверждение теоремы Шварца). Также для таких функций справедливо разложение по формуле Тейлора до второго порядка:
или, в другой записи,
Exercises#
Let \(\boldsymbol a \in \mathbb R^n\) be a fixed vector and
\[ f(\boldsymbol x) = \sum\limits_{k=1}^n a_k x_k = \boldsymbol a^\mathsf{T} \boldsymbol x. \]Find \(\nabla f(\boldsymbol x)\).
Let \(\varphi \in C^1(\mathbb R)\), \(\boldsymbol x \in \mathbb R^m\), and
(66)#\[\begin{split}f(\boldsymbol x) = \begin{pmatrix} \varphi(x_1)\\ \vdots\\ \varphi(x_m) \end{pmatrix}, \quad g(\boldsymbol x) = \begin{pmatrix} \varphi'(x_1)\\ \vdots\\ \varphi'(x_m) \end{pmatrix}\end{split}\]Show that
(67)#\[ Df(\boldsymbol x)[\boldsymbol h] = g(\boldsymbol x) \odot \boldsymbol h =\boldsymbol h \odot g(\boldsymbol x).\]According to (64), the differential of the function \(f\) from (66) should be an \(m\times m\) matrix. How does it look like?
Let \(\boldsymbol A \in \mathbb R^{n\times n}\) and
\[ f(\boldsymbol x) = \langle \boldsymbol{Ax}, \boldsymbol x\rangle = \boldsymbol x^\mathsf{T} \boldsymbol{Ax}. \]Find \(\nabla f(\boldsymbol x)\) and \(\nabla^2 f(\boldsymbol x)\).
Logistic function is
\[ f(\boldsymbol x) = \log\big(1 + \exp(\boldsymbol a^\mathsf{T} \boldsymbol x)\big), \quad \boldsymbol a \in \mathbb R^n. \]Find \(\nabla f(\boldsymbol x)\) and \(\nabla^2 f(\boldsymbol x)\).
Let \(\boldsymbol A = \boldsymbol A^\mathsf{T}\) and \(f(\boldsymbol x) = \frac 12 \Vert\boldsymbol{xx}^\mathsf{T} - \boldsymbol A\Vert_F^2\). Find \(\nabla f(\boldsymbol x)\) and \(\nabla^2 f(\boldsymbol x)\).