Articles

Applied AI Strategy and Consulting | InnoArchiTech

tämän sarjan Artikkelit

  1. yleiskatsaus, tavoitteet, oppimistyypit ja algoritmit

  2. tiedon valinta, valmistelu ja mallinnus

    mallin arviointi, validointi, monimutkaisuus ja parantaminen

    mallin suorituskyky ja virheanalyysi

  3. valvomaton oppiminen, siihen liittyvät alat ja koneoppiminen käytännössä

johdanto

tervetuloa! Tämä on ensimmäinen artikkeli viisiosaisesta koneoppimista käsittelevästä sarjasta.

koneoppiminen on hyvin kuuma aihe monestakin keskeisestä syystä, ja koska se tarjoaa mahdollisuuden automaattisesti saada syviä oivalluksia, tunnistaa tuntemattomat kuviot ja luoda datasta suorituskykyisiä ennustavia malleja ilman, että tarvitaan eksplisiittisiä ohjelmointiohjeita.

aiheen suosiosta huolimatta koneoppimisen todellista tarkoitusta ja yksityiskohtia ei oikein ymmärretä, paitsi hyvin teknikot ja / tai datatutkijat.

tämän sarjan on tarkoitus olla kattava, perusteellinen opas koneoppimiseen, ja sen pitäisi olla hyödyllinen kaikille yritysjohtajista koneoppimisen harjoittajiin. Se kattaa lähes kaikki koneoppimisen osa-alueet (ja monet niihin liittyvät alat) korkealla tasolla, ja sen pitäisi olla riittävä johdanto tai viittaus alan terminologiaan, käsitteisiin, välineisiin, näkökohtiin ja tekniikoihin.

Tämä korkean tason ymmärrys on ratkaisevan tärkeää, jos se on joskus mukana koneoppimisen käyttöä koskevassa päätöksentekoprosessissa, miten se voi auttaa saavuttamaan liiketoiminnan ja projektin tavoitteet, mitä koneoppimistekniikoita käytetään, mahdolliset sudenkuopat ja miten tuloksia tulkitaan.

huomaa, että suurin osa tässä sarjassa käsitellyistä aiheista soveltuu myös suoraan sellaisiin aloihin kuin ennakoiva analytiikka, tiedonlouhinta, tilastollinen oppiminen, tekoäly ja niin edelleen.

Koneoppiminen määritelty

usein lainattu ja laajalti hyväksytty koneoppimisen muodollinen määritelmä, jonka kenttäpioneeri Tom M. Mitchell on todennut, on:

tietokoneohjelman sanotaan oppivan kokemuksesta E suhteessa johonkin tehtäväluokkaan T ja suoritusmittariin P, jos sen suorituskyky tehtävissä t, mitattuna P, paranee kokemuksen myötä e

seuraava on vähemmän muodollinen Tapani kuvata koneoppimista.

koneoppiminen on tietojenkäsittelytieteen osa-alue, mutta siitä käytetään usein myös nimitystä ennakoiva analytiikka eli ennakoiva mallinnus. Sen tavoitteena ja käyttö on rakentaa uusia ja/tai hyödyntää olemassa olevia algoritmeja oppia datasta, jotta voidaan rakentaa yleistettävissä malleja, jotka antavat tarkkoja ennusteita, tai löytää malleja, erityisesti uusia ja näkymättömiä samanlaisia tietoja.

koneoppimisen Prosessikatsaus

Kuvittele tietojoukko taulukoksi, jossa rivit ovat kukin havainto (eli mittaus, datapiste jne.) ja kunkin havainnon sarakkeet kuvaavat kyseisen havainnon ominaisuuksia ja niiden arvoja.

koneoppimisprojektin alussa aineisto jaetaan yleensä kahteen tai kolmeen osajoukkoon. Vähimmäisosajoukkoja ovat koulutus-ja testitietokannat, ja usein luodaan myös valinnainen kolmas validointitietokanta.

kun nämä tietojoukot on luotu ensisijaisesta tietojoukosta, koulutustietojen avulla koulutetaan ennakoiva malli tai luokittelija, minkä jälkeen mallin ennustava tarkkuus määritetään testitulosten avulla.

kuten edellä mainittiin, koneoppiminen hyödyntää algoritmeja mallintamaan ja löytämään automaattisesti kaavoja datasta, yleensä tavoitteenaan ennustaa jokin kohteen tuotos tai vaste. Nämä algoritmit perustuvat vahvasti tilastotieteeseen ja matemaattiseen optimointiin.

optimointi on prosessi, jossa etsitään funktion pienin tai suurin arvo (minimit tai maksimit), jota minimointitapauksessa usein kutsutaan tappiofunktioksi tai kustannusfunktioksi. Yksi suosituimmista koneoppimisessa käytetyistä optimointialgoritmeista on nimeltään gradient descent, ja toinen tunnetaan normaaliyhtälönä.

pähkinänkuoressa koneoppimisessa on kyse erittäin tarkan ennustavan tai luokittelijan mallin automaattisesti oppimisesta tai tuntemattomien mallien löytämisestä datasta hyödyntämällä oppimisalgoritmeja ja optimointitekniikoita.

Oppimistyypit

koneoppimisen ensisijaiset luokat ovat valvottu, valvomaton ja puoliohjattu oppiminen. Keskitymme kahteen ensimmäiseen tässä artikkelissa.

ohjatussa oppimisessa data sisältää mallinnettavan vastemuuttujan (label), jonka tavoitteena on ennustaa näkymättömän tiedon arvo tai luokka. Valvomaton oppiminen edellyttää oppimista tietojoukosta, jossa ei ole merkintää tai vastemuuttujaa, ja siksi kyse on enemmän kaavojen löytämisestä kuin ennustamisesta.

koska olen suuri NFL: n ja Chicago Bearsin fani, joukkueeni auttaa esimerkillistämään tällaisia oppimistapoja! Oletetaan, että sinulla on ton Chicago Bears tiedot ja tilastot vuodelta, kun joukkue tuli vuokrattu jäsen NFL (1920) nykypäivään (2016).

Kuvittele, että jokainen datarivi on pohjimmiltaan joukkuekuva (tai havainto) relevanteista tilastoista jokaista ottelua varten vuodesta 1920 lähtien. Sarakkeet tässä tapauksessa, ja tiedot sisältyvät kunkin, edustavat ominaisuuksia (arvot) tietojen, ja voi sisältää ominaisuustietoja, kuten pelipäivä, peli vastustaja, kauden voitot, kausi tappiot, kausi päättyy divisional asema, post-season laiturissa (Y/N), post-season tilastot, ja ehkä tilastot erityisiä kolme vaihetta pelin: hyökkäys, puolustus, ja erikoisjoukkueet.

valvotussa tapauksessa tavoitteena voi olla näiden tietojen avulla ennustaa, voittaako vai häviääkö Bears tiettyä joukkuetta vastaan tietyn pelin aikana ja tietyllä kentällä (kotona vai Vieraissa). Muista, että mitä tahansa voi tapahtua jalkapallo kannalta pre ja peli-aika vammoja, sääolosuhteet, huono erotuomari puhelut, ja niin edelleen, joten ota tämä yksinkertaisesti esimerkkinä hakemuksen valvotun oppimisen kanssa kyllä tai ei vastausta (ennuste), toisin kuin määrittää todennäköisyys tai todennäköisyys ”Da karhut” saada voittaa.

koska sinulla on historiallista tietoa voitoista ja tappioista (vastauksesta) tiettyjä joukkueita vastaan tietyillä jalkapallokentillä, voit hyödyntää valvottua oppimista luodaksesi mallin, jolla tämä ennustus tehdään.

oletetaan nyt, että tavoitteesi on löytää historiallisesta datasta kuvioita ja oppia jotain, mitä et jo tiedä, tai ryhmitellä joukkuetta tietyllä tavalla kautta historian. Voit tehdä niin, suoritat valvomattoman koneoppimisen algoritmi, joka klustereita (ryhmiä) tiedot automaattisesti, ja sitten analysoida klusteroinnin tulokset.

pienellä analyysillä voidaan todeta, että nämä automaattisesti muodostuneet klusterit näennäisesti ryhmittävät tiimin seuraaviin esimerkkiluokkiin ajan kuluessa:

    vahva puolustus, heikko juoksurikos, vahva syöttörikos, heikot erikoisjoukkueet, playoff-laituri

    vahva puolustus, vahva juoksurikos, heikko syöttörikos, keskitason erikoisjoukkueet, playoff-laituri

    heikko puolustus, vahva all-around-hyökkäys, vahvat erikoisjoukkueet, pudotuspeleihin väliin jääneet

    ja niin edelleen

an esimerkki valvomattomasta klusterianalyysistä olisi löytää mahdollinen syy, miksi he eivät päässeet pudotuspeleihin kolmannessa klusterissa edellä. Ehkä heikon puolustuksen takia? Bears on perinteisesti ollut vahva puolustava joukkue, ja joidenkin mielestä puolustus voittaa mestaruuksia. Vain sanoa …

kummassakin tapauksessa, jokainen edellä luokitukset voidaan havaita liittyvän tiettyyn aikaväliin, jonka voisi olettaa. Ehkä joukkue oli ominaista yksi näistä ryhmittymistä useammin kuin kerran historiansa aikana, ja eri ajanjaksoina.

luonnehtiakseen tiimiä tällä tavalla ilman koneoppimistekniikoita pitäisi käydä läpi kaikki historiatiedot ja tilastot, etsiä kuviot manuaalisesti ja määrittää luokitukset (klusterit) jokaiselle vuodelle kaikki data huomioon ottaen ja koota tiedot. Se ei todellakaan olisi nopea ja helppo tehtävä.

Vaihtoehtoisesti voit kirjoittaa eksplisiittisesti koodatun ohjelman, joka kaataa datan läpi, ja että on tiedettävä mitä joukkueen tilastoja ottaa huomioon, mitä kynnyksiä ottaa huomioon kunkin stat, ja niin edelleen. Koodin kirjoittaminen veisi huomattavan paljon aikaa, ja jokaista vastausta tarvitsevaa ongelmaa varten olisi kirjoitettava erilaisia ohjelmia.

tai… voit käyttää koneoppimisen algoritmia, joka tekee kaiken tämän automaattisesti puolestasi muutamassa sekunnissa.

koneoppimisen tavoitteita ja tuotoksia

Koneoppimisalgoritmeja käytetään ensisijaisesti seuraaviin tuotostyyppeihin:

  • ryhmittely (valvottu)

  • kahden luokan ja moniluokan luokittelu (valvottu)

  • regressio: Univariaatti, monimuuttuja jne. (Valvottu)

  • anomalian havaitseminen (valvomaton ja valvottu)

  • Suositusjärjestelmät (aka suositusmoottori)

erityisiä algoritmeja, joita käytetään kullekin tulostyypille, käsitellään seuraavassa jaksossa, mutta annetaan ensin yleiskuva jokaisesta yllä olevasta ulostulosta eli ongelmatyypistä.

kuten on todettu, ryhmittely on valvomaton tekniikka tietyn tietojoukon koostumuksen ja rakenteen selvittämiseksi. Se on prosessi, jossa dataa kasataan klustereiksi, jotta nähdään, mitä ryhmittymiä syntyy, jos ollenkaan. Jokainen klusteri on ominaista sisälsi joukko tietopisteitä, ja klusterin centroid. Klusterin centroid on periaatteessa keskiarvo (keskiarvo) kaikkien datapisteiden että klusterin sisältää, kaikki ominaisuudet.

Luokitteluongelmat liittyvät datapisteen (eli havainnon) sijoittamiseen ennalta määriteltyyn luokkaan tai kategoriaan. Joskus luokitteluongelmat yksinkertaisesti määrittelevät havainnolle luokan, ja muissa tapauksissa tavoitteena on arvioida todennäköisyydet, että havainto kuuluu kuhunkin annettuun luokkaan.

hyvä esimerkki kaksiluokkaisesta luokittelusta on lähettää saapuvalle sähköpostille roskapostin tai kinkun luokka, jossa ham tarkoittaa vain ”ei roskapostia”. Moniluokkaluokitus tarkoittaa vain useampaa kuin kahta mahdollista luokkaa. Joten roskapostin esimerkki, ehkä kolmas luokka olisi ”tuntematon”.

regressio on vain hieno sana sille, että malli antaa datahavainnolle jatkuvan arvon (vasteen) erotukseksi diskreetistä luokasta. Hyvä esimerkki tästä olisi ennustaa Dow Jones Industrial Average päätöskurssi tiettynä päivänä. Tämä arvo voi olla mikä tahansa luku, ja olisi siksi täydellinen ehdokas regressioon.

huomaa, että joskus regressio-sanaa käytetään sellaisen algoritmin nimessä, jota todella käytetään luokitteluongelmiin, tai diskreetin kategorisen vastauksen (esim.spam tai ham) ennustamiseen. Hyvä esimerkki on logistinen regressio, joka ennustaa tietyn diskreetin arvon todennäköisyyksiä.

toinen ongelmatyyppi on anomalian havaitseminen. Vaikka haluaisimme ajatella, että data on hyvin käyttäytyvää ja järkevää, valitettavasti näin ei useinkaan ole. Joskus on virheellisiä datapisteitä, jotka johtuvat toimintahäiriöistä tai mittausvirheistä, tai joskus petoksesta. Muina aikoina se voi olla, että poikkeava mittaukset ovat osoitus epäonnistuneesta pala laitteiston tai elektroniikan.

joskus poikkeavuudet viittaavat todelliseen ongelmaan, jota ei ole helppo selittää, kuten valmistusvirheeseen, ja tässä tapauksessa poikkeavuuksien havaitseminen antaa mittavan laadunvalvonnan sekä käsityksen siitä, ovatko vikojen vähentämiseksi toteutetut toimet toimineet vai eivät. Kummassakin tapauksessa on aikoja, jolloin on hyödyllistä löytää näitä poikkeavia arvoja, ja tiettyjä koneoppimisen algoritmeja voidaan käyttää juuri siihen.

lopullista ongelmatyyppiä käsitellään suositusjärjestelmällä, jota kutsutaan myös suositusmoottoriksi. Suositusjärjestelmät ovat eräänlainen tiedon suodatusjärjestelmä, ja niiden tarkoituksena on antaa suosituksia monissa sovelluksissa, kuten elokuvissa, musiikissa, kirjoissa, ravintoloissa, artikkeleissa, tuotteissa ja niin edelleen. Kaksi yleisintä lähestymistapaa ovat sisältöpohjainen ja yhteistoiminnallinen suodatus.

kaksi hienoa esimerkkiä suositusmoottoreista ovat Netflixin ja Amazonin tarjoamat. Netflix antaa suosituksia pitääkseen katsojat mukana ja toimittaakseen runsaasti sisältöä katsottavaksi. Toisin sanoen pitää ihmiset Netflixin käyttäjinä. He tekevät tämän ” Because you watched…” -, ”Top Picks for Alex” – ja ”proposals for you” – suosituksillaan.

Amazon tekee samankaltaisen asian kasvattaakseen myyntiä ylöspäin menevällä myynnillä, ylläpitääkseen myyntiä käyttäjien sitoutumisella ja niin edelleen. He tekevät tämän kautta ”asiakkaat, jotka ostivat tämän tuotteen, ostivat myös”,” suositukset sinulle, Alex”,” liittyvät kohteet katselit”, ja” lisää kohteita harkita ” suosituksia.

Koneoppimisalgoritmit

olemme nyt käyneet läpi koneoppimisen ongelmatyypit ja halutut tuotokset. Nyt annamme korkean tason yleiskuvan asiaankuuluvista koneoppimisalgoritmeista.

tässä on lista sekä valvotuista että valvomattomista algoritmeista, jotka ovat hyvin suosittuja ja jotka kannattaa tuntea korkealla tasolla. Huomaa, että joitakin näistä algoritmeista käsitellään tarkemmin myöhemmin tässä sarjassa.

valvottu regressio

    yksinkertainen ja monilineaarinen regressio

    Ratkaisupuun tai metsän regressio

    keinotekoiset hermoverkot

    Ordinaalinen regressio

    Poisson-regressio

  • lähimmät naapurimenetelmät (esim., k-nn tai K-lähimmät naapurit)

valvottu Kaksiluokkainen & Moniluokkainen luokitus

    logistinen regressio ja monikansallinen regressio

    keinotekoiset hermoverkot

    Ratkaisupuu, metsä ja viidakko

    li>

    SVM (Tukivektorikone)

    Perceptronin menetelmät

    bayesilaiset luokittelijat (esim. naiivi Bayes)

  • lähimmän naapurin menetelmät (esim., k-NN tai k-lähimmät naapurit)

  • yksi vs. kaikki moniluokka

valvomaton

K-tarkoittaa hierarkkista ryhmittelyä

anomalian havaitsemista

  • Tukivektorikone (yksi luokka)
  • PCA (periaatteellinen komponenttianalyysi)

huomaa, että tekniikka, jota usein käytetään mallin suorituskyvyn parantamiseen, on useiden mallien tulosten yhdistäminen. Tämä lähestymistapa hyödyntää ns ensemble menetelmiä, ja satunnaiset metsät ovat hyvä esimerkki (käsitellään myöhemmin).

Jos ei muuta, kannattaa ainakin perehtyä näiden suosittujen algoritmien nimiin ja saada perusidea siitä, millaiseen koneoppimisongelmaan ja-ulostuloon ne voivat hyvin sopia.

Yhteenveto

Koneoppiminen, ennakoiva analytiikka ja muut siihen liittyvät aiheet ovat hyvin jännittäviä ja voimakkaita aloja.

vaikka nämä aiheet voivat olla hyvin teknisiä, monet niihin liittyvät käsitteet ovat suhteellisen yksinkertaisia ymmärtää korkealla tasolla. Monissa tapauksissa, yksinkertainen ymmärrys on kaikki, mitä tarvitaan käydä keskusteluja perustuu koneoppimisen ongelmia, projekteja, tekniikoita, ja niin edelleen.

sarjan toisessa osassa esitellään mallien suorituskykyä, käsitellään koneoppimisprosessia ja käsitellään mallien valintaa ja siihen liittyviä tradeoffeja yksityiskohtaisesti.

Stay tuned!

tekijästä

Alex on Innoarchitechin ja InnoArchiTech-instituutin perustaja sekä O ’ Reilly median julkaiseman AI for People and Business-kirjan kirjoittaja.