729G43 Artificiell intelligens (2016) Maskininlärning 3 Marco Kuhlmann Institutionen för datavetenskap
Modell med vektornotation parametervektor särdragsvektor
Perceptron kombinerar linjär regression med en tröskelfunktion 1 1 1 0,5 0 0,75 + = 0,5 0,75 0,5-0,5 0,25 0,25-1 -1-0,5 0 0,5 1 0-1 -0,5 0 0,5 1 0-1 -0,5 0 0,5 1
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
Uppdateringsregel Samma uppdateringsregel som för gradientsökning! (Men inte längre gradientsökning!)
Fall 3: Felaktigt klassificerat positivt exempel h(x) y h(x) y 0 0 ±0 θ 0 1 1 1 0 +1 1 1 ±0 θ θ + x Parametervektorn flyttas mot x. x
Översikt Introduktion Exempel: Linjär regression med en variabel Några grundläggande begrepp Linjär regression med flera variabler Perceptroninlärning Neuronnät
Neuronnät
Linjärt separerbara problem x 2 x 2 0 1 0 1 0 0 x 1 1 0 x 1 linjärt separerbart inte linjärt separerbart
Nya särdrag till hjälp! x 2 0 1 x 3 1 0 x 1 x 3 = xor(x 1, x 2 )
Hitta nya särdrag Vi skulle vilja tillämpa den linjära modellen inte direkt på x utan på en representation φ(x) av x. Hur får vi denna representation? Option 1. Hitta en bra representation φ för hand. feature engineering Option 2. Låta modellen lära sig en bra representation φ. feature learning
Från linjära modeller till neuronnät x 1 x 1 h 1 y y x 2 x 2 h 2 linjär modell representation + linjär modell
Funktionskomposition Neuronnät heter nät eftersom de kan beskrivas i termer av hur ett antal funktioner komponeras. komposition av representationsfunktion och linjär funktion Denna kompositionella struktur är viktig för att vi ska kunna använda gradientsökning. kedjeregeln för derivator
Feedforward-nät Informationen flyter från ett indatalager x till ett utdatalager y via ett antal mellanlager. Det finns ingen möjlighet för informationen att flyta tillbaka till ett tidigare lager (eng. feedback connections). När man lägger till återkopplingslänkar till ett feedforward-nät får man ett rekurrent nät.
Ett enkelt feedforward-nät h 1 x 1 h 2 y x 2 h 3 indatalager dolt lager utdatalager
Laboration: Sifferigenkänning 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.
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.
Vad är det nätet lär sig? Källa: Kylin-Xu
Djupa nät hittar olika typer av särdrag Källa: NVIDIA
Påminnelse: En artificiell neuron x 0 θ 0 Σ f h(x) x n θ n
Vad gör man när man bygger ett nät? Välj en aktiveringsfunktion för varje lager. sigmoid, tanh, rectified linear units, Välj en felfunktion. ett mått på hur mycket nätet har lärt sig Välj en regulariseringsstrategi för att undvika overfitting. uttrycker preferenser med avseende på modellparametrarna Välj en optimeringsalgoritm för att minimera träningsfelet. ofta stochastic gradient descent
Den logistiska funktionen 1 1 0,5 0,5 0-6 -3 0 3 6 0-6 -3 0 3 6
Den logistiska funktionen Utvärdet från en logistisk enhet är ett tal mellan 0 och 1. Det kan därför tolkas som en betingad sannolikhet: Hur sannolikt är det att observera utdatan given att vi vet indatan? Detta gör att logistiska enheter lämpar sig för binära klassificeringsproblem. P(y = 1 x) för en binär stokastisk variabel y
Softmax-funktionen Softmax-funktionen tar en k-dimensional vektor z som indata och returnerar en k-dimensional vektor y enligt formeln Softmax-funktionen generaliserar den logistiska funktionen; den ger en sannolikhetsfördelning över k klasser (inte bara 2). Detta betyder alltså att varje utvärde är ett tal mellan 0 och 1 och summan av alla utvärden är 1.
Softmax-lager y 1 y 2 y 3 z 1 z 2 z 3 h 1 h 2 h 3 h 4
Tangens hyperbolicus 1 1 0,5 0 0,5-0,5-1 -6-3 0 3 6 0-6 -3 0 3 6
Problem med dessa aktiveringsfunktioner Alla dessa aktiveringsfunktioner har en liten gradient för de allra flesta invärdena. Detta gör att gradientbaserad inlärning är svår. Vi får inga starka gradienter. Det rekommenderas därför inte att använda dessa funktioner i de dolda lagren av ett feedforward-nätverk. Det kan fortfarande vara lämpligt att använda dem i utdatalagret, om man väljer rätt felfunktion.
Rectified linear units 6 1 3 0,5 0-6 -3 0 3 6 0-6 -3 0 3 6
Jämförelse av aktiveringsfunktionerna logistisk tanh relu logistisk tanh relu 1 1 0,5 0,75 0 0,5-0,5 0,25-1 -6-3 0 3 6 0-6 -3 0 3 6 utvärdena gradienterna
Rätt felfunktion: Negativ log-likelihood 5 3,75 log utvärdet 2,5 1,25 0 0 0,25 0,5 0,75 1 utvärdet
Uppdateringsregeln för gradientsökning gradient i punkt θ steglängdsfaktor
Norm-baserad regularisering Vi kan regularisera ett neuronnät genom att plussa på en extra term till uppdateringsregeln. L2-regularisering: Föredra parametervektorer med små magnituder (Euklidisk norm): L1-regularisering: Föredra parametervektorer med små absolutvärden i komponenterna:
Andra regulariseringstekniker Utvidga datamängden. Skapa nya träningsdata genom att på ett systematiskt sätt transformera de befintliga datan. exempel: rotera och skalera bilder Early stopping. Avbryt träningen när felvärdet på valideringsmängden börjar gå upp. Bagging. Träna flera olika modeller, kombinera sedan alla predicerade värden, t.ex. genom att ta medelvärdet.
Dropout Slå ut en viss andel av alla enheter i nätet under träningen. till exempel, 50% av alla enheter i ett givet lager Intuition: Att slå ut slumpvisa delar av nätet förhindrar att nätet blir överkänslig för säregenheter hos datamängden.
Dropout det omodifierade nätet nätet efter dropout
Backpropagation Feedforward-nät kan tränas med hjälp av gradientsökning. feedforward-nät = nätverk av differentierbara funktioner Det största problemet är hur man räknar ut gradienterna för alla lager av nätet samtidigt. Standardalgoritmen för detta heter backpropagation.
Ett exempelnät f w jk f w ij y i
Forward pass E f y k z k w jk f y j z j w ij y i
Vad är det vi vill räkna ut? E w ij
Beräkna felvärden, lager för lager E f y k z k w jk f y j z j w ij y i
Felet i utdata-lagret E f y k z k
Felet i ett dolt lager E f z k w jk y j z j
Beräkna gradienterna E w ij z j y i
Översikt Introduktion Exempel: Linjär regression med en variabel Några grundläggande begrepp Linjär regression med flera variabler Perceptroninlärning Neuronnät