Neurale Netwerken en Deep Learning Tijmen Blankevoort
De toekomst - Internet of Things
De toekomst - sluiertipje ● Je gezondheid wordt continue gemonitored ● Je dieet wordt voor je afgestemd -> Stroomversnelling onderzoek
“Big Data” ● Heel veel data ● Wat te doen met de data? ● Nu al: youtube/facebook
Probleemstelling - Machine learning
Classificatie
Classificatie “definitie” ● Wereld , targets ● Voorbeelden random getrokken ● Targets ● Extrapolatie? Vind:
Classificatie - Wat voor vragen ● Wat is dit plaatje? ● Wat is dit geluid? ● Wat is de kans dat klant klikt? (Regressie)
Big data classificatie ● Veel data ● Mogelijkheden! ● Weinig informatie
Big data algoritme? ● Gebruik veel data schaalt ○ Parallelizeerbaar
● Complexe verbanden
Classificatie - Vroeger
Support Vector Machines
Random Forests
Classificatie plaatjes - Vroeger De “oude” computer vision manier
Eigen features bouwen De “oude” computer vision manier: Bouw je eigen features. ● Schaalt niet ● Kost veel tijd ● Expert systemen 1970s?
Big data algoritme? ● Gebruik veel data schaalt ○ Parallelizeerbaar
● Complexe verbanden Mogelijkheid big data: Zelf features vinden!
Begrijp een plaatje! Leer concepten, geen truukjes!
Deep Learning Machine learning Gebruik Neurale Netwerken! - Big Data - Leer extreem complexe problemen - Leert features automatisch Een nieuw machine learning tijdperk
Deep learning wint alle competities - IJCNN 2011 Verkeersborden - ISBI 2012 Cel segmentatie - ICDAR 2011 Chinese handschrift herkenning
Applications Veel state of the art systemen gebruiken tegenwoordig Deep Learning - IBMs Watson: Jeopardy 2011 - Google’s zelf-rijdende auto - Google Glasses - Facebook gezichtsherkenning - Facebook modelleren gebruikers - Netflix recommender
Google Brain (2011) - 10 miljoen youtube plaatjes - 1 miljard parameters - 16.000 processoren - Unsupervised stap! - 20.000 categorieen - 15.8% correct
Biologische inspiratie
Neuron
Neuron computer model
Activatie functie Sigmoid activation function
Neuron computer model
Simpele functies met een neuron
Complexere Functies - XOR
Elke functie is te representeren! Combinatie van logische functies - Elke logische functie Netwerk met 1 hidden layer en sigmoid activatie - Elke continue functie
Trainen van een neuraal netwerk - Gewichten random initialiseren - Geef de datapunten 1 voor 1 - Bereken verschil tussen output netwerk en gegeven output - Update de gewichten (gradient descent) - Doe dit meerdere keren voor de hele dataset - Eind resultaat: Gegeven nieuwe input, netwerk geeft output Trainen is een zoektocht naar de goede gewichten.
Neurale netwerken in de jaren 90 - Leren meerdere lagen - “Back propagation” - Netwerk kan theoretisch gezien elke functie leren Maar... Erg langzaam en inefficient - Machine learning vergeet neurale netwerken en aandacht op SVM’s, random forests etc.
Big Data - Deep learning (2006) - Feature representatie! - Erg grote netwerken (complex) - Groot netwerk = veel data
Probleem: Normale backpropagation werkt niet goed voor grote netwerken!
Deep learning (2006) - Precies dezelfde netwerken als voorheen, alleen veel groter!
- Combinatie van drie factoren: - (Big data) - Betere algoritmes - Parallel computing (GPU)
Betere train methode
Restricted Boltzmann machine Pre-training: Initialiseer het netwerk slim Daarna normaal trainen. We knippen het grote netwerk in paartjes.
Restricted Boltzmann Machine ● ● ●
Twee verbonden lagen (bipartiet) Zelfde als twee lagen neuraal netwerk Generatief stochastisch neuraal netwerk dat een probabiliteits distributie leert over de inputs
Deze gaan we unsupervised trainen
Restricted Boltzmann Machine Eindresultaat:
Resultaten dienen hetzelfde te zijn
Restricted Boltzmann Machine Input
Kans
000
0
001
0.25
010
0
011
0.25
100
0
101
0
110
0.25
111
0.25
hidden
input
00
001
01
011
10
110
01
111
Restricted Boltzmann Machine Input
Kans
000
0.05
001
0.2
010
0.05
011
0.2
100
0.05
101
0.05
110
0.2
111
0.2
hidden
input
00
001
01
011
10
110
01
111
Contrastive Divergence ● Pak een input uit je data ● Start met binary train input op de visible vector ● Trek alles random ● Bereken de weight update ● Rinse and repeat Unsupervised!
Contrastive Divergence It relies on an approximation of the gradient (a good direction of change for the parameters) of the log-likelihood (the basic criterion that most probabilistic learning algorithms try to optimize) based on a short Markov chain (a way to sample from probabilistic models) started at the last example seen.
Layer 1
Richar Socher, Yoshua Bengio and Chris Manning. Deep Learning for NLP (without magic), ACL 2012
Toepassen op elke laag
Next Layers Layer 3
Layer 2
Layer 1 Richar Socher, Yoshua Bengio and Chris Manning. Deep Learning for NLP (without magic), ACL 2012
De beste feature extractor?!
De beste feature extractor?!
Na pre-trainen Na unsupervised pre-trainen: Back propagation toepassen en klaar!
Deep learning (2006) - Combinatie van drie factoren: - (Big data) - Betere algoritmes - Parallel computing (GPU)
Gebruik de GPU
Parallel (GPU) power - Elke set weights kunnen we opslaan als een matrix (w_ij) - Alle neurale netwerk berekeningen gebeuren parallel per laag (15-80 keer sneller op GPU dan op enkele CPU) - Batch updates - CPU parallelizing ook mogelijk
Deep Learning = de toekomst ● ● ● ●
Complexe verbanden Zelf features vinden Gebruik veel data schaalt Parallelizeerbaar
Toekomst van Deep Learning - Explosie aan nieuw onderzoek - Hessian-Free networks (2010) - Long Short Term Memory (2011) - Large Convolutional nets, max-pooling (2011) - Nesterov’s Gradient Descent (2013) - Dropout
Toekomst door Deep Learning ● Veel intelligentere systemen ● Verregaande automatisering