Artificiella neurala nätverk (ANN) är kraftfulla modeller som efterliknar människans hjärna för att lösa komplexa problem. Grundprincipen bakom dessa nätverk är att de justerar vikterna på sina anslutningar så att den producerade outputen, när en viss inmatning ges, matchar det förväntade resultatet. Detta sker genom en iterativ process där nätverket justerar sina vikter baserat på skillnaden mellan det faktiska och det förväntade resultatet.
I enkla nätverk, som exempelvis ett enskiktat perceptron, görs justeringen av vikterna direkt efter att inmatningen getts till nätverket, och resultatet jämförs med det önskade utfallet. Detta kallas framåtpropagering. När det gäller mer komplexa nätverk, som de med flera lager av dolda neuroner, måste nätverket justera vikterna genom en annan process, kallad bakåtpropagering. Här propageras felet från utgången genom nätverket, lager för lager, tills alla vikter har justerats.
Detta innebär att bakåtpropagering inte bara är en enkel reaktion på inputen, utan snarare ett sätt att gradvis korrigera nätverkets förståelse av problematiken genom att ta hänsyn till felet i alla lager och i alla neuroner. Varje justering sker i enlighet med en lärandehastighet och aktiveringsfunktionen för varje neuron, som exempelvis sigmoidfunktionen, vilket gör att nätverket lär sig från sina egna misstag.
Det var på 1960-talet som XOR-problemet, som involverar en exklusiv eller-operation, visade på de begränsningar som de enkla enskiktade perceptronerna hade. XOR-uppgiften kunde inte lösas med en enkel linje i tvådimensionell rymd, vilket ifrågasatte möjligheterna med neurala nätverk. Denna invändning orsakade viss förvirring och dämpade entusiasmen kring artificiell intelligens. Men efter detta kom lösningar som innefattade flera lager av dolda neuroner, vilket ledde till utvecklingen av flerlagers perceptroner (MLP) och därmed djupinlärning (Deep Learning).
I dagens djupa nätverk används flera lager för att fördjupa beräkningarna och processerna, vilket gör att nätverken kan lära sig mer komplexa och abstrakta mönster. Detta innebär att varje inre lager fungerar som ett nytt input för nästa lager, vilket gör att den nödvändiga justeringen av vikterna under träning måste göras genom bakåtpropagering. Processen börjar med att felet från de utgående neuronerna sprids bakåt genom nätverket för att justera vikterna i alla lager.
När det gäller aktiveringsfunktioner, så används ofta sigmoidfunktioner för att ”tvinga” indata till ett intervall mellan 0 och 1. Detta hjälper nätverket att fatta beslut om hur stark en aktivering ska vara. Nätverk kan också innehålla bias-neuroner, vilka tillhandahåller konstant inmatning i systemet och förhindrar att alla indata blir noll och därmed inte påverkar nätverket.
Det är också intressant att notera att två tränade neurala nätverk, även om de löser samma uppgift, kan ha helt olika interna strukturer. Detta kan antyda att även om två människohjärnor arbetar med samma uppgifter, kan de göra det med olika strukturer och metoder. En annan fascinerande aspekt är att artificiella neurala nätverk har förmågan att lära sig inkrementellt, vilket innebär att de ständigt anpassar sig efter nya inmatningar. Detta gör att de är mycket användbara i dynamiska miljöer, som exempelvis för självkörande bilar.
En annan betydande fördel med neurala nätverk är deras motståndskraft mot störningar. Till skillnad från hårdvarucirklar, där ett enda fel kan leda till systemets kollaps, är neurala nätverk ofta överraskande motståndskraftiga. Detta kallas ”graceful degradation” och innebär att om en del av nätverket misslyckas, kan andra delar av nätverket ta över, vilket gör att systemet fortsätter att fungera relativt väl.
Slutligen handlar den grundläggande metoden för att optimera dessa nätverk om att minimera fel genom en process kallad gradientnedstigning. Gradientnedstigning är en optimeringsteknik där nätverket justerar sina vikter för att minska felet mellan dess förutsägelser och det faktiska resultatet. Denna process kan liknas vid att försöka ta sig nedför ett berg i dimma: utan att kunna se vägen, använder du den närmaste sluttningen för att hitta den säkraste vägen ned.
Gradientnedstigning görs genom att beräkna lutningen på felkurvan och justera vikterna för att följa den brantaste vägen mot minimumfelet. Detta är en kontinuerlig process som genomförs iterativt tills nätverket når en punkt där felet är tillräckligt litet för att lösa uppgiften effektivt.
Hur fungerar gradientnedstigning i artificiella neuronnätverk och varför är det viktigt?
När man försöker förstå hur artificiella neuronnätverk tränas och optimeras, är det ofta användbart att föreställa sig en bild av att vandra nedför en bergssluttning. Tanken är att följa den brantaste vägen nedåt tills man når ett område där terrängen blir plan – ett slags dal. Om bergstopografin är enkel och slät, så kommer du att märka när du närmar dig dalen. Det är dock inte så enkelt när det kommer till neuronnät och gradientnedstigning. När du arbetar med optimering av en kostnadsfunktion, är det just denna metafor om att hitta vägen nedför som ligger till grund för processen att minimera fel i ett neuronnätverk.
Föreställ dig att du ska vandra nedför en brant sluttning. Om du tar mycket små steg kommer det ta lång tid att nå dalens botten. Men om du tar för stora steg, riskerar du att hoppa över den djupaste punkten och istället börja klättra uppför andra sidan av dalen. Om landskapet är mer komplex, med förhöjningar, lokala dalar och smala passager, kan du missa den optimala vägen och istället hamna på ett suboptimalt plan – en lokal minimum. Här ligger en av de största utmaningarna för artificiella neuronnätverk: att inte fastna i en lokal minimum och missa det globala minimum, som skulle ge den bästa lösningen.
För att undvika att hamna på ett lokalt minimum, kan det vara användbart att anpassa längden på dina steg efter terrängens lutning. Det betyder att om terrängen är mindre brant, bör steglängden minskas, eller så kan man tillföra ett visst "impuls" för att fortsätta rörelsen, även om vägen efter en lokal minimum leder uppåt igen. Denna "momentum" kan hjälpa till att ta dig över lokala dalar och vidare mot det globala minimum.
Matematiskt sett innebär nedstigning längs den brantaste vägen att följa den negativa gradienten av kostnadsfunktionen i varje dimension. Gradientvektorn, som beräknas med Nabla-operatorn ∇, pekar mot den brantaste uppstigningen på en punkt i kostnadslandskapet och anger lutningen på denna punkt genom sin längd. Lutningen beräknas som den partiella derivatan av kostnadsfunktionen för varje dimension. Det är som att fråga: vad är lutningen på kullen under mina fötter om jag vänder mig mot öster? Och samma fråga för norr, söder och alla andra dimensioner.
För att hitta det globala minimum, används en iterativ procedur där modellparametrarna justeras i varje steg. Denna process representeras av formeln 𝑎𝑛+1 = 𝑎𝑛 − 𝛾∇𝑓(𝑎𝑛), där 𝑎 är en modellparameter som justeras i varje iteration och 𝛾 är steglängden, eller inlärningshastigheten. Om steglängden är justerbar, kan den ändras för varje iteration, och det finns många metoder för att styra denna förändring. I praktiken börjar gradientnedstigning ofta med slumpmässiga värden (slumpmässig initiering) och itereras tills kostnaden (eller felet) minskas till en nivå som är acceptabel, även om det inte är det absolut matematiska minimum.
Om kostnadsfunktionen är konvex och kontinuerlig, som den ofta är med MLP (multi-layer perceptron), bör gradientnedstigning konvergera till det globala minimum. Men det finns faktorer som kan hindra denna konvergens. Ett sådant hinder är när funktionerna i datamängden har olika skalor, till exempel om man har både "kontonummer" och "ålder" i en datamängd. I sådana fall kan konvergensen missledas till en början och det kan ta lång tid att hitta minimumet. För att förhindra detta bör data skalas innan inlärningen påbörjas.
En variant av gradientnedstigning som kan vara mindre resurskrävande är stokastisk gradientnedstigning (SGD). Istället för att beräkna gradienterna baserat på hela träningsdatauppsättningen vid varje iteration, väljs ett slumpmässigt exempel för varje steg. Detta gör inlärningen mycket snabbare men kan vara mer erratisk och ha svårt att hitta det globala minimumet. Trots detta kan den oförutsägbara rörelsen i SGD hjälpa till att övervinna lokala minimum och så småningom hitta det globala minimumet, särskilt om man minskar inlärningshastigheten gradvis (det så kallade simulerade härdning).
Vid träning av artificiella neuronnätverk, särskilt när det gäller att känna igen handskrivna siffror som i det vanliga MNIST-datasetet, är dessa optimeringstekniker avgörande. Datamängden består av 50 000 bilder för träning och 10 000 för validering. Varje bild representerar en handskriven siffra, och varje pixel i bilden är en ingång för ett neuron i nätverket. Genom att träna ett flerlagers perceptron (MLP) kan nätverket lära sig att känna igen dessa siffror, trots variationer i hur de skrivs.
För att kunna lösa denna variation krävs ett neuronnätverk med fler än ett lager av dolda noder. När träningen är klar kan nätverket sedan testas med nya bilder och klassificera dem baserat på det det har lärt sig. Här är användningen av gradientnedstigning avgörande för att hitta de bästa parametrarna som minimerar felet och gör att nätverket kan känna igen handskrivna siffror med hög noggrannhet.
En viktig aspekt för att uppnå bästa möjliga resultat är att korrekt förbereda och skala datamängderna innan träningen börjar. Dessutom kan val av optimeringsalgoritm och justering av inlärningshastigheten spela stor roll för hur snabbt och effektivt nätverket lär sig.
Vad betyder egentligen artificiell intelligens och hur fungerar den?
Artificiell intelligens (AI) är ett område som, sedan termen myntades på 1950-talet, har genomgått både fantastiska framsteg och perioder av stor skepticism. Under 1970-talet, den första så kallade "AI-vintern", fanns det en stor tveksamhet kring teknikens framtid, vilket ledde till en minskning av forskningsfinansiering och intresse. Trots detta, med införandet av Transformer-teknologin 2017 (Vaswani et al., 2017), och framför allt genom dess tillämpning i stora språkmodeller (LLMs), fick vi en explosion av prestanda som överträffade tidigare förväntningar. Det är idag svårt att inte förknippa system som ChatGPT eller andra LLMs med intelligens, med tanke på deras förmåga att förstå sammanhang, tänka genom analogier och följa instruktioner.
Men i grunden handlar dessa system inte om "intelligens" på samma sätt som vi uppfattar mänsklig intelligens. LLMs bygger på att beräkna sannolikheter för att vissa symboler (som bokstäver i ett ord, ord i en mening eller meningar i en text) ska följas av andra. Dessa sannolikheter härleds från enorma mängder data som exempelvis finns på internet. Modellerna har lärt sig att förutsäga nästa ord med sådan precision att användaren upplever svaren som vettiga. Men det är just det – det handlar inte om förståelse, utan om att aggregera sannolikheter baserat på det tränade materialet. Därmed liknar LLMs ofta vad som kallas för "statistiska papegojor", där systemet bara upprepar mönster baserat på statistik.
Detta väcker frågan om skillnaden mellan mänsklig och maskinell intelligens. Även om människor inte är "statistiska papegojor", kan vi som art också ses som beroende av att bearbeta enorma mängder data för att förstå världen omkring oss. Våra beslut och vår förståelse bygger ofta på sannolikheter och förutsägelser, snarare än på absolut vetande. I ljuset av detta kanske skillnaden mellan mänsklig och maskinell intelligens inte är så stor som vi ofta tror. Människan, likt maskinen, samlar information och bygger på mönster och sannolikheter. Men om vi nu inte reserverar begreppet "intelligens" exklusivt för människor, kan det vara så att AI också kan beskrivas som intelligent på ett annat sätt än vi tidigare tänkt.
För att förstå dessa fenomen djupare kan det vara bra att också ta hänsyn till systemen bakom AI. De flesta metoder inom maskininlärning och AI är exempel på komplexa system, där interaktionen mellan komponenter skapar egenskaper som inte kan förstås genom att bara analysera de enskilda delarna. Systemvetenskapen, som studerar sådana fenomen, förklarar detta genom att tala om emergens. Ett bra exempel på detta är hur gaspartiklars rörelse ger upphov till tryck och temperatur, vilket inte går att förutsäga genom att studera en enskild partikel. På samma sätt kan vi förstå att den "intelligens" som LLMs uppvisar är ett resultat av interaktionen mellan nätverkets olika neuroner. Det är denna samverkan som gör att systemet kan identifiera mönster och utföra uppgifter som liknar mänskligt tänkande.
En annan viktig aspekt inom systemvetenskapen är begreppet "attraktor". När komponenterna i ett system interagerar på ett komplext sätt, kan det uppstå ett tillstånd av balans eller jämvikt, vilket är resultatet av alla dessa dynamiska relationer. I ett neural nätverk skulle detta kunna ses som hur neuronerna genom sina interaktioner hittar stabila mönster eller lösningar. Detta kan ses som en form av stabilitet som uppstår från kaotiska eller slumpmässiga rörelser i systemet, vilket påminner om hur t.ex. planeter rör sig i vårt solsystem eller hur vårt samhälle fungerar.
Det är denna dynamik av samverkan och balans som gör AI-system så svåra att analysera på enbart komponentnivå. För att förstå hur ett AI-system fungerar, måste man beakta de komplexa interaktionerna mellan dess delar snarare än att bryta ner systemet till sina enskilda neuroner eller algoritmer. Detta gör att AI-teknologi är mycket mer komplex än vad den initialt kan verka. Den intelligens som upplevs i dessa system är inte något som kan isoleras till en enskild komponent eller funktion, utan uppstår genom samverkan och interaktion på en mycket mer grundläggande nivå.
För att verkligen förstå AI är det viktigt att betrakta både de tekniska aspekterna och de underliggande filosofiska och systemteoretiska frågorna. Det handlar inte bara om att känna till de senaste versionerna av modeller som ChatGPT-4 eller Gemini 1.5, utan att också ha en grundläggande förståelse för de principer som styr teknologin. Det är denna bakgrund av teori och filosofi som gör det möjligt att sätta de senaste framstegen i ett sammanhang, och att bättre förstå de djupt komplexa och dynamiska systemen bakom AI:s förmåga.
Hur neurala nätverk och modeller skapar förutsägbara mönster i komplexa system
När ett system finner ett jämviktsläge, fungerar det som en attraktormekanism. Avvikelser från detta läge leder inte nödvändigtvis till att systemet omorganiseras helt, utan snarare att dessa störningar jämnas ut, eftersom systemet återgår till sitt lägsta punkt. Detta kallas för att systemet har en viss grad av motståndskraft mot störningar. Ett liknande fenomen kan observeras i neurala nätverk. Föreställ dig att du ser på en sommardag och plötsligt lägger märke till en molnformation som påminner om ett djur. Och även om molnet förändras med vinden, verkar din tolkning av bilden hålla sig konstant. Eller har du någonsin snabbt sett en bråkdel av något, kanske ett ord på en reklamskylt medan du kör förbi, och ändå förstått vad som stod trots att du inte var särskilt intresserad? Ibland kan en ovanlig tanke plötsligt dyka upp i ditt huvud, och du har ingen aning om var den kom ifrån, för att senare inse att du sett det ordet någonstans utan att medvetet läsa det. Dessa tolkningar sker eftersom vår perception styrs av jämviktslägen som neuroner – eller närmare bestämt vikterna i deras anslutningar – etablerar genom träning på en mängd bilder av djur eller ord.
Träning i detta sammanhang innebär att komponenterna i det neurala nätverket tillsammans med de data de ska tränas på interagerar med varandra. De utsätts för varandra på ett initialt sätt som kan verka kaotiskt, men finner så småningom ett livskraftigt förhållande som leder till en jämvikt som, genom träning, graveras in i nätverket. När jämvikten väl är funnen fungerar den som en attraktormekanism, vilket innebär att perceptionen dras mot inlärda begrepp. Detta gör att vi kan se djur i moln och känna igen ord även när vi bara ser en bråkdel eller om det är suddigt. I grund och botten attraherar våra hjärnor, som är tränade att särskilja mellan saker som djurformer eller ord, dessa tolkningar även när informationen är ofullständig eller felaktig. Det är som om marmorn rullar mot den lägsta punkten i skålen och gör att dessa begrepp reproduceras enkelt, vilket är fördelaktigt för överlevnad.
Dessa jämviktslägen etableras genom interaktioner, och det är omöjligt att separera komponenterna utan att förstöra själva jämvikten. Precis som att man inte kan ta isär en bil för att förstå varför den är snabb, kan man inte heller dissekera neurala nätverk för att förstå hur de fungerar i detalj. Detta är en av anledningarna till att de kapabiliteter och potentialer som AI-verktyg har ofta överraskar och är svåra att förstå (Castelvecchi 2016; Adadi och Berrada 2018). Särskilt de senaste manifestationerna, som de så kallade stora språkmodellerna, verkar vara på väg att omvälva fundamentet för vårt sätt att tänka om tänkande, inklusive vårt sätt att bedriva vetenskap. Deras användning och vidareutveckling väcker en rad svåra frågor för den närmaste framtiden (Ribeiro, Singh och Guestrin 2016; Barredo Arrieta et al. 2020; Mitchell och Krakauer 2023; Butlin et al. 2023). Det har rapporterats att även de mjukvaruutvecklare och ingenjörer som själva designade och tränade dessa AI-verktyg har blivit förvånade över deras oväntade prestationer. I vissa fall har forskare, kända för sin nykterhet och balanserade synsätt, blivit imponerade och intryckta av att dessa verktyg verkar ha egenskaper som medvetenhet, självinsikt eller en oemotståndlig drivkraft för självständighet.
En ytterligare aspekt av systemvetenskapens specifika angreppssätt kan vara användbar för att förstå hur maskininlärning fungerar. Det handlar om övertygelsen att många av de speciella egenskaperna hos komplexa system är relaterade till kartläggning eller modellering av fakta. Systemvetare antar att komplexa system, som vår hjärna, modellerar världen för att kunna uppfatta den som en sådan. Det vi upplever som "världen" är en modell som genereras och kontinuerligt anpassas av hjärnan under hela vårt dagliga liv. Eftersom hjärnan själv är en del av denna värld, modelleras den också som en modell. Vi refererar därför till resultatet från sådana system som modeller, och vi kallar själva systemen modeller. AI-verktyg och metoder inom maskininlärning ses som algoritmiska modeller som genererats för att hitta regelbundenheter och mönster i stora datamängder. Vi börjar därför denna bok med några grundläggande reflektioner kring förutsättningarna och effekterna av att använda modeller.
Komplexa system använder modeller för att kunna förutsäga och anpassa sig till sin omvärld. Detta gäller inte bara för hjärnan eller AI, utan även i naturen, där olika organismer utvecklar sina egna interna modeller för att optimera sina överlevnadsstrategier. Ett exempel på detta kan ses i enklare organismer som söker efter näring. I de enklaste fallen distribuerar de sig slumpmässigt i sin omgivning och hittar föda av en slump. Efterhand fördelas de jämnt över sitt möjliga utrymme, där alla tillstånd är lika sannolika. Detta kallas ett ergodiskt system, där fördelningen inte är baserad på historien och inget minne är involverat. I mer komplexa fall kan organismer utveckla sensoriska förmågor för att följa doftspår mot en näringskälla, vilket innebär att de har utvecklat ett system för att förutse framtida handlingar – ett icke-ergodiskt system. Denna förmåga till modellering, eller användningen av en "inre karta", gör det möjligt för organismer att aktivt fokusera på sina rörelser och förbättra sina chanser att hitta föda, vilket på lång sikt är mer fördelaktigt för deras överlevnad.
Att utveckla och upprätthålla en sådan modell innebär dock en kostnad. För en organism betyder det att den inte bara måste använda energi för att överleva, utan även för att underhålla och uppdatera sin inre representation av omvärlden. Denna komplexitet i modellen innebär en balansgång mellan att göra modellen så detaljerad som möjligt för att öka överlevnadschanserna, samtidigt som kostnaden för att underhålla modellen måste beaktas.

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский