729G43 Artificiell intelligens / 2015 Maskininlärning 3 Marco Kuhlmann
Förra gången: Perceptroninlärning
Beslutsregel predicerat y-värde
Exempel: AND Välj parametrar θ 0, θ 1, θ 2 sådana att perceptronen beräknar följande: x0 x1 x2 y 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1
Beslutsgräns θ klass 0 klass 1
Perceptroninlärning Börja med att sätta θ 0 (nollvektorn). För varje särdragsvektor x och målvärde y i träningsmängden: 1. Beräkna h(x): h(x) f(θ x) 2. Uppdatera parametervektorn: θ θ (h(x) y)x Upprepa tills klassifikationsfelet är tillräckligt litet.
Begränsningar av perceptronen x 2 x 2 0 1 0 1 0 0 x 1 1 0 x 1 linjär separerbar inte linjär separerbar
Nya särdrag till hjälp! x 2 0 1 1 x 3 x 3 = 0 0 x 1
Nya särdrag till hjälp! x 2 0 1 x 3 1 0 x 1 x 3 = 1 om x 1 = x 2, annars 0
Nya särdrag till hjälp! Nästan alla problem blir linjärt separerbara om man bara kan hitta på bra särdrag. Detta mappar det ursprungliga problemet till en ny särdragsrymd. Problemet är att man måste hitta på dessa särdrag för hand. feature engineering En Support Vector Machine är en klassificerare som automatiskt lär sig nya särdrag som gör problemet linjärt separerbart. Lite andra tricks också; läs Jurafsky och Martin 18.9.
Logistisk regression
Logistisk regression kombinerar den linjära modellen med den logistiska funktionen 3 1 1 2,25 1,5 0,75 + = 0,5 0,75 0,5 0,75 0,25 0,25 0 0 0,5 1 1,5 2 2,5 3 0-6 -3 0 3 6 0 0 0,5 1 1,5 2 2,5 3
Linjär regression 700 Husets pris i tusentals dollar 525 350 175 0 1000 2000 3000 4000 5000 Husets storlek i kvadratfot
Logistisk regression 700 Husets pris i tusentals dollar 525 350 175 0 1000 2000 3000 4000 5000 Husets storlek i kvadratfot
Den logistiska funktionen 1 0,75 0,5 0,25 0-6 -4,5-3 -1,5 0 1,5 3 4,5 6
Neuronmodell x 1 θ 1 Σ f h(x) x 2 θ 2 1. Beräkna den viktade summan av alla in-signaler: z = θ x. 2. Beräkna ut-signalen med den logistiska funktionen: h(x) = σ(z).
Logistisk regression som probabilistisk modell Vi kan tolka värdet h(x) som sannolikheten att x tillhör klass 1. Vad är då sannolikheten att x tillhör klass 0? Logistisk regression ger oss en probabilistisk modell: Hur sannolikt är det att den stokastiska variabeln y tar värdet 1, givet särdragsvektorn x och modellparametrarna θ?
Klassifikation med logistisk regression värde mellan 0 och 1 mittvärde
Felfunktion för logistisk regression I samband med linjär regression mätte vi felet för en enskild datapunkt som det kvadrerade avståndet mellan det predicerade värdet h(x) och målvärdet y. Hur ser denna kurva ut för logistisk regression? fel 2 1,5 1 0,5 0-1,25 0 1,25 avstånd
Felfunktion för logistisk regression Vid logistisk regression är det maximala avståndet mellan det predicerade värdet h(x) och målvärdet y, och därmed även det maximala felet, lika med 1. Detta eftersom både predicerat värde och målvärde är tal mellan 0 och 1. fel 2 1,5 1 0,5 0-1,25 0 1,25 avstånd
Felfunktion för logistisk regression 3 3 2,25 2,25 fel 1,5 fel 1,5 0,75 0,75 0 0 0,25 0,5 0,75 1 0 0 0,25 0,5 0,75 1 h(x) h(x) y = 1 y = 0
Uppdateringsregeln för gradientsökning Vi får exakt samma uppdateringsregel för gradientsökning! (Trots att vi ändrat både modellen och felfunktionen!)
Gradientsökning Vandra ner i felets dal. Steg 0: Börja med ett godtyckligt värde för θ. Steg 1: Räkna ut felfunktionens gradient i den punkt som motsvarar den aktuella modellparametern θ. Steg 2: Gå i motsatt riktning av gradienten. Multiplicera med en steglängdsfaktor. Upprepa steg 1 2 tills felet blir tillräckligt litet.
Varianter på gradientsökning Minibatch gradient descent Uppdatera baserat på mindre delar av träningsdatan. Kan öka hastigheten med vilken inlärningsprocessen konvergerar. Stochastic gradient descent Kasta omkull träningsdatan slumpmässigt efter varje iteration. Kan förhindra att inlärningsprocessen fastnar i lokala optima.
Olika felfunktioner 0/1-fel (L0) L 0 (p, y) = 0 om p = y, annars 1 Absolut avstånd (L1) L 1 (p, y) = p y Kvadrerat avstånd (L2) L 2 (p, y) = (p y) 2 Felfunktionen för logistisk regression
Artificiella neurala nätverk
Generisk neuronmodell x 0 θ 0 Σ f h(x) x n θ n 1. Beräkna den viktade summan av alla in-signaler: z = θ x 2. Beräkna ut-signalen med aktiveringsfunktionen: h(x) = f(z)
Linjär neuron aktiveringsfunktion: identitetsfunktionen 3 2,25 1,5 0,75 0 0 1 2 3
Perceptron aktiveringsfunktion: tröskelfunktionen 1 0,75 0,5 0,25 0-1 0 1
Rectified Linear Unit aktiveringsfunktion: tröskelfunktionen 6 4,5 3 1,5 0-6 -4,5-3 -1,5 0 1,5 3 4,5 6
Sigmoid-neuron aktiveringsfunktion: den logistiska funktionen 1 0,75 0,5 0,25 0-6 -4,5-3 -1,5 0 1,5 3 4,5 6
Tanh-neuron aktiveringsfunktion: tangens hyperbolicus 1 0,5 0-0,5-1 -6-4,5-3 -1,5 0 1,5 3 4,5 6
Neuronnät Ett neuronnät kopplar ihop flera neuroner till en större struktur. Precis som en enskild neuron kan ett neuronnät ses som en funktion som mappar indata till utdata. Det finns många olika arkitekturer för neuronnät som skiljer sig med avseende på vilka funktioner de kan modellera. Men också med avseende på hur svårt det är att träna dem.
Feedforward-nät in-lager dolt lager ut-lager
Feedforward-nät Ett feedforward-nät (FF-nät) består av flera lager av neuroner: ett in-lager, ett ut-lager, och ett eller flera dolda lager. Kallas djupa om det finns fler än ett dolt lager. Informationen flyter i ett enda svep från in-lagret genom alla dolda lager till ut-lagret. FF-nät är fullt anslutna: Neuronerna i varje lager skickar sina utdata till alla neuroner i nästa lagret.
Exempel: Sifferigenkänning Vi vill bygga ett feedforward-nät som tar in en bild på en handskriven siffra och predicerar vilken siffra det rör sig om. Vilken typ av inlärningsproblem är detta?
FF-nät för sifferigenkänning en neuron för varje pixel en neuron för varje siffra 28 28 20 10
Hur man använder nätet Varje bild översätts till en vektor x med 28 28 komponenter där komponent x i är gråvärdet för pixel i i bilden. Gråvärdet är ett flyttal mellan 0 (svart) och 1 (vitt). För att presentera nätet med en bild aktiverar vi varje neuron i inlagret med respektive värde ur särdragsvektorn. Då kommer nätet aktivera varje neuron i ut-lagret i någon grad. Den siffra vars ut-neuron får högst aktivering vinner.
Varför behöver vi dolda neuroner? Neuronnät utan dolda neuroner kan endast modellera enkla sammanhang mellan indata och utdata. Ett sätt att göra neuronnät kraftfullare är att lägga till lager med extra särdrag; men att hitta bra särdrag är en konst. Nya särdrag måste skapas för varje specifik tillämpning. Neuronnät med dolda neuroner kan lära sig själv vilka särdrag som kan vara användbara.
Vad är det nätet lär sig? Källa: Kylin-Xu
Djupa nät hittar olika typer av särdrag Källa: NVIDIA
Rekursiva nät En neuron kan skicka utdata till sig själv, kanske via omvägar.
Hur tränar man nätet? En stor fördel med sigmoid-neuroner är att vi kan använda gradientsökning för att träna upp dem. Detta eftersom den logistiska funktionen är deriverbar. Detta gäller även om vi har långa kedjor av sigmoid-neuroner som är kopplade till varandra, som i ett FF-nät. kedjeregeln för derivator Standardalgoritmen för att räkna ut alla gradienter på ett effektivt sätt heter backpropagation-algoritmen.
Backpropagation Presentera nätet med ett träningsexempel och låta det predicera den siffra som bilden föreställer. Hur ska vi förändra vikterna på kopplingarna mellan neuronerna för att vandra ner i felets dal? vikterna = θ Idee: Räkna ut gradienterna för vikterna i det yttersta lagret. Använd sedan resultatet för nästa lager, och så vidare. backwards
Backpropagation (skiss) 2 1 1 2
Backpropagation (skiss) 1 3 2 2 1 3
Att träna sifferigenkänningsnätet För att träna nätet använder vi MNIST-databasen, som består av 70 000 handskrivna siffror tillsammans med ett facit för varje bild. Varje facitsiffra översätts till en vektor y med 10 komponenter där komponent y i är 1 om siffran är lika med i och 0 annars. Exempel: För siffran 3 är y 3 = 1, alla andra noll För att träna nätet med en facitsiffra sätter vi målvärdet för varje neuron i ut-lagret till respektive värde ur särdragsvektorn.
Maskininlärning Introduktion till maskininlärning Linjär regression med en variabel Linjär regression med flera variabler Perceptroninlärning Logistisk regression Artificiella neurala nätverk