Gradienta nolaišanās
Atjaunināts vietnē November 15, 2024 3 minūtes lasīt

Ievads
Iedomājieties, ka mums ir funkcija $f(x)$ un mēs vēlētos atrast tās minimumu. ko tu darītu?
Vienkārši vai ne? Mums ir jāatrisina tikai šāds vienādojums:
$$f’(x) = 0$$
Lieta tāda, ka $f’$ formulas atrašana ne vienmēr ir vienkārša, jo tās mēdz būt ārkārtīgi sarežģītas, it īpaši dziļās mācībās, kur mēs nodarbojamies ar sarežģītām funkcijām. Tāpēc mums ir jāatrod cita metode, kas var nodrošināt mums minimālo funkciju bez nepieciešamības atrast atvasinājuma $f’$ formulu.
Veidosim kādu intuīciju
Pieņemsim, ka mums ir funkcija f ar atbilstošo grafiku:
Sāksim ar nejaušu punktu $x_{0}$. Mērķis ir pārvietot šo punktu un padarīt to tuvāk un tuvāk $x*$ tā, lai $f’($x*$) = 0$. Tātad problēmu var iedalīt divās daļās:
-
Kurā virzienā jāpārvieto punkts $x$ ? Pa kreisi vai pa labi?
-
Cik mums to vajadzētu pārvietot?
Virziens
Veidosim intuīciju, lai atbildētu uz pirmo jautājumu. Apskatiet šādu punktu:
Ņemiet vērā, ka:
-
ja punkts $x_{0}$ atrodas pa labi no optimālā punkta $x*$, tā pieskares līnija iet uz augšu.
-
ja punkts $x_{0}$ atrodas pa labi no optimālā punkta $x*$, tā pieskares līnija iet uz leju.
Līnijas virzienu nosaka tās slīpuma zīme:
-
Līnija iet uz augšu $\implies$, slīpums $a$ ir pozitīvs.
-
Līnija iet uz leju $\implies$, slīpums $a$ ir negatīvs.
Ņemiet vērā, ka: \
Funkcijas pieskares līnijas slīpums noteiktā punktā $x_{0}$ nav lielāks par atvasinājumu šajā punktā $f’(x_{0})$:
$$ tangent(x*{0}): g(x) = f’(x*{0}).(x-x*{0}) + f(x*{0}) $$
Tātad kā atbilde uz jautājumu “Kur mums vajadzētu pārvietot $x_{0}$?”:
-
$f’(x_{0}) < 0$ $\implies$ $x_{0}$ pa labi no $x*$ $\implies$ Mums ir jāpārvieto $x_{0}$ pa kreisi.
-
$f’(x_{0}) > 0$ $\implies$ $x_{0}$ pa kreisi no $x*$ $\implies$ Mums ir jāpārvieto $x_{0}$ pa labi.
Soļi
Tagad par otro jautājumu Cik daudz mums vajadzētu pārvietot $x_{0}$?
Apskatiet tālāk norādītos piemērus.
Mēs varam secināt, ka:
-
$x_{0}$ ir tuvu $x*$ => Pieskares slīpums ir mazs => $f’(x_{0})$ ir mazs.
-
$x_{0}$ ir tālu no $x*$ => Pieskares slīpums ir liels => $f’(x_{0})$ ir liels.
Atbildot uz abiem jautājumiem, mēs secinājām, ka tikai zināšanas par atvasinājumu punktā $x_{0}$ var sniegt mums lielu ieskatu par optimālā punkta $x_{0}$ virzienu un attālumu.
Gradienta nolaišanās
Gradienta nolaišanās ir iepriekšējo divu jautājumu atbilžu formulējums. Tas ir optimizācijas iteratīvs algoritms, kas tuvina funkcijas minimālo vērtību $x*$, sākot no nejauša sākuma punkta $x_{0}$. Algoritms ir norādīts šādi:
$$ x*{n+1} = x*{n} - lr \times \frac{\mathrm{d} f}{\mathrm{d} x_{n}} $$
kur:
-
$ \frac{\mathrm{d} f}{\mathrm{d} x*{n}} $ ir ne vairāk kā $f$ atvasinājums punktā $x*{n}$.
-
$lr$ ir pozitīva konstante, kas nosaka, cik lieli būs soļi.
Ņemiet vērā, ka:
-
$x_{n}$ atrodas pa labi no $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} > 0 $ => $ x_{n+ 1} = x_{n} — pozitīvs $ => $x_{n}$ pārvietojas pa kreisi.
-
$x_{n}$ atrodas pa kreisi no $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} < 0$ => $ x*{n +1} = x*{n} + pozitīvs $ => $x_{n}$ pārvietojas pa labi.
-
$x_{n}$ tuvu $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}}$ tuvu $0$ => neliels atjauninājums $x_{ n}$.
Viktorīna
-
Kad gradienta nolaišanās pārtrauc atkārtošanos:
-
Kad $x_{n}$ ir pietiekami mazs.
-
Ja $x_{n}$ ir tuvu $x_{0}$ .
-
Kad $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} = 0 $. XXX
- Kā mēs izvēlamies $x_{0}$:
-
Mēs to izvēlamies nejauši. XXX
-
Mēs to uzņemam $x_{n}$ apkaimē.
-
Tas ir atkarīgs no problēmas.
-
Kāpēc mums ir nepieciešama gradienta nolaišanās:
-
Tāpēc, ka datori nav pietiekami jaudīgi, lai aprēķinātu atvasinājumus.
-
Jo ir ārkārtīgi grūti atrast dziļās mācīšanās modeļu atvasinājumu formulas. XXX
-
Tā kā funkcijām ir vairāk nekā viens lokālais minimums.
* Apgūstiet Datu zinātni un mākslīgo intelektu ar Code Labs Academy! Pievienojieties mūsu tiešsaistes bootcamp — ir pieejamas elastīgas nepilna un pilnas slodzes iespējas.*