← KursöversiktArtificiell Intelligens Nivå 1

Lärobok

Neurala nätverk och syn

Undersök hur bilder blir tal, hur lager lär sig användbara representationer och hur ett synsystems fel måste granskas i sitt sammanhang.

Enhetens kärnfråga

Hur kan ett neuralt nätverk lära sig mönster i bilder utan att förstå bilden som en människa?

190 minuterNeurala nätverkDatorseendeBilddataUtvärdering

Avsnitt

Bilden som data

För ett bildsystem är en bild en ordnad samling tal vars form och mätvillkor påverkar vad modellen kan använda.

Från ljus till en ordnad talmängd

En digitalkamera mäter ljus genom ett rutnät av bildpunkter, pixlar. Varje pixel lagrar ett eller flera tal. I en gråskalebild kan ett tal beskriva ljusstyrka. I en RGB-bild används vanligtvis tre kanaler för rött, grönt och blått. En bild med höjden 32 pixlar, bredden 32 pixlar och tre kanaler kan därför beskrivas med formen 32 × 32 × 3.

Den ordnade talmängden kan kallas en tensor. Ordningen spelar roll. Om samma tal blandas slumpmässigt finns färgfördelningen kvar, men motivets former och lägen förstörs. Ett synsystem får alltså inte ett föremål som indata. Det får mätvärden ordnade efter position och kanal.

Representationen väljer vad som kan användas

Före träning görs ofta bearbetning. Bilden kan beskäras, skalas till en bestämd upplösning eller omvandlas till gråskala. Pixelvärden kan normaliseras, till exempel från heltal mellan 0 och 255 till tal mellan 0 och 1. Sådana steg gör bilderna mer enhetliga för beräkningen, men de kan också ta bort information.

Om färgen skiljer material åt kan gråskala vara en dålig representation. Om mycket små symboler avgör klassen kan kraftig nedskalning sudda ut dem. Samtidigt kan hög upplösning bevara störande detaljer och kräva mer beräkning. Rätt representation beror därför på uppgiften och på vilka variationer systemet ska tåla.

I aktiviteten jämför du en färgbild, en gråskalebild och en nedskalad gråskalebild av samma konstruerade motiv. Beskriv formen på varje representation, vilken information som bevaras och vilken som går förlorad. Avsluta med vilken representation som är rimlig för en angiven uppgift och vilket test som behövs för att kontrollera valet.

Nyckelbegrepp

pixelkanalupplösningtensornormaliseringrepresentation

Vilken information finns kvar när en färgbild görs om till gråskala?

Skriv själv. Klistra in är avstängt i studentläsaren.

Beskriv bildens form, värden och en egenskap som representationen utelämnar.

Skriv själv. Klistra in är avstängt i studentläsaren.

Avsnitt

Neuroner och lager

En artificiell neuron kombinerar tal med vikter och bias, och flera lager bygger en kedja av beräkningar.

En liten beräkningsenhet

En artificiell neuron tar emot flera tal. Varje indatavärde multipliceras med en vikt. Produkterna summeras och ett bias läggs till. Om indata är x1 och x2 kan den viktade summan skrivas z = w1·x1 + w2·x2 + b.

Vikten bestämmer hur starkt och i vilken riktning ett indatavärde påverkar summan. En positiv vikt kan höja z, en negativ kan sänka den och en vikt nära noll ger liten påverkan. Bias flyttar neuronens gräns. Därefter omvandlar en aktiveringsfunktion summan till neuronens utdata. En enkel ReLU-aktivering ger 0 för negativa summor och behåller positiva summor.

Begreppet neuron är en teknisk metafor. Den artificiella enheten är en matematisk beräkning och ska inte behandlas som en fullständig modell av en biologisk nervcell.

Lager bildar en beräkningskedja

I ett lager beräknar flera neuroner olika viktade kombinationer av samma indata. Deras utdata blir indata till nästa lager. Lagren mellan indata och utgång kallas ofta dolda lager. En framåtpassage är hela beräkningen från bildens pixelvärden genom lagren till nätverkets utgångspoäng.

För en bildklassificerare kan utgången bestå av en poäng per klass. En beslutsregel kan välja den högsta poängen eller skicka fallet till mänsklig granskning om poängerna är för osäkra. Poängen är ett beräknat resultat. Den visar inte att nätverket vet vilket föremål bilden innehåller.

I aktiviteten följer du ett mycket litet nätverk med givna heltalsvärden. Visa varje multiplikation, bias och aktivering. Jämför sedan två neuroner som får samma indata men har olika vikter. Förklara varför deras utdata skiljer sig utan att ge neuronerna mänskliga avsikter eller fasta begreppsnamn.

Nyckelbegrepp

artificiell neuronviktbiasviktad summaaktiveringsfunktionlagerframåtpassage

Hur kan två lika stora indatavärden påverka resultatet olika?

Skriv själv. Klistra in är avstängt i studentläsaren.

Följ ett värde från indata till utgång och ange var vikter, bias och aktivering används.

Skriv själv. Klistra in är avstängt i studentläsaren.

Avsnitt

Träning: från fel till parameterändring

Under träning mäts skillnaden mellan nätverkets resultat och önskat resultat, och parametrarna justeras stegvis.

Ett felmått för träningen

Vid träning gör nätverket först en framåtpassage för ett antal märkta exempel. En förlustfunktion jämför utgångspoängen med de önskade etiketterna och ger ett tal. Lägre förlust betyder att resultatet enligt just denna funktion ligger närmare träningsmålet. Förlusten är inte ett fullständigt mått på systemets användbarhet.

För att ändra parametrarna behövs information om hur en liten ändring av varje vikt och bias skulle påverka förlusten. Den informationen sammanfattas av gradienten. Bakåtpropagering är en effektiv metod för att beräkna gradienter bakåt genom beräkningskedjan. Facit skickas inte in baklänges som en bild. Det används när förlusten beräknas, och förändringskänsligheten förs sedan bakåt med kedjeregeln.

Små uppdateringar, många gånger

En uppdatering kan förenklat skrivas ny vikt = gammal vikt - inlärningshastighet × gradient. Inlärningshastigheten bestämmer stegets storlek. Ett mycket litet steg kan ge långsam träning. Ett för stort steg kan passera ett bättre läge och få förlusten att svänga eller öka.

När modellen har bearbetat hela träningsmängden en gång har den genomfört en epok. Träningen upprepar ofta många minibatcher och epoker. Valideringsdata används för att följa hur modellen fungerar på data som inte används för själva parameteruppdateringen.

I aktiviteten jämför du ett resultat före uppdatering, efter ett litet steg och efter ett för stort steg. Förutsäg först riktningen, jämför sedan förlustvärdena och förklara varför det största steget inte måste vara bäst. Avsluta med varför ett separat valideringsresultat behövs innan träningen eller inställningarna väljs.

Nyckelbegrepp

förlustfunktiongradientbakåtpropageringinlärningshastighetepoköveranpassning

Vad måste mätas innan nätverkets vikter kan ändras i en riktning?

Skriv själv. Klistra in är avstängt i studentläsaren.

Förklara kedjan framåtpassage, förlust, gradient och parameteruppdatering.

Skriv själv. Klistra in är avstängt i studentläsaren.

Avsnitt

Lokala mönster i bilder

Konvolutionella lager använder små delade filter för att söka efter lokala mönster på flera positioner.

Ett filter används på många positioner

Ett fullt kopplat lager kan ge varje pixel en separat vikt till varje neuron. För bilder blir det snabbt många parametrar, och samma lokala mönster behöver läras på nytt för olika positioner. Ett konvolutionellt lager använder i stället små viktmatriser, ofta kallade filter eller kärnor, över lokala delar av bilden.

Filtret placeras över en liten pixelruta. Motsvarande tal multipliceras och summeras, tillsammans med ett bias. Resultatet lagras på en position i en aktiveringskarta. Sedan flyttas samma filter till nästa position. Delade vikter gör att samma beräkning kan reagera på ett liknande lokalt mönster på flera platser.

Filtervärdena behöver inte skrivas av en människa. Under träning justeras de som andra parametrar. Ett enkelt handgjort kantfilter är ett undervisningsexempel på mekanismen, inte ett påstående om exakt vilka filter ett tränat nätverk använder.

Från lokalt till sammansatt

En enhet i första lagret har ett litet receptivt fält, alltså ett begränsat område av originalbilden som kan påverka den. När flera konvolutionella lager följer på varandra kan en senare enhet påverkas av ett större område. Senare representationer kan därför kombinera enklare lokala variationer till mer sammansatta mönster.

Poolning eller stegvis nedskalning kan sammanfatta närliggande aktiveringar och minska representationens storlek. Det kan göra små positionsförändringar mindre betydelsefulla, men exakt lägesinformation kan gå förlorad.

I aktiviteten flyttar du ett lodrätt och ett vågrätt kantfilter över samma lilla pixelruta. Redovisa en lokal multiplikation och jämför aktiveringskartorna. Förklara varför samma filter kan användas på flera positioner och varför ett starkt filtersvar inte ensamt visar att hela föremålet har identifierats.

Nyckelbegrepp

filterkonvolutionreceptivt fältaktiveringskartapoolninghierarkisk representation

Varför kan samma lilla filter vara användbart på flera platser i bilden?

Skriv själv. Klistra in är avstängt i studentläsaren.

Förklara hur ett lokalt filtervärde blir en del av en ny aktiveringskarta.

Skriv själv. Klistra in är avstängt i studentläsaren.

Aktiviteter

Pröva med egna händer

Samma motiv, olika tal

Jämför tre numeriska representationer av samma konstruerade bild och avgör vilken information som bevaras eller försvinner.

Arbeta med dimensionerna

0/6 ifyllt

Följ signalen genom nätverket

Beräkna två små neuroners viktade summor och följ vilka signaler som går vidare efter aktiveringen.

Arbeta med dimensionerna

0/5 ifyllt

Ett träningssteg i taget

Jämför nätverkets resultat före och efter en liten parameterändring och förklara hur förlusten styr ändringens riktning.

Arbeta med dimensionerna

0/7 ifyllt

Sök efter ett lokalt mönster

Flytta två små filter över samma pixelruta och jämför var de ger stark respons.

Arbeta med dimensionerna

0/6 ifyllt

Kan synsystemet användas här?

Granska ett konstruerat bildsystems resultat i studioljus och vardagsljus och välj använd, använd med villkor eller använd inte.

Arbeta med dimensionerna

Beslut

0/12 ifyllt

Uppgifter att arbeta vidare med

Granska det konstruerade bildsystemet för återvinningssortering. Förklara vilken bildrepresentation modellen får, jämför testresultat under två bildvillkor, identifiera minst två felmönster och rekommendera användning, användning med villkor eller att systemet inte används. Ange vad en människa behöver kontrollera.

Redovisning: text