Vad är maskininlärning

Maskininlärning är en område inom datavetenskapen som handlar om att ge datorer förmågan att lära sig själva. Annorlunda uttryckt kan man säga att maskininlärning är en teknik för att låta datorer lära sig från data istället för att de från början får instruktioner om hur de skall bete sig i varje förutbestämd situation. En förutsättning för att detta skall lyckas är en tillgång till data, ju mer desto bättre.

En definition på maskininlärning kommer från Arthur Samuel (1959): “Maskininlärning: Studieområde som ger datorer möjlighet att lära sig utan explicit programmering.”

En annan definition: “Ett datorprogram sägs lära av erfarenhet E med avseende på en viss klass av uppgifter T och prestationsmått P, om dess prestationsförmåga för uppgifter i T, mätt med P, förbättras med erfarenhet E.” (Tom Mitchell, 1998)

AI vs ML

Maskininlärning är inte samma sak som artificiell intelligens (AI) utan snarare ett delområde inom AI. Maskininlärning är dock ett viktigt område inom AI som behandlar praktiska problem som kan lösas med data, jämfört med AI som handlar mer om generell intelligens och att imitera mänsklig kognitiv förmåga. Forskningen inom AI kan brytas ner i följande problem (https://en.wikipedia.org/wiki/Artificial_intelligence#Goals) fritt översatta från engelska:

  • problemlösning/slutledningsförmåga
  • omvärldskunskap – tex vad är en bil och vilka egenskaper har den? Detta är saker som en dator måste veta för att kunna tolka information på ett intelligent sätt.
  • planering – vad målet och vilka handlingar kommer att leda till att målet uppnås?
  • Inlärning
  • Språkteknologi (på engelska natural language processing, NLP)
  • Perception, eller varseblivning – en dators förmåga att tolka sin omvärld
  • rörelse och manipulation
  • social intelligence
  • kreativitet
  • generell intelligens

AI nämns här bara för översiktens skull, kommande inlägg kommer mest att handla om maskininlärning och NLP.

Typer av algoritmer

Algoritmer för maskininlärning kan delas in i kategorier varav kategorierna övervakat lärande (supervised learning) och oövervakat lärande (unsupervised learning) är de vanligaste. Av dessa två är antagligen övervakat lärande vanligast.

Övervakat lärande

Supervised learning betyder att man har ett dataset där man redan vet det rätta svaret och vill skapa/lära en modell som sedan kan användas för att göra förutsägelser från data där det rätta svaret inte är känt. Datorer lär sig i detta fall på ungefär samma sätt som människor genom att studera många exempel på hur någonting görs.

Exempel på ett problem som kan lösas med maskininlärning: givet en persons ålder vilket är deras förväntade blodtryck?

http://people.sc.fsu.edu/~jburkardt/datasets/regression/x03.txt

Ålder Blodtryck
39 144
47 220
45 138
47 145
65 162
46 142
67 170
42 124
67 158
56 154
64 162
56 150
59 140
34 110
42 128
48 130
45 135
17 114
20 116
19 124
36 136
50 142
39 120
21 120
44 160
53 158
63 144
29 130
25 125
69 175

Ett annat namn för denna typ av problem är regressionsanalys och linjen som approximerar blodtryck (beroende variabel) för en viss ålder (oberoende variabel) kallas regressionslinje. I denna typ av analys vill man hitta samband mellan variabler, i detta fall ålder och blodtryck. Oftast finns det andra faktorer (oberoende variabler eller features som det kallas inom maskininlärning) som påverkar den beroende variabeln.

Översikt över övervakad inlärning

Övervakat lärande kan sägas fungera så här:

  1. Samla in data som kan användas för att träna en modell. Avsätt en del av datat för att kunna validera modellen. Observera att detta data innehåller alltid det rätta svaret.
  2. Träna modellen med träningsdatat och validera den mot valideringsdatat.
  3. Använd modellen på ny data där det svar saknas, i exemplet med blodtryck för viss ålder ovan skulle vi använda modellen genom att mata in en ålder för att förutsäga ett sannolikt blodtryck.

 

Vi skall i kommande artiklar ge mer detaljerade beskrivningar hur detta går till.

Möjliga användsområden