• Non ci sono risultati.

Spiegazione

N/A
N/A
Protected

Academic year: 2021

Condividi "Spiegazione"

Copied!
3
0
0

Testo completo

(1)

Reti Neurali Artificiali per lo studio del mercato

Università degli studi di Brescia - Dipartimento di metodi quantitativi Marco Sandri (sandri.marco@gmail.com)

Classificazione con un modello neurale feedforward

Obiettivi:

(1) Imparare a stimare i pesi di una rete neurale feed-forward con Matlab per affrontare un problema di classificazione. Ancora una volta, i comandi newff, train e sim sono i comandi fondamentali con cui, rispettivamente, si crea la rete, si stimano i suoi parametri con i dati e si effettuano poi previsioni. Rimangono sempre le difficoltà legate alle reti neurali: .

(2) Fare una serie di esperimenti numerici per comprendere il ruolo di uno dei parametri più importanti per una rete neurale: il numero di neuroni nello strato nascosto. Variando nhid potremo creare situazioni di underfitting, cioè situazioni in cui la complessità della rete è insufficiente per il problema che le si chiede di risolvere.

Osservazioni:

(1) L’esempio che qui consideriamo rappresenta un’interessante applicazione pratica delle reti neurali: il riconoscimento di caratteri. Molti software disponibili sul mercato lavorano proprio grazie ad un ‘motore’ neurale.

Supponiamo di avere un foglio sul quale è stampato un testo, cioè un insieme di lettere e spazi.

Ciascuna lettera dell’alfabeto è di fatto costituita sulla carta da un insieme di macchie di inchiostro disposte secondo una definita configurazione. Immaginiamo di leggere questo testo sul foglio mediante uno scanner. Lo spazio occupato da ogni lettera viene suddiviso dallo scanner in un reticolo di punti con o senza inchiostro, cioè ogni lettera viene trasformata in una matrice di valori 0 o 1 (0=zona senza inchiostro e 1=zona con inchiostro). Nel nostro esempio ogni lettera viene rappresentata attraverso una matrice binaria 7 x 5.

(2)

(2) Il problema che dovrà risolvere la rete sarà quello di stimare una ‘regola’ che permette di associare ad una data configurazione di zeri ed uno una determinata lettera dell’alfabeto. Si tratta di un problema di classificazione: un determinato pattern X in input viene associato ad una delle 26 classi disponibili, cioè ad una delle 26 lettere dell’alfabeto. La rete dovrà avere 7x5=35 input (uno per ciascun punto del reticolo dello scanner) e 26 output (uno per ciascuna lettera dell’alfabeto).

Supponiamo che alla rete venga presentato il vettore di input 1x35:

X = [0 1 1 1 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 1 0];

La rete dovrà portare a livello 1 uno dei suoi 26 output e tenere tutti gli altri a livello 0. L’output attivato dovrà essere quello corrispondente alla lettera associata al vettore x. Supponiamo venga attivato l’output 19, corrispondente alla lettera S. Il vettore di output 1x26 sarà quindi:

y = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0].

(3) Il training set può essere costituito dalle 26 lettere dell’alfabeto qui sopra rappresentate. Questi 26 casi li possiamo definire ‘puliti’, nel senso che rappresentano il caso ideale di 26 lettere stampate senza sbavature d’inchiostro, senza imperfezioni di stampa, cioè senza ‘rumore’. In realtà tutto ciò che leggiamo con uno scanner contiene sempre una componente di rumore più o meno marcato. Ecco un possibile esempio di simulazione di lettera S con rumore:

(3)

In fase di testing della rete abbiamo voluto non limitarci a considerare solo il caso di lettere

‘pulite’ da identificare, ma siamo andati a sottoporre alla rete anche lettere ‘sporcate’ da noise, per vedere se pure queste vengono riconosciute correttamente. Questa è chiaramente una verifica molto più severa delle performance predittive della rete, ma è anche decisamente più utile sotto il profilo pratico. Nel grafico qui sotto abbiamo nella fila superiore la configurazione letta dallo scanner e fornita in input alla rete. Nella fila inferiore viene indicata la lettera di output che la rete ha individuato. Si vede che, nonostante la dose di rumore piuttosto pesante che rende quasi irriconoscibili all’occhio umano i diversi caratteri, la rete commette pochi errori di classificazione: B viene riconosciuta come D, C come G, E come C, Z come D.

Riferimenti

Documenti correlati

1) Costo del polling (# cicli di clock per un’operazione di polling, costituita da trasferimento del controllo alla procedura di polling, accesso al dispositivo di I/O,

Può essere utilizzata come sostituto del frontespizio solo una delle parti della pubblicazione.. There was without problem contacting

whose name is distinct from all other existing files, and opens the file for binary writing and reading (as if the mode string "wb+" were used in an fopen() call). If

Settori – Tipologia di impianti di trasformazione/elaborazione Domanda Finale – Consumi finali dei prodotti per settori e/o destinazione.. Energy SUT aggregata toscana: 2015..

Bisogna prestare molta attenzione al fatto che se un sistema è stato valutato con un certo livello di sicurezza, questo non significa assolutamente che il suo utilizzo sarà

 saves pertinent information including last instruction executed and data values in registers in the PCB (process control block).  branches to

¨  Se la stringa di formato contiene un white space, la scanf legge zero o più white space, che verranno scartati, fino al primo carattere non white space.

 An efficient means of transferring data directly between I/O and memory for large data transfers since programmed I/O is suitable only for slow devices and individual