# 2: Vad du behöver veta om maskininlärningsalgoritmer och varför du bör bry dig

Detta är del 2 i den 6-delade handledningen, steg-för-steg-PM-guiden för att bygga maskininlärningsbaserade produkter.

Vi diskuterade tidigare vilken typ av verksamhet ML kan ha. Låt oss nu granska alla tekniska termer du behöver veta för att effektivt arbeta med ett datavetenskapsteam och hjälpa dem att skapa den största effekten för ditt företag (eller åtminstone låta som om du vet vad de pratar om).

Algoritmer, modeller och data

På en konceptuell nivå bygger vi en maskin som ger en viss uppsättning ingångar kommer att producera en viss önskad utgång genom att hitta mönster i data och lära av den.

Ett mycket vanligt fall är att en maskin börjar med att titta på en given uppsättning ingångar och en uppsättning utgångar som motsvarar dessa ingångar. Den identifierar mönster mellan dem och skapar en uppsättning komplexa regler som sedan kan tillämpas på nya ingångar som den inte har sett förut och ger önskad utgång. Med tanke på kvadratmängd, adress och antal rum (ingången) vill vi till exempel förutse ett hems försäljningspris (utgången). Låt oss säga att vi har data om fyrkantiga bilder, adress och antal rum på 10 000 hus, samt deras försäljningspris. Maskinen kommer att "träna" sig själv på data - dvs. identifiera mönster som bestämmer hur kvadratmeter, adress och antal rum påverkar ett hems pris, så att om vi ger det de tre ingångarna för ett hus det inte har sett förut, så kan förutsäga husets pris.

Dataforskarens roll är att hitta den optimala maskinen att använda med tanke på ingångarna och den förväntade produktionen. Hon har flera mallar - kallade algoritmer - för maskiner. Maskinerna som hon producerar från dessa mallar för att lösa ett specifikt problem kallas modeller. Mallar har olika alternativ och inställningar som hon kan finjustera för att producera olika modeller från samma mall. Hon kan använda olika mallar och / eller justera inställningarna för samma mall för att generera många modeller som hon kan testa för att se vilka som ger bäst resultat.

Observera att modellutgången är korrekt / användbar för beslut i viss grad av sannolikhet. Modeller är inte 100% korrekta, utan är snarare "bästa gissningar" med tanke på hur mycket data modellen har sett. Ju mer data modellen har sett, desto mer troligt är det att ge användbar produktion.

Uppsättningen kända ingångar och utgångar som forskaren använder för att "träna" maskinen - dvs låta modellen identifiera mönster i data och skapa regler - är "träningsuppsättningen". Denna information används till med en eller flera "mallar" för att skapa en eller flera modeller som dataforskarna tror kan fungera för att lösa problemet. Kom ihåg att även om hon bara använde en "mall" (algoritm), kan hon finjustera några alternativ för att generera flera modeller från samma mall, med olika inställningar, så hon slutar troligen med flera modeller.

När hon har några av dessa ”tränade” modeller måste hon kontrollera hur bra de fungerar och vilken som fungerar bäst. Det gör hon med en ny uppsättning data som kallas ”valideringsuppsättningen”. Hon kör modellerna på valideringsuppsättningens ingångar för att se vilka som ger resultat som är närmast utgångarna för valideringsuppsättningen. I vårt exempel - vilken modell kommer att förutsäga ett hempris som är närmast det faktiska priset hemmet såldes till. Hon behöver en ny uppsättning data i detta skede eftersom modellerna skapades baserat på deras prestanda med träningsuppsättningen, så de är partiska att fungera bra på den uppsättningen och kommer inte att ge en riktig läsning.

När hon validerade vilken modell som presterar bäst och valde vinnaren måste vår datavetare bestämma den faktiska prestationen för modellen, dvs. hur bra den bästa modellen hon kunde producera egentligen är för att lösa problemet. Återigen behöver hon en ny datauppsättning eftersom modellen tydligt presterar bra på tränings- och valideringsuppsättningarna - det är så den valts! Den slutliga datauppsättningen kallas ”testuppsättningen”. I vårt exempel kommer hon att kontrollera hur nära de hempriser som förutses för testuppsättningens ingångar är de testuppsättningar som faktiska hempriser. Vi kommer att diskutera att mäta prestanda mer detaljerat senare.

Typer av "lärande"

Vilken typ av algoritm du kan använda för att lösa ett maskininlärningsproblem beror mycket på de uppgifter du har. En nyckelklassificering av inlärningsalgoritmer är baserad på de data som krävs för att bygga modeller som använder dem: Oavsett om uppgifterna måste inkludera både ingångar och utgångar eller bara ingångar, hur många datapunkter som krävs och när data samlas in. Det innehåller fyra huvudkategorier: Övervakat inlärning, oövervakat inlärning, halvövervakat lärande och förstärkningsinlärning.

Övervakad inlärning

Det fall vi diskuterade i detalj i det föregående avsnittet beskrev vad vi kallar ”övervakat lärande”. Detta är en typ av inlärning där en algoritm måste se en hel del märkta dataexempel - data som består av både ingångar och motsvarande utgång för att fungera. Den "märkta" delen avser att märka ingångarna med resultatet som modellen försöker förutsäga, i våra exempel på hempriser.

Övervakade inlärningsalgoritmer se de märkta data (alias data ”marken sanning”), lära av dem och göra förutsägelser baserade på dessa exempel. De kräver många märkta data i förväg: Även om antalet är beroende av användningsfallet är hundratals datapunkter det absoluta minimumet för att komma till allt fjärrvärt.

Två klassiska problem som löses genom övervakat lärande är:

  • Regression. Slutsatsen av värdet på en okänd variabel baserat på andra data som den anser vara orsak till skulle ha en effekt på den variabeln. Två vanliga användningsområden är tidsprognoser - t.ex. vårt tidigare exempel på att förutsäga värdet på ett hem baserat på variabler som plats och kvadratfot, och förutsäga framtida värden - t.ex. att förutse hemvärden ett år från och med nu baserat på historiskt och aktuellt hemvärde data. Regression är en statistisk metod som bestämmer förhållandet mellan de oberoende variablerna (de data du redan har) och den beroende variabel vars värde du vill förutspå).
  • Klassificering. Identifiera vilken kategori en enhet tillhör ur en viss uppsättning kategorier. Detta kan vara en binär klassificering - t.ex. att bestämma om ett inlägg kommer att bli viralt (ja / nej) och kategori för flera etiketter - t.ex. märkning av produktfoton med lämplig kategori som produkten tillhör (av eventuellt hundratals kategorier).

Oövervakat lärande

Vid oövervakad inlärning försöker algoritmen identifiera mönster i datan utan att behöva märka datauppsättningen med önskat resultat. Uppgifterna är "ommärkta" - det är bara "det", utan någon meningsfull etikett som är kopplad till den. Några klassiska problem som löses genom undervisningsmetoder utan övervakning är:

  • Klustring. Med tanke på vissa kriterier för likhet, hitta vilka objekt som liknar varandra. Ett område där kluster används är text - överväg sökresultat som returnerar många dokument som är mycket lika. Clustering kan användas för att gruppera dem tillsammans och göra det enklare för användaren att identifiera de mest distinkta dokumenten.
  • Förening. Kategorisera objekt i hinkar baserat på en viss relation, så att närvaron av ett objekt i en hink förutsäger närvaron av ett annat. Exempelvis rekommendationsproblemet "personer som köpte ... också köpte ...": Om en analys av ett stort antal kundvagnar visar att närvaron av produkt X i en kundvagn sannolikt indikerar att produkt Y också kommer att vara i kundvagnen, Du kan omedelbart rekommendera produkt Y till alla som sätter produkt X i sin kundvagn.
  • Anomali upptäckt. Identifiera oväntade mönster i data som måste flaggas och hanteras. Standardapplikationer är bedrägeri upptäckt och hälsoövervakning för komplexa system. (Observera: Det finns övervakade tekniker för avkänning av avvikelser, men användningen av tekniker utan övervakning är vanligt eftersom det per definition är ganska svårt att få märkta data för avvikelser, och det är en förutsättning för att använda övervakade tekniker.)

Semi-handledd lärande

Detta är en hybrid mellan övervakat och oövervakat lärande, där algoritmen kräver viss träningsdata, men mycket mindre än i fallet med övervakat inlärning (möjligen en storleksordning mindre). Algoritmer kan vara förlängningar av metoder som används i antingen övervakat och oövervakat inlärning - klassificering, regression, klustering, anomalidetektion etc.

Förstärkningslärande

Här börjar algoritmen med en begränsad uppsättning data och lär sig när den får mer feedback om sina förutsägelser över tid.

Som ni ser, utöver den typ av problem du försöker lösa, kommer mängden data du har att påverka de typer av inlärningsmetoder du kan använda. Detta gäller också på andra sätt - den inlärningsmetod du behöver använda kan kräva att du får mer data än du har för att effektivt lösa ditt problem. Vi kommer att diskutera det mer senare.

Andra vanliga ”Buzzwords” som är värda att veta

Det finns några andra termer du ofta stöter på när du arbetar mer i rymden. Det är viktigt att förstå deras relation (eller brist på dem) till de kategorier vi diskuterade.

Djupt lärande är ortogonalt enligt ovanstående definitioner. Det är helt enkelt tillämpningen av en specifik typ av system för att lösa inlärningsproblem - lösningen kan övervakas, utan övervakning etc.

Ett konstgjordt neuralt nätverk (ANN) är ett lärande system som försöker simulera hur hjärnan fungerar - genom ett nätverk av "nervceller" som är organiserade i lager. Ett neuralt nätverk har minst ett inmatningsskikt - uppsättningen av nervceller genom vilka data intas in i nätverket, ett utgångsskikt - de neuroner genom vilka resultat kommuniceras ut och ett eller flera lager däremellan, kallade "dolda lager" , som är de lager som gör beräkningsarbetet. Djupt lärande är helt enkelt användningen av neurala nätverk med mer än ett doldt lager för att utföra en lärande uppgift. Om du någonsin använder sådana nätverk - grattis, kan du legitimt slänga med dig surrordet också!

Ensemblemetoder eller ensemblärande är användning av flera modeller för att få ett resultat som är bättre än vad varje modell skulle kunna uppnå individuellt. Modellerna kan baseras på olika algoritmer eller på samma algoritm med olika parametrar. Tanken är att istället för att ha en modell som tar input och genererar output - säg en förutsägelse av något slag, har du en uppsättning modeller som var och en genererar en förutsägelse och en process för att väga olika resultat och bestämma vilken utgång från kombinerad grupp borde vara. Ensemblemetoder används ofta i övervakat lärande (de är mycket användbara i förutsägelsesproblem) men kan också tillämpas i icke-övervakat lärande. Ditt datavetenskapsteam kommer sannolikt att testa sådana metoder och tillämpa dem när det är lämpligt.

Naturligt språkbehandling (NLP) är det datavetenskapliga området som hanterar maskinförståelse. Inte alla typer av NLP använder maskininlärning. Om vi ​​till exempel genererar ett "taggmoln" - en visuell representation av antalet gånger ett ord visas i en text - är det inget lärande involverat. Mer sofistikerad analys och förståelse av språk och text kräver ofta ML. Några exempel:

  • Sökordsgenerering. Förstå ämnet för en texttext och automatiskt skapa nyckelord för det
  • Språk disambiguation. Bestämma den relevanta betydelsen utifrån flera möjliga tolkningar av ett ord eller en mening (detta är en bra förklaring med exempel)
  • Sentimentanalys. Att förstå var på skalan negativt till positivt ligger känslan uttryckt i en text
  • Namngivet enhet utvinning. Identifiera företag, personer, platser, varumärken etc. i en text; detta är särskilt svårt när namnen inte är särskiljande (t.ex. företaget "Microsoft" är lättare att identifiera än företaget "Target", som också är ett ord på engelska)

NLP används inte bara för språkinriktade applikationer av ML som chatbots. Det används också i stor utsträckning för att förbereda och förbereda data innan det kan vara en användbar inmatning i många ML-modeller. Mer om det senare.

Observera: Definitionerna ovan är avsedda att förmedla huvudidéerna och vara praktiska; för en detaljerad vetenskaplig definition hänvisas till andra källor.

Hur problemet påverkar lösningen (och några fler viktiga ML-koncept)

Det strategiska målet du försöker uppnå med ML kommer att diktera många nedströmsbeslut. Det är viktigt att förstå några grundläggande ML-koncept och deras inverkan på dina affärsmål för att se till att ditt datavetenskapsteam kan producera rätt lösning för ditt företag.

Algoritmval

En liten förändring av problemdefinitionen kan innebära att en helt annan algoritm krävs för att lösa den, eller åtminstone kommer en annan modell att byggas med olika dataingångar. En datingsida som vill identifiera typer av foton som fungerar bra för användare kan använda oövervakad inlärningsteknik som kluster för att identifiera vanliga teman som fungerar, medan om problemet är att rekommendera potentiella datum till en specifik person kan webbplatsen använda övervakat lärande baserat på input specifikt för den enskilda användaren, till exempel bilder som de redan har tittat på.

Funktionsval

ML-modeller identifierar mönster i data. Uppgifterna du matar in i modellerna är organiserade i funktioner (även kallad variabler eller attribut): Dessa är relevanta, till stor del oberoende data som beskriver någon aspekt av fenomenet du försöker förutsäga eller identifiera.

Ta föregående exempel på ett företag som vill prioritera uppsökande till lånesökande. Om vi ​​definierar problemet som ”prioritera kunder baserat på deras sannolikhet för att konvertera” kommer vi att inkludera funktioner som svarskvoten för liknande kunder till företagets olika typer av uppsökningar. Om vi ​​definierar problemet som ”prioritera de kunder som mest troligt kommer att betala tillbaka sina lån”, kanske vi inte inkluderar dessa funktioner eftersom de är irrelevanta för att utvärdera kundens sannolikhet att betala.

Mål Funktionsval

Objektfunktionen är målet du optimerar för eller resultatet som modellen försöker förutsäga. Om du till exempel försöker föreslå produkter som en användare kan vara intresserad av, kan resultatet från en modell vara sannolikheten för att en användare klickar på produkten om de såg den. Det kan också vara troligt att användaren köper produkten. Valet av objektiv funktion beror främst på ditt affärsmål - i det här exemplet är du mer intresserad av användarengagemang, i vilket fall din objektfunktion kan vara klick eller vistelsetid, eller i direkta intäkter, i vilket fall din objektiva funktion kommer att vara inköp? Det andra viktiga övervägandet är datatillgänglighet: För att algoritmen ska lära sig måste du mata in det många datapunkter som är "märkta" som positiva (de produkter som en användare såg och klickade på) eller negativa (de produkter en användare såg och klickade inte på). Det är troligt att du har en ordningsföljd med fler datapunkter för produkter som klickades (eller inte klickades på) kontra produkter som köpts.

Förklarbarhet och tolkbarhet

Produktionen från ML-modeller är ofta ett tal - en sannolikhet, en förutsägelse av sannolikheten för att något kommer att hända eller är sant. I exemplet med produktrekommendationer kan produkter på webbplatsen tilldelas en sannolikhet för att en enskild användare kommer att klicka på dem, och produkterna med högsta sannolikhet kommer att visas för användaren. Men hur vet du att det fungerar? I det här fallet är det relativt enkelt att verifiera att algoritmen fungerar - du kan antagligen köra ett kort test och se. Men vad händer om de enheter du rankar är potentiella anställda och din modell testar sannolikheten för att de är bra kandidater för ett företag? Kommer en användare (säger en anställningschef) bara ta ord för det, eller måste de förstå varför algoritmen rankade person A före person B?

I många fall har du några förklaringar att göra. Men många ML-algoritmer är en svart ruta: Du matar in många funktioner och får en modell som är svår att omöjligt att förklara. Mönstren som maskinen hittar i uppgifterna är ofta så indragna att en människa inte kommer att kunna fånga dem även om de var lätta att sätta ord på.

I efterföljande avsnitt ser vi att behovet av förklarbarhet - i vilken grad slutanvändaren behöver för att kunna förstå hur resultatet uppnåddes, och tolkbarhet - i vilken grad användaren behöver dra vissa slutsatser baserat på resultaten, är ett kritiskt övervägande i din strategi för modellering, val av funktioner och presentation av resultat.

Modellering och prestandamätning Fallgropar PM bör se upp för

Dina datavetare kommer att hantera några vanliga problem med databehandling och modellering, men för att ha produktiva konversationer med dem är det användbart för PM att förstå några vanliga fallgropar. Det är inte en uttömmande lista, men innehåller några av de vanligare frågorna som dyker upp.

Överanpassning

En modell sägs vara "övermässig" när den följer uppgifterna så noggrant att den slutar beskriva för mycket av bruset snarare än det verkliga underliggande förhållandet inom data (se bild). I stort sett, om noggrannheten för modellen på de data du tränar den med (data som modellen "lär sig av") är betydligt bättre än dess noggrannhet för de data som du validerar och testar den, kan du ha ett fall av övermontering .

Överpassande illustration

Precision, Recall och Tradeoff Between Them

Det finns två termer som är väldigt förvirrande första gången du hör dem, men som är viktiga att helt förstå eftersom de har tydliga affärsmässiga konsekvenser.

Klassificeringens noggrannhet (och andra vanliga ML-tekniker som dokumenthämtning) mäts ofta med två nyckelmätningar: Precision och återkallelse. Precision mäter andelen verkliga positiva förutsägelser av alla positiva förutsägelser algoritmen genererade, dvs procenten av positiva förutsägelser som är korrekta. Om precisionen är X%, är X% av algoritmens positiva förutsägelser sanna positiva och (100-X)% är falska positiver. Med andra ord, ju högre precision, desto mindre falska positiva resultat har du.

Återkallelse är andelen positiva förutsägelser av alla de sanna positiva effekterna i data - dvs vilka% av de sanna positiva effekterna i data som din algoritm lyckades identifiera som positiva. Om återkallelsen är X%, identifierades X% av de verkliga positiva effekterna i data av algoritmen som positiva, medan (100-X)% identifierades som (falska) negativ. Med andra ord, ju högre återkallelse desto mindre falska negativ kommer du att ha.

Det finns alltid en avvägning mellan precision och återkallelse. Om du inte vill ha några falska positiver - dvs. att du behöver högre precision, kommer algoritmen att ha fler falska negativer, dvs lägre återkallelse, eftersom det "föredrar" att märka något som ett negativt än att felaktigt beteckna det som ett positivt, och vice versa. Denna avvägning är ett affärsbeslut. Ta exempel på låneansökan: Skulle du hellre spela det säkert och bara acceptera sökande som du är mycket säker på förtjänar att bli accepterad och därmed öka chansen att avvisa några bra kunder (högre precision, lägre återkallelse = mindre falska positiva, mer falska negativa) , eller acceptera fler låneansökare som bör avvisas men inte riskera att missa goda kunder (högre återkallelse men lägre precision = mindre falska negativa, mer falska positiva)? Även om du på ett enkelt sätt kan säga att detta är ett optimeringsproblem, finns det ofta faktorer att tänka på som inte är lätt kvantifierbara såsom kundkänsla (t.ex. orättvisa avvisade kunder kommer att vara arga och stämma), varumärkesrisk (t.ex. ditt rykte som försäkringsgivare beror på en låga lånesatser), juridiska skyldigheter etc., vilket gör detta mycket till ett företag, inte ett datavetenskap, beslut.

Den ofta vilseledande modellnoggrannheten

Enbart modellnoggrannhet är inte ett bra mått för någon modell. Föreställ dig en sjukdom med en incidens på 0,1% i befolkningen. En modell som säger att ingen patient har sjukdomen oavsett ingång är 99,9% korrekt, men helt värdelös. Det är viktigt att alltid överväga både precision och återkalla och balansera dem efter affärsbehov. Noggrannhet är en bra metrisk när fördelningen av möjliga resultat är ganska enhetlig och vikten av falska positiva och falska negativer också handlar om lika, vilket sällan är fallet.

Medelvärden och obalanserad träningsdata

När du arbetar med flera segment som en modell måste adressera måste du titta på prestandametriker för varje segment (eller åtminstone de viktiga) separat. Ta till exempel en klassificeringsmodell som klassificerar foton i en av en uppsättning kategorier efter typen av djur på fotot. Modellens totala precision / återkallande nummer kanske inte återspeglar en situation där vissa kategorier har stor precision, medan andra har mycket låg precision. Detta händer vanligtvis när du har en obalans i dina träningsdata - säg att du har 1 000 märkta foton av katter och hundar och bara 10 bilder av björnar. Din totala precision kan vara mycket hög eftersom de flesta bilder av katter och hundar kommer att klassificeras korrekt, medan alla björnar är felidentifierade eftersom modellen har liten eller ingen information som är associerad med dem. Om de mindre frekventa kategorierna är viktiga för ditt företag kan du behöva en samlad ansträngning för att få utbildningsdata för dem så att din modell fungerar bra överallt.

Ok - det var ganska långt, men förhoppningsvis har du nu en god förståelse för alla tekniska grunder. Därefter går vi igenom den detaljerade, steg-för-steg-processen att utveckla en modell från idé till lansering i produktion.

Om du tyckte att det här inlägget var intressant, skulle du klicka på det gröna hjärtat nedan för att berätta för mig eller dela med någon annan som kanske tycker att det är användbart? Det skulle helt göra min dag!