Boosting on koostumuksen koneoppimisen meta-algoritmi , jota käytetään pääasiassa vähentämään harhaa (estimaatiovirhe) sekä varianssia [1] ohjatussa oppimisessa . Määritelty myös koneoppimisalgoritmien perheeksi, joka muuntaa heikot oppimisalgoritmit vahvoiksi [2] .
Boostointi perustuu Kearnsin ja Valiantin (1988, 1989) [3] [4] esittämään kysymykseen : "Voiko joukko heikkoja oppimisalgoritmeja tuottaa vahvan oppimisalgoritmin?". Heikko oppimisalgoritmi määritellään luokittelijaksi , joka korreloi heikosti oikean luokituksen kanssa (voi merkitä esimerkit paremmin kuin satunnainen arvaus). Toisin kuin heikko algoritmi, vahva oppimisalgoritmi on luokitin, joka korreloi hyvin oikean luokituksen kanssa.
Robert Shapiren myönteinen vastaus vuoden 1990 artikkelissa [5] Kearnsin ja Valiantin kysymykseen oli erittäin tärkeä koneoppimisteorian ja tilastojen kannalta , ja se johti useiden tehostamisalgoritmien luomiseen [6] .
Tehostava hypoteesi viittasi prosessiin virittää heikko oppimisalgoritmi vahvan oppimisen saavuttamiseksi. Epävirallisesti kysytään, tarkoittaako tehokkaan oppimisalgoritmin olemassaolo, jonka tulos on hypoteesi, jonka suorituskyky on vain hieman parempi kuin satunnainen arvaus (eli heikko oppiminen), tehokkaan algoritmin olemassaoloa, joka tuottaa mielivaltaisen tarkkuuden (eli vahvan) hypoteesin. oppiminen) [3] . Algoritmit, jotka päätyvät tällaiseen hypoteesiin, tunnetaan nopeasti yksinkertaisesti "tehostavina". Freundin ja Shapiren "kaari"-algoritmi (Adaptive Resampling and Combining) [7] yleisenä tekniikkana on enemmän tai vähemmän synonyymi tehostukselle [8]
Vaikka tehostaminen ei ole algoritmisesti rajoitettua, useimmat tehostusalgoritmit koostuvat heikkojen luokittimien iteratiivisesta harjoittelusta niiden kokoamiseksi vahvaksi luokittelijaksi. Kun niitä lisätään, niille annetaan yleensä jollain tavalla painoja, jotka yleensä liittyvät harjoitustarkkuuteen. Kun heikko luokitin on lisätty, painot lasketaan uudelleen, mikä tunnetaan nimellä "painon uudelleenlaskenta" . Väärin luokitellut syötteet saavat enemmän painoa, kun taas oikein luokitellut tapaukset laihtuvat [nb 1] . Näin ollen myöhempi heikko oppiminen keskittyy enemmän esimerkkeihin, joissa aikaisemmat heikot oppimiset on luokiteltu väärin.
Tehostusalgoritmeja on monia. Robert Shapiren ( rekursiivinen enemmistöportin muotoilu ) [5] ja Yoav Freundin (dominanssin vahvistaminen) [9] ehdottamat alkuperäiset algoritmit eivät olleet mukautuvia eivätkä kyenneet antamaan täyttä hyötyä heikosta oppimisesta. Shapire ja Freund kehittivät sitten AdaBoostin (Adaptive Boosting), adaptiivisen tehostusalgoritmin, joka voitti arvostetun Gödel-palkinnon .
Vain sellaisia algoritmeja, joiden voidaan todistaa olevan tehostamisalgoritmeja suunnilleen oikean oppimisen muotoilussa, voidaan kutsua tarkasti tehostamisalgoritmeiksi . Muita algoritmeja, jotka ovat hengeltään samanlaisia kuin tehostusalgoritmeja, kutsutaan joskus vipuvaikutusalgoritmeiksi , vaikka niitä kutsutaan joskus väärin myös tehostamisalgoritmeiksi [ 9] .
Suurin ero monien tehostusalgoritmien välillä on opetusdatapisteiden painojen [ ja hypoteeseissa . AdaBoost-algoritmi on erittäin suosittu ja historiallisesti merkittävin, koska se oli ensimmäinen algoritmi, joka pystyi sopeutumaan heikkoon oppimiseen. Algoritmia käytetään usein perusjohdantona algoritmien tehostamiseen yliopistojen koneoppimiskursseilla [10] . On olemassa monia äskettäin kehitettyjä algoritmeja, kuten LPBoost [ , TotalBoost, BrownBoost , xgboost , MadaBoost, LogitBoost ym.[ ominaisuusavaruuteen [ käyttäen konveksia häviöfunktiota [ .
Kun otetaan huomioon kuvat, jotka sisältävät erilaisia maailmassa tunnettuja esineitä, niiden perusteella voidaan kouluttaa luokitin, joka luokittelee objektit automaattisesti tulevissa tuntemattomissa kuvissa. Yksinkertaiset luokittimet, jotka on rakennettu joidenkin objektikuvan ominaisuuksien perusteella , osoittautuvat yleensä luokittelussa tehottomiksi. Tehostusmenetelmien käyttäminen objektien luokittelussa on tapa yhdistää heikkoja luokittajia tietyllä tavalla yleisen luokittelukyvyn parantamiseksi.
Ominaisuuden luokittelu on tyypillinen tietokonenäön tehtävä , jossa määritetään, sisältääkö kuva tietyn luokan esineitä vai ei. Idea liittyy läheisesti tunnistamiseen, tunnistamiseen ja havaitsemiseen. Objektin tunnistuksen mukainen luokittelu sisältää tyypillisesti piirteiden poimimisen , luokittelijan koulutuksen ja luokittelijan soveltamisen uusiin tietoihin. On olemassa monia tapoja esittää objektiluokkaa, kuten jäsentämällä muotoa , käyttämällä sanapussimallia , käyttämällä paikallisia kuvaajia, kuten SIFT , ja niin edelleen. Esimerkkejä valvotuista luokittelijoista ovat naiivit bayes - luokittelijat ,tukivektorikoneet , Gaussin sekoitus hermoverkot . Tutkimukset ovat kuitenkin osoittaneet, että objektiluokat ja niiden sijainti kuvissa voidaan havaita myös ohjaamattoman oppimisen avulla [11] .
Objektiluokkien tunnistaminen kuvista on tietokonenäön kannalta vaikea tehtävä , varsinkin jos luokkien määrä on suuri. Tämä on seurausta luokkien suuresta sisäisestä vaihtelevuudesta ja tarpeesta yleistää erilaisia käsitteitä luokan sisällä. Saman luokan esineet voivat näyttää täysin erilaisilta. Jopa sama kohde voi näyttää erilaiselta eri näkökulmista, mittakaavasta tai valaistuksesta . Taustakohina ja osittaiset päällekkäisyydet lisäävät myös tunnistuksen monimutkaisuutta [12] . Ihmiset pystyvät tunnistamaan tuhansia esinetyyppejä, kun taas useimmat olemassa olevat esineiden tunnistusjärjestelmät on koulutettu tunnistamaan vain muutama, kuten ihmisten kasvot , autot , yksinkertaiset esineet jne. [13] . Kategorioiden määrän lisäämistä ja uusien luokkien lisäämismahdollisuutta koskevaa tutkimusta tehdään aktiivisesti, ja vaikka yleistä ongelmaa ei ole vielä ratkaistu, ilmaisimia on kehitetty useille kategorioille (jopa satoja ja tuhansia [14] ) . Tämä saavutetaan erityisesti jakamalla ominaisuuksia ja tehostamalla.
AdaBoost-pakettia voidaan käyttää kasvojentunnistukseen esimerkkinä binääriluokittelusta . Kaksi luokkaa ovat kasvot ja tausta. Yleinen algoritmi näyttää tältä:
Tehostuksen jälkeen 200 ominaisuudesta rakennettu luokitin voi saavuttaa 95 % onnistuneista tunnistusvirheistä [ 15] .
Toinen binääriluokituksen tehostuksen sovellus on järjestelmä, joka tunnistaa jalankulkijat liikekuvioiden ja ulkonäön perusteella [16] . Tämä teos yhdistää liikeinformaation ja ulkonäön ominaisuuksina liikkuvan ihmisen havaitsemiseen ensimmäistä kertaa. Käytämme samanlaista lähestymistapaa kuin Viola-Jonesin objektintunnistusmalli .
Verrattuna binääriluokitukseen moniluokkainen luokittelu yhteisiä piirteitä, jotka voidaan jakaa luokkien välillä samanaikaisesti. Ne osoittautuvat yleisemmiksi, kuten " raja " -ominaisuus . Harjoittelun aikana kunkin luokan luokittelijat voidaan kouluttaa yhdessä. Erilliseen harjoitteluun verrattuna tällaisella harjoittelulla on parempi yleistys , se vaatii vähemmän harjoitustietoja ja vähemmän ominaisuuksia tarvitaan halutun tuloksen saavuttamiseksi.
Algoritmin perustoiminto on samanlainen kuin binääritapauksessa. Erona on, että yhteisharjoitteluvirheen mitta voidaan määrittää etukäteen. Jokaisen iteroinnin aikana algoritmi valitsee yhden ominaisuuden luokittelijan (yhteisesti luokiteltavia ominaisuuksia suositellaan). Tämä voidaan tehdä muuntamalla moniluokkainen luokitus binääriseksi (joukko kategorioita/muita luokkia) [17] tai rankaisemalla luokkia, joissa ei ole luokittelijan tunnistamia ominaisuuksia [18] .
Visuaalisten ominaisuuksien jakaminen moniluokkaisten ja moninäkymäobjektien havaitsemiseen A. Torralba ym. käytti GentleBoostia tehostamiseen ja osoitti, että jos harjoitustietoja on rajoitetusti, oppiminen jaettujen käytettyjen ominaisuuksien avulla tekee työn paljon paremmin kuin ilman jakamista. Lisäksi tietyllä suorituskykytasolla ominaisuuksien jakamisen havaitsemiseen tarvittavien ominaisuuksien kokonaismäärä (ja siten luokittimen ajoaika) kasvaa likimäärin logaritmisesti luokkien määrän kanssa, eli hitaammin kuin lineaarinen , joka esiintyy ei jakamista. Samanlaisia tuloksia on esitetty artikkelissa "Kohteiden havaitsemisen asteittainen oppiminen visuaalisten kuvien aakkosilla", mutta kirjoittajat käyttivät AdaBoostia tehostamiseen .
Tehostusalgoritmit voivat perustua kuperaan tai ei-kuperaan optimointialgoritmeihin. Kuperat algoritmit, kuten AdaBoost ja LogitBoost, voivat kaatua satunnaisen kohinan vuoksi, koska ne eivät voi opettaa heikkojen hypoteesien perus- ja opittavia yhdistelmiä [19] [20] . Long ja Servedo huomauttivat tämän rajoituksen vuonna 2008. Kuitenkin vuonna 2009 useat kirjoittajat osoittivat, että ei-kuperaan optimointiin perustuvia tehostusalgoritmeja, kuten BrownBoost , voidaan opettaa kohinaisista tiedoista ja taustalla olevaa aineiston Long-Servedio-luokittajaa voidaan kouluttaa. .
Koneoppiminen ja tiedon louhinta | |
---|---|
Tehtävät | |
Opettajan kanssa oppimista | |
ryhmäanalyysi | |
Mittasuhteiden vähentäminen | |
Rakenteellinen ennustaminen | |
Anomalian havaitseminen | |
Piirrä todennäköisyysmallit | |
Neuroverkot | |
Vahvistusoppiminen |
|
Teoria | |
Lehdet ja konferenssit |
|