GAMMA FACET: En ny metod för universella förklaringar av Maskininlärningsmodeller

(Konstantin Hemker)

Författare: Jan Ittner, Konstantin Hemker & Malo Grisard

Snabba framsteg inom artificiell intelligens (AI) -teknik utrustar oss med en ständig utvecklande verktygssats för att analysera även de mest komplexa verkliga affärsproblemen och processerna. Toppmoderna maskininlärningsalgoritmer tillåter beslutsfattare att korrekt förutsäga affärskritiska resultat som kostnad, hastighet, kvalitet eller avkastning. Men oftare ligger inte det verkliga affärsvärdet av AI bara i att förutsäga resultat (vilka kunder kommer sannolikt att säga upp sitt kontrakt?) Utan i förklara och optimera dessa resultat (vad måste vi göra för att behålla värdefulla kunder?).

Dessutom är en chefs vilja att acceptera användningen av maskininlärning för att fatta dagliga beslut ofta är beroende av hans eller hennes förtroende för algoritmen, vilket i sin tur kräver viss förståelse för hur en AI-modell gör förutsägelser och beslut. Behovet av att förklara AI-modeller kommer att bli ännu viktigare när företag utvecklar en ökad medvetenhet om etisk AI och strävar efter att utforma AI-modeller som kan göra opartiska, säkra och ansvarsfulla beslutsfattande.

Använda Cooperative Game Theory för att förklara bidragsfunktioner

Human-förklarbar AI har sett stora framsteg under de senaste åren, särskilt med ankomsten av Shapley Additive Explanations (SHAP), en förenande teori och algoritm som tillämpar Cooperative Game Theory för att förklara individuella förutsägelser av en maskininlärningsmodell. Vad som gör SHAP så attraktivt är att resultaten, trots dess avancerade matematiska underlag, är intuitiva även för allmänheten.

SHAP kvantifierar bidraget från alla modellvariabler till ett givet förutsagt resultat. Vi kan till exempel använda en modell för att förutsäga en patients risk att utveckla diabetes, baserat på variabler som vikt, ålder och träningsvanor. Modellen kan berätta att risken är 67%. SHAP kommer att gå längre och till exempel berätta för oss att patientens ålder ökar diabetesrisken med 5%, medan hennes vikt minskar den med 2%.

Förklaringsrollen för modellinspektion och virtuella experiment

SHAP erbjuder ett mycket användbart sätt att förklara individuella förutsägelser. Fram till nyligen fanns det dock endast begränsade medel för att förklara modellen som helhet – förklara i allmänhet hur variabler agerar och interagerar för att komma med förutsägelser. GAMMA FACET presenterar ett nytt helhetssätt för att förklara maskininlärningsmodeller. Det gör det från två vinklar: För det första använder den en nyutvecklad modellinspektionsalgoritm för att förklara hur variabler i en prediktiv modell samarbetar för att förutsäga resultat genom att identifiera mönster över förklaringarna till många individuella förutsägelser. Till exempel kan GAMMA FACET finna att vikt och kroppsmassa måste övervägas i kombination för att bedöma diabetesrisk, medan kroppsmassindex och förhållande mellan höjd och midja kan vara utbytbara. För det andra tillämpar den en simuleringsmetod för att i ”virtuella experiment” avgöra hur systematiska förändringar av nyckelfaktorer påverkar förutsagda resultat, till exempel hur en åldersökning påverkar diabetesrisken hos en patientpopulation.

Fallstudie: Förhindra haverier i vattenborrning

Det bästa sättet att utforska dessa begrepp är genom ett verkligt exempel . Att borra en vattenbrunn är mycket farligt och kostsamt. Kostnaderna för sådan borrning drivs av den tid det tar att slutföra en brunn för att börja pumpa vatten från den. För att minska dessa kostnader uppmuntras borrmaskiner vanligtvis att borra i snabbare takt – mätt som Rate of Penetration (ROP). Beroende på markegenskaper kan daghastigheten variera från $ 30 000 till $ 250 000. Men det finns en kompromiss: Borrning snabbare ökar risken för incidenter, som bildningskollaps eller gasinfiltration. Vi kommer därför att bygga en maskininlärningsmodell för att förstå borrhastighetens inverkan på incidentrisken i samband med andra riskfaktorer.

För tydlighetens skull använder vi en förenklad dataset för detta exempel. . Datauppsättningen innehåller 500 observationer, med varje rad som representerar en borrning från det förflutna, tillsammans med en binär indikator för huruvida en hålborrning har inträffat under operationen.

Baserat på nuvarande och tidigare driftsförhållanden kan en prediktiv algoritm användas för att varna borroperatören om en hög incidentrisk. Operatörerna skulle då ha möjlighet att justera borrparametrar. Att veta när att agera räcker dock ofta inte.Operatören måste också förstå varför det finns incidenter, och vilka är de optimala borrningsförhållandena som balanserar borrkostnaden med kostnaden för en potentiell incident. GAMMA FACET kan hjälpa till att leverera dessa handlingsbara insikter.

scikit-learning och Model Pipeline

För att bilda ryggraden i vår förklarbara maskininlärningsmodell måste vi först bygga en modellrörledning som gör att vi kan spåra alla utdata från modellen tillbaka till de ursprungliga dataingångarna, över alla transformations- och träningssteg.

GAMMA FACET är utformat kring scikit-learning, de facto industristandard för maskininlärning i Python. scikit-learn erbjuder ett brett spektrum av regressions- och klassificeringsalgoritmer. Det erbjuder också ett universellt tillvägagångssätt för att bygga pipelines för maskininlärning, som kombinerar förbehandling av data med den faktiska modellpassningen i ett integrerat arbetsflöde.

FACET förbättrar scikit-learning på tre viktiga sätt :

  1. Spårbarhet från slut till slut : Medan native scikit-learning är byggt runt dumt och producerar alla utgångar som numeriska matriser, erbjuder FACET förbättrade versioner av mer än 150 scikit-lärtransformatorer, regressorer och klassificerare som levererar alla utgångar som pandadataramar. Dessutom innehåller FACET attribut för att mappa namnen på härledda funktioner tillbaka till de funktioner som de härstammar från. Denna kartläggning är viktig om funktionerna ska hänvisas till med namn längre nedströms i maskininlärningsrörledningen.
  2. Förbättrad pipelining : FACET introducerar ytterligare tvåstegs pipeline-klasser som innehåller ett förbehandlingssteg (vilket i sig kan vara en pipeline) och ett elevsteg. Vår erfarenhet är att detta till synes mindre tillägg leder till betydligt mer koncis och läsbar pipelining-kod.
  3. Förbättrad validering : FACET introducerar korsvaliderare för flera varianter av bootstrapping, en statistisk teknik som är särskilt relevant i samband med FACETs simuleringsfunktioner.

Med hänvisning till borrningsexemplet, här är hur vi kan konstruera en pipeline med hjälp av FACETs stöd för spårbarhet av funktioner:

Som du ser i det här kodavsnittet ser pipelinen ovan nästan exakt ut som en rörledning konstruerad med ren scikit-lär . Observera dock att vi importerar alla rörledningar, transformatorer och uppskattningar från FACET: s sklearndf -paket och att namnen på de välbekanta scikit-lär -klasserna alla har ”DF” -suffix. Observera också den speciella ClassifierPipelineDF, en av FACET: s förbättrade rörledningar som omfattar ett valfritt förbehandlingssteg, tillsammans med ett efterföljande elevsteg som garanteras vara en klassificerare. Som du kan se i utgången är förbehandlingsresultatet en dataram som bevarar alla funktionsnamn.

Därefter vill vi ställa in modellens hyperparametrar med FACET: s LearnerRanker. LeanerRanker fungerar på samma sätt som scikit-lears grid searcher, men gör det mycket lättare att låta flera typer av modeller konkurrera mot varandra, snarare än att optimera hyper- parametrar för en enstaka modell:

Modellförklaringar: Vad orsakar incidenter?

Vi har nu en avstämd och utbildad modell som förutsäger incidentrisken för våra borrningsoperationer. Men vi vill vara mer proaktiva än att bara distribuera modellen och svara ad hoc på förutsagda risker. Istället vill vi veta vad modellen har lärt sig om varför och när händelser inträffar. Vi vill att modellen ska hjälpa oss att förstå hur vi systematiskt kan förändra vårt sätt att använda våra borrmaskiner för att minska incidentrisken.

FACET närmar sig modellförklaringen som en kombination av två metoder:

  1. Förklara globala funktionsinteraktioner : Den här metoden berättar vad modellen har lärt sig om hur funktioner bidrar både individuellt och kollektivt till resultat. FACET introducerar en ny algoritm som för varje par funktioner kvantifierar synergi, redundans och oberoende (se nedan för mer information). Denna algoritm är baserad på SHAP vector decomposition , ett matematiskt ramverk som vi utvecklat för globala modellförklaringar och som vi kommer att beskriva närmare i en kommande publikation.
  2. Modellbaserade simuleringar : Med den här metoden kan vi identifiera hur systematiska funktionsändringar hjälper till att uppnå en önskat resultat, i detta fall för att minimera risken för en borrstörning. Vi uppnår detta resultat genom att skapa syntetiska prover för en rad värden och sedan använda modellen för att utvärdera förändringar i förutsagd risk. Som du kommer att se nedan är förståelse för globala funktionsinteraktioner (dvs. metod 1) ett viktigt steg för att säkerställa att våra simuleringar är giltiga under verkliga förhållanden.

När de används i vårt borrningsexempel , FACET: s LearnerInspector -klass ger en översikt över funktionsinteraktioner genom att beräkna parvis synergi och redundans :

Redundans och synergi matris

Resultaten är två matriser som för varje par funktioner berättar oss i procent graden av synergi och redundans mellan dessa två funktioner.

Synergi

Synergi är i vilken grad modellen kombinerar information från en funktion med en annan för att förutsäga målet. Låt oss till exempel anta att vi förutsäger kardiovaskulär hälsa med hjälp av ålder och kön, och den anpassade modellen innehåller en komplex interaktion mellan dem. Detta innebär att dessa två funktioner är synergistiska för att förutsäga kardiovaskulär hälsa. Vidare är båda funktionerna viktiga för modellen och att ta bort någon av dem skulle påverka prestandan avsevärt. Låt oss anta att ålder är en viktigare egenskap än kön, så ålder bidrar mer till den kombinerade förutsägelsen än kön. Detta asymmetriska bidrag betyder att synergin för (ålder, kön) är mindre än synergin för (kön, ålder). För att tänka på det på ett annat sätt, föreställ dig att förutsägelsen är en koordinat du försöker nå. Från din utgångspunkt kommer ålder dig mycket närmare denna punkt än kön, men du behöver båda för att komma dit. Synergi återspeglar det faktum att kön får mer hjälp från ålder (högre synergi ur könens perspektiv) än ålder gör från kön (lägre synergi från åldersperspektivet) för att nå förutsägelsen.

Detta leder till en viktig punkt: synergi är en naturligt asymmetrisk egenskap hos den globala informationen. Två samverkande funktioner bidrar till modellförutsägelserna. Synergi uttrycks som en procentsats från 0% (full autonomi) till 100% (full synergi). Observera att synergistiska funktioner kan vara helt okorrelerade och att de kan vara svåra att upptäcka genom regelbundna undersökningsanalyser.

För att tolka synergimatrisen är den första funktionen i ett par raden (”Perspektiv från”), och den andra innehåller kolumnen. I vårt exempel på borrning rapporterar FACET att ”ur perspektivet” av rotationshastighet kombineras 67% av informationen med vikten på biten för att förutsäga fel. Detta verkar förnuftigt i sammanhanget, eftersom borrning med både hög bitvikt och hög rotation kan ha en oproportionerligt stor inverkan på slitaget på utrustningen och så drastiskt ökar incidentrisken. Det är förståeligt att synergin också är hög med tanke på vikten på biten (61%). Detta säger oss att vi bör titta på rotationshastighet och vikt på biten tillsammans för att förstå deras bidrag till incidentrisk.

Redundans

Redundans är i vilken grad en funktion i en modell duplicerar informationen för en andra funktion för att förutsäga målet. Låt oss till exempel anta att vi hade husstorlek och antal sovrum för att förutsäga huspris. Dessa funktioner fångar liknande information eftersom ju fler sovrum desto större är huset och sannolikt ett högre pris i genomsnitt. Redundansen för (antal sovrum, husstorlek) kommer att vara större än redundansen för (husstorlek, antal sovrum). Detta beror på att husstorlek ”vet” mer om vad antalet sovrum gör för att förutsäga huspris än tvärtom. Därför finns det större redundans ur antalet sovrum. Ett annat sätt att tänka på är att ta bort husstorlek kommer att vara mer skadligt för modellprestanda än att ta bort antalet sovrum, eftersom husstorlek bättre kan kompensera för frånvaron av antal sovrum. Detta innebär också att husstorlek skulle vara en viktigare funktion än antalet sovrum i modellen.

Det viktiga är här att liksom synergi är redundans en naturligt asymmetrisk egenskap hos den globala informationsfunktionen par har för att förutsäga ett resultat. Redundans uttrycks som en procentsats som sträcker sig från 0% (full unikhet) till 100% (full redundans). Redundans kan inte nödvändigtvis upptäckas i utforskande analys om två funktioner är överflödiga men inte linjärt korrelerade.

Som med synergi är matrisraden funktionen ”perspektiv från” i radkolumnens funktionspar.För vårt borrningsexempel observerar vi två par mycket överflödiga funktioner:

  • Det första redundanta funktionsparet är ROP och IROP. Redundansen är likartad från endera funktionens perspektiv (75%) eftersom den ena är den inversa av den andra och så att de kan ersätta varandra i modellen för incidentrisk. Detta är ett bra exempel på FACETs förmåga att ta upp överflöd mellan funktioner även när de inte är linjärt korrelerade.
  • Det andra paret av överflödiga funktioner är arbetsdjup och håldiameter. Ur håldiameterns perspektiv dupliceras 53% av informationen med arbetsdjupet för att förutsäga fel. Intuitivt kan vi se varför eftersom arbetsdjupet och håldiametern är starkt anslutna då borrmaskiner använder tunnare borrkronor när de bor djupare i jorden. Anledningen till att redundansen för (operationens djup, håldiameter) är något lägre än (hålets diameter, operationens djup) är att driftsdjupet är en något viktigare funktion i modellen.

FACET kan producera en andra typ av diagram som är mycket användbart för att bedöma synergi- eller redundansrelationer som ett hierarkiskt klustringsdendrogram. Observera att detta tillvägagångssätt är beroende av en symmetrisk variant av redundans (eller synergi) som inte bara ger ett förenklat perspektiv utan ett funktionsavstånd (1 – metris) för kluster. I vårt exempel är vi intresserade av redundansdendrogrammet:

Facets funktion redundans dendrogram

Redundans dendrogrammet avslöjar kluster av överflödiga funktioner, indikerar graden av ömsesidig redundans bland funktioner i ett kluster (ju längre vänsterfunktionerna slås samman i dendrogrammet, desto starkare är deras redundans) och visar, med hjälp av en färgskala, funktionsvikt för enskilda funktioner och kluster av funktioner.

Våra två par överflödiga funktioner är tydligt igenkännliga i dendrogrammet, inklusive deras kombinerade betydelse. Genomträngningshastigheten (ROP) är mycket överflödig med sin inversa funktion (IROP) (> 80% redundans) och den kombinerade vikten av båda funktionerna är 36%. Med tanke på att vi vill simulera ROP tar vi bort IROP för att se till att funktionen vi simulerar är en unik bidragsgivare till resultatet (vi kommer att ge en mer detaljerad förklaring i nästa avsnitt).

Det finns en intressant observation när vi genererar ett nytt redundansdendrogram efter att vi tagit bort IROP och återutbildat modellen: Funktionsvikten av ROP har gått upp till 35%, vilket indikerar att ROP har tagit rollen som det tidigare ROP / IROP-klustret för att förklara ROP -relaterade bidrag till händelserisken.

Redundanslänk dendrogram efter funktionsbeskärning

Simuleringsfunktionshöjning

Efter inspektion modellen har vi kommit fram till en god förståelse för hur modellen gör en förutsägelse och hur prediktorerna interagerar med varandra.

Ofta leder dessa insikter direkt till en ”vad om” -fråga: H kan vi systematiskt ändra en påverkbar variabel för att förbättra resultatet? I vårt exempel vill vi förstå hur förändringar i penetrationsgraden påverkar händelserisken. Ur ekonomisk synvinkel kommer borroperatörer att försöka borra så snabbt som möjligt samtidigt som de bibehåller säkerheten och minskar fel. Liknande frågor gäller andra affärssammanhang, där målet är att sänka kostnaderna, maximera avkastningen, behålla kunder eller, faktiskt, optimera alla affärsresultat baserat på data.

FACET: s simuleringsmetod utpekar en funktion och kör sedan en serie ”virtuella experiment” för en rad värden, som låtsas för varje experiment att den simulerade funktionen alltid tog det givna värdet för varje historisk observation.

Med detta tillvägagångssätt är det avgörande att funktionen vi simulerar är inte överflödig med någon annan funktion i modellen. Om du gör det riskerar du att skapa osynliga scenarier genom att justera värdet på en funktion men inte dess överflödiga syskon. Om vi ​​i vårt exempel skulle simulera ROP för en rad värden, men behöll IROP i modellen, skulle vi mer än troligt skapa osynliga scenarier.

En simulering utförs i två steg: Först, vi bestämmer oss för en funktion som ska simuleras och väljer en av FACET: s partitioner -klasser för att dela upp intervallet med tidigare observerade värden för den funktionen i partitioner . För det andra kör vi en simulering per partition, varje gång vi fastställer värdet för den simulerade funktionen till partitionens centrala värde över alla observationer.

Därför ställer simuleringen i vårt exempel frågan: “Vad skulle min genomsnittliga incidentrisk har varit om jag alltid har borrat med X m / s ROP?”ROP mäts som ett reellt tal, så vi använder en ContinuousRangePartitioner för att skapa en serie av lika stora partitioner inom det värde som historiskt observerats för ROP. Det är viktigt att vi bara simulerar inom det historiskt observerade intervallet av värden, eftersom modellen har tränats på värden i det intervallet och vanligtvis inte kommer att kunna komma med giltiga extrapoleringar utanför området.

Simulering Steg 1 – Partitionera de observerade värdena för ROP-funktionen i hinkar av samma storlek

Använda den bästa modellen, som vi tidigare identifierat från LearnerRanker, bestämmer simulatorn nu den genomsnittliga förutspådda incidentrisken för varje partition. FACET stöder bootstrapping, vilket gör att vi kan upprepa varje simulering många gånger på variationer av modellen som tränats på olika delmängder av data, och använda fördelningen av simuleringsresultat för att kvantifiera nivån på förtroende för simuleringen.

Simulering Steg 2 – Simulera resultat för olika värden i ROP-funktionen

Visualiseringen ovan visar effekten av ROP på incidentrisken samtidigt som det ger en känsla av förtroende i simuleringen. X-axeln visar de olika partitionerna som simuleringen kördes för. Staplarna under x-axeln visar antalet observationer i originalprovet som faller inom partitionen, vilket indikerar det stöd vi har för varje simulerat värde. (Observera hur konfidensintervallet vidgas mot marginalerna eftersom vi ser färre faktiskt observerade värden för dessa partitioner.) Den centrala stigande linjen representerar den medianförutspådda incidentrisken för varje partition, medan de yttre linjerna visar 95% konfidensintervall för alla tvärsnitt. valideringen skiljer sig från vår förutsägelse.

Simuleringen bekräftar att sannolikheten för incidenten ökar avsevärt när vi ökar ROP. Det ger en inblick i risknivåerna vid snabbare ROP. Vi kan också se att det har förekommit flera tillfällen där ROP kördes på en farligt hög nivå (> 30ft / h), vilket ledde till händelsesannolikheter över 70%.

Vad är nästa?

Ur ett affärsperspektiv är det extremt värdefullt att ha svar på dessa ”vad om” -frågor för riskbedömningen och hitta sätt att förbättra nuvarande processer. I vårt exempel skulle resan inte sluta här. Baserat på resultaten från simuleringen kan ett nästa steg vara att genomföra en kostnads-nyttoanalys av borrning med en långsammare eller snabbare ROP för att uppnå bästa avvägning mellan borrkostnader och den ekonomiska risken för en borrhändelse.

Du kan enkelt ta GAMMA FACET för en snurr. conda install gamma-facet -c bcg_gamma -c conda-forge och kolla in vårt GitHub-arkiv för ytterligare dokumentation och fungerade exempel.

Tack

Detta paket skulle det har inte varit möjligt utan tillgång till två utestående Python-paket för maskininlärning och modellförklarlighet:

1. scikit-learn ger eleverna och transformatorerna som utgör de underliggande maskininlärningsrörledningarna för FACET. Dessutom designade vi FACET API i linje med det grundläggande passformen / transformera / förutsäga paradigmet scikit-lär sig att ge datavetare en enkel start med FACET.

2. SHAP -implementeringen av Scott Lundberg används för att uppskatta SHAP-vektorerna som sönderdelas i synergin , redundans och självständighetsvektorer.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *