Udtryk som "maskinlæring", "dyb læring", "neurale netværk", "kunstig intelligens" eller "A.I.", "data science" og mere har været buzzwords i de sidste par år inden for teknologi. På grund af fremskridt inden for computerkraft og en stigning i mængden af ​​tilgængelige data, kan teknikker, der har været kendt i årtier, nu blive sat i en meningsfuld praksis.

Men hvad betyder de egentlig?

Matematiske ligninger giver maskiner en grundlæggende forståelse af noget, vi har lært som mennesker.

De fleste af os er opmærksomme på 10.000-fods forklaringen i retning af "Det handler om at undervise computere til at løse problemer for os," men mange mennesker er sandsynligvis ikke opmærksomme på, hvad der faktisk foregår under hætten. Grundlæggende om maskinlæring er enkle nok, intuitive nok og, endnu vigtigere, interessante nok til at blive afhentet af nogen på relativt kort tid.

Denne enkle forklaring af, hvordan maskinlæring bruges til at undervise en computer til at løse et problem, er målrettet mod dem, der ikke har kendskab til maskinlæring eller dem, der ønsker at starte fra bunden af.

Linjen med bedste pasform

Mange af os husker måske noget fra skolen, der kaldes “linjen med den bedste pasform” med henvisning til datapunkter, der er afbildet på en graf. Linjen med bedste pasform er en linje trukket gennem punkter på en sådan måde, at den repræsenterer det, dataene viser. Det kan se sådan ud:

En linje, der passer bedst gennem afbildede datapunkter. Alle billeder: Dan Harris

Dette koncept er faktisk maskinlæring på sit mest basale. I stedet for selv at plotte disse punkter og forsøge at tegne vores egen linje med den bedste pasform, kan vi give dataene til en computer.

Vi kan for eksempel forestille os, at de data, der er vist i grafen ovenfor, er skoens størrelse og højde for et antal mennesker. Punktet nederst til venstre repræsenterer en person, der er kortere end de andre, der har mindre fødder, og punktet øverst til højre repræsenterer en person, der er højere og har større fødder. Da skostørrelse og -højde ikke er fuldstændigt korrelerede, passer ikke alle punkterne til udsagnet om, at "højere mennesker har større fødder", men linjen med bedste pasform antyder, at det er sandt i almindelighed.

Med linjen med den bedste pasform kan vi komme med uddannede gætte om nye data. Antag, at du finder en sko. Du kan bestemme, hvilken størrelse det er, og derefter henvise til grafen for at give et veluddannet gæt om højden på skoens ejer:

Lav et gæt ved hjælp af den linje, der passer bedst.

Enkelt, ikke? I maskinlæring kaldes dette "lineær regression." Lad ikke navnet skræmme dig. Hvis du forstår alt ovenfor, forstår du lineær regression. Det er en enkel maskinlæringsteknologi, der bruges til at hjælpe med at foretage forudsigelser om datasæt, der har en lineær form.

Processen med lineær regression til maskinlæring går således:

  1. Saml datapunkter.
  2. Giv datapunkterne til et program, der kan anvende lineær regression på dem for at give en linje, der passer bedst.
  3. Brug linjen med den bedste pasform til at fremsætte forudsigelser om nye data.

Det kaldes "maskinlæring", fordi computeren (eller maskinen) har lært (eller oprettet en matematisk ligning: i dette tilfælde en for en linje) om, hvordan skostørrelse og -højde er relateret. Den matematiske ligning giver maskinen en grundlæggende forståelse af noget, vi har lært som mennesker: Generelt har højere mennesker større fødder.

Andre scenarier, hvor du kunne bruge lineær regression, gætter prisen for et hus baseret på hvor mange værelser det har eller gætter på, hvor mange tanter og onkler et barn har baseret på, hvor mange gaver de har under deres juletræ.

Problemet med lineær regression

Lineær regression er stor, når dataene formes lidt som en linje som i eksemplet ovenfor. Men hvor godt lærer det om formerne for datasæt, der ikke ligner linjer? Måske ser dataene sådan ud:

Datapunkter, der ikke rigtig har en lineær form.

Tilføjelse af en linje, der passer bedst til disse data, kan se sådan ud:

Ikke-lineære datapunkter med en linje, der passer bedst.

Linjen med bedste pasform gør et okay stykke arbejde med at matche dataene, men det ser ud til, at det kunne gøre meget bedre. Da formen på dataene ikke er helt en lige linje, passer linjen med den bedste egnede linie ikke korrekt til dataene. Dette er et problem i maskinlæring kendt som "underfitting": Linjen med bedste pasform passer ikke rigtig godt til dataene. Men hvis vi ændrer den linje, der passer bedst til at blive buet, kan det muligvis gøre et bedre stykke arbejde.

Ikke-lineære datapunkter med en buet linje med den bedste pasform.

Vi kan lettere forestille os at bruge denne kurve til at lave nøjagtige, uddannede gætte på samme måde, som vi gjorde med en lige linje, der passer bedst. Dette er en simpel udvidelse af den lineære regression kendt som "polynomial regression." Lad ikke navnet igen skræmme dig. Hvis du forstår, hvorfor buede linjer kan være mere nyttige end lige linjer til at udarbejde formen af ​​et datasæt, forstår du, hvordan polynomregression er nyttigt.

Nu hvor vi kan oprette en model - det vil sige finde en linie eller kurve, der passer bedst til et sæt datapunkter - for data, der enten har en lige eller buet form, er vi gjort, ikke? Ikke engang tæt på. Men vi kan bygge videre på disse koncepter.

Valg af nøjagtighed af en model

Problemet med polynomial regression er, at vi er nødt til at beslutte, hvor meget fleksibilitet vi skal give det, før vi bruger det, hvilket kan være vanskeligt. Lad os vende tilbage til vores første datasæt:

Det lineære sæt af datapunkter.

Vi har tidligere brugt lineær regression til at sætte en lige linje gennem disse datapunkter. Men i stedet for kunne vi have brugt polynomial regression til at placere en kurve, der passer bedst tilpas gennem de data, der ville fungere bedre end en lige linje. Det ser måske sådan ud:

Lineært datasæt med en kubisk best-fit kurve.

Én ting ved polynomial regression er, at vi kan fortælle det nøjagtigt, hvor kurvet vi ønsker, at den bedste fit-kurve skal være. Jo kurvere det er, jo mere fleksibilitet har det i beskrivelsen af ​​datasættet. Kurven for bedste pasform ovenfor er forholdsvis enkel, men vi kunne have gået længere og fundet en kurve med den bedste pasform som denne:

Lineært datasæt med en quartisk best fit-kurve.

Eller vi kunne have gjort den bedst egnede linje endnu curvier til noget lignende:

Lineært datasæt med en sextisk best-fit kurve.

Hver af de mest passende fit-kurver ovenfor ser ud til at gøre et bedre og bedre job med at beskrive datasættet, men noget føles lidt forkert, især i det sidste eksempel. Ved at give den polynomiale regression masser af fleksibilitet i beslutningen af ​​kurven for den bedst egnede kurve, har det forsøgt for hårdt at gå direkte gennem mange af datapunkterne. Resultatet er en kurve, der virker mindre nyttig til at forudsige end en lige linje med den bedste pasform.

Hvis vi f.eks. Anvender skostørrelsen og -højdeeksemplet igen, kan vi se ved at tilføje nogle gætter til grafen, at den meget kurvede kurve, der passer bedst tilpas, giver den samme højde for to forskellige skostørrelser:

En kurve, der passer bedst tilpas, der overfunderer dataene.

Dette problem i maskinlæring kaldes ”overfitting” og er det modsatte af underfitting. Det betyder, at den kurve, der passer bedst tilpas, ikke generaliseres meget godt. Det gør et godt stykke arbejde at matche de data, vi har, men det hjælper ikke med at give fornuftige gætter for nye data. En af de største bekymringer i maskinlæring er at finde en linie eller kurve, der er bedst egnet, der er lige krøllet nok til at efterligne den generelle form for et datasæt, men ikke er så krummet, at det ikke kan generaliseres for at give mulighed for gode gæt om nye datapunkter.

Det er her polynomial regression falder. Vi er nødt til eksplicit at fortælle polynomial regression, hvor kurvet vi ønsker, at den bedste fit-kurve skal være, før vi bruger den, og det er ikke en nem ting at beslutte, især når dataene er mere komplicerede.

I eksemplerne hidtil har vores datapunkter kun været i to dimensioner - f.eks. En værdi for skostørrelse og en anden for højde - hvilket betyder, at vi har været i stand til at plotte dem på to-dimensionelle grafer. Ved at gøre det er det forholdsvis let at se den generelle form på dataene. Men dette er ikke ofte tilfældet i maskinlæringsproblemer, der har mere end to dimensioner. Og hvis vi ikke ved, hvilken form dataene er, kan vi ikke rigtig fortælle polynomial regression, hvor kurvet vi laver en line, der passer bedst.

Med lidt ekstra indsats kan neurale netværk også bruges til at besvare ja / nej spørgsmål om dataene i stedet for at returnere numre.

En mulighed er at prøve polynomregression mange gange med forskellige niveauer af fleksibilitet og se, hvilken der fungerer bedst. Men hvad vi virkelig har brug for, er en maskinlæringsteknik, der har fleksibiliteten til at være så krøllet, som den skal være, men også begrænser dens kurvitet for at kunne gøre det godt med at generalisere nye data.

Dette fleksibilitetsspørgsmål er, når dataforskere generelt går videre fra lineær og polynomial regression for at bruge et neuralt netværk i stedet. Et neuralt netværk ligner i sig selv meget polynomregression, idet det er i stand til at lære datasæt, der har meget krumme former. De løser ikke problemet med overfitting alene, men når de kombineres med en teknik, der kaldes regularisering, har det en tendens til at alt fungerer.

Implementationsdetaljerne for, hvordan neurale netværk og regulering fungerer, er ikke rigtig vigtige for at forstå det grundlæggende i maskinlæring. De vigtigste ting at huske er, at neurale netværk er meget gode til at lære formerne for komplicerede datasæt - mere end lineær eller polynomisk regression - og at regulering hjælper med at forhindre, at det neurale netværk overfylder dataene.

Få computere til at besvare spørgsmål

For de hidtil dækkede teknikker - lineær regression, polynomial regression og neurale netværk - har vi kun set på, hvordan vi kan træne computere til at give os et tal afhængigt af de data, vi giver det. Skoens størrelse og højde model giver os et højdenummer, når vi giver det et sko størrelse nummer; På lignende måde giver modellen for husomkostninger i henhold til antallet af værelser os et omkostningsnummer, når vi giver det et værelsesnummer.

Men en taloutput er ikke altid, hvad vi ønsker. Nogle gange vil vi have, at en maskinlæringsmodel skal svare på et spørgsmål i stedet. For eksempel, hvis du sælger dit hus, er du måske ikke ligeglad med, at en maskine finder ud af, hvor meget dit hus er værd, men du vil måske også finde ud af, om huset vil sælge inden for seks uger.

Den gode nyhed er, at der er maskinelæringsteknikker til rådighed - svarende til dem, vi allerede har set -, der besvarer et specifikt spørgsmål i stedet for at give et tal. En maskinlæringsmodel kan indstilles for at give et ja / nej svar på spørgsmålet om salg inden for seks uger, når vi leverer nogle grundlæggende inputdata, som antallet af værelser, omkostninger og firkantede optagelser. Det kan naturligvis aldrig være en perfekt model, fordi boligmarkedet ikke følger nøjagtige regler, men maskinlæringsmodeller bruges til at give svar på disse typer spørgsmål med stor nøjagtighed (afhængigt af datakvaliteten).

Til lineær regression ville den involverede analoge være en lineær form for logistisk regression. (Igen, lad ikke terminologien udskyde dig. De underliggende metoder er faktisk meget intuitive.) Det kan svare på spørgsmål som "Er dette e-mail-spam?" Eller "Regner det i morgen?" Begge metoder - lineær og logistisk regression - ville beregne en linje med den bedste pasform, men de adskiller sig i, hvordan de bruger den linje. Som en påmindelse er her den lineære regressionsmodel, vi brugte til datasættet til at forudsige et andet nummer for os:

Logistisk regression fungerer på samme måde, men finder en linje, der passer bedst til hinanden, der opdeler dataene i to grupper. Denne linje kan derefter bruges til at forudsige, om et nyt datapunkt ligger i den ene eller den anden gruppe afhængigt af hvilken side af linjen den er på.

Lineær logistisk regressionsmodel til spamfiltrering.

Ligesom med lineær regression kan logistisk regression udvides til at bruge en krumlinet polynomisk model, der har mere fleksibilitet i formen til dataformen. Med lidt ekstra indsats kan neurale netværk også bruges til at besvare ja / nej spørgsmål om dataene i stedet for at returnere numre.

Hvis vi ønsker at besvare spørgsmål mere komplicerede end dem, der leder efter ja / nej-svar, kunne vi enten bruge en teknik kendt som multinomial logistisk regression, eller vi kan tilpasse neurale netværk til også at kunne håndtere disse sager. Modeller, der er oprettet på denne måde, vil være i stand til at besvare et spørgsmål som "Vil i morgen være regnfuld, solrig eller snedækket?" Den "multinomiale" del betyder bare, at svaret kan være en af ​​mange muligheder. I eksemplet ville de tre mulige svar være regnfuld, solrig eller snedækket.

Del to i denne maskinlæringsserie er nu tilgængelig og kan findes her:

Hvis du kan lide denne artikel og dens format, kan du tjekke min serie ...