III. Avancerade neuronnätmetoder

De modeller och metoder vi nämnde tidigare, såsom flerlagers neuronnät, olinjära aktiveringsfunktioner (t.ex. sigmoidfunktion) och backpropagation-algoritmen, formar grunden för moderna, avancerade neuronnätsmetoder.

Dessutom är de principer som har lett till resultatet, och som för bara några år sedan ansågs vara nästan omöjliga, relativt enkla. Utöver dem har det dock även behövts nya, intressanta idéer.

Faltningsnät (eng. Convolutional neural networks)

De framsteg som har gjorts inom djupinlärning, speciellt inom bildbehandling, har varit nära nog svindlande. Begränsningarna med den enkla neuronnätklassificerare som vi nämnde i förra kapitlet uppnåddes fort – vilket du säkert märkte i smilisuppgiften. Att öka antalet neuroner och lager i nätet och tillämpa backpropagation-algoritmen underlättar i princip processen och modellen lämpar sig för mycket, men i det långa loppet stöter vi på ett annat problem: antalet vikter i modellen ökar drastiskt och mängden data som behövs för träning blir större än vad någon har tillgång till (inte ens Google).

Som tur är det här ingen katastrof och det finns en elegant lösning på problemet: en speciell neuronnätmodell, eller rättare sagt ett speciellt format lager, som kan läggas till vilket neuronnät som helst. Lagret kallas för ett faltningslager. Neuronnät som innehåller faltningslager kallas för faltningsnät (eng. convolutional neural network, CNN).

Med hjälp av faltningslager kan man känna igen olika särdrag i bilderna (eng. image feature), såsom klara eller mörka fläckar (eller med viss färg), kanter som löper åt olika håll och figurer. Med hjälp av särdrag kan vi känna igen mer abstrakta eller komplexa drag, såsom kattens öra, hundens nos, människans öga eller den åttakantiga formen på en stoppskylt. Utan faltningslager skulle det vara svårt att lära neuronnätet att känna igen sådana här drag eftersom de kan förekomma var som helst, i olika positioner och i olika storleksformat av bilden. Att flytta på objektet eller kameran kan orsaka drastiska förändringar i pixelvärdena, trots att vi tycker att objektet ser ut som det gjorde förut.

För att vi ska få ett neuronnät att känna igen objektet i alla möjliga olika situationer, ska objektet helst fotas från alla möjliga olika håll och på olika avstånd. Exempelvis skulle en stoppskylt i högra hörnet på en bild endast observeras om träningsdata innehåller en bild med en stoppskylt i högra hörnet. Faltningsnät kan känna igen objektet oavsett var på bilden skylten är placerad.

Obs

Varför behöver vi faltningsnät?

I faltningsnät används en enkel metod för att minimera mängden data till en bråkdel. Idén är att man använder samma vikter i flera neuroner, varvid de känner igen samma objekt – utifrån olika indata. Det kan till exempel finnas en grupp neuroner som aktiveras då de känner igen kattens spetsiga öra. Om indata är en bild på en katt, aktiveras två neuroner: ett för det vänstra och ett för det högra örat. Neuronernas indatapixlar kan man även ta från ett mindre eller större område på bilden – då aktiverar objekt i olika storlekar olika neuroner. På så sätt kan vi även känna igen kattens små öron, trots att träningsdata kan ha innehållit endast stora katter eller till och med tigrar.

Faltningslagret placeras oftast som de understa lagren som direkt behandlar pixlarna i bilden. Man kan använda vanliga neuroner i de övre lagren (såsom perceptronneuronerna som behandlades tidigare). De högre liggande lagren behandlar utdata ur lagren nedifrån. De understa lagren kan man träna med oövervakat lärande (se kap. 4) utan någon speciell uppgift i åtanke.

Då anpassar sig vikterna till att känna igen vanligt förekommande särdrag i datamängden. Om träningsdata till exempel består av djurbilder, är de typiska särdragen nosar och öron, medan särdragen på bilder på byggnader är väggar, tak och fönster. Om olika typer av bilder förekommer huller om buller i träningsdata, är särdragen mer eller mindre allmängiltiga och de inlärda vikterna kan användas i flera olika bildbehandlingsuppgifter.

Det är oerhört smidigt att använda oövervakat lärande eftersom det finns så gott som gränslösa mängder oklassificerade data, såsom bilder, som man inte behöver ange separat. Mängden data är alltså inte ett problem vid inlärning av vikter för de understa lagren. För att träna vikter för de översta lager använder man däremot övervakade maskininlärningsmetoder såsom backpropagation-algoritmen och därför måste en del av alla data vara klassificerade.

en robot som håller i en bild på en katt och en bild på en stoppskylt

Strider neuronnät? Generativa tävlande nätverk

Efter att ha tränat ett neuralnätverk på data kan vi använda det för att göra förutsägelser. Eftersom man lär de övre lagren att utföra vissa uppgifter med övervakad maskininlärning, kan de enbart användas för dessa uppgifter. Ett neuronnät som är tränat för att identifiera en stoppskylt är meningslöst när man behöver handskrivna siffror eller identifiera katter.

De understa lagren som vi har tränat med oövervakat lärande erbjuder ändå en fascinerande iakttagelse. Särdrag och objekt som de understa lagren har lärt sig kan åskådliggöras genom att man producerar bilder som aktiverar vissa neuroner i nätet. På så sätt får vi se hur neuronnätet “ser” olika begrepp. Det har till och med sagts att vi kan se neuronnätens “drömmar” eller “hallucinationer” genom detta – Googles DeepDream är ett exempel på det här.

Obs

Var försiktig med metaforer

Vi vill även i detta sammanhang understryka vikten av aktsamhet. Metaforer kan leda våra tankar i fel riktning – du kommer säkert ihåg resväskeorden från kapitel 1. När det gäller neuronnät är det bra att komma ihåg att det alltid handlar om att utgående från befintliga data optimera vikter i en matematisk modell. Ett neuronnät ”drömmer” eller ”hallucinerar” aldrig och neuronnätet ”förstår” inte begreppet katt på samma sätt som en människa gör. Den har blivit tränad i att känna igen objekt eller att producera bilder som liknar bilderna i dess träningsdata.

DeepDream-appen genererar (dvs. skapar) konstiga bilder med drag av katt- eller människoansikten – eller vad som helst i träningsdatan – och de påminner om drömmar eller hallucinationer, men man ser genast att de är artificiella. Ian Goodfellow, då en forskare vid Google Brain, fick en briljant idé för hur man kan skapa bilder som ser verkliga ut: genom att sätta ihop två neuronnät och låta dem tävla mot varandra. Ett av nätverken tränas för att generera bilder som liknar dem i träningsdata - det kallas det generativa nätverket (generative network). Det andra nätverkets uppgift är att skilja bilder som genererats av det första nätverket från verkliga bilder från träningsdata - detta kallas det särskiljande nätverket (adverserial network). Dessa två nätverk kombinerat utgör sedan ett generativt tävlande nätverk (eng. generative adversarial network, GAN).

Två parallella nätverk som formar ett GAN tränar man samtidigt. I början av inlärningen har den särskiljande modellen en lätt uppgift, nämligen att avslöja det generativa nätet och känna igen verkliga bilder från träningsdata. Det generativa nätet blir dock så småningom bättre och bättre och till sist måste även det särskiljande nätet bli bättre. Tävlingen mellan de två nätverken får båda att utvecklas till sådana nivåer att, i bästa fall, inte ens det mänskliga ögat kan skilja de genererade bilderna från verkliga bilder. GAN nöjer sig inte enbart med att reproducera bilder i träningsdatan, utan skapar helt nya bilder som ser verkliga ut.

fakecelebrityfaces

Bilderna ovan har producerats med ett GAN utvecklat av NVIDIA, under ledning av Jaakko Lehtinen (för mer information se denna artikel). Hade du själv kunnat märka att personerna i bilderna inte finns på riktigt, alltså att bilderna är helt syntetiska?

Framväxten av stora språkmodeller

Som nämnts ovan minskar faltningsnätverk (convolutional neural networks, CNN) antalet vikter (eller parametrar) som behöver tränas i ett neuralt nätverk. Därmed undviks att mängden träningsdata som krävs för att lära sig alla dessa vikter blir astronomiskt stor i takt med att det neurala nätverket växer. En annan innovation kopplad till nätverkens arkitektur, förutom idén om ett CNN, kallas uppmärksamhet (attention) och driver för närvarande många toppmoderna djupinlärningsmodeller.

Uppmärksamhets-mekanismer introducerades ursprungligen för maskinöversättning. Mekanismen innebär att man selektivt kan fokusera modellens uppmärksamhet på vissa ord i inmatningstexten när de genererar ett visst ord i utmatningen. På så sätt behöver modellen inte vara uppmärksam på all inmatning samtidigt, vilket förenklar inlärningsuppgiften avsevärt. Uppmärksamhets-mekanismer visade sig snart vara extremt användbara också utanför maskinöversättning.

År 2017 publicerade ett team på Google succéartikeln "Attention is All You Need", som introducerade den så kallade transformer-arkitekturen för djupa neurala nätverk. Om du inte har levt under en sten eller hållit dig borta från sociala medier, har du troligtvis redan hört talas om transformers (de neurala nätverksmodellerna, inte film-serien). Om du inte känner igen det kan det vara för att den ingår i en akronym: GPT (Generative Pretrained Transformer). Som titeln på artikeln från Google-teamet antyder utnyttjar transformers i hög grad uppmärksamhets-mekanismer för att få ut mesta möjliga av tillgängliga träningsdata och beräkningsresurser.

De mest kända tillämpningarna av transformers finns i stora språkmodeller (LLMs - Large Language Models). De mest kända är OpenAI:s GPT-serie, inklusive GPT-1 som släpptes i juni 2018 och GPT-4 som presenterades för allmänheten i mars 2023. Men även andra stora mjukvaruföretag har tagit fram egna språkmodeller: I oktober 2018 presenterar Google, med ett namn inspirerat av det amerikanska barnprogrammet Sesame Street, sin BERT-model (Bidirectional Encoder Representations from Transformers). Meta anslöt sig lite senare i februari 2023 och valde ett namn inspirerat av djurvärlden, LLaMA (Large Language Model Meta AI). Och det är inte bara mjukvaruföretagen som driver på utvecklingen: universitet och andra forskningsorganisationer bidrar med modeller med öppen källkod i syfte att demokratisera tekniken.

Obs

Vad är en LLM?

LLMs är modeller som utifrån ett textstycke som ”Finlands huvudstad är” förutspår hur texten sannolikt kommer att fortsätta. I det här fallet skulle ”Helsingfors” eller ”ett litet metropol” vara troliga fortsättningar. LLM-modeller tränas på stora mängder text, t.ex. hela innehållet i Wikipedia eller CommonCrawl-datasetet som, när detta skrivs, innehåller hela 260 miljarder webbsidor.

I princip kan man se LLMs som endast extremt kraftfulla tekniker för att förutsäga vad nästa ord i en mening sannolikt kommer vara. Men med lite mer eftertanke blir det uppenbart att förmågan att kunna förutsäga fortsättningen på en mening på ett sätt som inte går att skilja från mänskligt skrivande är (eller skulle vara) en stor bedrift och omfattar många aspekter av intelligens. Exemplet ovan, som bygger på associationen mellan orden "Finlands huvudstad" och "Helsingfors", är ett exempel där modellen har lärt sig ett faktum om världen. Om en modell kan associera allmänt vedertagna svar på en mängd olika frågor, skulle man kunna hävda att en sådan modell har lärt sig en stor del av den så kallade "världskunskapen". Särskilt spännande är de fall där modellen verkar kunna resonera på ett sätt som går utöver memorering och statistisk förekomst: för närvarande kan LLM-modeller göra detta i begränsad omfattning och de kan lätt göra triviala misstag eftersom de "bara" bygger på statistisk maskininlärning. Intensiva forsknings- och utvecklingsinsatser riktas mot att bygga djupinlärningsmodeller med mer robusta resonemangsalgoritmer och databaser med verifierade fakta.

Obs

ChatGPT: AI för folket

En kraftig jordbävning inträffade i San Francisco den 30 november 2022. Den var så kraftig att nästan alla på jorden påverkades av den. Trots detta var det inte en enda seismometer som registrerade jordbävningen. Denna metaforiska ”jordbävning” var OpenAI:s lansering av ChatGPT. Ryktet om chatbot-tjänsten som vem som helst kunde använda gratis spred sig snabbt över världen och efter bara fem dagar hade den mer än en miljon registrerade användare (jämför detta med de fem år som det tog Elements of AI att nå samma antal), och på två månader var antalet registreringar 100 miljoner. Ingen annan AI-tjänst, eller förmodligen någon tjänst överhuvudtaget, har blivit ett hushållsnamn så snabbt.

Den första versionen av ChatGPT byggde på en GPT-3.5-modell som finjusterats genom väglett lärande (supervised learning) och förstärkningsinlärning (eng. reinforcement learning) baserat på en stor mängd data som bedömts och klassificerats av människor. Syftet med finjusteringsprocessen var att styra modellen bort från felaktiga svar, som språkmodellen har lärt sig från sina träningsdata, och mot omfattande och hjälpsamma svar.

Det är inte lätt att säga vad som orsakade det massiva mediedrevet och det aldrig tidigare skådade intresset för ChatGPT. Även de som inte hade ägnat AI någon större uppmärksamhet hittills var nu medvetna om ChatGPT. En del av förklaringen är förmodligen den något bättre kvaliteten på resultatet, på grund av finjusteringen. Även chatt-gränssnittet, som gör användaren kan hålla en sammanhängande konversation och inte bara få engångssvar på isolerade frågor, som i alla tidigare LLM, spelade antagligen in. På samma sätt gör chatt-gränssnittet det möjligt att ställa frågor som "förklara detta för en femåring" eller "skriv det som en sång i stil med Nick Cave" (Herr Cave var dock inte imponerad (BBC)). I vilket fall som helst lyckades ChatGPT få upp intresset för AI till helt nya nivåer.

Det återstår att se vilka som är de verkligt banbrytande tillämpningarna för ChatGPT och andra LLM-baserade lösningar. Vi tror att de mest troliga kandidaterna är sådana där användaren matar in data och/eller fakta från ett annat system, och språkmodellen används för att formatera utdata i form av språk (antingen naturligt språk eller eventuellt formellt språk som programkod). Vi återkommer till de förväntade effekterna av ChatGPT och andra LLM-baserade applikationer i det sista kapitlet.

Efter kapitel 5 bör du kunna

  • förklara vad neuronnät är och för vilka ändamål de lämpar sig
  • förstå också de begränsningar modellerna i bakom neuronnäten har.

Ta del i Elements of AI -gemenskapen för att diskutera och fråga om innehåll i det här kapitlet.