Производная и градиент

Функции одной переменной

Производная

Производная

Пусть f ⁣:RRf \colon \RR \to \RR — функция одной переменной.

Производной функции ff в точке xx называется предел отношения приращения функции к приращению её аргумента, когда приращение аргумента стремится к нулю.

f(x)   ⁣=def   ⁣limΔx0f(x+Δx)f(x)Δxf'(x) \defeq \lim\limits_{\Delta x \to 0} \frac{f(x + \Delta x) - f(x)}{\Delta x}

Если этот предел существует и конечен, функция называется дифференцируемой в точке xx.

Производная f(x)f'(x) показывает мгновенную скорость изменения функции в точке xx. Это главная линейная часть изменения функции. Например, если f(t)f(t) — это путь, пройденный телом за время tt, то f(t)f'(t) — это его мгновенная скорость в момент времени tt.

Рассмотрим график функции y=f(x)y = f(x). Проведём секущую через точки (x,f(x))\bigl( x, f(x) \bigr) и (x+Δx,f(x+Δx))\bigl( x + \Delta x, f(x + \Delta x) \bigr). Посчитаем тангенс угла между секущей и положительной полуосью абсцисс.

kсек=f(x+Δx)f(x)Δxk_{\text{сек}} = \frac{f(x + \Delta x) - f(x)}{\Delta x}

При Δx0\Delta x \to 0 секущая стремится занять положение касательной к графику в точке (x,f(x))\bigl( x, f(x) \bigr). Таким образом, производная равна угловому коэффициенту (тангенсу угла наклона) этой касательной.

f(x)=tgαf'(x) = \tg \alpha

Уравнение касательной прямой к графику в точке (x0,f(x0))\bigl( x_0, f(x_0) \bigr) имеет вид

y=f(x0)+f(x0)(xx0)y = f(x_0) + f'(x_0) \cdot (x - x_0)

Дифференциал

Дифференциалом функции df(x)df(x) называется главная, линейная часть её приращения.

df(x)   ⁣=def   ⁣f(x)dxdf(x) \defeq f'(x) \, dx

Здесь dxdx — это произвольное приращение аргумента (дифференциал независимой переменной).

Приращение функции Δf=f(x+dx)f(x)\Delta f = f(x + dx) - f(x) и её дифференциал df(x)df(x) связаны соотношением

Δf=df(x)+o(dx)=f(x)dx+o(dx)\Delta f = df(x) + o(dx) = f'(x) \, dx + o(dx)

Наглядно, дифференциал — это приращение ординаты касательной линии при перемещении из точки xx в точку x+dxx + dx.

Правила дифференцирования

Операция взятия производной является линейным оператором:

(αf+βg)=αf+βg(\alpha f + \beta g)' = \alpha f' + \beta g'

Производная произведения вычисляется по правилу Лейбница:

(fg)=fg+fg(f \cdot g)' = f' \cdot g + f \cdot g'

Производная частного:

(fg)=fgfgg2\left( \frac{f}{g} \right)' = \frac{f' \cdot g - f \cdot g'}{g^2}

Производная композиции функции:

(fg)(x)=(f(g(x)))=f(g(x))g(x)(f \compose g)' (x) = \bigl( f(g(x)) \bigr)' = f'(g(x)) \cdot g'(x)

или, в других обозначениях

dfdx=dfdgdgdx\frac{df}{dx} = \frac{df}{dg} \cdot \frac{dg}{dx}

Производные высших порядков

Производная сама является функцией, поэтому можно говорить о производной от производной. Это вторая производная:

f(x)=(f(x))f''(x) = (f'(x))'

Она характеризует скорость изменения скорости, то есть ускорение. В геометрической интерпретации вторая производная связана с кривизной графика функции.

Аналогично определяются производные третьего и высших порядков.

Производные высших порядков

Производная nn-го порядка функции f ⁣:RRf \colon \RR \to \RR — функция

f(n)(x)=dnfdxn=fn раз(x)f^{(n)} (x) = \frac{d^n f}{dx^n} = f\overbrace{'''''''''''}^{n ~\text{раз}} (x)

Производные высших порядков сохраняют все свойства обычных производных. Оператор взятия производной nn-го порядка также является линейным, и также работает цепное правило для производной композиции функций.

Отдельного внимания заслуживает обобщённое правило Лейбница для производной nn-го порядка произведения функций

(fg)(n)=k=0n(nk)f(k)g(nk)(f \cdot g)^{(n)} = \sum\limits_{k=0}^n \binom{n}{k} \, f^{(k)} \, g^{(n-k)}

Теорема Ферма

Если функция ff дифференцируема в точке локального экстремума x0x_0, то f(x0)=0f'(x_0) = 0.

Геометрически это означает, что касательная в точке экстремума горизонтальна.

Функции многих переменных

Частная производная

Пусть f ⁣:RnRf \colon \RR^n \to \RR — функция nn переменных.

Посмотрим на скорость изменения функции ff только по одной из координат xjx_j. Эта скорость называется частной производной функции ff по координате xjx_j и обозначается f/xj\partial f / \partial x_j

fxj(x)   ⁣=def   ⁣limΔxj0f(x1,x2,,xj1,xj+Δxj,xj+1,xn)f(x1,x2,,xj1,xj,xj+1,xn)Δxj\frac{\partial f}{\partial x_j} (x) \defeq \lim\limits_{\Delta x_j \to 0} \frac{ f(x_1, x_2, \dotsc, x_{j-1}, x_j + \Delta x_j, x_{j+1} \dotsc, x_n) - f(x_1, x_2, \dotsc, x_{j-1}, x_j, x_{j+1} \dotsc, x_n) }{ \Delta x_j }

Вычисляется частная производная функции ff по координате xjx_j как обычная производная функции ff по xjx_j, при этом все переменные, кроме xjx_j, считаются константами, не зависящими от xjx_j.

Например, функция f(x,y)=x2y+y2f(x, y) = x^2 \cdot y + y^2:

fx=(x2y+y2)x=2xyиfy=(x2y+y2)y=x2+2y\frac{\partial f}{\partial x} = \Bigl( x^2 \cdot y + y^2 \Bigr)'_x = 2xy \quad\text{и}\quad \frac{\partial f}{\partial y} = \Bigl( x^2 \cdot y + y^2 \Bigr)'_y = x^2 + 2y

Производная по направлению

Рассмотрим функцию f ⁣:RnRf \colon \RR^n \to \RR. Выберем какое-то направление vRn\vec v \in \RR^n — вектор единичной длины, и посмотрим, как быстро функция ff изменяется по этому направлению в какой-то точке xx. Этот показатель называется производной ff по направлению v\vec v и обозначается f(x)/v\partial f(x) / \partial \vec v

fv(x)   ⁣=def   ⁣limt0f(x+tv)f(x)t\frac{\partial f}{\partial \vec v} (x) \defeq \lim\limits_{t \to 0} \frac{f(x + t \cdot \vec v) - f(x)}{t}

Из определения следует, что производная по направлению базисных векторов совпадает с частной производной по единичной координате базисного вектора. Формально,

fej(x)=fxj(x),где ej=(01,02,,0j1,1j,0j+1,,0n)T\frac{\partial f}{\partial \vec e_j} (x) = \frac{\partial f}{\partial x_j} (x), \quad\text{где}~ \vec e_j = \bigl( \underset{\weak{1}}{0}, \underset{\weak{2}}{0}, \dotsc, \underset{\weak{j-1}}{0}, \underset{\weak{j}}{1}, \underset{\weak{j+1}}{0}, \dotsc, \underset{\weak{n}}{0} \bigr)^\T

Производную по направлению v=v1e1+v2e2++vnen\vec v = v_1 \vec e_1 + v_2 \vec e_2 + \dotsb + v_n \vec e_n можно записать через частные производные

fv(x)=v1fe1(x)+v2fe2(x)++vnfen(x)=v1fx1(x)+v2fx2(x)++vnfxn(x)\frac{\partial f}{\partial \vec v} (x) = v_1 \cdot \frac{\partial f}{\partial \vec e_1} (x) + v_2 \cdot \frac{\partial f}{\partial \vec e_2} (x) + \dotsb + v_n \cdot \frac{\partial f}{\partial \vec e_n} (x) = v_1 \cdot \frac{\partial f}{\partial x_1} (x) + v_2 \cdot \frac{\partial f}{\partial x_2} (x) + \dotsb + v_n \cdot \frac{\partial f}{\partial x_n} (x)

Градиент

Для функции f ⁣:RnRf \colon \RR^n \to \RR градиентом в точке xx называется вектор, показывающий направление наискорейшего подъема из этой точки xx. Градиент — вектор, составленный из частных производных:

f(x)   ⁣=def   ⁣(fx1,fx2,,fxn)T\nabla f (x) \defeq \left( \frac{\partial f}{\partial x_1}, \frac{\partial f}{\partial x_2}, \cdots, \frac{\partial f}{\partial x_n} \right)^\T

Длина градиента f(x)\|\nabla f (x)\| показывает максимально возможную скорость изменения функции ff в точке xx.

Через градиент функции ff можно выразить производную по направлению v\vec v. А именно, разложив

fv(x)=f(x)Tv\frac{\partial f}{\partial \vec v} (x) = \nabla f (x) ^\T \cdot \vec v

Из равенства f(x)/v=f(x)Tv\partial f (x) / \partial \vec v = \nabla f (x) ^\T \cdot \vec v и свойств скалярного произведения получаем, что

fv(x)=f(x)vcosθ\frac{\partial f}{\partial \vec v} (x) = \| \nabla f (x) \| \cdot \| \vec v \| \cdot \cos \theta

Значение f(x)/v\partial f (x) / \partial \vec v максимально, когда cosθ=1\cos \theta = 1, то есть когда направление v\vec v совпадает с направлением градиента f(x)\nabla f (x). Значит, градиент f(x)\nabla f (x) действительно является направлением наискорейшего роста функции в точке xx.

Если cosθ=0\cos \theta = 0, то есть если vf(x)\vec v \perp \nabla f (x), скалярное произведение равно 00. Значит, функция ff не изменяется в направлении, перпендикулярном направлению градиента f(x)\nabla f (x). То есть градиент всегда перпендикулярен линиям уровня функции.

Теорема Ферма для функции многих переменных

У функции f ⁣:RnRf \colon \RR^n \to \RR точка xx является точкой экстремума тогда и только тогда, когда f(x)=0\nabla f (x) = \0.

Свойства градиента и производных

Операция взятия частной производной f/xj\partial f / \partial x_j, равно как и операция обычного дифференцирования d/dxd / dx, является линейным оператором:

xj(αf+βg)=αfxj+βgxj\frac{\partial}{\partial x_j} (\alpha f + \beta g) = \alpha \cdot \frac{\partial f}{\partial x_j} + \beta \cdot \frac{\partial g}{\partial x_j}

Применим это правило ко всем компонентам градиента, можно получить свойство линейности градиента:

(αf+βg)=αf+βg\nabla (\alpha f + \beta g) = \alpha \cdot \nabla f + \beta \cdot \nabla g

Для градиента существует аналог правила Лейбница (это про производную произведения):

(fg)=fg+fg\nabla (f \cdot g) = f \cdot \nabla g + \nabla f \cdot g

Работаем мы с функциями f ⁣:RnRf \colon \RR^n \to \RR, у которых domf=Rn\dom f = \RR^n и codomf=R\codom f = \RR, поэтому какого-то красивого цепного правила не получается придумать. Однако, можно привести следующий факт в качестве заменителя цепного правила

Для функций f ⁣:RnRf \colon \RR^n \to \RR и h ⁣:RRh \colon \RR \to \RR

(hf)(x)=h(f(x))f(x)\nabla \bigl( h \compose f \bigr) (x) = h' \bigl( f(x) \bigr) \cdot \nabla f (x)

Для функции f ⁣:RnRf \colon \RR^n \to \RR и любых 1i,jn1 \le i, j \le n

xixjf=xjxif\frac{\partial}{\partial x_i} \cdot \frac{\partial}{\partial x_j} \cdot f = \frac{\partial}{\partial x_j} \cdot \frac{\partial}{\partial x_i} \cdot f

То есть результат взятия нескольких частных производных не зависит от порядка дифференцирования. По этому производные высших порядков обозначаются просто 2f/xixj\partial^2 f / \partial x_i \partial x_j

Линеаризация

Попробуем приблизить функцию f ⁣:RnRf \colon \RR^n \to \RR гиперплоскостью в точке aRna \in \RR^n.

Линеаризация функции

Для функции f ⁣:RnRf \colon \RR^n \to \RR и любой точки aRna \in \RR^n

f(x)=f(a)+f(a)T(xa)+o(xa)f(x) = f(a) + \nabla f (a) ^\T \cdot (x-a) + o \bigl( \| x-a \| \bigr)

Возьмем какую-то точку xRnx \in \RR^n и вычислим производную по направлению (xa)/xa(x-a)/\|x-a\|.

f(a)T(xa)/xa=f(xa)/xa(a)=limt0f(a+(xa)/xat)f(x)t\nabla f (a) ^\T \cdot (x-a) / \| x-a \| = \frac{\partial f}{\partial (x-a) / \| x-a \|} (a) = \lim\limits_{t \to 0} \frac{f \bigl( a + (x - a) / \| x-a \| \cdot t \bigr) - f(x)}{t}

Применяем тот факт, что limx0f(x)=cf(x)=c+o(1)\lim\limits_{x \to 0} f(x) = c \Leftrightarrow f(x) = c + o(1) и подставляя t=xat = \|x-a\|

f(a+(xa)/xaxa)xa=f(a)T(xa)+o(1)\frac{f \bigl( a + (x-a) / \|x-a\| \cdot \|x-a\| \bigr)}{\|x-a\|} = \nabla f (a) ^\T \cdot (x-a) + o(1)

Умножив всё на xa\|x-a\| получим формулу линеаризации

f(x)=f(a)+f(a)T(xa)+o(xa)f(x) = f(a) + \nabla f (a) ^\T \cdot (x-a) + o \bigl( \| x-a \| \bigr)

Объявив xa=Δxx-a = \Delta x можно получить другой вид этой формулы, который часто используется в методах оптимизации и методах численного решения уравнений для записи шага итеративного процесса.

f(x+Δx)=f(x)+f(x)TΔx+o(Δx)f(x + \Delta x) = f(x) + \nabla f(x) ^\T \cdot \Delta x + o \bigl( \| \Delta x \| \bigr)

Многомерные функции

Посмотрим теперь на функции f ⁣:RnRmf \colon \RR^n \to \RR^m.

F(x)=F(x1,x2,,xn)=(F1(x1,x2,,xn)F2(x1,x2,,xn)Fm(x1,x2,,xn))F(x) = F(x_1, x_2, \dotsc, x_n) = \pmatrix{F_1 (x_1, x_2, \dotsc, x_n) \\ F_2 (x_1, x_2, \dotsc, x_n) \\ \vdots \\ F_m (x_1, x_2, \dotsc, x_n)}

Матрица Якоби и якобиан.

Матрица Якоби JF\J F для функции F ⁣:RnRmF \colon \RR^n \to \RR^m — матрица производных

JF(x)   ⁣=def   ⁣(F1,F2,,Fm)(x1,x2,,xn)   ⁣=def   ⁣(F1(x)F2(x)Fm(x))=(F1/x1F1/x2Fm/x3F1/xnF2/x1F2/x2Fm/x3F2/xnFm/x1Fm/x2Fm/x3Fm/xn)\J F (x) \defeq \frac{\partial (F_1, F_2, \dotsc, F_m)}{\partial (x_1, x_2, \dotsc, x_n)} \defeq \pmatrix{\nabla F_1 (x) \\ \nabla F_2 (x) \\ \vdots \\ \nabla F_m (x)} = \pmatrix{ \partial F_1 / \partial x_1 & \partial F_1 / \partial x_2 & \partial F_m / \partial x_3 & \cdots & \partial F_1 / \partial x_n \\ \partial F_2 / \partial x_1 & \partial F_2 / \partial x_2 & \partial F_m / \partial x_3 & \cdots & \partial F_2 / \partial x_n \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ \partial F_m / \partial x_1 & \partial F_m / \partial x_2 & \partial F_m / \partial x_3 & \cdots & \partial F_m / \partial x_n \\ }

F(x+Δx)=F(x)+JF(x)Δx+o(Δx)F(x + \Delta x) = F(x) + \J F (x) \cdot \Delta x + o \bigl( \| \Delta x \| \bigr)

Упражнения

    1

    Гиперповерхность SS задана уравнением F(x)=0F(x) = 0, где F ⁣:RnRF \colon \RR^n \to \RR — гладкая функция.

    В точке xRnx \in \RR^n, лежащей на SS, градиент F(x)0\nabla F (x) \neq \0. Покажите, что множество всех таких векторов v=(dx1,dx2,,dxn)Tv = (dx_1, dx_2, \dotsc, dx_n)^\T, что F(x)v=0\nabla F (x) \cdot v = 0 образует касательную гиперплоскость к SS в точке xx.

    2

    Рассмотрим преобразование координат Φ ⁣:[0,+)×[0,2π]R2\Phi \colon [0, +\oo) \times [0, 2\pi] \to \RR^2, заданное как (r,φ)(rcosφ,rsinφ)(r, \varphi) \mapsto (r \cos \varphi, r \sin \varphi). Это обычное преобразование из полярных координат в прямоугольные.

    Вычислите матрицу Якоби JΦ\jacobi \Phi этого преобразования. В каких точках это отображение является локально обратимым? Как обратимость связана с якобианом JΦ|\jacobi \Phi|?

    Покажите, что линеаризация отображения Φ\Phi в точке (r,φ)(r, \varphi) переводит маленький прямоугольник со сторонами Δr\Delta r и Δφ\Delta \varphi в сектор кольца. Используя свойства якобиана, докажите, что элемент площади преобразуется по формуле

    dxdy=JΦdrdφ=rdrdφdx \, dy = |\jacobi \Phi| \cdot dr \, d\varphi = r \, dr \, d\varphi

    Проведите аналогичные рассуждения для сферических координат.

    3

    В физическом эксперименте вы измеряете nn параметров x1,x2,,xnx_1, x_2, \dotsc, x_n, и по ним вычисляете какую-то величину f(x1,x2,,xn)f(x_1, x_2, \dotsc, x_n). Каждый из этих параметров вы измеряете с погрешностью, а именно параметр xjx_j вы измеряете с погрешностью Δxj\Delta x_j.

    Линеаризуя ff, выведите формулу вычисления абсолютной погрешности величины f(x1,x2,,xn)f(x_1, x_2, \dotsc, x_n),

    Примените полученную формулу. Например, вы попали на неизвестную планету, а на руках у вас только лёгкий стержень длины ll. Вам позарез нужно вычислить ускорение свободного падения. Превращая стержень в маятник, вы вычисляете ускорение по формуле g=4πl/T2g = 4 \pi l / T^2, где TT — период колебания маятника. Вычислите погрешность величины gg, если погрешность измерения длины маятника Δl\Delta l, и погрешность секундомера ΔT\Delta T.

    4

    Посмотрим на обычную задачу бинарной классификации с обучающей выборкой

    (xj,yj) при j{1,2,,n}xjRdyj{0,1}(x_j, y_j) ~\text{при}~ j \in \{1, 2, \dotsc, n\} \quad x_j \in \RR^d \quad y_j \in \{0, 1\}

    Используем логистическую регрессию с L2L_2-регуляризацией. Функция потерь

    f(w)=1nj=1n(yjlog(σ(wTxj))+(1yj)log(1σ(wTxj)))+λ2w2f(w) = - \frac{1}{n} \sum\limits_{j=1}^n \Bigl( y_j \cdot \log \bigl( \sigma (w^\T \cdot x_j) \bigr) + (1-y_j) \cdot \log \bigl( 1 - \sigma (w^\T \cdot x_j) \bigr) \Bigr) + \frac{\lambda}{2} \cdot \|w\|^2

    Здесь wRdw \in \RR^d — вектор весов, σ(t)=1/(1+et)\sigma(t) = 1/(1+e^{-t}) — сигмоида, λ>0\lambda > 0 — сила регуляризации.

    Найдите градиент f(w)\nabla f (w) и объясните, как регуляризация помогает бороться с переобучением.