Neurale Netwerken en Deep Learning

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