2013-02-17 14 views
18

Dopo aver letto alcuni articoli sulle reti di deep learning e deep belief, ho avuto un'idea di base su come funziona. Ma ancora bloccato con l'ultimo passaggio, cioè la fase di classificazione. La maggior parte dell'implementazione che ho trovato su Internet riguarda la generazione. (Cifre MNIST)Apprendimento approfondito per la classificazione delle immagini

C'è qualche spiegazione (o codice) disponibile da qualche parte che parla di classificare le immagini (preferibilmente immagini o oggetti naturali) usando i DBN?

Anche alcuni indicatori nella direzione sarebbero davvero utili.

+0

Vedere questa risposta su Cross Validated: http://stats.stackexchange.com/a/41201/14673 –

+0

Questa domanda appartiene alla convalida incrociata http://stats.stackexchange.com/questions/41029/restricted-boltzmann- macchine-per-la regressione/41201 # 41201 – lejlot

risposta

24

L'idea di base

In questi giorni, la profonda apprendimento state-of-the-art per problemi di classificazione di immagini (ad esempio ImageNet) sono di solito "reti neurali convoluzionali profonde" (ConvNets di profondità). Sembrano più o meno come questa configurazione ConvNet da Krizhevsky et al: enter image description here

Per la deduzione (classificazione), si alimenta un'immagine nel lato sinistro (si noti che la profondità sul lato sinistro è 3, per RGB), scricchiolio attraverso una serie di filtri di convoluzione, e sputa un vettore a 1000 dimensioni sul lato destro. Questa immagine è specialmente per ImageNet, che si concentra sulla classificazione di 1000 categorie di immagini, quindi il vettore 1000d è "punteggio di quanto è probabile che questa immagine rientri nella categoria".

Formazione la rete neurale è solo leggermente più complessa. Per l'allenamento, si esegue ripetutamente la classificazione ripetutamente, e ogni tanto si fa backpropagation (vedere le conferenze di Andrew Ng) per migliorare i filtri di convoluzione nella rete. Fondamentalmente, backpropagation chiede "cosa ha fatto la classificazione della rete in modo corretto/errato? Per le cose misclassificate, sistemiamo un po 'la rete."


Attuazione

Caffe è un'implementazione molto veloce open-source (più veloce di cuda-convnet da Krizhevsky et al) di profonde reti neurali convoluzionali. Il codice Caffe è piuttosto facile da leggere; c'è fondamentalmente un file C++ per tipo di livello di rete (ad esempio strati convoluzionali, strati di pooling massimo, ecc.).

2

In questi giorni la gente inizia a utilizzare SVM nel livello di classificazione.

L'apprendimento approfondito si sta evolvendo molto liberamente e ampiamente.

Problemi correlati