Maskinlæring, kort forklart
Hva er maskinlæring?
Maskinlæring (ML) er et interessant område, men for mange et mysterium. Grunnen til dette kan være at området er teknisk utfordrende. Så, la oss prøve å forklare noe av dette mysteriet ved å se på noe av det grunnleggende.
For det første har ML tverrfaglig karakter, og benytter teknikker fra felt som datavitenskap, matematikk, statistikk og kunstig intelligens. ML arbeider med data og kan oppdage mønstre ved å trene modeller. Modellene bruker algoritmer som forbedres gjennom erfaring.
En ofte brukt definisjon av ML-begrepet ble gitt av Tom Mitchell i 1997:
"Et dataprogram sies å lære av erfaring E med hensyn til en oppgave T og en ytelsesmåling P, hvis dens ytelse på T, målt ved P, forbedres med erfaring E."
– Tom Mitchell, Carnegie Mellon University
La oss forklare denne definisjonen enda bedre. I vårt webinar ser vi på et datasett fra Kaggle som inneholder ansattinformasjon, og en etikett som indikerer om de har sluttet i jobben sin eller ikke. Vi kan definere at medarbeiderdatasettet er erfaring E, mens forutsigelser om en ansatt vil forlate jobben eller ikke, er vår oppgave T. Til slutt vil vi at modellen skal finne mønsteret og ha en god nøyaktighet, som er P-en vi måler.
Grunnstegene for maskinlæring:
1. Først trenger vi data. Så må vi samle data. Data kan komme fra flere kilder som databaser, internett eller filer som csv, excel eller txt. Jo mer variasjon, tetthet og volum av relevante data, desto bedre blir modellen vår.
2. Når vi har de nødvendige dataene, må vi forberede dem for analyseprosessen. Vurdering av kvaliteten på dataene er obligatorisk! Videre er det viktig å ta seg tid til å løse problemer som manglende eller utestående data. Til slutt bør dataene vises som et bord, vanligvis kalt en funksjonsmatrise. Hver kolonne i tabellen kalles en funksjonsvektor. Du vil at modellen skal være så enkel som mulig og generalisere godt til nye data. Dermed må du finne ut hvilke funksjoner som gir nøyaktige forutsigelser, eller opprette nye. Dette kalles funksjonsteknikk, en viktig og tidkrevende del av dataforberedelsesprosessen.
3. Når dataene er klargjort for datamaskinen, kan vi begynne å trene modellen vår. Dette trinnet innebærer å velge riktige algoritmer for oppgaven. Også de vaskede dataene er delt inn i to deler – øvelses- og testsett. Øvelsessettet brukes til å lære modellen, mens sistnevnte (testsettet) brukes til å evaluere modellen.
4. For å finne ut hvor bra modellen er, må du vurdere modellen. Du skal nå bruke modellen på testsettet. Husk at modellen din aldri har sett testsettet, og derfor vil det gi en indikasjon på hvor godt det har lært. I dette trinnet kan du se hvilke algoritmer som fungerer bra. Du får også en indikasjon på om du må justere parameterne til algoritmen din.
5. Gratulerer, du har nå utført én syklus av prosessen! Hvis du ikke er fornøyd med resultatene, må du forbedre ytelsen til modellen. Dette gjøres ved å gå gjennom alle, eller noen av trinnene igjen, og er hovedårsaken til at det går med betydelig tid til datainnsamling og forberedelse.
Typer maskinopplæringsoppgaver
Klassifisering. Dette gjelder byggemodeller som skiller data i forskjellige klasser. Vårt ansatteksempel er en klassifiseringsoppgave. Vi skiller de ansatte i klassen som har sluttet, og klassen som ikke har sluttet. Andre eksempler på klassifikasjonsoppgaver er bildeoppdagelse, medisinsk diagnose, talegjenkjenning, produktanbefaling etc.
Regresjon er den andre typen forutsigelse. Det er nært knyttet til klassifisering, men nå vil vi forutse en kontinuerlig variabel. Tenk på boligpriser, flyforsinkelse i minutter, feiltid på mekaniske komponenter eller antall sykler leid på et bestemt tidspunkt.
Både klassifisering og regresjon er former for såkalt overvåket læring. Programmet er innstilt på et sett med øvelseseksempler hvor du kjenner de riktige svarene, kalt etiketter. Når algoritmen har "lært" hva mønsteret er, kan du bruke modellen på nye fremtidige eksempler. Et spamfilter er et eksempel på overvåket maskinlæring. Spamfilteret lærer å oppdage skadelige e-poster ved å øve på sett med e-postmeldinger som man vet er spam, og ikke spam. Det kan da konkludere nøyaktig når en ny, ukjent e-post presenteres.
Clustering brukes til å analysere data som ikke har noen etiketter, noe som betyr at vi ikke har svaret for den spesifikke observasjonen. Tenk på det at vi ikke vet om den ansatte forlater oss eller ikke. Clustering forsøker deretter å finne et mønster i dataene, og grupperer dataene som ligner hverandre.
Assosiasjonsregellæring kan lettest forklares ved markedsanalyse av en handlekurv. Hvis en kunde kjøper løk og poteter, så vil de sannsynligvis kjøpe en hamburger. Dette er et eksempel, men indikerer hvordan denne typen læring fungerer. Selvfølgelig er det ikke bare å flytte hyllene i en butikk, men innenfor e-handel kan denne typen analyse være svært interessant.
Clustering og assosiasjoner er former for uovervåket læring. Her er det ingen ønsket utgang, så modellen må finne mønstrene fra observasjoner, i motsetning til overvåket, hvor man finner mønstre fra eksempler.
Hvorfor er det så populært i dag?
Hva som gjør maskinlæring så bra i dag er at vi har en overflod av data, det er billig å beregne og verktøyene som er nødvendige for å utføre analysene blir bedre og enklere å bruke. Programmeringsspråk som Python og R er relativt enkle å lære, og folk rundt om i verden skaper interessante maskinlæringspakker. Dette betyr at det er mulig å raskt produsere modeller som kan analysere større og mer komplekse datasett og levere nøyaktige resultater raskere. Ved å bygge prediktive modeller får organisasjoner et bedre bilde av å identifisere muligheter eller unngå ukjente risikoer.
Se vårt webinar om maskinlæring!
I webinaret vil vi forklare og gjennomgå trinnene med maskinlæring, for eksempel øvelse og evaluering av modeller. Vi vil også se på Microsofts skyteknologi og hvordan maskinlæring kan utføres ved hjelp av dra-og-slipp-funksjonalitet i Azure. Et Kaggle-datasett vil bli analysert i Azure Machine Learning, og vi vil utplassere modellen som skal brukes i produksjonen.
Referanser
1. https://www.toptal.com/machine-learning/machine-learning-theory-an-introductory-primer
2. https://en.wikipedia.org/wiki/Machine_learning
3. http://machinelearningmastery.com/machine-learning-is-popular/
4. http://nkonst.com/machine-learning-explained-simple-words/
5. https://www.quora.com/Why-is-machine-learning-being-given-so-much-importance
6. https://www.quora.com/What-is-machine-learning-4
7. http://www.sas.com/en_us/insights/analytics/machine-learning.html
8. https://www.analyticsvidhya.com/blog/2015/06/machine-learning-basics/
9. http://www.kdnuggets.com/2016/05/machine-learning-key-terms-explained.html
Data Analyst
Emir is Innofactor's Data Analyst working mainly with machine learning and analytics using Microsoft Cloud technology. He is proficient with the programming languages R and Python and works with big data frameworks such as Hadoop, Spark and R Server. Prior to joining Innofactor he worked within the offshore industry with statistical computing of environmental loads and analyzing large datasets from advanced structural models.