MLP

Riconoscitore basato su MLP

Il riconoscitore basato su una rete neurale multistrato usa come ingresso un vettore di 256 componenti ricavato dall'immagine originale in ingresso con una preelaborazione che prevede un filtraggio passa basso per ridurre il rumore sale e pepe e un sottocampionamento dell'immagine stessa in modo da ridurla ad una griglia 16x16, qualsiasi siano le sue dimensioni originali. Il valore corrispondente a ciascun pixel della griglia del sottocampionamento è la media dei pixel presenti nel rettagolo corripondente nell'immagine originale.
Il vettore in ingresso alla rete neurale è ottenuto concatenando le righe della griglia. I passi necessari per ottenere la rappresentazione vettoriale dell'immagine sono riportati in figura 3 nel caso di una griglia 4x4.

 
Figura 3 - Rappresentazione dei logo con vettore di pixel

La figura 4 riporta le immagini come sono effettivamente "viste" dal classificatore dopo il sottocampionamento. Si noti come molti particolari (ad esempio le scritte) vengano persi e gli effetti del rumore (rotazioni, macchie) sulla struttura degli ingressi del classificatore.
 
 

logo 0

logo 1

logo 2

logo 3

Figura 4 - I logo dopo il sottocampionamento con una griglia 16x16

La rete multistrato ha quindi 256 ingressi, un numero N di neuroni nascosti e 4 uscite, una per ciascuna classe. Gli esempi vengono costruiti utilizzando i modelli di rumore descritti in precedenza in modo da fornire alle rete una casistica completa di come il rumore possa modificare l'immagine originale. La preelaborazione utilizzata per gli ingressi riduce la variabilità dovuta al rumore sale e pepe mentre non elimina il rumore dovuto a macchie, rotazioni e traslazioni. L'insieme dei dati usato per l'apprendimento dovrà contenere un numero sufficiente di esempi per tutti i casi di macchie, rotazioni e traslazioni presenti nelle condizioni di funzionamento del classificatore.

 
Figura 5 - Classificatore basato su MLP

I valori desiderati per le uscite della rete neurale saranno i vettori [1 0 0 0]', [0 1 0 0]', [0 0 1 0]' e [0 0 0 1]' rispettivamente per le quattro classi. Quando un esempio è presentato alla rete e questa produce dei valori sulle uscite, occorre definire un criterio per assegnare l'esempio ad una classe in base al valore di tali uscite. Il criterio proposto è di assegnare l'esempio alla classe corrispondente all'uscita più alta purché il suo valore sia superiore ad una certa soglia. Se il valore massimo sulle uscite non è superiore a tale soglia l'esempio si considera non classificato, o reiettato. Un criterio più preciso sarebbe quello di considerare l'esempio reiettato nel caso in cui la differenza fra l'uscita massima e quella successiva è inferiore ad una soglia prefissata.

L'esercizio può essere svolto utilizzando il Neural Network Toolbox di Matlab.

Gli aspetti da investigare possono essere:

  1. Trovare il numero ottimale di neuroni nascosti che garantisce una buona generalizzazione
  2. Confrontare i risultati dell'apprendimento con o senza insieme di validazione
  3. Verificare come cambiano le prestazioni al variare del numero di esempi usati per l'apprendimento. Valutare come la complessità dell'apprendimento è influenzata dalle varie sorgenti di rumore (macchie, rotazioni, traslazioni).
  4. Verificare la difficoltà di un approccio modulare al problema utilizzando questo tipo di classificatore (esempio passaggio da 3 a 4 classi).
[Home] [Scuola Dottorato del GII] [Calcolatori Elettronici] [Fondamenti di Informatica II] [Tesi di Laurea]