Градиент ∇f: направление наискорейшего роста

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

Градиент $\nabla f = \left(\dfrac{\partial f}{\partial x}, \dfrac{\partial f}{\partial y}, \dfrac{\partial f}{\partial z}\right)$ — вектор, указывающий направление наибыстрейшего роста функции.

Оператор набла

Символ $\nabla$ («набла») — это «вектор частных производных»:

$$\nabla = \left(\frac{\partial}{\partial x},\, \frac{\partial}{\partial y},\, \frac{\partial}{\partial z}\right)$$

Применённый к скалярной функции, он даёт вектор. Два ключевых свойства:

  • Направление $\nabla f$ — туда, где $f$ растёт быстрее всего.
  • Длина $|\nabla f|$ — скорость этого наибыстрейшего роста.

И ещё одно: градиент всегда перпендикулярен линии (поверхности) уровня. Логично — вдоль изолинии функция не меняется, значит рост идёт поперёк неё.

Считаем градиент численно

import math

def f(x, y):
    return x*x + 3*y*y

def grad(f, x, y, h=1e-6):
    gx = (f(x+h, y) - f(x-h, y)) / (2*h)
    gy = (f(x, y+h) - f(x, y-h)) / (2*h)
    return (gx, gy)

p = (1.0, 1.0)
g = grad(f, *p)
print("grad f в (1,1) =", tuple(round(c, 4) for c in g))
print("Длина |grad f| =", round(math.hypot(*g), 4))
print("Точно: (2x, 6y) =", (2*p[0], 6*p[1]))

Вывод:

grad f в (1,1) = (2.0, 6.0)
Длина |grad f| = 6.3246
Точно: (2x, 6y) = (2, 6)

Как работает под капотом

Градиентный спуск — рабочая лошадка машинного обучения — двигается против градиента ($-\nabla f$), потому что это направление наибыстрейшего убывания. Шаг $x_{k+1} = x_k - \eta\,\nabla f(x_k)$ постепенно скатывается в минимум, как капля по склону. Перпендикулярность линиям уровня гарантирует, что мы всегда идём «вниз по склону», а не вдоль горизонтали.

Частые ошибки

  • Считать градиент скаляром. Это вектор.
  • Думать, что $\nabla f$ направлен вдоль линии уровня — наоборот, поперёк.
  • Путать направление роста ($+\nabla f$) и убывания ($-\nabla f$) при спуске.

Итог

  • $\nabla f$ — вектор частных производных, направлен в сторону роста.
  • $|\nabla f|$ — скорость наибыстрейшего роста.
  • Градиент перпендикулярен линиям уровня; спуск идёт против него.
Проверьте себя
1. Куда направлен градиент функции?
AВдоль линии уровня
BВ сторону наибыстрейшего убывания
CВ сторону наибыстрейшего роста
DК началу координат
2. Как градиент расположен относительно линии уровня?
AПараллельно
BПерпендикулярно
CПод углом 45°
DНе связан с ней
3. В каком направлении движется градиентный спуск?
AПо +∇f
BПо −∇f
CПерпендикулярно ∇f
DСлучайно