Estratto del documento

Campionamento

Tutti insieme ma arrivano in momenti diversi. Supponiamo di avere in totale m istanze e che all’inizio ne ho solo k. Fissata la dimensione di questa sorta di buffer pari a r, ci metto le prime r istanze che arrivano. Rimpiazzo poi le istanze con una probabilità r/i dove i è il numero di istanze viste fino a quel momento. In questo modo genero un insieme campionato di r istanze in cui tutte le istanze hanno avuto la stessa probabilità di essere selezionate anche se non erano a mia disposizione dall’inizio.

Capitolo 10 - Deep learning

Mentre le reti neurali sono state considerate uno standard per la risoluzione di problemi legati al machine learning. Alcuni elementi chiave sono stati decisivi per il passaggio alle architetture deep, come l’introduzione sul mercato delle GPU per i calcoli matematici ed i dataset sempre più grandi e complessi che hanno permesso alle architetture di proporre soluzioni con più hidden layer.

Le tecniche di Deep Learning portano all’estremo questo concetto nel senso che lavorano sul dato grezzo e vanno a creare una sequenza di passi di trasformazione andando ad apprendere le feature stesse che servono poi per la classificazione. La sequenza di strati nascosti quindi serve proprio a questo. Il vantaggio è grande perché in questo modo non ho bisogno neanche degli esperti di dominio. Quando l’elaborazione viene formulata in forma matrice-vettore, essa può essere molto accelerata utilizzando librerie grafiche e hardware ottimizzati. Questo è il motivo per cui si studia la backpropagation in forma matrice-vettore.

Riassumendo, tra i vantaggi che hanno portato al successo le reti neurali abbiamo:

  • L'accelerazione del training grazie all'uso delle GPU
  • La disponibilità di grandi quantità di dati significativi
  • Architetture di rete più profonde e ampie
  • La necessità di valutazioni più corrette dei metodi di machine learning.

Per quanto riguarda quest'ultimo punto, in passato era comune confrontare i risultati tra diversi gruppi usando lo stesso dataset.

Sebbene i dati fossero pubblici, i risultati erano spesso difficili da confrontare perché i ricercatori usavano protocolli diversi per i loro esperimenti, come diversi split in training e testing.

Con l'avvento di challenge con test set comuni è diventato più semplice confrontare i diversi risultati. In questo ambito, c'è un dataset messo a disposizione dal MNIST per confrontare le prestazioni di approcci diversi. Dai Riassunti Machine Learning 89 risultati su questo dataset si evince come gli approcci convoluzionali opportunamente messi a punto ottengano i migliori risultati.

Loss e regularization

Le loss function più usate per il MLP era la sigmoide e nel layer finale una loss function basata sull’errore quadratico. Successivamente sono stati invece adottati approcci probabilistici definendo le funzioni di attivazione in uscita come il logaritmo negativo delle funzioni di distribuzione usate per fare predizioni probabilistiche, sia che queste distribuzioni fossero binarie, che categoriche o continue. Quindi le predizioni possono corrispondere in maniera precisa ai modelli di probabilità sottostanti definiti da distribuzioni di Bernoulli, discrete o Gaussiane, come nella regressione lineare e logistica, ma con una flessibilità maggiore. Vista in questo modo, la regressione logistica è una semplice rete neurale senza unità nascoste. Il criterio di predire le i= 0..N label yi dagli attributi xi con parametro θ, consiste la matrice dei pesi W ed il vettore dei bias b:

Dove il primo termine L(f(x,θ),y) è la log-likehood negativa detta anche loss e il secondo termine è un peso di regolarizzazione per prevenire l’overfitting, da qui loss e regularization. La funzione di loss è a scelta in modo da ottimizzare il problema. Utilizzando la perdita media sui dati di training, detta rischio empirico, si tratta di un problema di ottimizzazione per minimizzare il rischio al variare dei parametri:

Delle tipiche funzioni di loss sono quelle mostrate in tabella: Riassunti Machine Learning 90

Architetture deep

Le reti neurali profonde sono composte da diversi layer, ogni layer interno è detto hidden ed il suo output è contrassegnato con h(x) e quindi l’architettura ad L livelli si scrive:

Ogni funzione ai(x) è detta funzione di attivazione ed è tipicamente un operatore lineare che coinvolge la matrice dei pesi W(l) e il vettore di bias b(l) che possono essere combinati nel parametro θ:

Nella notazione i “cappelli” sulla x indicano che è stato accodato 1 al vettore x, nell’hidden layer la funzione di attivazione h(x) spesso ha la stessa forma ad ogni livello, ad esempio:

Activation function

Le funzioni di attivazione h(l)(x) operano generalmente sui vettori di pre-attivazione elemento per elemento. Quelle sigmoidali sono le più popolari anche se spesso si utilizzano anche quelle iperboliche. Recentemente è stato mostrato che la funzione rectify() detta anche ReLUs riesce a ottenere risultati migliori in diversi contesti. Dal momento che queste funzioni assumono valore nullo per Riassunti Machine Learning 91 argomenti negativi, alcune unità nel modello avranno attivazioni pari a 0 dando una proprietà di sparsità che può risultare utile in diversi contesti. Le funzioni di attivazione che hanno gradiente esattamente pari ad 1 sono fondamentali per evitare i problemi dell’exploding gradient e del vanishing gradient.

Il vanishing gradient si verifica quando i gradienti calcolati durante la retropropagazione diventano troppo piccoli man mano che il modello si avvicina alla sua convergenza, e quindi gli aggiornamenti dei pesi sono troppo piccoli per migliorare significativamente le prestazioni della rete. Questo problema si verifica di solito in reti neurali profonde con funzioni di attivazione non lineari come la sigmoide, poiché la derivata di questa funzione è compresa tra 0 e 1, il che significa che i gradienti diminuiscono rapidamente man mano che si avanza verso le prime strati della rete.

L'exploding gradient si verifica quando i gradienti diventano troppo grandi, il che può causare un rapido oscillamento dei pesi e un aumento delle prestazioni della rete in modo instabile. Ciò accade di solito quando si utilizzano funzioni di attivazione come la tangente iperbolica o la ReLU e si effettua una retropropagazione attraverso una profondità significativa della rete.

Entrambi i problemi portano ad una cattiva convergenza della rete.

Early stopping

Le architetture utilizzate nel deep learning sono suscettibili all’overfitting, anche quando i dati sono abbondanti. Molto spesso si utilizza anche il termine over-training che però è simile all’overfitting perché sono entrambi legati a una mancata capacità del sistema di generalizzare in maniera adeguata. Potrei avere overfitting se ho scelto un numero di parametri della rete eccessivo, potrei avere over-training quando ad esempio la scelta è ragionevole ma ho addestrato per troppo tempo. Per evitare questo problema si ricorre all’early stopping, l’idea di base è quella di monitorare la curva che grafica l’average loss tra training e validation per ogni epoca. Dato che l’algoritmo dello SGD genera una curva per lo più decrescente, si arresta l’apprendimento quando la curva sul validation incomincia a salire.

Riassunti Machine Learning 92

In generale, nel deep learning, il tuning degli iper-parametri si esegue identificando quale configurazione porta alle prestazioni migliori sul validation set, usando l’early stopping. Iper-parametri comuni sono ad esempio la forza del parametro di regolarizzazione, numero di unità nascoste, la forma della funzione di attivazione e così via. Quindi nel deep learning, il monitoraggio delle performance sul validation set assume un ruolo ancora più centrale rispetto a quello che aveva nel machine learning tradizionale. Il test set come al solito dovrebbe essere usato solo per la valutazione finale. L’utilizzo di un validation set differisce dall’uso della k-fold cross-validation per valutare le prestazioni o selezionare gli iper-parametri. Infatti, la cross-validation implica la creazione di partizioni multiple di training e testing. Spesso però, i dataset usati nel deep learning sono così massivi che un singolo test set di grandi dimensioni è sufficiente per rappresentare in maniera adeguata le prestazioni del modello, riducendo il bisogno della cross-validation. Inoltre, visto che il training può durare giorni o settimane, anche usando le GPU, la cross-validation è impraticabile. Nel caso in cui si usa la cross-validation, bisogna comunque usare un validation set interno per ogni fold in maniera da fare il tuning degli iper-parametri oppure in alternativa si esegue la cross-validation usando solo il training set.

In genere, per ottenere i risultati migliori, bisogna fare tuning degli iper-parametri usando un singolo validation set estratto a partire dal training set. Omettere però il validation set dal training finale riduce le performance ne

Anteprima
Vedrai una selezione di 5 pagine su 17
Appunti esame Machine Learning – Deep Learning, CNN, Autoencoder, RNN Pag. 1 Appunti esame Machine Learning – Deep Learning, CNN, Autoencoder, RNN Pag. 2
Anteprima di 5 pagg. su 17.
Scarica il documento per vederlo tutto.
Appunti esame Machine Learning – Deep Learning, CNN, Autoencoder, RNN Pag. 6
Anteprima di 5 pagg. su 17.
Scarica il documento per vederlo tutto.
Appunti esame Machine Learning – Deep Learning, CNN, Autoencoder, RNN Pag. 11
Anteprima di 5 pagg. su 17.
Scarica il documento per vederlo tutto.
Appunti esame Machine Learning – Deep Learning, CNN, Autoencoder, RNN Pag. 16
1 su 17
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-IND/13 Meccanica applicata alle macchine

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher ciroexp di informazioni apprese con la frequenza delle lezioni di Machine learning e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof Sansone Carlo.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community