Avots:
LineÄrÄ regresija ir viens no pamata algoritmiem daudzÄs ar datu analÄ«zi saistÄ«tÄs jomÄs. Iemesls tam ir acÄ«mredzams. Å is ir ļoti vienkÄrÅ”s un saprotams algoritms, kas ir veicinÄjis tÄ plaÅ”o izmantoÅ”anu daudzus desmitus, ja ne simtus gadu. Ideja ir tÄda, ka mÄs pieÅemam viena mainÄ«gÄ lineÄru atkarÄ«bu no citu mainÄ«go lielumu kopas un pÄc tam mÄÄ£inÄm atjaunot Å”o atkarÄ«bu.
Bet Å”is raksts nav par lineÄrÄs regresijas izmantoÅ”anu praktisku problÄmu risinÄÅ”anai. Å eit mÄs apsvÄrsim interesantas tÄs atkopÅ”anas sadalÄ«to algoritmu ievieÅ”anas iezÄ«mes, ar kurÄm mÄs saskÄrÄmies, rakstot maŔīnmÄcÄ«Å”anÄs moduli
Par ko mÄs runÄjam?
MÄs saskaramies ar uzdevumu atjaunot lineÄro atkarÄ«bu. KÄ ievaddati tiek dota it kÄ neatkarÄ«gu mainÄ«go vektoru kopa, no kuriem katrs ir saistÄ«ts ar noteiktu atkarÄ«gÄ mainÄ«gÄ lielumu. Å os datus var attÄlot divu matricu veidÄ:
Tagad, tÄ kÄ atkarÄ«ba ir pieÅemta un turklÄt lineÄra, mÄs rakstÄ«sim savu pieÅÄmumu matricu reizinÄjuma formÄ (lai vienkÄrÅ”otu ierakstu, Å”eit un zemÄk tiek pieÅemts, ka vienÄdojuma brÄ«vais termins ir paslÄpts aiz , un matricas pÄdÄjÄ kolonna satur vienÄ«bas):
IzklausÄs pÄc lineÄru vienÄdojumu sistÄmas, vai ne? Å Ä·iet, bet visdrÄ«zÄk Å”Ädai vienÄdojumu sistÄmai risinÄjumu nebÅ«s. Iemesls tam ir troksnis, kas ir gandrÄ«z visos reÄlos datos. VÄl viens iemesls var bÅ«t lineÄras atkarÄ«bas kÄ tÄdas neesamÄ«ba, ko var apkarot, ievieÅ”ot papildu mainÄ«gos, kas nelineÄri ir atkarÄ«gi no sÄkotnÄjiem. Apsveriet Å”Ädu piemÄru:
Avots:
Å is ir vienkÄrÅ”s lineÄrÄs regresijas piemÄrs, kas parÄda viena mainÄ«gÄ attiecÄ«bas (gar asi ) no cita mainÄ«gÄ (gar asi ). Lai Å”im piemÄram atbilstoÅ”Ä lineÄro vienÄdojumu sistÄmai bÅ«tu risinÄjums, visiem punktiem jÄatrodas tieÅ”i uz vienas taisnes. Bet tÄ nav taisnÄ«ba. Bet tie neatrodas uz vienas taisnes tieÅ”i trokÅ”Åa dÄļ (vai tÄpÄc, ka pieÅÄmums par lineÄru sakarÄ«bu bija kļūdains). TÄdÄjÄdi, lai atjaunotu lineÄru sakarÄ«bu no reÄliem datiem, parasti ir nepiecieÅ”ams ieviest vÄl vienu pieÅÄmumu: ievades datos ir troksnis un Å”is troksnis ir
MaksimÄlÄs varbÅ«tÄ«bas metode
TÄtad, mÄs pieÅÄmÄm nejauÅ”a, normÄli sadalÄ«ta trokÅ”Åa klÄtbÅ«tni. Ko darÄ«t Å”ÄdÄ situÄcijÄ? Å im gadÄ«jumam matemÄtikÄ ir un tiek plaÅ”i izmantots
MÄs atgriežamies pie lineÄras attiecÄ«bas atjaunoÅ”anas no datiem ar normÄlu troksni. Å emiet vÄrÄ, ka pieÅemtÄ lineÄrÄ sakarÄ«ba ir matemÄtiskÄ cerÄ«ba esoÅ”ais normÄlais sadalÄ«jums. TajÄ paÅ”Ä laikÄ varbÅ«tÄ«ba, ka iegÅ«st vienu vai otru vÄrtÄ«bu atkarÄ«bÄ no novÄrojamo elementu klÄtbÅ«tnes , sekojoÅ”i:
Ä»aujiet mums tagad aizstÄt Šø Mums nepiecieÅ”amie mainÄ«gie ir:
Atliek tikai atrast vektoru , pie kura Ŕī varbÅ«tÄ«ba ir maksimÄlÄ. Lai maksimizÄtu Å”Ädu funkciju, ir Ärti vispirms Åemt tÄs logaritmu (funkcijas logaritms sasniegs maksimumu tajÄ paÅ”Ä punktÄ, kur pati funkcija):
Tas savukÄrt nozÄ«mÄ Å”Ädas funkcijas samazinÄÅ”anu:
Starp citu, to sauc par metodi
QR sadalÄ«Å”anÄs
IepriekÅ” minÄtÄs funkcijas minimumu var atrast, atrodot punktu, kurÄ Å”Ä«s funkcijas gradients ir nulle. Un gradients tiks uzrakstÄ«ts Å”Ädi:
TÄtad mÄs sadalÄm matricu uz matricÄm Šø un veikt virkni transformÄciju (pats QR dekompozÄ«cijas algoritms Å”eit netiks Åemts vÄrÄ, tikai tÄ izmantoÅ”ana saistÄ«bÄ ar konkrÄto uzdevumu):
Matrica ir ortogonÄls. Tas ļauj mums atbrÄ«voties no darba :
Un, ja jÅ«s nomainÄt par , tad izdosies . Å emot vÄrÄ, ka ir augÅ”ÄjÄ trÄ«sstÅ«rveida matrica, tÄ izskatÄs Å”Ädi:
To var atrisinÄt, izmantojot aizstÄÅ”anas metodi. Elements atrodas kÄ , iepriekÅ”Äjais elements atrodas kÄ un tÄ tÄlÄk.
Å eit ir vÄrts atzÄ«mÄt, ka iegÅ«tÄ algoritma sarežģītÄ«ba QR dekompozÄ«cijas izmantoÅ”anas dÄļ ir vienÄda ar . TurklÄt, neskatoties uz to, ka matricas reizinÄÅ”anas darbÄ«ba ir labi paralÄla, nav iespÄjams uzrakstÄ«t efektÄ«vu Ŕī algoritma sadalÄ«to versiju.
Gradienta nolaiÅ”anÄs
RunÄjot par funkcijas minimizÄÅ”anu, vienmÄr ir vÄrts atcerÄties (stohastiskÄ) gradienta nolaiÅ”anÄs metodi. Å Ä« ir vienkÄrÅ”a un efektÄ«va minimizÄÅ”anas metode, kuras pamatÄ ir funkcijas gradienta iteratÄ«va aprÄÄ·inÄÅ”ana punktÄ un pÄc tam novirzÄ«Å”ana virzienÄ, kas ir pretÄjs gradientam. Katrs Å”Äds solis tuvina risinÄjumu minimumam. Gradients joprojÄm izskatÄs tÄds pats:
Å Ä« metode ir arÄ« labi paralÄla un sadalÄ«ta gradienta operatora lineÄro Ä«paŔību dÄļ. Å emiet vÄrÄ, ka iepriekÅ” minÄtajÄ formulÄ zem summas zÄ«mes ir neatkarÄ«gi termini. Citiem vÄrdiem sakot, mÄs varam neatkarÄ«gi aprÄÄ·inÄt gradientu visiem indeksiem no pirmÄ lÄ«dz , paralÄli tam aprÄÄ·ina gradientu indeksiem ar lÄ«dz . PÄc tam pievienojiet iegÅ«tos gradientus. SaskaitÄ«Å”anas rezultÄts bÅ«s tÄds pats kÄ tad, ja mÄs uzreiz aprÄÄ·inÄtu indeksu gradientu no pirmÄ lÄ«dz . TÄdÄjÄdi, ja dati ir sadalÄ«ti starp vairÄkÄm datu vienÄ«bÄm, gradientu var aprÄÄ·inÄt neatkarÄ«gi no katras daļas, un pÄc tam Å”o aprÄÄ·inu rezultÄtus var summÄt, lai iegÅ«tu gala rezultÄtu:
No īstenoŔanas viedokļa tas atbilst paradigmai
Neskatoties uz ievieÅ”anas vieglumu un spÄju izpildÄ«t MapReduce paradigmÄ, gradienta nolaiÅ”anai ir arÄ« savi trÅ«kumi. Jo Ä«paÅ”i konverÄ£ences sasniegÅ”anai nepiecieÅ”amo darbÄ«bu skaits ir ievÄrojami lielÄks salÄ«dzinÄjumÄ ar citÄm specializÄtÄkÄm metodÄm.
LSQR
LSQR metode ir balstīta uz
Bet, ja pieÅemam, ka matrica ir horizontÄli sadalÄ«ts, tad katru iterÄciju var attÄlot kÄ divus MapReduce soļus. TÄdÄ veidÄ ir iespÄjams minimizÄt datu pÄrsÅ«tÄ«Å”anu katras iterÄcijas laikÄ (tikai vektori, kuru garums ir vienÄds ar nezinÄmo skaitu):
Å Ä« pieeja tiek izmantota, ievieÅ”ot lineÄro regresiju
SecinÄjums
Ir daudz lineÄrÄs regresijas atkopÅ”anas algoritmu, taÄu ne visus no tiem var izmantot visos apstÄkļos. TÄtad QR dekompozÄ«cija ir lieliska precÄ«zam risinÄjumam mazÄs datu kopÄs. Gradienta nolaiÅ”anÄs ir vienkÄrÅ”i Ä«stenojama un ļauj Ätri atrast aptuvenu risinÄjumu. Un LSQR apvieno abu iepriekÅ”Äjo algoritmu labÄkÄs Ä«paŔības, jo to var izplatÄ«t, saplÅ«st ÄtrÄk, salÄ«dzinot ar gradienta nolaiÅ”anos, kÄ arÄ« ļauj agrÄ«ni apturÄt algoritmu, atŔķirÄ«bÄ no QR dekompozÄ«cijas, lai atrastu aptuvenu risinÄjumu.
Avots: www.habr.com