TIG 122 - Maskininlärning och dataanalys Flashcards
Deep Learning
Ai modeller bestående av flera lager
Efterliknar den mänskliga hjärnans funktion
För att kunna analysera mer komplexitet
SLP - Singel layer perceptron
Ett input lager och en output neuron
Hanterar linjära problem- t.ex klassificerings uppgifter
MLP - Multi - layer perceptron
Minst 3 lager - in-put, hidden och out-put
Använder backpropagation
DNN - Deep neural network
Flera hidden layers
Hanterar komplexa problem med en stor mängd data
Varje lager har en egen funktion
Forward propagation
Datan rör sig framåt genom närverket, lager för lager
Loss function
Skillanden mellan den beräknade out-put och den faktiska
Används för att mäta nätverkets prestanda/ tränings framgång
Backpropagation
- Nätverket kalkylerar skillnaden mellan outputen och den förväntade outputen - loss function
- Nätverket arbetar sig bakåt och justerar vikterna längs vägen utifrån loss function
- Upprepas till outputen nått målet
CNN - Convolutional neural network
- Analyserar visuell data (bilder och videor)
- Applicerar filter som tar sig genom bilden för att identifiera mönster
- Bildigenkänning, ansiktsigenkänning, medicinsk bildanalys, självkörande fordon
XAI methods
Metoder som gör det möjligt att förstå och förklara hur ai-modeller fattar sina beslut
Framförallt viktig i när ai t.ex används inom vården
Nämn 3 olika XAI metoder
- Post - hoc metod - försöker förklara modellens beslut i efterhand baserat på t.ex spelteorin
- Intrinnsiska metoder - Modellen har en inbyggd form av förklaring system som själv tolkar och återberättar funktioner och resultat
- Visualiseringsmetoder - använder visuella representationer för att tolka och förstå
Object detectors
Finns i CNN modeller
Lokaliserar och klassificerar objekt i bilder och videos
Transformers
NPL - nartulig språkbehandling
-bearbetar data parallellt
använder attention
Symbolisk/Klassisk AI
Använder symboler för representation av information
Utför logiska operationer
Top- down system
Människan definierar regler och matar in data
får ut ett svar
ANN - Articiella neurala nätverk
- Inspirerad av hjärnans funktioner ¨
- Bearbetar datan genom aktiveringsfuntkioner
- Kan lära sig från data och hitta mönster i data
- Modellen listar själv ut reglerna - matar in svar och data
MINIST
Databas - består av handskrivna siffror mellan (0-9)
Används för att träna och testa modeller
60 000 tränings bilder och 10 000 testbilder
Träningsalgoritmer
- Om output är korrekt ändra ingenting
- Om output är 1 men skulle vara 0 - sänk vikten
- Om output är 0 men skulle vara 1 - hög vikten
Vilka är de mest populära ramverken för att bygga och träna neurala nätverk?
PYT ROC - Meta
TensorFlow - Google
Google Colab
Kodmiljö, använder Jupiter nootbook
Använder GPU och TPU
GPU - graphics processing unit
- Används för att utföra beräkningar inom maskininlärning och deep learning
- Optimerad för parallella beräkningar
TPU - Tensor processing unit
- Specialbyggd för AI i Tensor Flow
- Hanterar tensor-beräkningar (matriser)
Keras
- Ett gränssnitt som gör det möjligt för flera olika delar av en modell att kommunicera med varandra
- Definieras vad som kan göras men inte hur de kan göras
- Besitter t.ex funktioner för hur en modell ska tränas
Sequential
- En struktur för att bygga neurala närverk
- Där ett lager är kopplat till nästa osv
- Enkelt och linjärt
Vektor
Matriser som används för att lagra numerisk data
Används ofta för att t.ex beskriva egenskaper hos ett objekt
Array
Funktionen hos numpy
Data struktur som lagrar en samling av element
Alla element i en array har samma datatyp
Kan bestå av flera dimensioner
Tensor
En matematisk struktur
Lagrar vikter och bias i neurala nätverk
Representerar och bearbetar data
Tensors uppbyggnad
0D tensor: Ett enda tal (skalar).
1D tensor: En vektor (en lista av tal).
2D tensor: En matris (en tabell med rader och kolumner).
3D tensor: En “matris av matriser” (t.ex. en kub av data).
NumPy 2D-tensor
Vanligt inom maskininlärning
Representerar input datan och vikterna i modellen
Enkel representation av data
Vektorrymd
Ett utrymme där vektorer kan placeras
Används för att beräkna avstånd och likheter mellan data punkter
NumPy shape
Ger information om hur många rader, kolumner och dimensioner en array har
Ger information om hur många element en array har
Preprocessing av data
Om datan behöver processas innan den används i nätverket för att omvandla till ett mer effektivt format
Normalisering av data
Justerar värden i datasetet så det ligger inom ett viss intervall
Kan på så sätt behandlas mer effektivt i modellen
Aktiveringsfunktion
En funktion som avgör värdet på datan för att få skicka vidare information eller inte
Softmax
Aktiveringsfunktion
Framställer ett sannolikhetsvärde för varje möjlig output och den med störst sannolikhet blir sedan den slutgiltiga outputen
ReLU
Aktiveringsfunktion ¨
Används ofta i dolda lager
Introducerar icke-linjäritet
Omvandlar alla negativa värden till 0 och låter alla positiva vara oförändrade
Lär sig komplexa mönster i datan
Vad gör man när man kompilerar ett nätverk?
Färdigställer det för träning
Specificerar viktiga inställningar - 3 parametrar
Vilka är de parametrar som specificeras under kompilering?
- Loss function - t.ex definierar om nätverkets sanna värden
- Optimizer - Styr hur vikterna förändras under träning
- Matrics - Undersöker hur bra modellen presenterar på träning
model.fit ()
Inbyggd funktion i keras som baserat på träningsdata justerar modellens vikter
Epochs
Epoker är gångerna man kör igenom träningsdata genom modellen
Validation_split
Gör att en viss andel av träningsdatan sparas undan för att istället kunna använda under validering
Modellen kan då testas på data den tidigare inte exponerats för vilket övervakar generaliseringsförmågan
Evolvuering av nätverk
Använder evolutions algoritmer för att att automatiskt skapa, justera och förbättra arkitekturen hos ANN
- Syftet är att hitta den bästa strukturen utifrån specifika problem
- t.ex hur många lager nätverket ska
Vektor - matematisk building
Representation av data i from av siffror för beräkningar
Dot product (skalär)
En viktad summa
Dimension 0
En matematisk operation mellan två vektorer.
Använda för att beräkna ett mått på likheten mellan två vektorer
Hur får man fram en dot procuct (skalär) av vektorer?
Två vektorer som är lika långa
multiplicerar koordinaten med respektive koordinat i den andra vektorn
Sedan adderar alla produkter med varandra
t.ex - w1x1 + w2x2
Matrices
2 dimentionell datastruktur
Rader presenterar någon from av egenskap
Kolumner presenterar en annan form av egenskap
Definierar all data ihop
Tensor (array)
Förvarar data
Organiserar olika typer av data i flera dimensioner
Data sets
En samling data av samma typ som man organiserar
image data set
En samling bilder som används för att träna maskininlärnings modeller för att utföra uppgifter som bildklassificering, objektigenkänning osv
Vilken aktiveringsfunktion är bra att ha kopplat med MNISt dataset?
Softmax
Träningsprocessen hos ett ANN
Partial derivatas
Tangentlinje / tangent line
En linje som rör vid kurvan vid en viss punkt
Slope/lutning
Lutningen hos tangent line i de olika punkterna
Hur slope räknas ut
y = kx +m
k = lutningen
Väljer 2 punkter på linjen
dividerar skillnaden i x -led mot skillnaden i
y/x = k
Räknar ut linjens lutning men får då hur mycket kurvan lutar i just den punkten
Derivatan
Lutningen hos tangent linjen
c = f(c)
Talar om hur mycket det lutar i en punkt på kurvan
Träning loop av ett neuralt nätverk
- väljer ut ett antal data punkter man ska träna sitt nätverk på (information från indata)
- För varje input testar man då och får en output
- Räknar sedan ut loss function för varje data punkt
- Algoritmen gardient decent används sedan genom att räkna ut derivatan och avgör sedan hur vi ska förändra vikterna för att få ett mindre loss
Gradient descent
Optimerings algoritm som räknar ut derivatan (lutningen) av loss function med avseende av vikterna = gradienten (lutningen)
Gradienten talar om hur mycket loss function förändras om vikterna ändras
Gör ofta små förändringar i taget och uppdaterar vikterna i rätt riktning för att minska loss
Går igenom alla punkter i datan
Dataset
Samling av data som mats in i modellen
Trainingsdataset
Används för träning av modellen ‘
Justerar modellens interna parametrar genom att minimera loss function - 70%
Valideringsdataset
Används för att justera hyperparamtrar (inställningar som inte lärs av modellen) t.ex inlärningshastigheet, antal lager osv
Kontrollerar modellens prestanda och generaliserbarhet - 15%
Testdataset
Används efter träning för att utvärdera modellens generaliserbarhet på osedd data - 15%
Mean squared error
Mått som används för att uppskatta hur bra en modell presterar
mäter genomsnittet av loss function
Generaliserbarhet
Modellens förmåga att prestera bra på ny data den inte tidigare har expanderats för
Modellen lär sig hitta mönster i träningsdatan som den sedan kan applicera på ny data
Hur når man generaliserbarhet?
- Använd lagom komplex data
- Avsluta träningen när prestandan på valideringsdatan slutar förbättras
- Öka variationen i träningsdatan
Optimering
Processen som sker när man minimerar loss founction
Handlar om att hitta en punkt där loss function är tillräckligt låg i träningsdatan
Vad händer om man tar optimeringen för långt?
Det kan leda till overfitting
Overfitting
Modellen har lärt sig träningsdatan för bra
Betyder att modellen inte har lärt sig hitta mönster hos träningsdatan utan istället lärt sig detaljer och saker som är unikt för träningsdatan (memorerar istället för att förstå “reglerna”)
Hur kommer modellen presentera när den är overfittad?
Modellen kommer presetera bra på träningsdatan men kommer misslyckas med data som den tidiagre inte har exponerats för
Hur förhindrar man overfitting?
- Skapa variation i träningsdatan
- Öka mängden träningsdata
Underfitting
Modellen är för enkel eller otränad för att identifiera underliggande mönster i datan
Presterar dåligt på både träninngsdata och osedd data
Varför sker underfitting?
- Modellen är för simpel, finns inte tillräckligt med parametrar som kan fånga komplexitet i datan
- Träningen har avbrutits för tidigt
Robust fit
Bar generaliserbarhet
Påverkas inte av enstaka extremvärden
Noise/ Brus
Slumpmässiga fel eller irrelevanta variationer i datan som inte återspeglar de mönster vi vill att modellen ska lära sig
Hur kan brus vara bra?
- Brus kan göra att modellen tvingas hitt mönster
- Slumpmässiga förändringar i datan får modellen att fokusera på mönster och ej enstaka detaljer
Interpolering
Metod för maskininlärning
Skapar nya datapunkter mellan två eller flera redan existerande punkter
Med syfte att fylla i luckor eller skapa smidiga övergångar mellan redan kända punkter
Skapar mer träningsdata
K - fold cross - validation
Räknar ut loss function
metod för en mer pålitlig utvärdering av en modell
Representerbarhet
Viktigt att alla dataset speglar den verkliga datan som modellen kommer att stöta på i praktiken
Tidsaspekter
Viktigt att alla dataset spegalr verkliga förhållanden, då förändringar sker
Överflödighet
Undvika identiska datapunkter i treänings och test data då modellen kan ha memorerat
Stochastic Gradient Descent
Optimeringsalgoritm
Fungerar på samma sätt som GD, men istället för att gå igenom alla punkter i datan uppdaterar den endast enskilda och slumpmässiga punkter.
Bra för att hantera stora dataset
ADAM - Adaptive Moment Estimation
Optimeringsalgoritm
Kommer ihåg tidigare gradienter
Använder medelvärden av gradienter baserat på historik
kräver ofta justering av hyperparametrar
Olika dtapunkter jämförs inte med varandra utan kan lära sig i sin takt
Learning rate (inlärningshastighet)
Hyperparemeter
Styr hur stora steg optimeraren ska ta i justering av modellens vikter under träning
Kan vara bra att göra små förändringar för att inte missa viktiga steg, men kan gå långsamt
Batch size
Hur många exempel av träningsdatan modellen bearbetar innan vikterna uppdateras under träning
Confusion matrix
Tabell som används för att utvärdera prestandan hos en klassificeringsmodell
Jämför loss fuction och visar hur många exempel som är korrekta och hur många som blev fel
Linjärt separerbar
Perceptron
En rak linje kan separera data punkter
Icke -linjärt separerbart
En rak linje kan inte separera datapunkterna korrekt
Behövs något mer komplext med fler lager och neuroner
Credit Assignment Problem
Kan uppstå i träning av MLP
Svårigheter med att identifiera vilka vikter eller parametrar som är ansvariga för felaktiga resultat
Hur löser man Credit Assignment Porblem?
Använder backpropagation
Den biologiska inspirationen av CNN
Visuella cortex
Hierarkiskt upplägg där mer komplex mönster uppfattas av senare lager
Olika neuroner är specialiserade på att känna igen olika typer av visuell information
LeNet - 5
En av de första CNN - 80-90 talet
Kombinationen av hierarkisk bearbetning och backpropagation
Fullt ansluta lager
5 lager
AlexNet
2012 det stora genombrottet för CNN
djupare nätverk = 8 lager
Vad används CNN främst till?
Bildigenkänning, bildklassificering och objektidentifiering
Hur ser kopplingarna mellan neuronerna ut i ett CNN?
Varje neuron är kopplad till ett receptivt fält i nästa lager, dvs en lokal region av neuroner
Vilka lager finns i ett CNN?
- Konvolutionslager / Convolutional layer
- ReLU - lager
- Pooling - lager
- Fullt anslutet lager
Konvolutionslager / Convolutional layer
Extraherar egenskaper i indatan genom filter och feautermaps
ReLU - lager
Introducerar icke-linjäritet i modellen
Vilket innebär att alla negativa värden sätts till 0
Pooling - lager
Minskar dimensionerna hos feature maps, behåller de framträdande egenskaperna, vilket gör modellen mindre känslig för små förändringar
t.ex filtreras brus bort
Fullt anslutet lager
Alla neuroner mellan två nätverk är kopplade till varandra,
Kombinerar alla egenskaper/features och fattar ett slutgiltigt beslut som sedan skickas genom aktiveringesfunktionen
Sigmoid aktiveringsfunktion
Sannolikhets funktion
Ger ett värde mellan 0-1 för aktivering av värdet
Klassificerar ett värde/ skalär i taget
Softmax aktiveringsfuktion
Sannolikhets funktion¨
Ger ett värde mellan 0-1 för aktivering
Klassificerar en hel vektor samtidigt/ flera värden
CNN filter
Filtret flyttas steg för steg över input bilden
Varje element i bilden multipliceras med motsvarande pixelvärde
Summan blir sedan en siffra som placeras i lagrets feauture map
Hur många vikter har ett filter som är 3x3?
9 vikter
Feature maps i CNN
Representerar vad/hur mycket ett filter har hittat i form av egenskaper/ mönster i olika delar av bilden
indelad i delar av bilden vilket motsvarar neuroner
Exempel på filter till feature map i CNN
5x5 bild: 3x3 filter:
1 2 3 0 1 1 0 -1
4 5 6 1 2 1 0 -1
7 8 9 2 3 1 0 -1
1 2 3 4 5
6 7 8 9 0
3x3 Feture map Uträkningen:
1 2 3 11 + 20 + 3* (-1) +
4 5 6 41 + 50 + 6* (-1) +
7 8 9 71 + 80 + 9 * (-1) = 1 = summan
i den första rutan i feature
mapen, sedan hoppar den så
många stride den har vilket
innebär steg filtret ska ta
Max pooling
Minskar dimensionerna hos fetaure map för att hjälpa modellen med spatial Invariance
Väljer det största värdet i varje del av pooling mapen
Spatial Invariance
Gör att nätverket i träning inte fastnar i var något befinner sig i bilden, utan kan fånga en mer generaliserad bild och känna igen egenskaper oberoende av storlek, placering eller vridning i bilden
CNN och Visual cortex
Visual cortex fungerar på samma sätt:
Olika delar processar olika saker i form av nivåer
t.ex v1 processar minsta egenskaperna i bilden
v2- processar färg osv
Shallow CNN
Ytlig modell
1 lager , lagret har 5 filter vilket innebär 5 feture maps
Objektdetekting
klassificering av objekt i bilder eller videos
Detektera objekt
Algoritmen skannar bilden och identifierar var objekten finns genom att placera bounding boxes runt varje upptäckt objekt
Hur definieras bounding boxes?
Koordinaterna i övre vänstra hörnet samt nedre högra hörnet
Klassificera objekt
Efter lokalisering, tilldelar modellen varje bounding box en etikett, baserat på vad den tror finns i boxsen
vi sannolikhets funktion
R-CNN modell
Letar efter intressanta områden för att sedan i nästa steg klassificera de - tvåstegs modell
Regioner föreslås, varje region beräknas och skickas genom ett CNN för att undersöka egenskaper i regionen
Mycket noggrann men också mycket långsam
SSD (Singel shot ditectors) modell
Identifierar både var och vad objektet är i bara ett steg
Kan fånga objekt i olika storlekar då den består av flera feature maps som kan fokusera på olika skalor av objekt
Använder default boxex, som alltså är förbestämda boxar som placeras ut över bilden
1. om det finns ett objekt i boxen klassificera
2. Behöver boxen justeras för att passa objektet
Vilka två typer av förluster kombineras i träning för SSD?
- Localization loss - justerar boxarnas position
- Confidence loss - Förbättring av klassificering av objekt
YOLO modell
Bilden delas in i ett rutnät, där varje cell i rutnätet förutspår ett visst antal bounding boxes
Genererar alltså många överlappande boxar, som sedan används för att använda de mest sannolika
snabb, men tenderar att missa små objekt
Sensorer
Radar, kameror oh ljudsensorer för att “se” och känna igen omgivningen
Styrsystem (actuators)
Kontrollerar gas, broms och styrning baserat på beslutsfattande av datorn
Datorer (ECU- Electronic Control Units)
Processorer som bearbetar data från sensorer genom algoritmer och fattar beslut
Level 0 - autonoma system
Ingen automation
Människan är fullt ansvarig för körning av bilen
Level 1
Förarassistans
Stöttning i from av styrning och bromsning
Level 2
- Delvis automation
Föraren måste vara aktiv och redo att ta över körningen
Level 3
- Begränsad automation
Föraren måste vara beredd att ta över körningen om systemet ber om det
Level 4
- Hög automation
ODD (operativ design domän) - Bilen fungerar autonomt inom en förutbestämd miljö
Level 5
- Full automation
ej nått hit ännu
Varför är SAE nivåerna bra inom autonoma fordon?
Skapar en gemensam standard för att beskriva autonomi
DMS ( Driver Monitoring System)
Säkerhetssystem som övervakar förarens beteende och uppmärksamhet
Används i bilar med nivå 2-3
Kameror riktade mot förarens ansikte för att spåra ögonrörelser, huvud position, blinkningar och ansiktsuttryck
CMS (Camera Monitoring system)
ersätter backspeglar med kameror och digitala skärmar
Täcker fler vinklar och kan anpassas till olika ljusförhållanden samt tar mindre plats
Systemet kan ge varningar för andra fordon eller fotgängare
GSR (General Safety Regulation)
EU:s allmänna uppsättning av regeler och krv som syftar till att öka säkerhten för vägtrafikanter
Tokenization
Första steget i NPL
Delar upp text i mindre enheter tokens (meningar)
Word embeddings
Tekniker för att representera ord i numeriska vektorer
Där ord med likdanande semantisk betydelse hamnar nära varandra i modellens minne
Transformer strukturen består av 2 huvud delar vilka är dessa?
Encoder - Skapar en kontextuell representation av input
Decoder - Använder den tidigare skapade representationen för att generera utdata
Attention is all you need
NPL fick sitt stora genombrott 2017
Kan processa ord parallellt
Positional encoding
I och med att transformerna processar ord parallellt, modellen information om ordens position i sekvensen
En unik vektor läggs därför till i varje word embedding baserat på dess position i sekvensen
På vilket sätt skapas en unik representation för varje ord i en transformer?
Varje word embedding baseras på både position och innehåll
One - hot encoding
Varje ord representeras av en binär vektor där platsen ordet finns i sekvensen representeras av 1 och resten med 0
Hur vet modellen att ord liknar varandra semantiskt?
Word embeddings ger orden representationer av vektorer, där ord som liknar varandras får likdanande vektorer
Multi - headed self - attention (Encoder)
- Varje ord i sekvensen jämförs med resterande ord i modellen för att avgöra ordets betydelse i meningen
- Modellen räknar sedan ut hur mycket uppmärksamhet/ attention varje ord ska ge de andra orden i sekvensen och omvandlas sedan nya representationer för varje ord
- De nya representationerna bygger på Query - vad söker vi efter, key- vad har varje ord att erbjuda och Value - vad är själva innehållet
- De nya vektorerna multipliceras sedan med inlärda vikt matriser
- Softmax används sedan för att skapa en sannolikhet för varje representation
Vad bygger de nya representationerna/vektorerna på i Multi -headed self-attention ?
Query - Vad vi söker efter
Key - vad varje ord har att erbjuda
Value - Vad själva innehållet är
Varför multi - headed attention?
Flera paralella attention huvuden används för att fokusera på olika aspekter av meningen
t.ex syntax, semantik, kontext osv
Masked multi - headed self-attention (decoder)
Masken sätter alla framtida attention-vikter till 0 för att modellen inte ska veta vad som kommer som nästa ord utan den ska träna på att förutspå mönstret
Multi - headed Cross- attention (decoder)
De tidigare representationerna som gjorts i encodern placeras in.
Hämtar information i form av K och V från den tidigare representationen, medans Q alltså vad vi söker efter är information den plockar från sig själv
Kopplar ihop hela sekvenser och skapar representationer från olika sekvenser tillsammans
Feed - forward nätverk i transformer
Finns efter varje attention block
Finns två fullt anslutna lager och ReLU funktion
Bearbetar varje token baserat på attention för att sedan kunna lära sig mönster
Layer Normalization
Följer en norm efter varje feed-forward och attention i transformerna för att stabilisera träningen
Tokens genererar som vektorer
Kommer alltså i nummer och softmax genererar sedan de ordet som med stört sannolikhet ska genereras efter utifrån representationerna från attention lagrarna
Explainable Ai (XAI)
Handlar om att göra ai begripligt och transparant för människor
Målet är att kunna förklara varför den fattat ett beslut
Comprehensibility - XAI
Handlar om hur väl modellen presenterar sin logisk på ett sätt människan förstår
Interpretability - XAI
Handlar om hur vida modellen fattar beslut som make sense i det specifika området
Model Explainers
Hur modellen förklaras
a) Intrinsic Explainability (Inbyggd förklarbarhet)
b) Post-hoc Explainability (Förklaringar efteråt)
Different Types of Explanations
Hur förklaringen presenteras för användaren
a) Visual Explanations (För slutanvändare
b) Mathematical/Computational Explanations (För utvecklare
c) Language-Based Explanations (För slutanvändare
Intrinsic Explainability (Inbyggd förklarbarhet)
Modellen är designad för att vara självförklarande
Kräver ingen extra analys för att förstå beslutet
Använder t.ex beslutsträd
Post-hoc Explainability (Förklaringar efteråt)
Komplexa modeller där beslutet inte är direkt tolkningsbart
Kräver en analys efter att modellen fattat ett beslut
Deep Learning modeller
Layerwise-Relevance propagaation (LRP)
En metod för att förklara hur neurala nätverk fattar beslut
Post -hoc används efter modellen har tränats
Specifik för neurala nätverk - model specifik kollar på hela modellen
Lokal - förklarar individuella förutsägelser
SHAP
Post hoc
Lokal och global
model - agnostisk
Deep Dream
Post hoc
model -specifik
global