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
© Copyright 2024 ExpyDoc