tillämpad AI – strategi och konsultation | InnoArchiTech
artiklar i denna serie
-
översikt, mål, inlärningstyper och algoritmer
-
dataval, förberedelse och modellering
-
modellutvärdering, validering, komplexitet och förbättring
-
modellprestanda och felanalys
-
oövervakat lärande, relaterade fält och maskininlärning i praktiken
introduktion
välkommen! Detta är den första artikeln i en femdelad serie om maskininlärning.
maskininlärning är ett mycket hett ämne av många viktiga skäl, och eftersom det ger möjlighet att automatiskt få djupa insikter, känna igen okända mönster och skapa högpresterande prediktiva modeller från data, allt utan att kräva explicita programmeringsinstruktioner.trots ämnets popularitet är maskininlärningens verkliga syfte och detaljer inte väl förstådda, förutom av mycket tekniska människor och/eller datavetenskapare.
denna serie är avsedd att vara en omfattande, djupgående guide till maskininlärning och bör vara användbar för alla från företagsledare till maskininlärningsutövare. Den täcker praktiskt taget alla aspekter av maskininlärning (och många relaterade områden) på hög nivå och bör fungera som en tillräcklig introduktion eller hänvisning till terminologin, begreppen, verktygen, övervägandena och teknikerna inom området.denna förståelse på hög nivå är kritisk om den någonsin är involverad i en beslutsprocess kring användningen av maskininlärning, hur det kan hjälpa till att uppnå affärs-och projektmål, vilka maskininlärningstekniker som ska användas, potentiella fallgropar och hur man tolkar resultaten.
Observera att de flesta av de ämnen som diskuteras i denna serie också är direkt tillämpliga på områden som prediktiv analys, datautvinning, statistiskt lärande, artificiell intelligens och så vidare.
maskininlärning definierad
den ofta citerade och allmänt accepterade formella definitionen av maskininlärning som anges av fältpionjär Tom M. Mitchell är:
ett datorprogram sägs lära av erfarenhet E med avseende på någon klass av uppgifter T och prestandamått P om dess prestanda vid uppgifter i T, mätt med P, förbättras med erfarenhet E
Följande är mitt mindre formella sätt att beskriva maskininlärning.
maskininlärning är ett underfält av datavetenskap, men kallas ofta också prediktiv analys eller prediktiv modellering. Dess mål och användning är att bygga nya och / eller utnyttja befintliga algoritmer för att lära av data, för att bygga generaliserbara modeller som ger exakta förutsägelser eller för att hitta mönster, särskilt med nya och osynliga liknande data.
Maskininlärningsprocessöversikt
Föreställ dig en dataset som en tabell, där raderna är varje observation (aka mätning, datapunkt, etc), och kolumnerna för varje observation representerar funktionerna i den observationen och deras värden.
i början av ett maskininlärningsprojekt delas en dataset vanligtvis i två eller tre delmängder. Minsta delmängder är tränings-och testdataset, och ofta skapas också en valfri tredje valideringsdataset.
när dessa dataundergrupper har skapats från den primära datauppsättningen tränas en prediktiv modell eller klassificerare med hjälp av träningsdata, och sedan bestäms modellens prediktiva noggrannhet med hjälp av testdata.
som nämnts använder maskininlärning algoritmer för att automatiskt modellera och hitta mönster i data, vanligtvis med målet att förutsäga viss målutgång eller svar. Dessa algoritmer är starkt baserade på statistik och matematisk optimering.
optimering är processen att hitta det minsta eller största värdet (minima eller maxima) för en funktion, ofta kallad en förlust eller kostnadsfunktion i minimeringsfallet. En av de mest populära optimeringsalgoritmerna som används i maskininlärning kallas gradient descent, och en annan är känd som den normala ekvationen.i ett nötskal handlar maskininlärning om att automatiskt lära sig en mycket exakt prediktiv eller klassificeringsmodell, eller hitta okända mönster i data, genom att utnyttja inlärningsalgoritmer och optimeringstekniker.
typer av lärande
de primära kategorierna av maskininlärning är övervakat, oövervakat och halvövervakat lärande. Vi kommer att fokusera på de två första i den här artikeln.
i övervakat lärande innehåller data svarsvariabeln (etikett) som modelleras och med målet att du vill förutsäga värdet eller klassen för de osynliga data. Oövervakat lärande innebär att man lär sig från en dataset som inte har någon etikett eller svarvariabel, och handlar därför mer om att hitta mönster än förutsägelse.
eftersom jag är ett stort NFL-och Chicago Bears-fan, kommer mitt team att hjälpa till att exemplifiera dessa typer av lärande! Antag att du har massor av Chicago Bears-data och statistik från när laget blev en chartered medlem av NFL (1920) fram till idag (2016).
Föreställ dig att varje rad av data i huvudsak är en lagbild (eller observation) av relevant statistik för varje spel sedan 1920. Kolumnerna i det här fallet och uppgifterna i var och en representerar dataens funktioner (värden) och kan innehålla funktionsdata som speldatum, spelmotståndare, säsongsvinster, säsongsförluster, säsongsslutande divisionsposition, post-season kaj (Y/N), post-season statistik och kanske statistik som är specifik för spelets tre faser: brott, försvar och speciallag.
i det övervakade fallet kan ditt mål vara att använda dessa data för att förutsäga om björnarna kommer att vinna eller förlora mot ett visst lag under ett visst spel och på ett visst fält (hemma eller borta). Tänk på att allt kan hända i fotboll när det gäller skador före och efter spel, väderförhållanden, dåliga domarsamtal och så vidare, Så ta detta helt enkelt som ett exempel på en tillämpning av övervakat lärande med ett ja eller nej svar (förutsägelse), i motsats till att bestämma sannolikheten eller sannolikheten för att ’Da Bears’ vinner.eftersom du har historiska data om vinster och förluster (svaret) mot vissa lag på vissa fotbollsplaner kan du utnyttja övervakat lärande för att skapa en modell för att göra den förutsägelsen.anta nu att ditt mål är att hitta mönster i historiska data och lära dig något som du inte redan vet, eller gruppera laget på vissa sätt genom historien. För att göra det kör du en oövervakad maskininlärningsalgoritm som kluster (grupperar) data automatiskt och analyserar sedan klusterresultaten.
med lite analys kan man finna att dessa automatiskt genererade kluster tycks gruppera laget i följande exempelkategorier över tiden:
-
starkt försvar, svagt löpande brott, starkt passande brott, svaga specialteam, playoff-kaj
-
starkt försvar, starkt löpande brott, svagt passande brott, genomsnittliga specialteam, playoff-kaj
-
svagt försvar, starkt allround-brott, starka specialteam, missade slutspelet
och så vidare
ett exempel på oövervakad klusteranalys skulle vara att hitta en potentiell anledning till att de missade slutspelet i det tredje klustret ovan. Kanske på grund av det svaga försvaret? Björnar har traditionellt varit ett starkt defensivt lag, och vissa säger att försvaret vinner mästerskap. Bara att säga…
i båda fallen kan var och en av ovanstående klassificeringar befinnas relatera till en viss tidsram, vilket man kan förvänta sig. Kanske präglades laget av en av dessa grupperingar mer än en gång under hela sin historia och under olika tidsperioder.
för att karakterisera laget på detta sätt utan maskininlärningstekniker måste man hälla igenom alla historiska data och statistik, manuellt hitta mönstren och tilldela klassificeringarna (kluster) för varje år med hänsyn till alla data och sammanställa informationen. Det skulle definitivt inte vara en snabb och enkel uppgift.
Alternativt kan du skriva ett explicit kodat program för att hälla igenom data, och det måste veta vilken lagstatistik som ska beaktas, vilka tröskelvärden som ska beaktas för varje stat och så vidare. Det skulle ta en betydande tid att skriva koden, och olika program skulle behöva skrivas för varje problem som behöver ett svar.
eller … du kan använda en maskininlärningsalgoritm för att göra allt detta automatiskt åt dig på några sekunder.
Maskininlärningsmål och utgångar
maskininlärningsalgoritmer används främst för följande typer av utdata:
-
Clustering (Unsupervised)
-
två-klass och flerklassklassificering (övervakad)
-
Regression: univariat, multivariat, etc. (Övervakad)
-
anomali detection (Unsupervised and Supervised)
-
rekommendationssystem (aka rekommendationsmotor)
specifika algoritmer som används för varje utmatningstyp diskuteras i nästa avsnitt, men först, låt oss ge en allmän översikt över var och en av ovanstående utdata eller problemtyper.
som diskuterats är clustering en oövervakad teknik för att upptäcka sammansättningen och strukturen hos en given uppsättning data. Det är en process att klumpa data i kluster för att se vilka grupperingar som uppstår, om några. Varje kluster kännetecknas av en innesluten uppsättning datapunkter och en klustercentroid. Klustercentroid är i princip medelvärdet (genomsnittet) för alla datapunkter som klustret innehåller, över alla funktioner.
klassificeringsproblem innebär att en datapunkt (aka observation) placeras i en fördefinierad klass eller kategori. Ibland tilldelar klassificeringsproblem helt enkelt en klass till en observation, och i andra fall är målet att uppskatta sannolikheten för att en observation tillhör var och en av de givna klasserna.
ett bra exempel på en tvåklassig klassificering är att tilldela klassen Spam eller skinka till ett inkommande e-postmeddelande, där skinka bara betyder ’inte spam’. Flerklassklassificering betyder bara mer än två möjliga klasser. Så i spam-exemplet skulle kanske en tredje klass vara ’okänd’.
Regression är bara ett fint ord för att säga att en modell kommer att tilldela ett kontinuerligt värde (svar) till en dataobservation, i motsats till en diskret klass. Ett bra exempel på detta skulle förutsäga slutkursen för Dow Jones Industrial Average på en viss dag. Detta värde kan vara valfritt antal och skulle därför vara en perfekt kandidat för regression.
Observera att ordet regression ibland används i namnet på en algoritm som faktiskt används för klassificeringsproblem, eller för att förutsäga ett diskret kategoriskt svar (t.ex. spam eller skinka). Ett bra exempel är logistisk regression, som förutsäger sannolikheter för ett givet diskret värde.
en annan problemtyp är anomalidetektering. Medan vi skulle älska att tro att data är väluppfostrade och förnuftiga, är det Tyvärr ofta inte fallet. Ibland finns det felaktiga datapunkter på grund av fel eller fel i mätningen, eller ibland på grund av bedrägeri. Andra gånger kan det vara så att avvikande mätningar indikerar en felaktig hårdvara eller elektronik.
Ibland är anomalier indikativa på ett verkligt problem och förklaras inte lätt, till exempel en tillverkningsfel, och i detta fall ger detektering av anomalier ett mått på kvalitetskontroll samt insikt om huruvida åtgärder som vidtagits för att minska defekter har fungerat eller inte. I båda fallen finns det tillfällen där det är fördelaktigt att hitta dessa avvikande värden, och vissa maskininlärningsalgoritmer kan användas för att göra just det.
den slutliga typen av problem behandlas med ett rekommendationssystem, eller kallas också rekommendationsmotor. Rekommendationssystem är en typ av informationsfiltreringssystem och är avsedda att ge rekommendationer i många applikationer, inklusive filmer, musik, böcker, restauranger, artiklar, produkter och så vidare. De två vanligaste metoderna är innehållsbaserad och samarbetsfiltrering.
två bra exempel på populära rekommendationsmotorer är de som erbjuds av Netflix och Amazon. Netflix ger rekommendationer för att hålla tittarna engagerade och levereras med mycket innehåll att titta på. Med andra ord, för att hålla människor som använder Netflix. De gör detta med sina rekommendationer ” för att du tittade på…”,” Top Picks for Alex ”och” Suggestions for you”.
Amazon gör en liknande sak för att öka försäljningen genom uppförsäljning, upprätthålla försäljningen genom användarengagemang och så vidare. De gör detta genom sina” kunder som köpte den här artikeln köpte också”,” rekommendationer för dig, Alex”,” relaterade till artiklar du tittade på ”och” fler artiklar att överväga ” rekommendationer.
maskininlärningsalgoritmer
Vi har nu täckt maskininlärningsproblemtyper och önskade utgångar. Nu kommer vi att ge en översikt över relevanta maskininlärningsalgoritmer på hög nivå.
här är en lista över algoritmer, både övervakade och oövervakade, som är mycket populära och värda att veta om på en hög nivå. Observera att några av dessa algoritmer kommer att diskuteras mer ingående senare i denna serie.
övervakad Regression
-
enkel och multipel linjär regression
-
beslutsträd eller skogsregression
-
artificiella neurala nätverk
-
ordinär regression
-
Poisson regression
- närmaste grannmetoder (t. ex. K-nn eller K-närmaste grannar)
övervakad tvåklass & Flerklassklassificering
-
logistisk regression och multinomial regression
-
artificiella neurala nätverk
-
beslutsträd , skog och djungler
-
SVM (stöd vektor maskin)
-
Perceptron metoder
-
Bayesian klassificerare (t. ex. naiva Bayes)
-
närmaste granne metoder (t. ex. eller K-närmaste grannar)
-
en mot alla multiclass
oövervakad
-
k-betyder klustring
-
hierarkisk klustring
Anomalidetektering
-
stödvektormaskin (en klass)
-
PCA (principle component analysis)
Observera att en teknik som ofta används för att förbättra modellprestanda är att kombinera resultaten från flera modeller. Detta tillvägagångssätt utnyttjar vad som kallas ensemblemetoder, och slumpmässiga skogar är ett bra exempel (diskuteras senare).
Om inget annat är det bra att åtminstone bekanta sig med namnen på dessa populära algoritmer och ha en grundläggande uppfattning om vilken typ av maskininlärningsproblem och utdata som de kan vara väl lämpade för.
sammanfattning
maskininlärning, prediktiv analys och andra relaterade ämnen är mycket spännande och kraftfulla fält.
även om dessa ämnen kan vara mycket tekniska, är många av de inblandade begreppen relativt enkla att förstå på hög nivå. I många fall är en enkel förståelse allt som krävs för att ha diskussioner baserade på maskininlärningsproblem, projekt, tekniker och så vidare.
del två i denna serie kommer att ge en introduktion till modellprestanda, täcka maskininlärningsprocessen och diskutera modellval och tillhörande kompromisser i detalj.
Håll dig uppdaterad!
om författaren
Alex är grundaren av InnoArchiTech och InnoArchiTech Institute, liksom författaren till AI for People and Business publicerad av O ’ Reilly Media.