Det har blivit ganska vanligt att höra folk referera till moderna system för maskininlärning som ”svarta lådor”. Som exempel kan nämnas ett avsnitt nyligen av Sam Harris podcast där han intervjuade AI-pionjären Stuart Russell. Harris frågar:
”Så om jag inte misstar mig är de flesta, om inte alla dessa metoder för djupinlärning, eller till och med mer generellt maskininlärning, i huvudsak svarta lådor, där du inte riktigt kan inspektera hur algoritmen åstadkommer det den åstadkommer.”
Och även om denna metafor är lämplig för vissa särskilda situationer är den faktiskt ganska missvisande i allmänhet, och den kan orsaka en avsevärd mängd förvirring. Som vi kommer att se är ett djupinlärningssystem inte en svart låda; inte ens utvecklingen av ett sådant system behöver vara en svart låda. Den verkliga utmaningen är dock att båda dessa saker är komplexa och inte nödvändigtvis väl förstådda. Här vill jag försöka klargöra några av dessa idéer och samtidigt tänka igenom vad vi menar med förklaringar.
Som jag kommer att förklara nedan tror jag att förvirringen åtminstone delvis beror på de missuppfattningar som människor har om hur dessa system fungerar. När folk tar till metaforen med den svarta lådan verkar de uttrycka det faktum att det är svårt att förstå syftet med de olika komponenterna i en modell för maskininlärning. Även om detta verkligen är svårt vill jag hävda att det också är en orealistisk förväntan. På vägen dit kommer jag att försöka förklara skillnaden mellan modeller och hur de tränas, diskutera scenarier där metaforen med den svarta lådan är lämplig och föreslå att människor på många sätt är de verkliga svarta lådorna, åtminstone när det gäller maskininlärning.
Förklaringar
För att börja är det användbart att reflektera över vad människor menar när de talar om förklaringar. Detta är på intet sätt en trivial fråga, men det verkar finnas åtminstone två särskilt relevanta sätt att tänka på detta.
När vi ber någon om en förklaring till varför han eller hon gjorde något (”Varför gjorde du X?”), arbetar vi utifrån en viss uppsättning bakgrundsantaganden. När det gäller ett beslut som fattats med omsorg antar vi vanligen att de hade någon god anledning att agera som de gjorde, och vi frågar i princip efter den resonemangsprocess som de använde för att fatta beslutet. Vi kan till exempel förvänta oss att de vägde för- och nackdelar och valde ett tillvägagångssätt baserat på att de förväntade sig att det skulle leda till ett visst resultat.
När vi frågar om varför något gick fel frågar vi däremot i stället efter en slags post-hoc-förklaring av misslyckandet. Efter en bilolycka kan vi till exempel vilja ha en förklaring till vad som orsakade olyckan. Var föraren distraherad? Fick en annan bil föraren att svänga? I stället för en resonemangsprocess frågar vi mer eller mindre efter den kritiska stimulans som orsakade en viss reaktion utanför det normala beteendet.
När människor tänker på artificiell intelligens verkar de vanligtvis ha den första typen av förklaring i åtanke. Förväntningen är att systemet gjorde en överläggning och valde ett tillvägagångssätt baserat på det förväntade resultatet. Även om det finns fall där detta är möjligt, ser vi i allt högre grad en utveckling mot system som mer liknar det andra fallet, det vill säga att de får stimuli och sedan bara reagerar.
Det finns mycket goda skäl till detta (inte minst för att världen är komplicerad), men det innebär att det är svårare att förstå orsakerna till varför ett visst beslut fattades, eller varför vi hamnade på en viss modell i stället för en annan. Med detta i åtanke ska vi undersöka vad vi menar med en modell och metaforen med den svarta lådan.
Lådor och modeller
Metaforen med den svarta lådan går tillbaka till cybernetikens och behaviorismens tidiga dagar och hänvisar vanligen till ett system där vi bara kan observera inmatningar och utmatningar, men inte de interna funktionerna. Detta var faktiskt det sätt på vilket B.F. Skinner begrep sinnena i allmänhet. Även om han framgångsrikt visade hur vissa inlärda beteenden kunde förklaras av en förstärkningssignal som kopplade vissa ingångar till vissa utgångar, gjorde han sedan det berömda misstaget att tro att denna teori lätt kunde förklara allt mänskligt beteende, inklusive språk.
Som ett enklare exempel på en svart låda kan man tänka på ett tankeexperiment från Skinner: Du får en låda med en uppsättning ingångar (strömbrytare och knappar) och en uppsättning utgångar (lampor som antingen är tända eller stängda). Genom att manipulera ingångarna kan du observera motsvarande utgångar, men du kan inte titta in i lådan för att se hur den fungerar. I det enklaste fallet, t.ex. en strömbrytare i ett rum, är det lätt att med stor säkerhet fastställa att strömbrytaren styr ljusnivån. För ett tillräckligt komplext system kan det dock vara i praktiken omöjligt att avgöra hur lådan fungerar genom att bara prova olika kombinationer.
Föreställ dig nu att du får tillåtelse att öppna upp lådan och titta inuti. Du får till och med ett komplett kopplingsschema som visar alla komponenter och hur de är anslutna. Dessutom är ingen av komponenterna komplexa i sig. Allt är uppbyggt av enkla komponenter som motstånd och kondensatorer, som var och en har ett beteende som är väl förstått isolerat. Nu har du inte bara tillgång till den fullständiga specifikationen av alla komponenter i systemet, du kan till och med köra experiment för att se hur var och en av de olika komponenterna reagerar på vissa ingångar.
Du skulle kunna tänka dig att du nu, med all denna information i din ägo, skulle vara i stånd att ge en bra förklaring till hur lådan fungerar. När allt kommer omkring är varje enskild komponent förstådd och det finns ingen dold information. Tyvärr uppstår komplexitet genom samverkan mellan många enkla komponenter. För ett tillräckligt komplext system är det osannolikt att du skulle kunna förutsäga vad lådans utgång kommer att bli för en given ingång, utan att utföra experimentet för att ta reda på det. Den enda förklaringen till varför lådan gör som den gör är att alla komponenter följer de regler som styr deras individuella beteende, och det övergripande beteendet uppstår genom deras samspel.
Ett ännu viktigare problem är att du, utöver systemets hur, sannolikt inte skulle kunna förklara varför varje komponent har placerats där den är, även om du kände till systemets övergripande syfte. Med tanke på att lådan var utformad för något syfte antar vi att varje komponent lades till av en anledning. För ett särskilt smart system kan dock varje komponent sluta med att ta på sig flera roller, som i fallet med DNA. Även om detta kan leda till ett mycket effektivt system gör det också att det är mycket svårt att ens tänka på att sammanfatta syftet med varje komponent. Med andra ord är systemets hur helt transparent, men varför är potentiellt outgrundligt.
Detta är, visar det sig, en perfekt metafor för djupinlärning. I allmänhet är hela systemet öppet för inspektion. Dessutom består det helt och hållet av enkla komponenter som lätt kan förstås isolerade. Även om vi känner till syftet med det övergripande systemet finns det dock inte nödvändigtvis någon enkel förklaring som vi kan ge till hur systemet fungerar, annat än det faktum att varje enskild komponent fungerar enligt sina egna regler, som svar på inmatningen. Detta är faktiskt den sanna förklaringen till hur systemet fungerar, och den är helt genomskinlig. Den svårare frågan är naturligtvis varför varje komponent har tagit på sig den roll som den har. För att förstå detta ytterligare kommer det att vara till hjälp att separera idén om en modell från den algoritm som används för att träna den.
Modeller och algoritmer
För att verkligen komma in på detaljerna måste vi vara lite mer exakta om vad vi talar om. Harris hänvisar till ”hur algoritmen åstadkommer det den åstadkommer”, men det finns egentligen två delar här: en modell – t.ex. ett djupinlärningssystem – och en inlärningsalgoritm – som vi använder för att anpassa modellen till data. När Harris hänvisar till ”algoritmen” talar han förmodligen om modellen, inte nödvändigtvis om hur den tränades.
Vad exakt menar vi med en modell? Även om det kanske är något vagt, fångar en statistisk modell i princip de antaganden vi gör om hur saker och ting fungerar i världen, med detaljer som ska läras in från data. I synnerhet specificerar en modell vad som är input, vad som är output och typiskt sett hur vi tror att input kan interagera med varandra för att generera output.
Ett klassiskt exempel på en modell är de ekvationer som styr Newtons gravitation. Enligt modellen bestäms utfallet (gravitationskraften mellan två föremål) av tre ingångsvärden: det första föremålets massa, det andra föremålets massa och avståndet mellan dem. Närmare bestämt anges att gravitationen kommer att vara proportionell mot produkten av de två massorna, dividerad med avståndet i kvadrat. Kritiskt sett förklarar man inte varför dessa faktorer ska vara de faktorer som påverkar gravitationen; man försöker bara ge en förenklad förklaring som gör det möjligt för oss att förutsäga gravitationen i alla situationer.
Självklart måste vi, även om detta vore helt korrekt, för att kunna göra en förutsägelse också känna till den motsvarande skaleringsfaktorn G. I princip borde det dock vara möjligt att lära sig detta värde genom observation. Om vi har antagit den korrekta (eller nästan korrekta) modellen för hur saker och ting fungerar i verkligheten har vi en god chans att kunna lära oss de relevanta detaljerna från data.
I fallet med gravitationen visade Einstein så småningom att Newtons modell bara var ungefärlig och att den misslyckas under extrema förhållanden. För de flesta omständigheter är dock Newtons modell tillräckligt bra, vilket är anledningen till att människor kunde lära sig konstanten G= 6,674×10^(-11) N – (m/kg)² och använda den för att göra förutsägelser.
Einsteins modell är mycket mer komplex, med fler detaljer att lära sig genom observation. Under de flesta omständigheter ger den ungefär samma förutsägelser som den newtonska modellen skulle göra, men den är mer exakt under extrema omständigheter och har naturligtvis varit avgörande för utvecklingen av teknik som GPS. Ännu mer imponerande är att relativitetsteorins sekundära förutsägelser har varit häpnadsväckande, och att de till exempel framgångsrikt har förutsett existensen av svarta hål innan vi någonsin kunde hoppas på att testa deras existens. Ändå vet vi att Einsteins modell inte heller är helt korrekt, eftersom den inte stämmer överens med kvantmekanikens modeller under ännu mer extrema förhållanden.
Gravitation är förstås deterministisk (såvitt vi vet). Inom maskininlärning och statistik har vi däremot vanligtvis att göra med modeller som innehåller osäkerhet eller slumpmässighet. En enkel modell för hur länge du kommer att leva skulle till exempel vara att bara förutsäga genomsnittet av befolkningen för det land där du bor. En bättre modell skulle kunna ta hänsyn till relevanta faktorer, t.ex. ditt nuvarande hälsotillstånd, dina gener, hur mycket du motionerar, om du röker cigaretter eller inte osv. I så gott som alla fall kommer det dock att finnas en viss osäkerhet kring förutsägelsen, eftersom vi inte känner till alla relevanta faktorer. (Detta skiljer sig naturligtvis från den uppenbara sanna slumpmässighet som förekommer på subatomär nivå, men vi ska inte oroa oss för den skillnaden här).
Förutom att vara en otroligt framgångsrik omprofilering av neurala nätverk och maskininlärning (som i sig självt nog är en ganska framgångsrik omprofilering av statistiken) hänvisar termen djupinlärning till en särskild typ av modell, en modell där utgångarna är resultatet av en serie av många enkla transformationer som tillämpas på ingångarna (ungefär som vårt kopplingsschema från ovan). Även om modeller för djupinlärning är komplexa är de inte svarta lådor. Faktum är att det skulle vara mer korrekt att referera till dem som glaslådor, eftersom vi bokstavligen kan titta in i dem och se vad varje komponent gör.
Problemet är förstås att dessa system också är komplicerade. Om jag ger dig en enkel uppsättning regler som du ska följa för att göra en förutsägelse, så länge det inte finns för många regler och reglerna i sig själva är enkla, kan du ganska lätt räkna ut hela uppsättningen av mappningar mellan input och output i ditt huvud. Detta gäller också, om än i mindre utsträckning, för en klass av modeller som kallas linjära modeller, där effekten av att ändra en ingång kan tolkas utan att känna till värdet av andra ingångar.
Djupinlärningsmodeller däremot omfattar vanligen icke-linjära egenskaper och interaktioner mellan ingångar, vilket innebär att det inte bara inte finns någon enkel mappning från ingång till utgång, utan att effekten av att ändra en ingång kan vara kritiskt beroende av värdet av andra ingångar. Detta gör det mycket svårt att mentalt räkna ut vad som händer, men detaljerna är ändå transparenta och helt öppna för inspektion.
Den faktiska beräkning som utförs av dessa modeller för att göra en förutsägelse är vanligtvis ganska okomplicerad; där saker och ting blir svåra är i den faktiska inlärningen av modellparametrarna från data. Som beskrivits ovan måste vi, när vi väl har antagit en viss form för en modell (i det här fallet ett flexibelt neuralt nätverk), försöka ta reda på bra värden för parametrarna från data.
I exemplet med gravitationen behöver vi, när vi väl har antagit en ”tillräckligt bra” modell (proportionell mot massan och omvänt proportionell mot avståndet i kvadrat), bara bestämma värdet på en parameter (G) genom att anpassa modellen till observationer. Med moderna system för djupinlärning kan det däremot lätt finnas miljontals sådana parametrar att lära sig.
I praktiken tränas nästan alla dessa modeller för djupinlärning med hjälp av någon variant av en algoritm som kallas stochastic gradient descent (SGD), som tar slumpmässiga stickprov från träningsdata och successivt justerar alla parametrar för att få den förutsagda utgången att likna det vi vill ha mer. Exakt varför den fungerar så bra som den gör är fortfarande inte helt klarlagt, men det viktigaste att komma ihåg är att även den är transparent.
Då den vanligtvis initieras med slumpmässiga värden för alla parametrar kan SGD leda till olika parametrar varje gång vi kör den. Algoritmen i sig är dock deterministisk, och om vi använde samma initialisering och samma data skulle den ge samma resultat. Med andra ord är varken modellen eller algoritmen en svart låda.
Även om det är något otillfredsställande ligger det fullständiga svaret på varför ett maskininlärningssystem gjorde något i slutändan i kombinationen av de antaganden som vi gjorde vid utformningen av modellen, de data som den tränades på och olika beslut som fattades om hur parametrarna skulle läras in, inklusive slumpmässigheten i initialiseringen.
Tillbaka till svarta lådor
Varför spelar allt detta roll? Jo, det finns åtminstone två sätt på vilka begreppet svarta lådor är mycket relevant för maskininlärning.
För det första finns det gott om algoritmer och programvarusystem (och inte bara de som är baserade på maskininlärning) som är svarta lådor när det gäller användaren. Detta är kanske vanligast i proprietär programvara, där användaren inte har tillgång till det inre arbetet och allt vi får se är in- och utdata. Detta är den typ av system som ProPublica rapporterade om i sin bevakning av algoritmer för straffmätning (särskilt COMPAS-systemet från Northpointe). I det fallet känner vi till inmatningarna, och vi kan se de riskpoäng som människor har fått som resultat. Vi har dock inte tillgång till den algoritm som företaget använt, eller de data som den tränats på. Det är ändå säkert att säga att någon har tillgång till detaljerna – förmodligen de anställda på företaget – och det är med stor sannolikhet helt transparent för dem.
Det andra sättet på vilket metaforen med svarta lådor är relevant är när det gäller de system som vi försöker lära oss, t.ex. den mänskliga synen. På vissa sätt är mänskligt beteende ovanligt transparent, eftersom vi faktiskt kan fråga människor varför de gjorde något och få förklaringar. Det finns dock goda skäl att tro att vi inte alltid känner till de verkliga orsakerna till de saker vi gör. Långt ifrån att vara transparenta för oss själva har vi helt enkelt inte medveten tillgång till många av de interna processer som styr vårt beteende. Om vi ombeds förklara varför vi gjorde något kan vi kanske ge en berättelse som åtminstone förmedlar hur beslutsprocessen kändes för oss. Om vi däremot ombeds förklara hur vi kan känna igen objekt kan vi kanske tro att vi kan ge någon slags förklaring (något som involverar kanter och färger), men i verkligheten fungerar denna process långt under medvetandenivån.
Och även om det finns särskilda omständigheter under vilka vi faktiskt kan inspektera det inre arbetet i mänskliga eller andra däggdjurs system, t.ex. neurovetenskapliga experiment, försöker vi i allmänhet använda maskininlärning för att efterlikna mänskligt beteende med hjälp av endast inmatningar och utmatningar. Med andra ord är människan ur ett system för maskininlärningssystemets perspektiv den svarta lådan.
Slutsats
Slutningsvis är det användbart att reflektera över vad människor vill ha när de tänker på system som inte är svarta lådor. Människor föreställer sig vanligtvis något som liknar scenariot där en självkörande bil har kört av vägen, och vi vill veta varför. I den populära fantasin verkar förväntningen vara att bilen måste ha utvärderat möjliga utfall, tilldelat dem sannolikheter och valt det som har störst chans att maximera något bättre utfall, där bättre bestäms enligt någon sorts moral som har programmerats in i den.
I verkligheten är det högst osannolikt att det är så här saker och ting kommer att fungera. Om vi snarare frågar bilen varför den gjorde som den gjorde, kommer svaret att vara att den tillämpade en genomskinlig och deterministisk beräkning med hjälp av parametervärdena, givet dess aktuella indata, och att detta bestämde dess handlingar. Om vi frågar varför den hade just dessa parametrar kommer svaret att vara att de är resultatet av den modell som valdes, de data som den tränades på och detaljerna i den inlärningsalgoritm som användes.
Detta verkar frustrerande ohjälpligt, och det är lätt att förstå varför folk tar till metaforen med den svarta lådan. Tänk dock på att vi faktiskt inte har denna typ av tillgång för de system vi försöker efterlikna. Om vi frågar en mänsklig förare varför han eller hon körde av vägen kommer han eller hon troligen att kunna svara på ett språk och ge en redogörelse för sig själv – att han eller hon var berusad eller distraherad, att han eller hon var tvungen att svänga undan eller att han eller hon blev förblindad av vädret – men bortsett från att ge oss någon form av narrativt sammanhang vet vi inte riktigt varför de gjorde det, och det gör inte heller de. Med maskininlärning kan vi åtminstone återskapa samma miljö och undersöka det inre tillståndet. Det kan vara komplicerat att förstå, men det är ingen svart låda.
Lämna ett svar