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