# 2: Hvad du skal vide om maskinlæringsalgoritmer, og hvorfor du skal pleje

Dette er del 2 af den 6-delede tutorial, Step-by-Step PM Guide til Building Machine Learning Based Products.

Vi har tidligere drøftet den type forretningspåvirkning, ML kan have. Lad os nu gennemgå alle de tekniske termer, du har brug for, for effektivt at arbejde med et datavidenskabsteam og hjælpe dem med at skabe den største effekt for din virksomhed (eller i det mindste lyde som om du ved, hvad de taler om).

Algoritmer, modeller og data

På et konceptuelt niveau bygger vi en maskine, der givet et vist sæt input vil producere en bestemt ønsket output ved at finde mønstre i data og lære af dem.

En meget almindelig sag er, at en maskine starter med at se på et givet sæt input og et sæt output, der svarer til disse input. Den identificerer mønstre mellem dem og skaber et sæt komplekse regler, som det derefter kan anvende på nye input, som det ikke har set før, og producere den ønskede output. Givet kvadratoptagelserne, adressen og antallet af værelser (input) for eksempel ser vi efter at forudsige et hus salgspris (output). Lad os sige, at vi har data om firkantede optagelser, adresse og antal værelser på 10.000 huse samt deres salgspris. Maskinen “træner” sig selv på dataene - dvs. identificerer mønstre, der bestemmer, hvordan kvadratoptagelser, adresse og antal værelser påvirker et hus pris, så hvis vi giver det de 3 input til et hus, det ikke har set før, vil det kan forudsige husets pris.

Dataforskerens rolle er at finde den optimale maskine, der skal bruges på baggrund af input og det forventede output. Hun har flere skabeloner - kaldet algoritmer - til maskiner. De maskiner, hun fremstiller fra disse skabeloner til at løse et specifikt problem, kaldes modeller. Skabeloner har forskellige indstillinger og indstillinger, som hun kan finjustere for at producere forskellige modeller fra den samme skabelon. Hun kan bruge forskellige skabeloner og / eller justere indstillingerne for den samme skabelon til at generere mange modeller, som hun kan teste for at se, hvilke der giver de bedste resultater.

Bemærk, at modeloutput er korrekt / nyttigt til beslutningstagning i en vis grad af sandsynlighed. Modeller er ikke 100% korrekte, men er snarere "bedste gætte" i betragtning af den mængde data modellen har set. Jo flere data modellen har set, jo mere sandsynligt er det at give nyttig output.

Sættet med kendte input og output, som videnskabsmanden bruger til at "træne" maskinen - dvs. lade modellen identificere mønstre i dataene og skabe regler - er "træningssættet". Disse data er vant til med en eller flere “skabeloner” til at oprette en eller flere modeller, som de data forskere mener kan arbejde for at løse problemet. Husk, at selvom hun kun brugte en “skabelon” (algoritme), kan hun finpusse nogle indstillinger til at generere flere modeller fra den samme skabelon med forskellige indstillinger, så hun ender med flere modeller.

Når hun har fået et par af disse “træne” modeller, skal hun kontrollere, hvor godt de fungerer, og hvilken der fungerer bedst. Hun gør det ved hjælp af et nyt sæt data kaldet “valideringssæt”. Hun kører modellerne på indstillingerne til valideringssæt for at se, hvilke der giver resultater, der er tættest på udgange til valideringssæt. I vores eksempel - hvilken model vil forudsige en boligpris, der er tættest på den faktiske pris, hjemmet blev solgt til. Hun har brug for et nyt sæt data på dette tidspunkt, fordi modellerne blev oprettet på baggrund af deres præstation med træningssættet, så de er partiske til at arbejde godt på det sæt og ikke vil give en rigtig læsning.

Når hun validerede, hvilken model der udfører det bedst og valgte vinderen, er vores dataforsker nødt til at bestemme den faktiske ydelse af modellen, dvs. hvor god den bedste model hun kunne producere virkelig er til at løse problemet. Igen har hun brug for et nyt datasæt, fordi modellen tydeligt klarer sig godt i trænings- og valideringssættene - det var sådan, det blev valgt! Det endelige datasæt kaldes ”testsættet”. I vores eksempel vil hun kontrollere, hvor tæt de hjemmepriser, der er forudsagt for testsætets input, er til testsættets faktiske hjemmepriser. Vi vil drøfte måling af ydeevnen mere detaljeret senere.

Typer af "læring"

Den type algoritme, du kan anvende til at løse et maskinindlæringsproblem, afhænger meget af de data, du har. En nøgleklassificering af indlæringsalgoritmer er baseret på de data, der kræves for at opbygge modeller, der bruger dem: Uanset om dataene skal omfatte både input og output eller bare input, hvor mange datapunkter der kræves, og når dataene indsamles. Det inkluderer 4 hovedkategorier: Overvåget læring, uovervåget læring, semi-overvåget læring og forstærkende læring.

Overvåget læring

Den sag, vi drøftede detaljeret i det foregående afsnit, beskrev det, vi kalder ”overvåget læring”. Dette er en type indlæring, hvor en algoritme har brug for at se en masse mærkede dataeksempler - data, der består af både input og den tilsvarende output for at arbejde. Den "mærkede" del refererer til at mærke inputene med det resultat, modellen forsøger at forudsige, i vores eksempel på hjemmepriser.

Overvågede indlæringsalgoritmer se de mærkede data (også kendt som "grundlæggende sandhedsdata"), lære af dem og foretage forudsigelser baseret på disse eksempler. De kræver en masse mærkede data på forhånd: Mens antallet afhænger af brugssagen, er hundreder af datapunkter det blotte minimum for at komme til noget, der er fjernt nyttigt.

To klassiske problemer, der løses gennem overvåget læring, er:

  • Regression. At udlede værdien af ​​en ukendt variabel baseret på andre data, som den står til grund, ville have indflydelse på den variabel. To almindelige anvendelser er tid-forudsigelser - fx vores tidligere eksempel på at forudsige værdien af ​​et hjem baseret på variabler som placering og firkantede optagelser og forudsigelse af fremtidige værdier - fx at forudsige hjemmeværdier om året fra nu baseret på historisk og nuværende hjemmeværdi data. Regression er en statistisk metode, der bestemmer forholdet mellem de uafhængige variabler (de data, du allerede har), og den afhængige variabel, hvis værdi du ønsker at forudsige).
  • Klassifikation. Identificering af hvilken kategori en enhed tilhører ud af et givet sæt kategorier. Dette kan være en binær klassificering - fx at bestemme, om et indlæg vil blive viralt (ja / nej), og kategori med flere etiketter - f.eks. Mærkning af produktfotos med den passende kategori, produktet tilhører (ud af muligvis hundreder af kategorier).

Uovervåget læring

Ved uovervåget læring forsøger algoritmen at identificere mønstre i dataene uden at skulle mærke datasættet med det ønskede resultat. Dataene er "umærket" - det er bare "det", uden at der er knyttet nogen meningsfuld etiket. Et par klassiske problemer, der løses gennem uovervågede læringsmetoder, er:

  • Klyngedannelse. Givet et vist lighedskriterier, find ud af, hvilke poster der ligner hinanden mere. Et område, hvor klynger anvendes, er tekst - overvej søgeresultater, der returnerer mange dokumenter, der er meget ens. Clustering kan bruges til at gruppere dem sammen og gøre det lettere for brugeren at identificere de mest forskellige dokumenter.
  • Association. Kategoriser objekter i spande baseret på et eller andet forhold, så tilstedeværelsen af ​​et objekt i en spand forudsiger en anden tilstedeværelse. For eksempel anbefalingsproblemet “folk, der købte… også købte…”: Hvis analyse af et stort antal indkøbsvogne afslører, at tilstedeværelsen af ​​produkt X i en indkøbsvogn sandsynligvis indikerer, at produkt Y også vil være i indkøbskurven, Du kan straks anbefale produkt Y til alle, der sætter produkt X i deres indkøbskurv.
  • Anomali påvisning. Identificering af uventede mønstre i data, der skal markeres og håndteres. Standardapplikationer er bedrageri afsløring og sundhedsovervågning for komplekse systemer. (Bemærk: Der er overvågede anomali-påvisningsteknikker, men brugen af ​​ikke-overvågede teknikker er almindelig, da det per definition er ganske vanskeligt at få mærkede data for anomalier, og det er en forudsætning for at bruge overvågede teknikker.)

Semi-overvåget læring

Dette er en hybrid mellem overvåget og uovervåget læring, hvor algoritmen kræver nogle træningsdata, men meget mindre end i tilfælde af overvåget læring (muligvis en størrelsesorden mindre). Algoritmer kan være udvidelser af metoder, der bruges i enten overvåget og uovervåget læring - klassificering, regression, klynger, anomali-detektion osv.

Forstærkningslæring

Her starter algoritmen med et begrænset sæt data og lærer, når den får mere feedback om dens forudsigelser over tid.

Som du kan se, ud over den type problem, du prøver at løse, vil den mængde data, du har, påvirke de typer læringsmetoder, du kan bruge. Dette gælder også den anden vej - den læringsmetode, du skal bruge, kan kræve, at du får flere data, end du har, for effektivt at løse dit problem. Vi vil diskutere det mere senere.

Andre almindelige “Buzzwords”, der er værd at vide

Der er et par andre udtryk, som du ofte støder på, når du arbejder mere i rummet. Det er vigtigt at forstå deres forhold (eller mangel på dem) til de kategorier, vi diskuterede.

Dyb læring er vinkelret på ovennævnte definitioner. Det er simpelthen anvendelsen af ​​en bestemt type system til at løse indlæringsproblemer - løsningen kan overvåges, uden opsyn osv.

Et kunstigt neuralt netværk (ANN) er et læringssystem, der prøver at simulere, hvordan vores hjerne fungerer - gennem et netværk af "neuroner", der er organiseret i lag. Et neuralt netværk har mindst et inputlag - det sæt neuroner, gennem hvilke data indtages i netværket, et outputlag - de neuroner, hvorigennem resultater kommunikeres, og et eller flere lag derimellem, kaldet "skjulte lag" , som er lagene, der udfører beregningsarbejdet. Dyb læring er simpelthen brugen af ​​neurale netværk med mere end et skjult lag for at udføre en læringsopgave. Hvis du nogensinde bruger sådanne netværk - tillykke, kan du med rette også smide buzzword rundt!

Ensemblemetoder eller ensemblæring er brugen af ​​flere modeller for at få et resultat, der er bedre end hvad hver model kunne opnå individuelt. Modellerne kunne være baseret på forskellige algoritmer eller på den samme algoritme med forskellige parametre. Ideen er, at i stedet for at have en model, der tager input og genererer output - siger en forudsigelse af en eller anden art, har du et sæt modeller, som hver genererer en forudsigelse, og en proces til at veje de forskellige resultater og beslutte, hvad output fra kombineret gruppe skal være. Ensemblemetoder bruges ofte i overvåget læring (de er meget nyttige i forudsigelsesproblemer), men kan også anvendes i uovervåget læring. Dit datavidenskabsteam vil sandsynligvis teste sådanne metoder og anvende dem, når det er relevant.

Natural Language processing (NLP) er det felt inden for datalogi, der beskæftiger sig med sprogforståelse ved maskiner. Ikke alle typer NLP bruger maskinlæring. For eksempel, hvis vi genererer en "tag sky" - en visuel repræsentation af antallet af gange et ord vises i en tekst - er der ingen indlæring involveret. Mere sofistikeret analyse og forståelse af sprog og tekst kræver ofte ML. Nogle eksempler:

  • Generering af søgeord. Forståelse af emnet for en tekstdel og automatisk oprette nøgleord til det
  • Sprogudvidelse. Bestemmelse af den relevante betydning ud fra flere mulige fortolkninger af et ord eller en sætning (dette er en fantastisk forklaring med eksempler)
  • Følelsesanalyse. At forstå hvor skalaen udtrykt i en tekst ligger på skalaen fra negativ til positiv
  • Navngivet enhedsekstraktion. Identificering af virksomheder, mennesker, steder, mærker osv. I en tekst; dette er især vanskeligt, når navnene ikke er karakteristiske (f.eks. er firmaet "Microsoft" lettere at identificere end virksomheden "Target", som også er et ord på det engelske sprog)

NLP bruges ikke kun til sprogorienterede applikationer af ML såsom chatbots. Det bruges også i vid udstrækning til at forberede og forarbejde data, før det kan være et nyttigt input til mange ML-modeller. Mere om det senere.

Bemærk: Definitionerne ovenfor er beregnet til at formidle hovedideer og være praktiske; for en detaljeret videnskabelig definition henvises til andre kilder.

Hvordan problemet påvirker løsningen (og nogle flere vigtige ML-koncepter)

Det strategiske mål, du prøver at nå med ML, dikterer mange downstream-beslutninger. Det er vigtigt at forstå nogle grundlæggende ML-koncepter og deres indflydelse på dine forretningsmæssige mål for at sikre, at dit datavidenskabsteam kan producere den rigtige løsning til din virksomhed.

Valg af algoritme

En lille ændring i problemdefinitionen kan betyde, at der kræves en helt anden algoritme for at løse den, eller som minimum bygges en anden model med forskellige dataindgange. Et datingsite, der søger at identificere typer af fotos, der fungerer godt for brugere, kan bruge uovervåget indlæringsteknikker som klynge til at identificere almindelige temaer, der fungerer, mens hvis problemet er at anbefale potentielle datoer til en bestemt person, kan webstedet bruge overvåget læring baseret på input specifikke for den enkelte bruger, f.eks. fotos, de allerede har set på.

Funktionsvalg

ML-modeller identificerer mønstre i data. De data, du indlæser i modellerne, er organiseret i funktioner (også kaldet variabler eller attributter): Dette er relevante, stort set uafhængige stykke data, der beskriver et aspekt af det fænomen, du prøver at forudsige eller identificere.

Tag det forrige eksempel på et firma, der ønsker at prioritere opsøgende lån til ansøgere. Hvis vi definerer problemet som "prioritere kunder baseret på deres sandsynlighed for at konvertere", vil vi inkludere funktioner som svarskvoten for lignende kunder til virksomhedens forskellige typer opsøgende. Hvis vi definerer problemet som ”prioritere de kunder, der mest sandsynligt vil tilbagebetale deres lån”, inkluderer vi muligvis ikke disse funktioner, fordi de ikke er relevante for at vurdere kundens sandsynlighed for at betale.

Mål Funktionsvalg

Den objektive funktion er det mål, du optimerer til, eller resultatet, som modellen forsøger at forudsige. For eksempel, hvis du prøver at foreslå produkter, som en bruger kan være interesseret i, kan output fra en model være sandsynligheden for, at en bruger vil klikke på produktet, hvis de så det. Det kan også være sandsynligheden for, at brugeren vil købe produktet. Valget af objektiv funktion afhænger primært af dit forretningsmål - er du i dette eksempel mere interesseret i brugerengagement, i hvilket tilfælde din objektive funktion kan være klik eller opholdstid eller i direkte indtægter, i hvilket tilfælde din objektive funktion vil være indkøb? Den anden vigtige overvejelse er datatilgængelighed: For at lære algoritmen, skal du fodre det mange datapunkter, der er "mærket" som positive (de produkter, en bruger har set og klikket på) eller negative (de produkter, en bruger så og klikkede ikke på). Det er sandsynligt, at du har en størrelsesorden flere datapunkter for produkter, der blev klikket (eller ikke klikket) på kontra produkter, der blev købt.

Forklarbarhed og fortolkbarhed

Outputet fra ML-modeller er ofte et tal - en sandsynlighed, en forudsigelse af sandsynligheden for, at noget vil ske eller er sandt. I eksemplet med produktanbefalinger kan produkter på webstedet tildeles en sandsynlighed for, at en individuel bruger klikker på dem, og produkterne med den højeste sandsynlighed vises for brugeren. Men hvordan ved du, at det fungerer? I dette tilfælde er det relativt let at kontrollere, at algoritmen fungerer - du kan sandsynligvis køre en kort test og se. Men hvad nu hvis de enheder, du rangerer, er potentielle medarbejdere, og din model tester sandsynligheden for, at de er gode kandidater til en virksomhed? Vil en bruger (sige en ansættelses manager) bare tage dit ord for det, eller bliver de nødt til at forstå, hvorfor algoritmen rangerer person A før person B?

I mange tilfælde har du nogle, der forklarer at gøre. Imidlertid er mange ML-algoritmer en sort boks: Du indtaster mange funktioner og får en model, der er vanskelig at umulig at forklare. Mønstrene, som maskinen finder i dataene, er ofte så indviklede, at et menneske ikke vil være i stand til at forstå dem, selvom de var lette at sætte ord på.

I efterfølgende sektioner vil vi se, at behovet for forklarbarhed - i hvilken grad slutbrugeren har brug for at kunne forstå, hvordan resultatet blev opnået, og fortolkbarhed - i hvilken grad brugeren har brug for at drage visse konklusioner baseret på resultaterne, er en kritisk overvejelse i din tilgang til modellering, valg af funktioner og præsentation af resultater.

Modellering og præstationsmåling Faldgruber bør være opmærksom på

Dine datavidenskabsmænd vil beskæftige sig med nogle almindelige problemer med databehandling og modellering, men for at have produktive samtaler med dem er det nyttigt for PM'er at forstå et par almindelige faldgruber. Det er ikke en udtømmende liste, men inkluderer nogle af de mere almindelige problemer, der dukker op.

overfitting

En model siges at være ”overfittet”, når den følger dataene så tæt, at den ender med at beskrive for meget af støj i stedet for det sande underliggende forhold i dataene (se illustration). I det store og hele, hvis nøjagtigheden af ​​modellen på de data, du træner den med (de data, modellen "lærer af") er væsentligt bedre end dens nøjagtighed for de data, som du validerer og tester dem med, kan du have et tilfælde af overfitting .

Overfitting illustration

Præcision, husk og udvekslingen mellem dem

Der er to udtryk, der er meget forvirrende, første gang du hører dem, men er vigtige at forstå fuldt ud, da de har klare forretningsmæssige konsekvenser.

Nøjagtigheden af ​​klassificering (og andre almindeligt anvendte ML-teknikker såsom dokumentindhentning) måles ofte ved hjælp af to nøglemetriks: præcision og tilbagekaldelse. Præcision måler andelen af ​​ægte positive forudsigelser ud af alle positive forudsigelser, som algoritmen genererede, dvs.% af positive forudsigelser, der er korrekte. Hvis præcisionen er X%, er X% af algoritmens positive forudsigelser ægte positive og (100-X)% er falske positiver. Med andre ord, jo højere præcision, desto mindre falske positive vil du have.

Husk er andelen af ​​positive forudsigelser ud af alle de sande positive i dataene - dvs. hvilke% af de sande positive i de data, din algoritme formåede at identificere som positive. Hvis tilbagekaldelsen er X%, blev X% af de sande positive i dataene identificeret af algoritmen som positive, mens (100-X)% blev identificeret som (falske) negativer. Med andre ord, jo højere erindring, desto mindre falske negativer har du.

Der er altid en afveksling mellem præcision og tilbagekaldelse. Hvis du ikke ønsker nogen falske positiver - dvs. du har brug for højere præcision, vil algoritmen have flere falske negativer, dvs. lavere tilbagekaldelse, fordi det "foretrækker" at markere noget som et negativt end at forkert markere det som et positivt, og omvendt. Denne kompromis er en forretningsbeslutning. Tag låneansøgningseksemplet: Vil du hellere spille det sikkert og kun acceptere ansøgere, du er meget sikker på, fortjener at blive accepteret, hvilket øger chancerne for at afvise nogle gode kunder (højere præcision, lavere tilbagekaldelse = mindre falske positive, mere falske negativer) , eller acceptere flere låneansøgere, der bør afvises, men ikke risikerer at gå glip af gode kunder (højere tilbagekaldelse, men lavere præcision = mindre falske negativer, mere falske positive)? Selvom du simpelt hen kan sige, at dette er et optimeringsproblem, er der ofte faktorer, der skal overvejes, som ikke let kan kvantificeres, som f.eks. Kundesentiment (f.eks. Uretmæssigt afviste kunder vil være vrede og vokale), brandrisiko (f.eks. Dit omdømme som forsikrer afhænger af en lav lånefrekvens), juridiske forpligtelser osv., hvilket gør dette meget til en virksomhed, ikke en datavidenskabelig, beslutning.

Den ofte vildledende model nøjagtighed metrisk

Modelnøjagtighed alene er ikke et godt mål for nogen model. Forestil dig en sygdom med en forekomst på 0,1% i befolkningen. En model, der siger, at ingen patienter har sygdommen uanset input er 99,9% nøjagtig, men helt ubrugelig. Det er vigtigt at altid overveje både præcision og huske og afbalancere dem efter forretningsbehov. Nøjagtighed er en god beregning, når fordelingen af ​​mulige resultater er ganske ensartet, og betydningen af ​​falske positive og falske negativer også handler om lige, hvilket sjældent er tilfældet.

Gennemsnitlig statistik og ubalanceret træningsdata

Når du har at gøre med flere segmenter, som en model skal adressere, skal du se på effektivitetsmålinger for hvert segment (eller mindst de vigtige) separat. Tag for eksempel en klassificeringsmodel, der klassificerer fotos i en af ​​et sæt kategorier efter typen af ​​dyr på billedet. Modelens samlede præcisions- / tilbagekaldelsesnumre afspejler muligvis ikke en situation, hvor nogle kategorier har stor præcision, mens andre har meget lav præcision. Dette sker normalt, når du har en ubalance i dine træningsdata - sig, at du har 1.000 mærkede fotos af katte og hunde og kun 10 fotos af bjørne. Din generelle præcision kan være meget høj, da de fleste af katte- og hunde-fotos vil blive klassificeret korrekt, mens alle bjørne er forkert identificeret, fordi modellen har ringe eller ingen data, der er knyttet til dem. Hvis disse mindre hyppige kategorier er vigtige for din virksomhed, har du muligvis brug for en samordnet indsats for at få træningsdata for dem, så din model fungerer godt overalt.

Ok - det var ret langt, men forhåbentlig har du nu en god forståelse af alle de tekniske grundlæggende. Dernæst gennemgår vi den detaljerede, trin-for-trin-proces med at udvikle en model fra idéer til lancering i produktion.

Hvis du fandt dette indlæg interessant, ville du venligst klikke på det grønne hjerte nedenfor for at fortælle mig det, eller dele med en anden, der måske finder det nyttigt? Det ville helt gøre min dag!