Deep Learning
Transcript
Deep Learning
09-May-16 Deep Learning Deep learning I metodi di Deep Learning permettono a modelli computazionali composti di strati multipli di elaborazione di imparare rappresentazioni di dati con più livelli di astrazione. Hanno migliorato molto lo stato dell'arte nel riconoscimento vocale, riconoscimento visuale di oggetti, individuazione di oggetti e molti altri domini come la scoperta di nuovi farmaci e la genomica. Il deep learning permette di individuare strutture complesse in grandi set di dati utilizzando backpropagation modificare i parametri interni di una rete e calcolare la rappresentazione in ogni strato sulla base della rappresentazione nello strato precedente. Vittorio Maniezzo – Univeersità di Bologna 2 1 09-May-16 Risultati Alcuni risultati recenti dal deep learning: • • • • Google lo utilizza nel suo progetto di auto a guida autonoma, che ad es. nel 2014 aveva percorso oltre 700.000 Km senza incidenti, ad es. fermandosi ai passaggi a livello ed evitando i ciclisti. Oppure con Word Lens traduce testo di immagini in altre lingue, in real time. Facebook riconosce i volti nelle foto postate sul network. L'app Google Photos può trovare immagini nelle collezioni memorizzate, individuando elementi diversi come cani, feste di compleanno o lapidi di tombe. Twitter può individuare immagini pornografiche senza l'aiuto di supervisori umani. Microsoft è molto avanti nel riconoscimento vocale, e ha messo il suo DL toolkit in open source (https://github.com/Microsoft/CNTK) Vittorio Maniezzo – Univeersità di Bologna 3 Molti riscontri nella stampa Vittorio Maniezzo – Univeersità di Bologna 4 2 09-May-16 Deep learning Il Deep learning (o deep structured learning, hierarchical learning, … ) consiste in algoritmi di apprendimento automatico che cercano di modellare astrazioni di alto livello nei dati, tipicamente usando reti a molti livelli. L'obiettivo è poter evitare l'identificazione manuale di caratteristiche astratte grazie ad algoritmi di apprendimento non supervisionato o semisupervisinato, e all'identificazione gerarchica di caratteristiche. Sono state proposte varie architetture di deep learning: deep neural networks, convolutional deep neural networks, deep belief networks, recurrent neural networks … Le applicazioni hanno interessato computer vision, automatic speech recognition, natural language processing, audio recognition e bioinformatica, ogni volta producendo i migliori risultati ottenibili Vittorio Maniezzo – Univeersità di Bologna 5 Caratteristiche Gli algoritmi di deep learning hanno alcune caratteristiche comuni: • sono costituiti da una sequenza di molti livelli di unità elaborative non lineari per l'estrazione e la trasformazione di feature nell'input. Gli algoritmi sono supervisionati o non supervisionati, con applicazioni tipiche pattern analysis (non supervisionata) e classificazione (supervisionata). • Sono basati sull'apprendimento di vari livelli di rappresentazione dei dati. Le caratteristiche di alto livello derivano da quelle di più basso livello formando una rappresentazione gerarchica. • I diversi livelli di rappresentazione corrispondono a diversi livelli di astrazione, i livelli formano una gerarchia di concetti. Vittorio Maniezzo – Univeersità di Bologna 6 3 09-May-16 Deep neural network Una deep neural network (DNN) è una rete neurale (ANN) con molti livelli nascosti. Analogamente alle reti neurali tradizionali (shallow ANN), le DNN possono modellizzare complesse relazioni non lineari, ad esempio per object detection, dove gli oggetti da individuare sono una composizione di primitive grafiche. I livelli successive permettono la composizione di feature identificate nei livelli inferiori, premettendo di modellizzare dati complessi con meno unità delle corrispondenti reti shallow. Le DNN sono tipicamente progettate come reti feedforward, ma architetture più avanzate sono in uso, ed es.: • recurrent neural networks, ad esempio nel language modeling. • • • Convolutional neural networks (CNN) in computer vision, dove sono molto efficaci, o in acoustic modeling per automatic speech recognition. Deep Boltzmann machines Deep belief networks Vittorio Maniezzo – Univeersità di Bologna 7 Da shallow a deep networks Già dagli anni 90 si studiava la possibilità di aumentare il numero dei livelli intermedi in una ANN con back propagation. Lo schema di apprendimento era: • Inizializza casualmente i pesi sugli archi • Applica gradient descent via backpropagation. Queste Deep Architectures però non apprendevano bene, backpropagation non funziona bene con inizializzazioni casuali: • DNN con backpropagation (senza preprocessing) funzionano peggio che le shallow network. • Gradient descent diluisce progressivamente le informazioni ad ogni nuovo livello nascosto. • Dopo pochi livelli nascosti, le correzioni dei pesi diventano minime. • La tecnica si pianta in minimi locali, specialmente se si inizia lontano da regioni buone (ad es. a causa di inizializzazioni casuali). Vittorio Maniezzo – Univeersità di Bologna 8 4 09-May-16 2006, la svolta Nel 2006 sono stati pubblicati contemporaneamente tre lavori che hanno rappresentato una svolta in questa materia: • Hinton, Osindero, Teh, “A Fast Learning Algorithm for Deep Belief Nets”, Neural Computation, 2006 • Bengio, Lamblin, Popovici, Larochelle, “Greedy Layer Wise Training of Deep Networks”, NIPS 2006. • Ranzato, Poultney, Chopra, LeCun, “Efficient Learning of Sparse Representations with Energy Based Model” NIPS 2006 Vittorio Maniezzo – Univeersità di Bologna 9 Greedy Layer Wise Training L'apparentemente piccola variazione da adattamento dei pesi solo con backpropagation al metodo di apprendimento a livelli ha rappresentato uno dei maggiori contributi al Machine Learning degli ultimi 15 anni. Vittorio Maniezzo – Univeersità di Bologna 10 5 09-May-16 Apprendimento, passo 1 Step 1: Addestra il primo livello nascosto ("Features") della DNN e ricostruisci l'input sulla base degli output del livello nascosto. Ricalibrazione dei pesi all'indietro fino al livello di input. Vittorio Maniezzo – Univeersità di Bologna 11 Apprendimento, passo 2 Step 2: si considera il livello nascosto successivo (“Additional Features”) e lo si addestra usando come input l'output del livello “Features”, cercando di ricostruire il livello Feature. Ricalibrazione dei pesi all'indietro fino al livello Feature Vittorio Maniezzo – Univeersità di Bologna 12 6 09-May-16 Apprendimento, passo 3+ Step 3+: Si continua come allo step 2 per ogni successivo livello nascosto fino a raggiungere i livello di output. Alla fine ricalibrazione dei pesi all'indietro fino al livello di input Vittorio Maniezzo – Univeersità di Bologna 13 Apprendimento gerarchico C’è una progressione intrinseca da strutture di basso livello a strutture di livello superiore. L’informazione elaborata ed appresa ad ogni stadio della gerarchia (ad ogni livello nascosto) è usata come guida verso sottospazi promettenti. Vittorio Maniezzo – Univeersità di Bologna 14 7 09-May-16 Benefici • • • • Si generano nativamente astrazioni fra un livello e l'altro. Si inizializzano i pesi con valori buoni. Apprendimento supervisionato solo nell'ultimo passo. I livelli intermedi non devono essere necessariamente completamente connessi fra loro (Partial Feature Sharing) Vittorio Maniezzo – Univeersità di Bologna 15 Importanza delle GPU • Le GPU nascono per supportare le schede video e disegnare immagini sullo schermo. Sono massicciamente parallele, veloci, economiche e usano poca potenza. • Gli sviluppi delle GPU hanno permesso di eseguire l'algoritmo di apprendimento in tempi accettabili. • Questa innovazione HW ha reso possibile il deep learning. • Benchmarks: • PC CPU: 1-3 Gflop / s in media • GPU: 100 Gflop / s in media Vittorio Maniezzo – Univeersità di Bologna 16 8 09-May-16 Riassumendo Deep learning apprende rappresentazioni, cercando di individuare caratteristiche significative nei dati. In particolare cerca di apprendere livelli multipli di rappresentazione con complessità e astrazione crescenti. Per avere successo con questa tecnica è necessario avere: 1. molti dati per addestrare il modello (“Big Data”). 2. hardware veloce: (GPU e Multicore CPU) 3. reti grosse (es. Deep Network in apprendimento del parlato: 3-8 layer, 2000 unità/layer, 15 frame in input, 6000 output ) Vittorio Maniezzo – Univeersità di Bologna 17 Il neurone nonna? Indagine: è possibile apprendere caratteristiche di alto livello (es. face detector) usando solo immagini non preclassificate? Risposta si usando: • una deep network con 1 miliardo di parametri • 10 milioni di immagini (da Youtube) • 1000 computer (16,000 cores) x 1 settimana Passo successivo: "un neurone che si attiva quando si vede la nonna". Molto dibattuto in letteratura. Si vuole apprenderlo solo elaborando i pixel delle immagini Vittorio Maniezzo – Univeersità di Bologna 18 9 09-May-16 Cat neuron X lab di Google ha utilizzato 16000 computer per creare una simulazione del cervello basata su deep learning. Basato su 10 milioni di immagini casuali da YouTube in 3 giorni. Uno dei neuroni della rete doveva imparare a riconoscere i gatti. Alla rete non è mai stato detto niente sui gatti, nè fornite immagini etichettate come contenenti gatti. Risultato (è la foto di un’idea?) -> Vittorio Maniezzo – Univeersità di Bologna 19 Face neuron Vittorio Maniezzo – Univeersità di Bologna 20 10