Instuderingsfrågor - AI II Flashcards
Hur skiljer sig ANNs från symbolisk AI?
ANNs använder en bottom-up-approach, där systemet inte programmeras med fasta regler, utan istället lär sig från data genom att justera vikter mellan neuroner. De viktigaste skillnaderna är:
- ANNs kan lära sig mönster automatiskt istället för att förlita sig på manuellt kodade regler.
- ANNs är bättre på att hantera komplexa och “luddiga” problem, som bild- och taligenkänning.
- ANNs förbättras med större datamängder och kraftfullare hårdvara, medan symbolisk AI inte skalas lika effektivt.
Varför stannade forskningen av perceptroner av under flera år, och vad var det som återväckte intresset av neurala nätverk?
Forskning om perceptroner stannade av efter att Minsky & Papert (1969) visade att SLP:er inte kunde lära sig XOR eller andra icke-linjärt separerbara problem.
Detta ledde till missuppfattningen att artificiella neurala nätverk var fundamentalt begränsade.
Intresset för neurala nätverk återupplivades dock på 1980-talet när forskare upptäckte backpropagation-algoritmen, som möjliggjorde träning av MLPs.
Med ökad datorkapacitet och datatillgång blev neurala nätverk så småningom praktiska, vilket ledde till den moderna deep learning-revolutionen.
Vad är “The Credit Assignment Problem” och hur hjälper back propagation till att lösa det?
The Credit Assignment Problem hänvisar till utmaningen att bestämma vilka specifika vikter i ett neuralt nätverk som är ansvariga för fel när nätverket producerar felaktig output. I SLPs existerar inte detta problem eftersom det bara finns ett lager av vikter att justera. Men i MLPs kan fel härröra från vilket lager som helst, vilket gör det svårt att veta exakt vilka vikter som måste justeras. Backpropagation löser detta genom att:
- Beräkna hur stort felet är (hur mycket erhållen output skiljer sig från förväntat output).
- Propagera felet från outputlagret baklänges genom nätverket, lager för lager.
- Justera vikterna med hjälp av gradient descent.
Detta systematiska tillvägagångssätt gör det möjligt för MLP:er att lära sig komplexa funktioner effektivt.
Hur tränas ett neuralt nätverk med ett dataset som MNIST?
MNIST är ett dataset med handritade siffror (0–9) som används för att träna neurala nätverk att känna igen siffror. Träningen sker i följande steg:
- Förbehandling: Varje bild konverteras till en vektor av pixlar (1 = färgad pixel, 0 = tom pixel).
- Forward pass: Bilden matas in i nätverket, och en första gissning görs.
- Lossberäkning: Om svaret är felaktigt beräknas ett felvärde (loss).
- Backpropagation: Vikterna justeras för att minimera felet.
- Iterativ träning: Processen upprepas över flera epoker tills nätverket kan klassificera nya siffror korrekt.
När träningen är klar kan nätverket känna igen handskrivna siffror även om det aldrig har sett just den bilden tidigare.
Vad menas med att ett problem är linjärt separerbart, och varför kräver XOR ett mer komplext nätverk än en SLP?
En SLP kan bara klassificera data som är linjärt separerbar, vilket innebär att en enda rät linje kan separera de olika klasserna i en tvådimensionell problemrymd. XOR-funktionen är dock inte linjärt separerbar - det finns ingen enskild linje som korrekt kan avgränsa dess 1- och 0-outputs. Denna begränsning ledde till tidig skepsis mot perceptroner, som beskrivs av Minsky & Papert (1969). Problemet löstes senare med Multi-Layer Perceptrons som kan representera flera linjära separationer med hjälp av hidden layers.
Vad är fördelen med att använda hidden layers i en MLP, och hur hjälper det till att lösa XOR-problemet?
Hidden layers gör det möjligt för en MLP att utföra flera linjära separationer på inputdatan innan den når outputlagret. Varje dold neuron kombinerar funktioner på ett icke-linjärt sätt, vilket gör att nätverket kan separera komplexa mönster. Man kan se en MLP som en kobination av flera SLPs som var och en kan utföra sin egna linjära separation.
Hur kommer ökandet av antalet hidden neurons (neuroner i hidden layers) att påverka prestandan hos ett neuralt nätverk? Vad händer om man lägger till för få hidden layers? Vad händer om man lägger till för många hidden layers?
För få hidden neurons: Nätverket kommer inte att ha tillräckligt med kapacitet för att lära sig komplexa mönster, vilket leder till underfitting (dålig prestanda).
För många hidden neurons: Nätverket löper riskt att memorera specifik träningsdata istället för att generalisera, vilket leder till overfitting.
Vad är backpropagation och varför är det viktigt för träning av neurala nätverk?
Backpropagation är en träningsalgoritm som används för att uppdatera vikterna i ett neuralt nätverk genom att sprida felvärdet bakåt genom lagren. Processen fungerar så här:
- Forward pass: En insignal skickas genom nätverket, och en utgång beräknas.
- Felberäkning: Skillnaden mellan det faktiska svaret och det förväntade svaret beräknas.
- Backpropagation: Felet sprids bakåt genom nätverket, och vikterna justeras för att minska felet.
- Iterativ förbättring: Processen upprepas i många epoker tills nätverket lär sig att producera rätt svar.
Backpropagation är avgörande eftersom det gör det möjligt att träna deep neural networks och optimera deras prestanda.
Vad händer under en träningsepok, och varför förbättras inlärningen av multipla epoker?
En epok hänvisar till ett helt pass genom träningsdatauppsättningen. Att träna ett neuralt nätverk över flera epoker gör att modellen gradvis kan lära sig bättre viktvärden och minska mänden felaktiga outputs.
- I tidiga epoker kommer nätverket att ge väldigt felaktig output, men lär sig gradvis vad de korrekta outputen ska vara.
- I takt med att antalet epoker ökar finjusterar nätverket vikterna för att fånga subtila datamönster.
- För få epoker → modellen lär sig inte tillräckligt (underfitting).
- För många epoker → modellen memorerar specifika träningsdata istället för att generalisera (overfitting).
Att hitta rätt antal epoker är avgörande för optimal träning.
I vilka situationer kan en SLP vara användbar? Vilka typer av problem kräver att man använder en MLP?
SLPs är användbara för enkla binära klassificeringsproblem där data är linjärt separerbara (t. ex. att skilja mellan skräppost och icke-spam e-postmeddelanden när en enda tröskel räcker).
MLPs behövs för mer komplexa problem, såsom
- Medicinsk diagnostik (klassificering av sjukdomsförekomst baserat på flera symtom).
- Handskriven sifferigenkänning (att lära sig icke-linjära mönster i bilder).
- Upptäckt av ekonomiskt bedrägeri (upptäcka mönster i stora datauppsättningar med flera funktioner).
MLP:s förmåga att lära sig komplexa datastrukturer gör dem ovärdeliga för deep learning.
Vad är syftet med back propagation vid träning av neruala nätverk, och vilken roll spelar gradient descent-algoritmen?
Backpropagation är en algoritm som används för att träna MLP:er genom att beräkna felet vid outputlagret och gå baklänges genom nätverket. Detta hjälper till att avgöra hur mycket varje vikt bidrar till nätverkets felaktiga output (lösa credit assignment problem). Gradient descent-algoritmen justerar sedan vikterna för att minimera detta fel. Denna process upprepas över flera iterationer (epoker) tills nätverket lär sig korrekt output.
Vilken var det största nackdelen med enkla perceptroner som fick utvecklingen att avstanna?
Att den inte kan lära sig icke linjärt separerbara funktioner som XOR.
Vad var den ursprungliga idén bakom symbolisk AI, och varför blev den svår att skala upp?
Symbolisk AI byggde på en top-down-approach, där man försökte modellera intelligenta system genom att definiera explicita logiska regler. Problemet var att:
- Verkliga problem är för komplexa för att uttryckas med en uppsättning regler.
- Det var omöjligt att förutse alla tänkbara situationer som ett AI-system kan ställas inför.
- Symbolisk AI fungerade bra i begränsade miljöer (t.ex. schack), men kunde inte generalisera till den verkliga världen.
Därför blev det svårt att skala upp symbolisk AI till nivåer som motsvarar mänsklig intelligens.
När man tränar MLP, vad syftar man på när man pratar om “credit assignment problem”?
Att avgöra exakt vilka vikter som orsakar den felaktiga outputen.
Vad innebär backpropagation i träning av neurala nätverk?
Att justera vikterna i nätverket genom att arbeta baklänges från felet i outputen.
Vad är den största fördelen med att använda en MLP istället för en SLP?
Den kan lära sig icke-linjära funktioner som XOR.
Vad är den huvudsakliga rollen hos en optimerare (optimizer) när man tränar ett neuralt nätverk?
Att uppdatera vikterna vid back propagation.
Why does the Transformer use positional encoding?
To help the model learn relationships between different positions in a sequence.
In NLP, what is the purpose of tokenization?
To convert language input into numerical representations that can be processed by models.
What is the key idea behind convolution in CNNs?
Using a small set of weights (filters) to detect local patterns and share them across the image.
What is the purpose of pooling layers in a CNN?
To reduce spatial dimensions while preserving the most important information.
Vad analyseras med en confusion matrix?
Accuracy hos en klassificeringsmodell.
Vad är syftet med loss functions i ANNs?
Att kontrollera felstorleken hos nätverkets output.
Vilken form (shape) har arrayen
[ [ [1, 2], [3, 4], [5, 6] ],
[ [7, 8], [9, 10], [11, 12] ] ] ?
(2,3,2)
Vad är funktionen hos en perceptron?
Det är en typ av artificiell neuron som multiplicerar input med vikter och summerar dem.
What is a key difference between fine-tuning and prompt engineering in LLMs?
Fine-tuning involves modifying the model’s weights using new data, while prompt engineering shapes the model’s responses without changing its underlying weights.
Which of the following properties are true for Layerwise-Relevance Propagation (LRP) model explainers? (more than one of the below is correct)
They are model-specific
They are post hoc approaches