Koneoppiminen on yksi suosituimmista teknologioista ennustavien mallien rakentamiseen erilaisiin monimutkaisiin regressio- ja luokitustehtäviin. Gradientin tehostuskone (GBM) pidetään yhtenä tehokkaimmista tehostamisalgoritmeista.
Vaikka koneoppimisessa käytetään niin monia algoritmeja, algoritmien tehostamisesta on tullut valtavirtaa koneoppimisyhteisössä kaikkialla maailmassa. Tehostustekniikka noudattaa kokonaisoppimisen käsitettä, ja siksi se yhdistää useita yksinkertaisia malleja (heikkoja oppijoita tai perusestimaattoreita) lopullisen tuloksen luomiseksi. GBM:ää käytetään myös koneoppimisessa kokonaisuutena, joka muuntaa heikot oppijat vahvoiksi oppijoiksi. Tässä aiheessa 'GBM koneoppimisessa' käsittelemme gradienttikoneoppimisalgoritmeja, erilaisia tehostusalgoritmeja koneoppimisessa, GBM:n historiaa, sen toimintaa, erilaisia GBM:ssä käytettyjä terminologioita jne. Mutta ennen kuin aloitat, ymmärrä ensin koneoppimisen tehostamiskonsepti ja erilaiset tehostusalgoritmit.
Mitä on tehostaminen koneoppimisessa?
Boosting on yksi suosituista oppimiskokonaisuusmallinnustekniikoista, joita käytetään vahvojen luokittimien rakentamiseen erilaisista heikoista luokittelijoista. Se alkaa rakentamalla ensisijainen malli käytettävissä olevista harjoitustietosarjoista ja sitten se tunnistaa perusmallissa olevat virheet. Virheen tunnistamisen jälkeen rakennetaan toissijainen malli ja lisäksi tässä prosessissa otetaan käyttöön kolmas malli. Tällä tavalla tätä mallien lisäämisprosessia jatketaan, kunnes saamme täydellisen harjoitustietojoukon, jonka mukaan malli ennustaa oikein.
arraylist lajiteltu java
AdaBoost (Adaptive boosting) oli koneoppimisen historian ensimmäinen tehostusalgoritmi, joka yhdisti erilaisia heikkoja luokituksia yhdeksi vahvaksi luokittelijaksi. Se keskittyy ensisijaisesti luokittelutehtävien, kuten binääriluokituksen, ratkaisemiseen.
Algoritmien tehostamisen vaiheet:
Algoritmin tehostamisessa on muutama tärkeä vaihe seuraavasti:
- Harkitse tietojoukkoa, jossa on eri tietopisteitä, ja alusta se.
- Anna nyt jokaiselle datapisteelle sama paino.
- Oletetaan tämä paino mallin syötteeksi.
- Tunnista tietopisteet, jotka on luokiteltu väärin.
- Lisää datapisteiden painoa vaiheessa 4.
- Jos saat sopivan tulosteen, lopeta tämä prosessi muussa tapauksessa noudata vaiheita 2 ja 3 uudelleen.
Esimerkki:
Oletetaan, että meillä on kolme eri mallia ennusteineen ja ne toimivat täysin eri tavoilla. Esimerkiksi lineaarinen regressiomalli näyttää lineaarisen suhteen tiedoissa, kun taas päätöspuumalli yrittää kaapata datan epälineaarisuuden alla olevan kuvan mukaisesti.
Lisäksi sen sijaan, että käyttäisimme näitä malleja erikseen lopputuloksen ennustamiseen, jos käytämme niitä sarjan tai yhdistelmän muodossa, saadaan tuloksena malli, jossa on oikeat tiedot kuin kaikissa perusmalleissa. Toisin sanoen, sen sijaan, että käyttäisimme kunkin mallin yksittäistä ennustetta, jos käytämme näiden mallien keskimääräistä ennustetta, pystyisimme keräämään enemmän tietoa tiedoista. Sitä kutsutaan ensemble-oppimiseksi ja tehostaminen perustuu myös koneoppimisen ensemble-menetelmiin.
Koneoppimisen algoritmien tehostaminen
Koneoppimisessa on pääasiassa neljä tehostavaa algoritmia. Nämä ovat seuraavat:
Mitä GBM on koneoppimisessa?
Gradient Boosting Machine (GBM) on yksi suosituimmista eteenpäin oppimiskokonaisuusmenetelmistä koneoppimisessa. Se on tehokas tekniikka ennustavien mallien rakentamiseen regressio- ja luokitustehtäviä varten.
GBM auttaa meitä saamaan ennustavan mallin heikkojen ennustemallien, kuten päätöspuiden, joukon muodossa. Aina kun päätöspuu toimii heikkona oppijana, tuloksena olevaa algoritmia kutsutaan gradienttitehostetuiksi puiksi.
Sen avulla voimme yhdistää eri oppijamallien ennusteita ja rakentaa lopullisen ennustusmallin, jossa on oikea ennuste.
Mutta tässä saattaa herätä yksi kysymys, jos käytämme samaa algoritmia, kuinka useat päätöspuut voivat antaa parempia ennusteita kuin yksittäinen päätöspuu? Lisäksi, kuinka kukin päätöspuu kaappaa eri informaatiota samasta tiedosta?
min max
Joten vastaus näihin kysymyksiin on, että kunkin päätöspuun solmut ottavat eri osajoukon ominaisuuksia valitakseen parhaan jaon. Se tarkoittaa, että jokainen puu käyttäytyy eri tavalla ja sieppaa siten erilaisia signaaleja samasta tiedosta.
lajitella arraylist java
Miten GBM toimii?
Yleensä useimmat valvotut oppimisalgoritmit perustuvat yhteen ennustavaan malliin, kuten lineaariseen regressioon, rangaisttuun regressiomalliin, päätöspuihin jne. Mutta ML:ssä on joitain valvottuja algoritmeja, jotka riippuvat useiden mallien yhdistelmästä yhdessä kokonaisuuden kautta. Toisin sanoen, kun useat perusmallit lisäävät ennusteitaan, kaikkien ennusteiden keskiarvo mukautetaan tehostusalgoritmeilla.
Gradienttitehostuskoneet koostuvat 3 elementistä seuraavasti:
- Häviötoiminto
- Heikot oppijat
- Additiivinen malli
Ymmärrämme nämä kolme elementtiä yksityiskohtaisesti.
1. Häviötoiminto:
Koneoppimisessa on kuitenkin suuri perhe Loss-funktioita, joita voidaan käyttää ratkaistavien tehtävien tyypistä riippuen. Häviöfunktion käyttö arvioidaan ehdollisen jakauman erityisominaisuuksien, kuten robustisuuden, vaatimuksen perusteella. Kun käytämme tehtävässämme häviöfunktiota, meidän on määritettävä häviöfunktio ja funktio vastaavan negatiivisen gradientin laskemiseksi. Kun saamme nämä kaksi toimintoa, ne voidaan helposti toteuttaa gradienttia tehostaviin koneisiin. GBM-algoritmeille on kuitenkin jo ehdotettu useita häviöfunktioita.
Häviöfunktion luokitus:
Vastemuuttujan y tyypin perusteella häviöfunktio voidaan luokitella eri tyyppeihin seuraavasti:
- Gaussin L2-häviöfunktio
- Laplace L1 -häviöfunktio
- Huber-häviöfunktio, δ määritetty
- Kvantiilihäviöfunktio, α määritetty
- Binomiaalinen häviöfunktio
- Adaboos-häviötoiminto
- Häviöfunktiot selviytymismalleille
- Häviöfunktiot laskevat tietoja
- Mukautetut menetystoiminnot
2. Heikko oppija:
Heikot oppijat ovat perusoppijamalleja, jotka oppivat menneistä virheistä ja auttavat rakentamaan vahvan ennustavan mallin suunnittelun tehostamiseksi koneoppimisen algoritmeja. Yleensä päätöspuut toimivat heikkoina oppijoina algoritmien tehostamisessa.
Tehostaminen määritellään kehykseksi, joka pyrkii jatkuvasti parantamaan perusmallien tuotosta. Monet gradienttia tehostavat sovellukset antavat sinun 'liittää' eri luokkiin heikkoja oppijoita käytettävissäsi. Siksi päätöspuita käytetään useimmiten heikoille (perus)oppijoille.
kutsua js-funktiota html:stä
Näin koulutat heikkoja oppijoita:
Koneoppiminen käyttää koulutustietojoukkoja perusoppijoiden kouluttamiseen ja edellisen oppijan ennusteen perusteella parantaa suorituskykyä keskittymällä niihin harjoitustietojen riveihin, joissa edellisessä puussa oli suurimmat virheet tai jäännösarvot. Esim. matalia puita pidetään heikkoina päätöspuina, koska se sisältää muutamia halkeamia. Yleensä tehostusalgoritmeissa puut, joissa on enintään 6 jakoa, ovat yleisimpiä.
Alla on sarja, jossa heikon oppijan koulutetaan parantamaan suorituskykyään, jossa jokainen puu on järjestyksessä edellisen puun jäännösten kanssa. Lisäksi esittelemme jokaisen uuden puun, jotta se voi oppia edellisen puun virheistä. Nämä ovat seuraavat:
- Harkitse tietojoukkoa ja sovita siihen päätöspuu.
F1(x)=y - Sovita seuraava päätöspuu, jossa on edellisen puun suurimmat virheet.
h1(x)=y?F1(x) - Lisää tämä uusi puu algoritmiin lisäämällä molemmat vaiheissa 1 ja 2.
F2(x)=F1(x)+h1(x) - Sovita jälleen seuraava päätöspuu edellisen puun jäännöksillä.
h2(x)=y?F2(x) - Toista sama, jonka teimme vaiheessa 3.
F3(x)=F2(x)+h2(x)
Jatka tätä prosessia, kunnes jokin mekanismi (eli ristiinvalidointi) kehottaa meitä lopettamaan. Lopullinen malli tässä on vaiheittainen lisäysmalli b yksittäisistä puista:
f(x)=B∑b=1fb(x)Tästä syystä puita rakennetaan ahneesti, valitaan parhaat jakopisteet puhtauspisteiden, kuten Gini, perusteella tai minimoidaan menetys.
3. Lisäainemalli:
Additiivinen malli määritellään puiden lisäämiseksi malliin. Vaikka meidän ei pitäisi lisätä useita puita kerrallaan, vain yksi puu on lisättävä, jotta mallin olemassa olevia puita ei muuteta. Lisäksi voimme myös suosia gradienttilaskumenetelmää lisäämällä puita häviön vähentämiseksi.
Muutaman viime vuoden aikana gradienttilaskeutumismenetelmää on käytetty minimoimaan parametrien joukko, kuten regressioyhtälön kerroin ja paino neuroverkossa. Virheen tai häviön laskemisen jälkeen painoparametria käytetään virheen minimoimiseen. Mutta viime aikoina useimmat ML-asiantuntijat suosivat heikkoja oppijan alamalleja tai päätöspuita näiden parametrien korvikkeena. Jossa meidän on lisättävä malliin puu virheen vähentämiseksi ja mallin suorituskyvyn parantamiseksi. Tällä tavalla uuden lisätyn puun ennuste yhdistetään olemassa olevan puusarjan ennusteeseen lopullisen ennusteen saamiseksi. Tätä prosessia jatketaan, kunnes tappio saavuttaa hyväksyttävän tason tai sitä ei enää tarvita.
Tämä menetelmä tunnetaan myös nimellä funktionaalinen gradienttilasku tai gradienttilasku funktioiden kanssa.
poikkeus heittää java
Äärimmäisen gradientin tehostuskone (XGBM)
XGBM on uusin versio gradienttitehostuskoneista, joka toimii myös hyvin samalla tavalla kuin GBM. XGBM:ssä puita lisätään peräkkäin (yksi kerrallaan), jotka oppivat aiempien puiden virheistä ja parantavat niitä. Vaikka XGBM- ja GBM-algoritmit ovat samankaltaisia ulkonäöltään ja tuntumalta, mutta silti niiden välillä on joitain eroja seuraavasti:
- XGBM käyttää erilaisia regulaatiotekniikoita vähentääkseen mallin ali- tai ylisovitusta, mikä myös lisää mallin suorituskykyä enemmän kuin gradienttia tehostavat koneet.
- XGBM seuraa kunkin solmun rinnakkaista käsittelyä, kun taas GBM ei, mikä tekee siitä nopeamman kuin gradienttitehostuskoneet.
- XGBM auttaa meitä pääsemään eroon puuttuvien arvojen imputoinnista, koska oletuksena malli huolehtii siitä. Se oppii itse, pitäisikö näiden arvojen olla oikeassa vai vasemmassa solmussa.
Light Gradient Boosting Machines (Kevyt GBM)
Light GBM on päivitetympi versio Gradient-tehostuskoneesta sen tehokkuuden ja nopean nopeuden ansiosta. Toisin kuin GBM ja XGBM, se pystyy käsittelemään valtavan määrän tietoa ilman monimutkaisuutta. Toisaalta se ei sovellu niille datapisteille, joita on vähemmän.
Tasaisen kasvun sijaan Light GBM suosii puun solmujen lehtisuuntaista kasvua. Lisäksi kevyessä GBM:ssä ensisijainen solmu jaetaan kahdeksi toissijaiseksi solmuksi ja myöhemmin se valitsee jaettavaksi yhden toissijaisen solmun. Tämä toissijaisen solmun jako riippuu siitä, kummalla kahden solmun välillä on suurempi häviö.
Tästä syystä, lehtien jakautumisen vuoksi, Light Gradient Boosting Machine (LGBM) -algoritmi on aina parempi kuin muut, joissa annetaan suuri määrä dataa.
CATBOOST
Catboost-algoritmia käytetään ensisijaisesti käsittelemään tietojoukon kategorisia ominaisuuksia. Vaikka GBM-, XGBM- ja Light GBM -algoritmit soveltuvat numeerisille tietosarjoille, Catboost on suunniteltu käsittelemään kategorisia muuttujia numeerisiksi tiedoiksi. Näin ollen catboost-algoritmi koostuu olennaisesta esikäsittelyvaiheesta kategoristen ominaisuuksien muuntamiseksi numeerisiksi muuttujiksi, joita ei ole missään muussa algoritmissa.
Tehostusalgoritmien edut:
- Tehostusalgoritmit seuraavat ensemble-oppimista, mikä mahdollistaa mallin antamaan tarkemman ennusteen, jota ei voida ylittää.
- Tehostusalgoritmit ovat paljon joustavampia kuin muut algoritmit, koska ne voivat optimoida erilaisia häviötoimintoja ja tarjoavat useita hyperparametrien viritysvaihtoehtoja.
- Se ei vaadi tietojen esikäsittelyä, koska se sopii sekä numeerisille että kategorisille muuttujille.
- Se ei vaadi puuttuvien arvojen imputointia tietojoukosta, se käsittelee puuttuvat tiedot automaattisesti.
Tehostusalgoritmien haitat:
Alla on muutamia tehostamisalgoritmien haittoja:
- Algoritmien tehostaminen voi aiheuttaa ylisovitusta sekä poikkeamien liiallista korostamista.
- Gradienttitehostusalgoritmi keskittyy jatkuvasti minimoimaan virheet ja vaatii useita puita, joten se on laskennallisesti kallista.
- Se on aikaa vievä ja muistia vievä algoritmi.
- Luonteeltaan vähemmän tulkitseva, vaikka se on helppo käsitellä eri työkaluilla.
Johtopäätös:
Tällä tavalla olemme oppineet tehostavat algoritmit ennustavaan mallinnukseen koneoppimisessa. Olemme myös keskustelleet useista tärkeistä tehostusalgoritmeista, joita käytetään ML:ssä, kuten GBM, XGBM, light GBM ja Catboost. Lisäksi olemme nähneet erilaisia komponentteja (tappiofunktio, heikko oppija ja additiivinen malli) ja kuinka GBM toimii niiden kanssa. Miten tehostamisalgoritmit ovat edullisia käyttöönotettavaksi tosielämän skenaarioissa jne.