(TF)² #4 – Konnektionism vs Symbolism, AI-världens hatmatch
AI handlar om modeller, samt resonemang, planering och simuleringar ovanpå dessa modeller. Modeller beskriver approximativt hur data hänger ihop. Men hur uttrycker vi våra modeller? Detta har varit en dispyt i AI-världen ända sedan begynnelsen. Nuförtiden hör vi nästan bara om neuronnät, men på andra sidan staketet står personer som psykologen Gary Marcus och statistikern Judea Pearl och hytter med näven. AI-världen borde lyssna bättre på surkartar.
Logisk symbolism
När vi människor försöker modellera och förstå världen, så har ingen metod blivit i närheten så framgångsrik som matematiska formler. Med matematiska formler beskriver vi kortfattat hur så vitt skilda koncept som elektricitet, gravitation, befolkningstillväxt och flödesdynamik fungerar. Dessa formler innehåller symboler som representerar mått på världen (x) och andra symboler som beskriver hur måtten ska kombineras (+), därav “symbolism”. I mer modern tid skriver vi även en ny sorts matematiska formler: programkod.
Symboliska formler är snabba att utvärdera för en dator, tenderar att fungera väl även utanför data som den är anpassad på och relativt lätta att resonera kring och förstå. Av denna anledning är det enkelt att tänka att det också är med sådana som en maskin borde modellera världen. Detta var därför det första angreppssättet som prövades för AI. Men symbolism har ett stort problem: det är väldigt krävande att hitta bra formler.
Symboler är diskreta. Diskret betyder i detta sammanhang att symboler inte bor i en kontinuerlig rymd. Det finns ingen naturlig symbol mellan + och *. Det betyder att man inte kan söka av en rymd av formler genom att glida runt fritt tills man når något som passar data och förkunskap perfekt. Generellt löser man många diskreta problem genom att hoppa runt som en slumpmässig galning som hoppas att snubbla på någonting värdefullt. För formler och program är det dessutom ännu värre. Bara för att din formel eller ditt program är nästan rätt så betyder det inte att resultatet blir nära. Alla minns väl från skolan vad ett saknat minustecken kan ställa till med.
Så symboliska modeller är värdefulla, men dyra att producera.
Symboliska uttryck har också ett annat problem. Vad är den matematiska formeln för hur en kamel ser ut? Modeller som involverar vissa typer av så kallad ostrukturerad data – sinnesdata – behöver fungera på något annat sätt.
Empirisk konnektionism
Konnektionism är grunden till det vi kallar neuronnät och djupinlärning (deep learning). Här bryr vi oss inte om hur data är genererat egentligen eller några “sanna” formler. I stället så multiplicerar vi vår indata med en stor parametermatris, summerar resultatet och kör det genom en aktiveringsfunktion (t.ex tanh) och får på så sätt nästa lager (vektor) av delresultat. Sedan gör vi samma sak några gånger till och så får vi ett resultat. Vad är då poängen med detta? Jo, dessa nätverk är inte diskreta, men kan approximera andra funktioner och allt du behöver göra är att pilla runt på dina kontinuerliga parametrar för att gradvis minimera en felfunktion. Denna optimering finns det effektiva algoritmer som kan göra och det är detta vi kallar träning.
Detta tillvägagångssätt är vagt relaterat till hur en hjärna fungerar, även om själva träningen av parametrarna inte är särskilt lik. Därför kan man säga att symbolism är inspirerat av hur människor löser problem och konnektionism är relaterat till hur naturen löser problem.
Neuronnät har visat sig ruskigt effektiva i praktiken, så länge man har tillräckligt med data och inte ber dem att gå för långt bort från vad de sett. Om man ska ner på detaljnivå så finns det även andra effektiva metoder som inte är konnektionistiska, speciellt för tabulär data. Men även dessa metoder är empiriska i den bemärkelsen att de inte försöker vara kortfattade, gå att analysera eller beskriva hur verkligheten egentligen fungerar.
Kan det bli fred?
På många sätt har konnektionism vunnit. Nästan all AI-forskning just nu fokuserar på neuronnät. I populärpress ses nästan AI som synonymt med hjärnliknande nätverk. Jag tycker personligen att pendeln har slagit för långt åt det empiriska hållet och tror att den kommer röra sig tillbaka. Kanske har denna tillbakarörelse redan börjat.
Hur kan vi då förena dessa både områden, i stället för att de står och skriker på varandra?
Det mest populära sättet just nu är att låta neuronnät läsa in och producera symboler. Med denna metod har man det senaste året nått fina resultat kring matematisk bevisföring. Att bevisa matematiska satser är ett överraskande svårt område – människor är fortfarande överlägset bäst på bevisföring, trots den formella naturen. Förmodligen för att bevis är diskreta och symboliska. Genom att låta neuronnät generera symboler har man även lärt dem att manipulera formler, t.ex att skapa primitiva funktioner (alltså integraler) till andra funktioner, vilket inte alls är ett lätt problem.
Ironiskt nog så blir näten själva symboliska i sin struktur allt eftersom de blir mer avancerade. Man sätter ihop allt mer komplexa dataflöden mellan lagren i nätverken och skapar på så sätt diskreta topologier. Det är ett aktivt forskningsområde att försöka skapa nätverkstopologier automatiskt, men det har visat sig mycket svårt att göra det bättre än att hoppa runt slumpmässigt på samma sätt som vår galne diskrete vän. Välkommen till den symboliska världen, konnektionister!
Evolution har producerat symboliskt/diskret DNA som producerar konnektionistiska hjärnor som skriver symboliska program för att implementera konnektionistiska nätverk som producerar symboliska toplogier för att exekvera andra konnektionistiska nätverk på en symbolisk hårdvaru-arkitektur. Analogin med Gödel, Escher, Bach och hur strukturer i naturen växlar fram och tillbaka mellan analogt och digitalt är slående…