Panimula
Isipin na mayroon kaming function na at gusto naming mahanap ang minimum nito. Ano ang gagawin mo?
Simple diba? Kailangan lang nating lutasin ang sumusunod na equation:
Ang bagay ay ang paghahanap ng formula ng 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 .
Bumuo tayo ng ilang intuwisyon
Ipagpalagay natin na mayroon tayong function f na may kaukulang graph:
Magsimula tayo sa isang random na puntong . Ang layunin ay ilipat ang puntong ito at gawin itong mas malapit at mas malapit sa na x*. Kaya't ang problema ay maaaring nahahati sa dalawang bahagi:
-
Saang direksyon dapat nating ilipat ang punto ? 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:
Tandaan na:
-
kapag ang puntong ay nasa kanan ng pinakamainam na puntong ang tangent line nito ay tumataas.
-
kapag ang puntong ay nasa kanan ng pinakamainam na puntong bumababa ang tangent line nito.
Ang direksyon ng isang linya ay tinutukoy ng tanda ng slope nito:
-
Tumataas ang isang linya ang slope ay positibo.
-
Bumababa ang isang linya ang slope ay negatibo.
Tandaan na: \
Ang slope ng tangent line ng isang function sa isang partikular na puntong ay hindi hihigit sa derivative sa puntong iyon :
Kaya bilang sagot sa tanong "Saan natin dapat ilipat ang ?":
-
sa kanan ng Kailangan nating ilipat ang sa kaliwa.
-
sa kaliwa ng Kailangan nating ilipat ang sa kanan.
Ang mga hakbang
Ngayon para sa pangalawang tanong, Magkano ang dapat nating ilipat ?
Tingnan ang mga sumusunod na halimbawa:
Maaari nating tapusin na:
-
ay malapit sa => Ang slope ng tangent ay maliit => ay maliit.
-
ay malayo sa => Ang slope ng tangent ay malaki => ay malaki.
Sa pamamagitan ng pagsagot sa parehong tanong, napagpasyahan namin na ang kaalaman lamang sa derivative sa puntong ang makapagbibigay sa amin ng maraming insight tungkol sa direksyon at ang distansya ng pinakamainam na puntong .
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 ng function na nagsisimula sa random na paunang punto na . Ang algorithm ay nakasaad bilang sumusunod:
saan:
-
Ang ay hindi hihigit sa derivative ng sa puntong .
-
Ang ay isang positibong pare-pareho na tumutukoy kung gaano kalaki ang magiging mga hakbang.
Pansinin na:
-
Ang ay nasa kanan ng => => => gumagalaw sa kaliwa.
-
Ang ay nasa kaliwa ng => => => gumagalaw sa kanan.
-
malapit sa => malapit sa => Maliit na update sa .
Pagsusulit
-
Kailan huminto sa pag-ulit ang gradient descent:
-
Kapag ang ay sapat na maliit.
-
Kapag ang ay malapit na sa .
-
Kapag ang . XXX
-
Paano namin pipiliin ang :
-
Pinipili namin ito nang random. XXX
-
Dalhin namin ito sa paligid ng .
-
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.