DerivLab jak rychle se to mění

Tohle je statická kopie kapitoly pro vyhledávače. Interaktivní verze má animované obrázky, kontrolní otázky a tlačítka, která příklad načtou do kalkulačky.

Parciální derivace a gradient

Funkce jedné proměnné má jednu derivaci. Funkce dvou proměnných — krajina — jich má tolik, kolik je směrů, kterými se dá jít. Naštěstí stačí dvě a zbytek se z nich složí.

∂f/∂x = derivace podle x, když se y drží pevněparciální derivace

Parciální derivace není nic nového: je to obyčejná derivace funkce jedné proměnné, která vznikne tím, že se ostatní zamrazí. Řez krajinou podél osy.

∇f = (∂f/∂x, ∂f/∂y)gradient — parciální derivace jako vektor

Gradient je vektor a ví, kudy nahoru

xy∇fx² + 2y²∇f(−1,600, 2,400)|∇f| = 2,884stoupání ve zvoleném směru−0,186nejvíc možné je |∇f|kolmo na ∇f je to 0— to je vrstevnice
stoupání −0,1856 z nejvýše 2,8844 — otoč směr přesně na gradient a dostaneš maximum; kolmo na něj nulu
Tečkovaná růžice ukazuje stoupání ve VŠECH směrech naráz. Nejširší je přesně podél gradientu, nulová kolmo na něj — a to je vrstevnice. Vyzkoušej si to na sedle a v údolí.

Stoupání ve zvoleném směru je skalární součin:

D_û f = ∇f · û = |∇f| · cos θsměrová derivace

A z toho plynou tři věty naráz, všechny z kapitoly 4 VectorLabu:

  • Největší stoupání je podél gradientu (cos = 1), a jeho hodnota je přesně |∇f|.
  • Kolmo na gradient je stoupání nulové — a to je definice vrstevnice. Gradient je tedy vždy kolmý na vrstevnici; není to náhoda ani konvence.
  • Nejrychlejší klesání je −∇f, a to je celý algoritmus nejstrmějšího spádu v OptiLabu.

Gradient není směrnice. Je to vektor, jeho jednotky jsou „změna f na jednotku délky“ a jeho velikost něco znamená. Když se změní jednotky jedné osy, gradient se otočí — a to je jeden z důvodů, proč se v optimalizaci proměnné škálují (viz podmíněnost v MatrixLabu).

Vzorce v této kapitole

∇f — gradient
∇f = (∂f/∂x, ∂f/∂y, …) [—] kap. 6
D_û f — směrová derivace
D_û f = ∇f · û [—] kap. 6