![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
Gradienteen jaitsiera da machine learning-en (ML) modelizazioan optimizazio-teknikarik ezagunena. Algoritmoak aurreikusitako balioen eta oinarrizko egiaren arteko errorea minimizatzen du. Teknikak datu-puntu bakoitza akatsa ulertzeko eta minimizatzeko kontuan hartzen duenez, bere errendimendua prestakuntza-datuen tamainaren araberakoa da. Gradiente Estokastikoa Jaitsiera (SGD) bezalako teknikak kalkuluaren errendimendua hobetzeko diseinatuta daude, baina konbergentziaren zehaztasunaren kostuan.
Stochastic Average Gradient-ek ikuspegi klasikoa orekatzen du, Gradient Full Descent eta SGD izenez ezagutzen dena, eta bi abantailak eskaintzen ditu. Baina algoritmoa erabili aurretik, ereduaren optimizaziorako duen garrantzia ulertu behar dugu.
ML algoritmo bakoitzak erlazionatutako galera-funtzio bat dauka, ereduaren errendimendua gutxitzea edo hobetzea helburu duena. Matematikoki, galera honela defini daiteke:
Benetako eta aurreikusitako irteeraren arteko aldea besterik ez da, eta diferentzia hori minimizatzeak esan nahi du gure eredua oinarrizko egiaren balioetara hurbiltzen dela.
Minimizazio algoritmoak gradienteen jaitsiera erabiltzen du galera-funtzioa zeharkatzeko eta minimo globala aurkitzeko. Zeharkako urrats bakoitzak algoritmoaren pisuak eguneratzea dakar irteera optimizatzeko.
Gradienteen jaitsieraren algoritmo konbentzionalak datu multzo osoan kalkulatutako gradiente guztien batez bestekoa erabiltzen du. Prestakuntza-adibide bakar baten bizi-zikloa honelakoa da:
Pisuaren eguneratze-ekuazioak honako itxura du:
Non W
ereduaren pisuak adierazten dituen eta dJ/dW
galera-funtzioaren deribatua ereduaren pisuarekiko. Metodo konbentzionalak konbergentzia-tasa handia du, baina konputazionalki garestia bihurtzen da milioika datu-puntu dituzten datu multzo handiekin tratatzean.
SGD metodologiak GD arruntaren berdina izaten jarraitzen du, baina gradienteak kalkulatzeko datu-multzo osoa erabili beharrean, sarreren lote txiki bat erabiltzen du. Metodoa askoz eraginkorragoa da, baina baliteke gutxieneko globaletan gehiegi ibiltzea, iterazio bakoitzak datuen zati bat soilik erabiltzen baitu ikasteko.
Stochastic Average Gradient (SAG) ikuspegia GD eta SGD arteko erdibide gisa sartu zen. Ausazko datu-puntu bat hautatzen du eta bere balioa eguneratzen du puntu horretako gradientean eta datu-puntu jakin horretarako gordetako iraganeko gradienteen batez besteko haztatu batean oinarrituta.
SGD-ren antzera, SAGk problema bakoitza funtzio konbexo eta deribagarrien batura finitu gisa modelatzen du. Edozein iteraziotan, egungo gradienteak eta aurreko gradienteen batez bestekoa erabiltzen ditu pisua eguneratzeko. Ekuazioak forma hau hartzen du:
Bi algoritmo ezagunen artean, gradiente osoa (FG) eta gradiente estokastikoaren jaitsiera (SGD), FG algoritmoak konbergentzia-tasa hobea du, iterazio bakoitzean datu multzo osoa erabiltzen baitu kalkulurako.
SAG-ek SGD-ren antzeko egitura badu ere, bere konbergentzia-tasa gradiente osoko hurbilpenaren parekoa eta batzuetan hobea da. Beheko 1. taulan esperimentuen emaitzak laburbiltzen dira
Errendimendu harrigarria izan arren, hainbat aldaketa proposatu zaizkio jatorrizko SGD algoritmoari errendimendua hobetzen laguntzeko.
Gradientearen jaitsiera emandako funtzio objektiboen minimo globalak kokatzeko erabiltzen den optimizazio ezaguna da. Algoritmoak helburu-funtzioaren gradientea erabiltzen du funtzioaren malda zeharkatzeko punturik baxuenera iritsi arte.
Gradiente osoa (FG) eta Gradiente Estokastikoa (SGD) algoritmoaren bi aldaera ezagun dira. FG-k datu-multzo osoa erabiltzen du iterazio bakoitzean eta konbergentzia-tasa altua ematen du konputazio-kostu handiarekin. Iterazio bakoitzean, SGD-k datuen azpimultzo bat erabiltzen du algoritmoa exekutatzeko. Askoz eraginkorragoa da baina konbergentzia ziurgabekoa.
Batez besteko Gradiente Estokastikoa (SAG) aurreko bi algoritmoen onurak ematen dituen beste aldaera bat da. Iraganeko gradienteen batez bestekoa eta datu-multzoaren azpimultzo bat erabiltzen ditu konbergentzia-tasa altua konputazio baxuarekin emateko. Algoritmoa gehiago alda daiteke bere eraginkortasuna hobetzeko bektorializazioa eta mini-loteak erabiliz.