Machine Learning: Hva er forskjellen på supervised learning og unsupervised learning?
I denne bloggposten belyser Arne Bergene Fossaa metodene supervised og unsupervised learning; metoder skreddersydd for ulike oppgaver. Arne er seniorkonsulent i Webstep Trondheim og utdannet Master of Science i Datateknikk fra NTNU, med videreutdanning til Mastergrad i teknologiledelse (MBA) fra MIT Sloan og NTNU. Maskinlæring er i vinden og kunnskapsdeling driver verden framover. I Webstep deler vi mer enn gjerne, på et område der vi har betydelig kompetanse.
Maskinlæring har sett en eksplosiv økning i interesse de siste årene – drevet på en side av at mer og mer data samles inn, og på den annen side at kostnaden for å prosessere og lagre dataen har gått kraftig ned. På algoritmefronten har dette muliggjort algoritmer og metoder som har gitt oss resultater som AlphaZero som kan slå de beste håndlagde sjakkcomputerene og ConvNet som kan beskrive bilder bedre enn det mennesker kan.
Fremskrittene har primært kommet innen supervised learning, som er en gruppe med metoder innen maskinlæring som bruker data der hvert datapunkt har et rett svar. Hvis man for eksempel vil trene opp et nevralt nett å finne sauer i bilder, tagger man rett og slett en masse bilder med om det finnes sauer i bildet. Det er så opp til det nevrale nettet å bygge en modell over hva som kjennetegner bilder med en sau. Det betyr at metoden ikke har noen kontekst om hva en sau «er». Den vil kun se hva som kjennetegner bilder av sauer (og hva som kjennetegner bilder som _ikke_ er sau). Det kan gjøre at modellen kan «se» ting som ikke er der – det er begrenset hvor mye et nevralt nettverk forstår kontekstuelt av hva som er på et bilde.
Et annet paradoks med supervised learning er at det krever at man på forhånd må klare å fange opp hva det rette svaret skal være. I noen tilfeller er man heldig og har en lang historie med automatisk innsamling av svar, mens i andre tilfeller kreves det at noen setter seg ned og manuelt beskriver hva hver eneste måling representerer. For at man skal få et representativt datasett kreves det at en svært stor mengde med data må kategoriseres med meget høy nøyaktighet, noe som kan være en dyr og tidkrevende prosess.
Med unsupervised learning er den store forskjellen at datasettene som brukes ikke har riktig svar. Utfordringen blir da at man må analysere data på bakgrunn av seg selv. Tradisjonelle metoder som brukes i unsupervised learning brukes gjerne i samarbeid med et menneske for å analysere data, for eksempel å finne grupper med datapunkter som er like (clustering), og finne datapunkter som avviker fra «normale» datapunkter (anomaly detection).
Det litt mer hårete målet gjør at det å utvikle mer avanserte løsninger til unsupervised learning er mer utfordrende. Med klassiske klassifiseringsproblemer som bildegjenkjenning har man et klart mål på hva man skal oppnå, og man kan bruke en stor mengde med testdata og få ut en score på hvor bra metoden er. Men med unsupervised learning er ikke nødvendigvis målet like godt definert, og man må bruke litt mer kreative løsninger for å verifisere at metodene man bruker er korrekte. Til gjengjeld er mengden med data som kan brukes for unsupervised learning mye større – man kan gi data der det ikke er noe «riktig» svar og se om det er mulig å finne sammenhenger og systemer i dataen som kan gi en bedre forståelse.
Og om man tar det et steg videre, er unsupervised learning nærmere hvordan et menneske lærer; når et menneske lærer seg hvordan verden er bygget opp ser ut er det gjennom utforskning av verden, uten å få et direkte «svar» på hva som er rett eller galt. Et interessant prosjekt som prøver å gjenskape akkurat det er Googles Deepmind. Dette prosjektet etterligner hvordan et menneske lærer ved å ikke gi det noen predefinerte riktige svar, men heller la system selv dedusere hvordan den skal kategorisere verden. Om dette prosjektet lykkes vil resultatet gi en mer «ekte» kunstig intelligens, som har en mer kontekstuell forståelse av den verden den oppfatter.
Kort sagt, supervised learning er perfekt for oppgaver der du har en god oversikt over problemområdet, der du har en stor mengde med data med riktig svar, og der du aner at det er skjult sammenhenger med en viss struktur i hvordan man kommer frem til svaret.
Unsupervised learning er perfekt for oppgaver der data ikke i seg selv har et riktig svar, men der det heller ønskes å analysere sammenhenger mellom forskjellige datapunkter for å lære seg mer om hvordan informasjon er strukturert.
Kilder:
Relatert / Kontaktpersoner
Vedlagte filer