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