Gradient Descent

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

Panimula

Isipin na mayroon kaming function na f(x)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)=0f'(x) = 0

Ang bagay ay ang paghahanap ng formula ng ff' ay hindi palaging 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 ff'.

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 x0x_{0}. Ang layunin ay ilipat ang puntong ito at gawin itong mas malapit at mas malapit sa xx* na f(f'(x*)=0) = 0. Kaya't ang problema ay maaaring nahahati sa dalawang bahagi:

  • Saang direksyon dapat nating ilipat ang punto xx ? 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 x0x_{0} ay nasa kanan ng pinakamainam na puntong xx* ang tangent line nito ay tumataas.

  • kapag ang puntong x0x_{0} ay nasa kanan ng pinakamainam na puntong xx* bumababa ang tangent line nito.

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

  • Tumataas ang isang linya     \implies ang slope aa ay positibo.

  • Bumababa ang isang linya     \implies ang slope aa ay negatibo.

Tandaan na: \

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

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

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

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

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

Ang mga hakbang

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

Tingnan ang mga sumusunod na halimbawa:

Graph 4

Graph 5

Maaari nating tapusin na:

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

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

Sa pamamagitan ng pagsagot sa parehong tanong, napagpasyahan namin na ang kaalaman lamang sa derivative sa puntong x0x_{0} ang makapagbibigay sa amin ng maraming insight tungkol sa direksyon at ang distansya ng pinakamainam na puntong x0x_{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 xx* ng function na nagsisimula sa random na paunang punto na x0x_{0}. Ang algorithm ay nakasaad bilang sumusunod:

xn+1=xnlr×dfdx_nx*{n+1} = x*{n} - lr \times \frac{\mathrm{d} f}{\mathrm{d} x\_{n}}

saan:

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

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

Pansinin na:

  • Ang xnx_{n} ay nasa kanan ng xx* => dfdxn>0\frac{\mathrm{d} f}{\mathrm{d} x_{n}} > 0 => xn+1=xnpositivex_{n+ 1} = x_{n} - positive => xnx_{n} gumagalaw sa kaliwa.

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

  • xnx_{n} malapit sa xx* => dfdxn\frac{\mathrm{d} f}{\mathrm{d} x_{n}} malapit sa 00 => Maliit na update sa xnx_{ n}.

Pagsusulit

  • Kailan huminto sa pag-ulit ang gradient descent:

  • Kapag ang xnx_{n} ay sapat na maliit.

  • Kapag ang xnx_{n} ay malapit na sa x0x_{0} .

  • Kapag ang dfdx_n=0\frac{\mathrm{d} f}{\mathrm{d} x\_{n}} = 0 . XXX

  • Paano namin pipiliin ang x0x_{0}:

  • Pinipili namin ito nang random. XXX

  • Dalhin namin ito sa paligid ng xnx_{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.


Master Data Science at AI kasama ang Code Labs Academy! Sumali sa Aming Online Bootcamp – Flexible na Part-Time at Full-Time na Mga Opsyon na Available.


Career Services background pattern

Mga Serbisyo sa Karera

Contact Section background image

Manatiling nakikipag-ugnayan tayo

Code Labs Academy © 2025 Lahat ng karapatan ay nakalaan.