Gradient Descent

malalim na pag-aaral
matematika
gradient descent
Gradient Descent cover image

Panimula

Isipin na mayroon kaming function na $f(x)$ at gusto naming mahanap ang minimum nito. Ano ang gagawin mo?

Simple diba? Kailangan lang nating lutasin ang sumusunod na equation:

$$f'(x) = 0$$

Ang bagay ay ang paghahanap ng formula ng $f'$ ay hindi laging madali dahil sila ay may posibilidad na maging lubhang kumplikado lalo na sa malalim na pag-aaral kung saan nakikitungo tayo sa mga kumplikadong function. Kaya kailangan nating maghanap ng isa pang paraan na makapagbibigay sa atin ng pinakamababa ng isang function nang hindi nangangailangan ng paghahanap ng formula ng derivative na $f'$.

Bumuo tayo ng ilang intuwisyon

Ipagpalagay natin na mayroon tayong function f na may kaukulang graph:

Graph 1

Magsimula tayo sa isang random na puntong $x_{0}$. Ang layunin ay ilipat ang puntong ito at gawin itong mas malapit at mas malapit sa $x*$ na $f'($x*$) = 0$. Kaya't ang problema ay maaaring nahahati sa dalawang bahagi:

  • Saang direksyon dapat nating ilipat ang punto $x$ ? Kaliwa o Kanan?

  • Magkano ang dapat nating ilipat?

Ang direksyon

Bumuo tayo ng ilang intuwisyon upang masagot ang unang tanong. Tingnan ang sumusunod na punto:

Graph 2

Graph 3

Tandaan na:

  • kapag ang puntong $x_{0}$ ay nasa kanan ng pinakamainam na puntong $x*$ ang tangent line nito ay tumataas.

  • kapag ang puntong $x_{0}$ ay nasa kanan ng pinakamainam na puntong $x*$ bumababa ang tangent line nito.

Ang direksyon ng isang linya ay tinutukoy ng tanda ng slope nito:

  • Pataas ang isang linya $\implies$ ang slope $a$ ay positibo.

  • Bumababa ang isang linya $\implies$ ang slope $a$ ay negatibo.

Tandaan na: \

Ang slope ng tangent line ng isang function sa isang partikular na puntong $x_{0}$ ay hindi hihigit sa derivative sa puntong iyon $f'(x_{0})$:

$$ tangent(x*{0}): g(x) = f'(x*{0}).(x-x*{0}) + f(x*{0}) $$

Kaya bilang sagot sa tanong "Saan natin dapat ilipat ang $x_{0}$ ?":

  • $f'(x_{0}) < 0$ $\implies$ $x_{0}$ sa kanan ng $x*$ $\implies$ Kailangan nating ilipat ang $x_{0}$ sa kaliwa.

  • $f'(x_{0}) > 0$ $\implies$ $x_{0}$ sa kaliwa ng $x*$ $\implies$ Kailangan nating ilipat ang $x_{0}$ sa kanan.

Ang mga hakbang

Ngayon para sa pangalawang tanong, Magkano ang dapat nating ilipat $x_{0}$ ?

Tingnan ang mga sumusunod na halimbawa:

Graph 4

Graph 5

Maaari nating tapusin na:

  • $x_{0}$ ay malapit sa $x*$ => Ang slope ng tangent ay maliit => $f'(x_{0})$ ay maliit.

  • $x_{0}$ ay malayo sa $x*$ => Ang slope ng tangent ay malaki => $f'(x_{0})$ ay malaki.

Sa pamamagitan ng pagsagot sa parehong tanong, napagpasyahan namin na ang kaalaman lamang sa derivative sa puntong $x_{0}$ ang makapagbibigay sa amin ng maraming insight tungkol sa direksyon at ang distansya ng pinakamainam na puntong $x_{0}$.

gradient descent

Ang gradient descent ay ang pagbabalangkas ng mga sagot ng naunang dalawang tanong. Isa itong optimization iterative algorithm na tinatantya ang minimum na $x*$ ng function na nagsisimula sa random na paunang punto na $x_{0}$. Ang algorithm ay nakasaad bilang sumusunod:

$$ x*{n+1} = x*{n} - lr \times \frac{\mathrm{d} f}{\mathrm{d} x_{n}} $$

saan:

  • Ang $ \frac{\mathrm{d} f}{\mathrm{d} x*{n}} $ ay hindi hihigit sa derivative ng $f$ sa puntong $x*{n}$.

  • Ang $lr$ ay isang positibong pare-pareho na tumutukoy kung gaano kalaki ang magiging mga hakbang.

Pansinin na:

  • Ang $x_{n}$ ay nasa kanan ng $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} > 0 $ => $ x_{n+ 1} = x_{n} - positive $ => $x_{n}$ gumagalaw sa kaliwa.

  • Ang $x_{n}$ ay nasa kaliwa ng $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} < 0$ => $ x*{n +1} = x*{n} + positive $ => $x_{n}$ gumagalaw sa kanan.

  • $x_{n}$ malapit sa $x*$ => $\frac{\mathrm{d} f}{\mathrm{d} x_{n}}$ malapit sa $0$ => Maliit na update sa $x_{ n}$.

Pagsusulit

  • Kailan huminto sa pag-ulit ang gradient descent:

  • Kapag ang $x_{n}$ ay sapat na maliit.

  • Kapag ang $x_{n}$ ay malapit na sa $x_{0}$ .

  • Kapag ang $\frac{\mathrm{d} f}{\mathrm{d} x_{n}} = 0 $. XXX

  • Paano namin pipiliin ang $x_{0}$:

  • Pinipili namin ito nang random. XXX

  • Dalhin namin ito sa paligid ng $x{n}$.

  • Depende sa problema.

  • Bakit kailangan natin ng gradient descent:

  • Dahil ang mga computer ay hindi sapat na makapangyarihan upang makalkula ang mga derivatives.

  • Dahil napakahirap hanapin ang mga derivatives na formula ng deep learning models. XXX

  • Dahil ang mga function ay may higit sa isang lokal na minimum.


Career Services background pattern

Mga Serbisyo sa Karera

Contact Section background image

Manatiling nakikipag-ugnayan tayo

Code Labs Academy © 2024 Lahat ng karapatan ay nakalaan.