Maskininlärning

Maskininlärning (engelska: machine learning) är ett område inom artificiell intelligens, och därmed inom datavetenskapen. Det handlar om metoder för att med data "träna" datorer att upptäcka och "lära" sig regler för att lösa en uppgift, utan att datorerna har programmerats med regler för just den uppgiften. Området angränsar till statistik, datorseende och mönsterigenkänning. Datautvinning (datamining) är ett betydelsenära begrepp som avser en kombiniation av maskininlärning och statistiska metoder för att upptäcka och visualisera mönster i stora mängder data.

Maskininlärningsmetoder arbetar med data. Ofta kan datan delas in i indata (den information som datorn får tillgång till) och utdata (det svar som datorn förväntas ge efter att ha bearbetat indatan). En definition av maskininlärning har skapats av Tom M. Mitchell. Han definierar de algoritmer som studeras inom maskininlärning som "ett datorprogram sägs lära av erfarenhet E givet en uppgift T och ett prestandamått P om dess prestanda på uppgiften T, mätt med P, ökar med erfarenhet E".

Typer av problem och uppgifter 
Problem inom maskininlärning delas ofta in i två större kategorier, beroende på situationen de används i:
 Väglett lärande (supervised learning): Innebär lärande av mappning mellan indata och annoterad utdata (eng. Labeled data) i syfte att sedan förutspå utdata av tidigare osedd indata. För att exemplifiera denna typ av inlärning, föreställ dig en maskininlärningsmodell avsedd att fungera som ett skräppostfilter, det vill säga modellen är avsedd att känna igen och filtrera bort skräppost. Om denna modell tränas genom väglett lärande består träningsdatan av en mängd e-postmeddelanden, där varje e-postmeddelande är markerad som antingen "skräppost" eller "inte skräppost". Förutsatt att modellen tränas på rätt sätt med representativ data så kommer modellen lära sig att förutspå om ett tidigare osett e-postmeddelande bör markeras som "skräppost" eller inte  . 
 Icke-väglett lärande (unsupervised learning): I detta fall finns det ingen utdata, och datorn får således lära sig underliggande strukturer endast via indatan (och inte genom någon given förväntad utdata).

Till dessa två kategorier läggs ibland en tredje kategori:
Förstärkningsinlärning (reinforcement learning): Denna typ av inlärning bygger på att en agent som befinner sig i en miljö och kan utföra olika handlingar lär sig att agera optimalt genom att tilldelas belöningar för olika handlingar och deras konsekvenser. Agentens mål är att maximera en (viktad) summa av erhållna belöningar, vilket åstadkoms genom att denna väljer handlingar dels för att öka kunskapen om vilka handlingar som medför vilka belöningar (till kostnaden av att de direkta belöningarna kan bli små), och dels genom att utnyttja tidigare erfarenheter av vilka handlingar som ger stora belöningar. Denna avvägning i valet av agerande brukar kallas utforskande-utnyttjande-avvägningen.

En alternativ kategorisering av maskininlärning får man beroende på vilket format utdatan har:
 Inom klassificering består utdatan av en eller flera klasser. Ett exempel på klassificering är spamfiltrering, där indata är e-post-meddelanden och utdatan är klasserna "spam" och "inte spam". Detta är typiskt för väglett lärande.
 Inom regression tar utdatan kontinuerliga värden. Ett exempel på regression är att förutsäga vädret, där indata kan vara dagens väder och utdata temperaturen imorgon. Detta är typiskt för icke-väglett lärande.
 Inom klustring är syftet att indata skall delas upp i flera grupper. En skillnad mot klassificering är att det inte är klart vilka grupper som finns i förväg. Detta är typiskt för icke-väglett lärande.
 Dimensionalitetsreduktion förenklar indata genom att överföra den till en rymd med lägre dimensionalitet, exempelvis genom principalkomponentanalys.

Teori 
Ett kärnmål för en elev är att generalisera från sin erfarenhet. Generalisering i detta sammanhang är en inlärningsmaskins förmåga att utföra exakta nya, osynliga exempel/uppgifter efter att ha upplevt en inlärningsuppsättning. Träningsexemplen kommer från en allmänt okänd sannolikhetsfördelning (anses vara representativ för händelseutrymmet) och eleven måste bygga en allmän modell om detta utrymme som gör att den kan producera tillräckligt exakta förutsägelser i nya fall.

Tillämpningar 
Maskininlärning används bland annat inom robotik, programvaruutveckling, självkörande bilar, medicinsk diagnostik och strömningstjänster på internet.

Mjukvara 
Många maskininlärningsalgoritmer finns implementerade i öppen programvara.

Öppen programvara 
 scikit-learn
 TensorFlow
 PyTorch
 Weka
 GNU Octave

Se även 
Artificiellt neuronnät
Djupinlärning
Bayesiansk statistik
Genetisk programmering

Referenser

Externa länkar 
WEKA: ett Java-baserat bibliotek med maskininlärningsmetoder

Maskininlärning
Artificiell intelligens
Statistik