Pojačavanje i podmetanje: kako razviti rogor algoritam strojnog učenja

Strojno učenje i znanost o podacima zahtijevaju više od puštanja podataka u Python biblioteku i korištenja onoga što izađe

Pokretački / pakiranje / Jačanje

Strojno učenje i znanost o podacima zahtijevaju više od puštanja podataka u Python biblioteku i korištenja onoga što izađe.

Znanstvenici podataka moraju zapravo razumjeti podatke i procese koji stoje iza njih kako bi mogli implementirati uspješan sustav.

Jedna ključna metodologija za implementaciju je znati kada modelu može biti koristi od korištenja metoda za pokretanje sustava. To su ono što se naziva modelima ansambla. Neki primjeri modela ansambla su AdaBoost i Stohastic Gradient Boosting.

Zašto koristiti modele ansambla?

Oni mogu pomoći poboljšati točnost algoritma ili učiniti model robusnijim. Dva primjera toga su pojačavanje i punjenje. Pojačavanje i pakiranje su teme koje znanstvenici podataka i inženjeri strojnog učenja moraju znati, posebno ako planirate sudjelovati u razgovoru o znanosti o podacima / strojnom učenju.

U osnovi, ansamblsko učenje vrijedi za cjelovitu riječ. Osim što, umjesto da nekoliko ljudi koji pjevaju u različitim oktavama stvaraju jedan lijepi sklad (svaki glas popunjava prazninu drugog), učenje ansambla koristi stotine do tisuće modela istog algoritma koji zajedno rade kako bi pronašli ispravnu klasifikaciju.

Drugi način razmišljanja o ansamblovom učenju je fabula slijepih ljudi i slona. U ovom primjeru svaki slijepac osjeća drugačiji dio slona, ​​tako da se ne slažu u onome što osjećaju. Međutim, da su se okupili i raspravljali o tome, mogli bi shvatiti da gledaju različite dijelove iste stvari.

Korištenje tehnika poput pojačanja i pakiranja dovelo je do povećane robusnosti statističkih modela i smanjenja varijance.

Sada se postavlja pitanje, koja je razlika između svih tih različitih "B" riječi?

pokretački

Prvo razgovarajmo o vrlo važnom konceptu pokretanja programa. Mnogi znanstvenici s podacima to propuštaju i izravno objašnjavaju pojačavanje i punjenje. Ali obojica zahtijevaju dizanje sustava.

Slika 1. Povlačenje sustava

U strojnom učenju, metoda pokretanja se odnosi na slučajno uzorkovanje s zamjenom. Ovaj se uzorak naziva resample. To omogućuje modelu ili algoritmu da bolje razumiju različite pristranosti, varijance i značajke koje postoje u ponovnom uzorku. Uzimanje uzorka podataka omogućuje da ponovo uzorak sadrži različite karakteristike nego što bi mogao sadržavati u cjelini. To je prikazano na slici 1, gdje svaka populacija uzorka ima različite dijelove, a nijedan nije identičan. To bi tada utjecalo na ukupnu srednju vrijednost, standardno odstupanje i ostale opisne metrike skupa podataka. Zauzvrat, može razviti robusnije modele.

Izdvajanje taktova je izvrsno za skupove podataka male veličine koji mogu imati tendenciju prekomjernog preuzimanja. Zapravo smo to preporučili jednoj tvrtki koja je zabrinuta da su njihovi skupovi podataka daleko od "Big Data". Učitavanje podataka u ovom slučaju može biti rješenje, jer algoritmi koji koriste bootstrapping mogu biti robusniji i obraditi nove skupove podataka, ovisno o metodologija (poticanje ili punjenje).

Razlog korištenju metode za pokretanje je zato što može ispitati stabilnost otopine. Može povećati robusnost korištenjem više skupova uzoraka podataka i testiranjem više modela. Možda jedan skup podataka uzoraka ima veću sredinu od drugog ili drugačije standardno odstupanje. To bi moglo pokvariti model koji je bio podoban i nije testiran koristeći skupove podataka s različitim varijacijama.

Jedan od mnogih razloga što je pokretanje servisa postalo uobičajeno zbog povećanja računalne snage. To omogućava da se učini mnogo više permutacija s različitim resampolovima nego što je to inače moguće. Dizanje prtljažnika koristi se i za pakiranje i za polaganje, o čemu će biti govora u nastavku.

Pakiranje

Kovanje se zapravo odnosi na (Bootstrap Aggregators). Gotovo bilo koji članak ili post u kojem se koriste algoritmi vreća također će se pozivati ​​na Lea Breiman-a, koji je 1996. napisao rad pod nazivom "Pregrube prediktori".

Gdje Leo opisuje pakiranje kao:

"Pregrupa prediktori su metoda za generiranje više inačica prediktora i njihovom upotrebom za dobivanje agregiranog prediktora."

Kopanje pomaže u smanjenju odstupanja od modela koji su možda vrlo precizni, ali samo na podacima na kojima su osposobljeni. To je također poznato kao prekomjerno opremanje.

Prekomjerno uklapanje je kada funkcija previše dobro odgovara podacima. To je obično zato što je stvarna jednadžba previše složena da bi se svaka točka podataka i vanjski oblik uzela u obzir.

Slika 2. Prekomjerno opremanje

Drugi primjer algoritma koji se lako može preklapati je stablo odluka. Modeli koji su razvijeni pomoću stabala odlučivanja zahtijevaju vrlo jednostavnu heuristiku. Stabla odluka sastavljena su od skupa izjava "ako-drugo" izrađenih određenim redoslijedom. Dakle, ako se skup podataka promijeni u novi skup podataka koji bi mogao imati neku pristranost ili razliku umjesto temeljnih značajki u usporedbi s prethodnim setom, model neće biti toliko točan. To je zato što podaci također neće odgovarati modelu (što je ionako obrnuto).

Torba to zaobilazi stvarajući vlastitu varijancu među podacima uzorkovanjem i zamjenom podataka dok se testira više hipoteza (modela). Zauzvrat, to smanjuje buku korištenjem više uzoraka koji bi se najvjerojatnije sastojali od podataka s različitim atributima (medijan, prosjek itd.).

Nakon što je svaki model razvio hipotezu, modeli koriste glasovanje za razvrstavanje ili prosjek za regresiju. Ovdje igra „Agregiranje“ u „Bootstrap agregiranju“. Svaka hipoteza ima istu težinu kao i sve ostale. Kad kasnije razgovaramo o povećanju, ovo je jedno od mjesta na kojima se dvije metodologije razlikuju.

Slika 3 Torba

U osnovi, svi se ti modeli prikazuju u isto vrijeme, a glasanje o njima hipoteza je najtačnija.

To pomaže u smanjenju varijanci, tj. Smanjenju prekomjernog odijela.

Jačanje

Pojačavanje se odnosi na skup algoritama koji koriste ponderirane prosjeke kako bi slabe polaznike učinili jačim učenicima. Za razliku od pakiranja, koje je imalo svaki model da se pokreće nezavisno, a zatim prikupljaju izlaze na kraju bez preferiranja bilo kojeg modela, pojačavanje se odnosi samo na timski rad. Svaki model koji pokreće diktira na koji će se sljedeći model usredotočiti.

Pojačavanje također zahtijeva pokretanje sustava za pokretanje. Međutim, ovdje postoji i druga razlika. Za razliku od pakiranja, svako povećanje uzorka povećava težinu. To znači da će se neki uzorci izvoditi češće od drugih.

Zašto staviti utege na uzorke podataka?

Slika 4 Pojačavanje

Kada pokretanje pokreće svaki model, prati koji su uzorci podataka najuspješniji a koji nisu. Skupovi podataka s najviše pogrešno razvrstanih izlaza dobivaju veće težine. To se smatraju podacima koji su složeniji i zahtijevaju više iteracija za pravilno treniranje modela.

Tijekom stvarne faze klasifikacije također postoji razlika u načinu na koji pojačani tretiraju modele. Stope pogrešaka modela prate se tako što se bolji modeli imaju bolju težinu.

Na taj način, kada se dogodi „glasanje“, kao u pakiranju, modeli s boljim rezultatima imaju jači učinak na konačni rezultat.

Sažetak

Pojačavanje i pakiranje su sjajne tehnike za smanjenje varijance. Metode ansambla općenito nadmašuju pojedini model. Zbog toga su mnogi pobjednici Kagglea koristili metodologije ansambla. Jedna o kojoj se ovdje nije razgovaralo bilo je slaganje. (Za to je potreban vlastiti post.)

Međutim, oni neće popraviti svaki problem, i oni sami imaju svoje probleme. Postoje različiti razlozi zbog kojih biste koristili jedan nad drugim. Torba je izvrsna za smanjenje varijance kada je model prekomjeran. Međutim, pojačano je vjerojatnije da će biti bolji odabir dviju metoda. Pojačavanje je također mnogo vjerojatnije da će uzrokovati probleme s performansama. Također je izvrstan za smanjenje pristranosti u modelu donjeg rublja.

Tu dolaze iskustva i stručnost o temama! Može se lako skočiti na prvi model koji djeluje. Međutim, važno je analizirati algoritam i sve značajke koje je odabrao. Na primjer, ako stablo odluke postavlja posebne listove, postavlja se pitanje zašto! Ako ga ne možete podržati s drugim podatkovnim točkama i vizualima, to se vjerojatno ne bi trebalo implementirati.

Ne radi se samo o pokušaju AdaBoost ili Slučajne šume na raznim skupovima podataka. Konačni algoritam ovisi o dobivenim rezultatima i podršci.