Termit, kuten “koneoppiminen”, “syväoppiminen”, “hermoverkot”, “tekoäly” tai “A.I.”, “tietojenkäsittelytiede” ja muut, ovat olleet viime vuosien teknologian sanat. Laskentatehon edistymisen ja käytettävissä olevan tiedon määrän kasvun takia tekniikat, jotka ovat olleet tiedossa jo vuosikymmenien ajan, voidaan nyt ottaa mielekkääksi.

Mutta mitä ne oikeasti tarkoittavat?

Matemaattiset yhtälöt antavat koneille perustiedot ymmärtääksemme jotain, mitä olemme oppineet ihmisinä.

Suurin osa meistä on tietoinen 10 000 jalan selityksestä, joka on ”Tietojen opettaminen ratkaisemaan meille ongelmia”, mutta monet ihmiset eivät todennäköisesti ole tietoisia siitä, mitä konepellin alla tapahtuu. Koneoppimisen perusteet ovat riittävän yksinkertaisia, riittävän intuitiivisia ja mikä tärkeintä, tarpeeksi mielenkiintoisia, jotta kuka tahansa voi hakea ne suhteellisen lyhyessä ajassa.

Tämä yksinkertainen selitys siitä, kuinka koneoppimista käytetään tietokoneen opettamiseen ongelman ratkaisemiseksi, on suunnattu niille, joilla ei ole tietoa koneoppimisesta, tai niille, jotka haluavat aloittaa alusta alkaen.

Parhaiten sopiva linja

Monet meistä ehkä muistavat koulusta jotain, jota kutsutaan ”parhaiten sopivaksi viivaksi” viittaamalla kuvaajaan piirrettyihin tietopisteisiin. Parhaiten sopiva linja on piste, joka on vedetty pisteiden läpi siten, että se edustaa sitä, mitä tiedot osoittavat. Se voi näyttää tältä:

Rivi, joka sopii parhaiten piirrettyjen datapisteiden läpi. Kaikki kuvat: Dan Harris

Tämä käsite on itse asiassa koneoppiminen sen perusteellisimmalla tavalla. Sen sijaan, että piirtäisimme näitä kohtia itse ja yrittäisimme piirtää omaa linjaamme parhaimmin, voimme antaa tiedot tietokoneelle.

Voimme esimerkiksi kuvitella, että yllä olevassa kaaviossa esitetyt tiedot ovat kengän koko ja korkeus useille ihmisille. Vasemmassa alaosassa oleva piste edustaa lyhyempiä ihmisiä kuin muut, joilla on pienemmät jalat, ja oikeassa yläkulmassa oleva piste edustaa henkilöä, joka on korkeampi ja jolla on suurempia jalat. Koska kenkäkoko ja korkeus eivät ole täysin korreloivia, kaikki kohdat eivät sovi väitteeseen, jonka mukaan ”korkeammilla ihmisillä on suurempi jalka”, mutta parhaiten sopiva viiva osoittaa sen olevan totta yleensä.

Parhaiten sopivalla linjalla voimme tehdä koulutettuja arvauksia uusista tiedoista. Oletetaan, että löydät kenkä. Voit määrittää, minkä koon se on, ja sitten käydä kaaviossa, jotta päätät koulutetulle arvaukselle kengän omistajan korkeudesta:

Arvauksen tekeminen parhaiten sopivalla rivillä.

Yksinkertainen, eikö totta? Koneoppimisessa tätä kutsutaan ”lineaariseksi regressioksi”. Älä anna nimen pelottaa sinua. Jos ymmärrät kaiken yllä, niin ymmärrät lineaarisen regression. Se on yksinkertainen koneoppimistekniikka, jota käytetään ennustamaan lineaarisen muodon tietojoukkoja.

Koneoppimisessa tapahtuvan lineaarisen regression prosessi sujuu seuraavasti:

  1. Kerää tietopisteitä.
  2. Anna datapisteet ohjelmalle, joka voi soveltaa niihin lineaarista regressiota, jotta saadaan parhaiten sopiva rivi.
  3. Käytä parhaiten sopivaa riviä ennakoida uusia tietoja.

Sitä kutsutaan “koneoppimiseksi”, koska tietokone (tai kone) on oppinut (tai luonut matemaattisen yhtälön: tässä tapauksessa yhden riville) kuinka kenkäkoko ja korkeus ovat suhteessa toisiinsa. Matemaattinen yhtälö antaa koneelle perustiedot ymmärtääksemme jotain, mitä olemme oppineet ihmisinä: Yleensä pitemmillä ihmisillä on suurempia jalkoja.

Muut skenaariot, joissa voit käyttää lineaarista regressiota, arvaavat talon kustannukset sen perusteella, kuinka monta huonetta siinä on, tai arvataan, kuinka monta tätiä ja setä lapsella on sen perusteella, kuinka monta lahjaa heillä on joulukuusensa alla.

Lineaarisen regression ongelma

Lineaarinen regressio on suuri, kun data on muotoiltu vähän viivaksi, kuten yllä olevassa esimerkissä. Mutta kuinka hyvin se oppii tietojoukkojen muodot, jotka eivät näytä viivoilta? Ehkä tiedot näyttävät noin:

Tietopisteet, joilla ei oikeastaan ​​ole lineaarista muotoa.

Näihin tietoihin parhaiten sopivan rivin lisääminen voi näyttää tältä:

Epälineaariset datapisteet, joissa linja sopii parhaiten.

Parhaiten sopiva linja tekee tietojen sovittamisesta kunnollisen työn, mutta näyttää siltä, ​​että se voisi toimia paljon paremmin. Koska datan muoto ei ole aivan suora, viiva, joka sopii parhaiten, ei sovi oikein tietoihin. Tämä on ongelma koneoppimisessa, joka tunnetaan nimellä "alle sopivuus": Parhaiten sopiva rivi ei oikein sovi tietoihin. Mutta jos muutamme parhaiten sopivan linjan kaarevaksi, se voi tehdä paremman työn.

Epälineaariset datapisteet, joissa kaareva viiva sopii parhaiten.

Voimme helpommin kuvitella käyttämällä tätä käyrää tarkkojen, koulutettujen arvausten tekemiseen samalla tavalla kuin teimme parhaiten sopivalla suoraviivalla. Tämä on yksinkertainen lineaarisen regression jatke, joka tunnetaan nimellä “polynominen regressio”. Älkää antako nimen pelätä sinua. Jos ymmärrät, miksi kaarevat viivat voivat olla hyödyllisempiä kuin suorat viivat tietojoukon muodon määrittämisessä, ymmärrät kuinka polynominen regressio on hyödyllinen.

Nyt kun voimme luoda mallin, eli löytää parhaiten sopivan viivan tai käyrän datapistejoukolle, tiedoille, joilla on joko suora tai kaareva muoto, olemme valmis, eikö? Ei edes lähelle. Mutta voimme rakentaa näihin käsitteisiin.

Mallin tarkkuuden valitseminen

Polynomisen regression ongelmana on, että joudumme päättämään, kuinka paljon joustavuutta antaa sille ennen käyttöä, mikä voi olla hankala. Palataan ensimmäiseen tietojoukkoomme:

Datapisteiden lineaarinen joukko.

Käytimme aikaisemmin lineaarista regressiota suorien linjojen laskemiseksi näiden datapisteiden läpi. Mutta sen sijaan olisimme voineet käyttää polynomista regressiota asettaaksesi parhaiten käyrän datan läpi käyrän, joka toimisi paremmin kuin suora. Se voi näyttää noin:

Lineaarinen datajoukko parhaiten sopivalla kuutiolla.

Yksi asia polynomisessa regressiossa on, että voimme kertoa sille tarkalleen kuinka kaarevia haluamme parhaiten sopivan käyrän olevan. Mitä kaarevampi se on, sitä joustavampaa se on kuvaamaan tietojoukkoa. Edellä parhaiten sopiva käyrä on melko yksinkertainen, mutta olisimme voineet mennä pidemmälle ja löytää parhaiten sopivan käyrän, kuten tämä:

Lineaarinen tietojoukko, jossa on parhaiten sopiva neljänneskäyrä.

Tai voisimme tehdä parhaiten sopivasta linjasta jopa kaarevamman jotain tällaista varten:

Lineaarinen datajoukko, jolla on sekstinen parhaiten sopiva käyrä.

Jokainen yllä sopivimmista käyristä näyttää tekevän parempaa ja parempaa työtä kuvaamalla tietojoukkoa, mutta jotain tuntuu hiukan väärin, etenkin viimeisessä esimerkissä. Antamalla polynomiselle regressiolle paljon joustavuutta päätettäessä parhaiten sopivan käyrän kaarevuudesta, se on yrittänyt liian kovasti käydä suoraan läpi monien datapisteiden. Tuloksena on käyrä, joka vaikuttaa vähemmän hyödylliseltä ennustamisessa kuin parhaiten sopiva suora.

Esimerkiksi, jos sovellamme kenkäkokoa ja -korkeutta uudelleen, voimme nähdä lisäämällä kaavioon arvoja, että erittäin kaareva parhaiten sopiva käyrä antaa saman korkeuden kahdelle erilaiselle kenkäkoolle:

Parhaiten sopiva käyrä, joka ylittää datan.

Tätä koneoppimisessa esiintyvää ongelmaa kutsutaan ”ylimääräiseksi asennukseksi” ja se on päinvastoin kuin liian pieni asennus. Se tarkoittaa, että luomamme parhaiten sopiva käyrä ei yleisty hyvin. Se tekee hienoa työtä mukauttaaksemme meillä olevia tietoja, mutta se ei auta tehdä järkeviä arvauksia uusista tiedoista. Yksi koneoppimisen tärkeimmistä huolenaiheista on löytää sopivin viiva tai käyrä, joka on vain tarpeeksi kaareva jäljittelemään tietojoukon yleistä muotoa, mutta ei ole niin kaareva, ettei sitä voida yleistää, jotta voidaan tehdä hyviä arvauksia uudet datapisteet.

Tässä polynominen regressio kaatuu. Meidän on sanottava selvästi polynomin regressiosta, kuinka kaareva haluamme parhaiten sopivan käyrän olevan ennen käyttöä, ja se ei ole helppo asia päättää, varsinkin kun tiedot ovat monimutkaisempia.

Tähän mennessä olevissa esimerkeissä datapisteemme ovat olleet vain kahdessa ulottuvuudessa - kuten kenkäkoon ja toisen korkeuden arvo - mikä tarkoittaa, että olemme pystyneet piirtämään ne kaksiulotteisiin kuvaajiin. Tätä tehtäessä on melko helppo nähdä tietojen yleinen muoto. Mutta tämä ei ole usein tapaus koneoppimisongelmissa, joilla on enemmän kuin kaksi ulottuvuutta. Ja jos emme tiedä, millainen data on, emme voi oikeasti kertoa polynomin regressiota kuinka kaareva tehdä parhaiten sopiva viiva.

Pienellä ylimääräisellä vaivalla, hermoverkkoja voidaan käyttää myös vastaamaan kyllä ​​/ ei tietoja koskeviin kysymyksiin numeron palauttamisen sijaan.

Yksi vaihtoehto on kokeilla polynomista regressiota monta kertaa erilaisella joustavuudella ja nähdä, mikä toimii parhaiten. Mutta mitä me todella tarvitsemme, on koneoppimistekniikka, jolla on joustavuus olla niin kaareva kuin sen täytyy olla, mutta se myös rajoittaa sen kaarevuutta voidakseen tehdä hyvin yleistämällä uutta tietoa.

Tämä joustavuusongelma on, kun datatutkijat siirtyvät yleensä lineaarisesta ja polynomisesta regressiosta käyttämään hermoverkkoa sen sijaan. Yksinään hermoverkko muistuttaa hyvin paljon polynomista regressiota siinä mielessä, että se pystyy oppimaan tietojoukkoja, joilla on erittäin kaarevat muodot. Ne eivät ratkaise ylimääräisen asennuksen ongelmaa yksinään, mutta yhdistettynä tekniikkaan, jota kutsutaan vakiointiin, kaikilla on taipumus toimia.

Neuraaliverkkojen ja normalisoinnin toiminnan yksityiskohdat eivät ole todella tärkeitä koneoppimisen perusteiden ymmärtämiseksi. Tärkeimmät asiat, jotka on muistettava, on se, että hermoverkot oppivat erittäin hyvin monimutkaisten tietojoukkojen muotoja - enemmän kuin lineaarista tai polynomista regressiota - ja että normalisointi auttaa estämään hermoverkkoa ylikuormittamasta tietoja.

Tietokoneiden saaminen vastaamaan kysymyksiin

Tähän mennessä käsiteltyihin tekniikoihin - lineaarinen regressio, polynominen regressio ja hermostoverkot - olemme tarkastelleet vain sitä, kuinka pystymme kouluttamaan tietokoneita antamaan meille numeron sen antamista tiedoista riippuen. Kengän koon ja korkeuden malli antaa meille korkeusnumeron, kun annamme sille kenkäkokonumeron; Vastaavasti huonekustannusmalli huoneiden lukumäärän perusteella antaa meille kustannusnumeron, kun annamme sille huoneenumeron.

Mutta numerolähtö ei ole aina sitä mitä haluamme. Joskus haluamme, että koneoppimismalli vastaisi kysymykseen sen sijaan. Esimerkiksi, jos myyt taloa, et ehkä välitä pelkästään koneesta, joka selvittää talosi arvon, mutta haluat ehkä myös selvittää, myydäänkö talo kuuden viikon kuluessa.

Hyvä uutinen on, että saatavilla on koneoppimistekniikoita - samanlaisia ​​kuin jo olemme nähneet -, jotka vastaavat tiettyyn kysymykseen numeron antamisen sijasta. Koneoppimismalli voidaan perustaa antamaan kyllä ​​/ ei vastausta myyntitapahtumiin kuuden viikon kuluessa, kun toimitamme joitain perustietoja, kuten huoneiden lukumäärä, kustannukset ja neliömateriaalit. Ilmeisesti se ei voisi koskaan olla täydellinen malli, koska asuntomarkkinat eivät noudata tarkkoja sääntöjä, mutta koneoppimismallien avulla vastataan tämäntyyppisiin kysymyksiin suurella tarkkuudella (tiedon laadusta riippuen).

Lineaarista regressiota varten mukana oleva analogi olisi lineaarinen logistisen regression muoto. (Jälleen kerran, älä anna terminologian lykätä sinua. Taustalla olevat menetelmät ovat todella intuitiivisia.) Se voisi vastata kysymyksiin, kuten ”Onko tämä sähköposti roskapostia?” Tai ”Sadetaanko huomenna?” Molemmat menetelmät - lineaarinen ja logistinen regressio - laskisi parhaiten sopivan rivin, mutta he eroavat toisistaan ​​sen suhteen, kuinka ne käyttävät sitä riviä. Muistutuksena, tässä on lineaarinen regressiomalli, jota käytimme tietojoukossa ennustamaan meille toinen numero:

Logistinen regressio toimii samalla tavalla, mutta löytää parhaiten sopivan linjan, joka jakaa tiedot kahteen ryhmään. Tätä riviä voidaan sitten käyttää ennustamaan, onko uusi datapiste yhdessä ryhmässä vai toisesta riippuen siitä, millä puolella linjaa se on.

Lineaarinen logistinen regressiomalli roskapostisuodatukseen.

Aivan kuten lineaarisella regressiolla, myös logistista regressiota voidaan laajentaa käyrään vuorattuun polynomimalliin, jolla on enemmän joustavuutta datan muodon sovittamisessa. Pienellä ylimääräisellä vaivalla, hermoverkkoja voidaan käyttää myös vastaamaan kyllä ​​/ ei tietoja koskeviin kysymyksiin numeron palauttamisen sijaan.

Jos haluamme vastata monimutkaisempiin kysymyksiin kuin ne, jotka etsivät kyllä ​​/ ei vastauksia, voisimme joko käyttää tekniikkaa, joka tunnetaan nimellä multinomial logistic regression, tai voimme mukauttaa hermoverkkoja kykeneväksi käsittelemään myös näitä tapauksia. Tällä tavalla luodut mallit pystyisivät vastaamaan kysymykseen, kuten ”Tuleeko huomenna sateista, aurinkoista tai lunta?” ”Multinomial” -osa tarkoittaa vain, että vastaus voi olla yksi monista vaihtoehdoista. Esimerkissä kolme mahdollista vastausta olisivat sateisia, aurinkoisia tai lumisia.

Tämän koneoppimisen sarjan toinen osa on nyt saatavana ja löytyy täältä:

Jos pidät tästä artikkelista ja sen muodosta, kannattaa tutustua sarjaani ...