| | ||||||||||||||
| NOEMA Home SPECIALS Reti neuronali | Tecnologie e Società | |||||||||||||
|
Reti neuronali
Prima di addentrarci nello specifico delle reti neuronali è essenziale una piccola precisazione. Tutto ciò che andremo ad osservare sono teorie matematiche. Attualmente, la loro applicazione è ad una fase sperimentale ed in continua evoluzione. La tecnologia elettronica in nostro possesso permette la creazione di software con un numero di neuroni pari a poche centinaia. È necessario ricordare che i risultati sono comunque di ottima qualità anche se assolutamente lontani dai risultati che si potrebbero ottenere con reti costituite da milioni di neuroni come una reale rete celebrale umana. Il primo ad introdurre uno schema di rete neuronali fu il matematico Rosenblatt. A partire dai primi anni ’60 egli descrisse il funzionamento di un neurone artificiale (chiamato da lui “percettrone”) atto, se organizzato in rete, ad apprendere ed in seguito a riconoscere un determinato dato complesso. Oltre a questo Rosenblatt introduce anche il “Teorema della convergenza”, con il quale dimostra che grazie ad un numero finito di esempi (inseriti nella rete come addestramento), la rete riuscirà in seguito a riconoscere tutti i membri facenti parte del gruppo rappresentato dagli esempi. Ora andrò ad illustrare tale procedimento in modo più chiaro. Se, durante la fase di apprendimento, vado ad inserire in ingresso alla rete esempi, come fotografie di volti umani, un numero finito di volte specificando che ognuno di questi è un volto, la rete in seguito sarà in grado di riconoscere qualsiasi volto umano venga mostrato ad essa, distinguendolo da un non volto [3]. La rete, essenzialmente, durante la fase di apprendimento non fa altro che autoistruirsi su tutti quegli elementi visivi (che per la rete naturalmente saranno stringhe di bit) che caratterizzano un volto umano. Dopo questa fase la rete andrà a ricercare questi elementi in qualsivoglia immagine mostratale restituendoci una risposta positiva se ciò che è mostrato è un volto o negativa se non lo è. Naturalmente l’esempio che ho fatto è elementare (anche una rete costituita da non più di cinquanta neuroni sarebbe in grado di riconoscere un volto da un non volto con un margine d’errore minimo), ma se solo la rete fosse più complessa potrebbe eventualmente riconoscere un numero elevatissimo di dettagli. Ad esempio imparare a riconoscere tutti i caratteri dell’alfabeto o, ipotesi non distante da noi, riconoscere attraverso un circuito di telecamere poste sulla strada un'automobile evidenziandone colore e targa. Ora scendiamo nel dettaglio e andiamo a vedere brevemente come funziona un neurone artificiale.
Funzionamento del neurone artificiale
Come è possibile notare dal modello proposto dagli studiosi McCullock e Pitts (in figura), il neurone artificiale non si presenta in modo complesso come si potrebbe immaginare. Esso è semplicemente composto da “n” ingressi ai quali e attribuito un proprio peso “W”. I vari dati di ingresso vengono moltiplicati ognuno per il proprio peso e la risultante viene sommata. Ad esempio [4]: se W1 è pari a “5” ed in ingresso ha il dato “2” il risultato che otterrò è “10”, che andrà sommato ai risultati degli ingressi W2 e Wn. In un secondo momento il risultato delle operazioni precedenti viene confrontato con un valore di soglia “So”: se il risultato della somma è superiore a “So” in uscita avrò un valore (ad esempio =1); se il risultato della somma è inferiore a “So” in uscita avrò un altro valore (ad esempio =0). Ora è opportuno chiarirne ulteriormente il funzionamento. Tutti i pesi “W” ed i valori di soglia “So” non sono impostati in precedenza ma di volta in volta l’intelligenza artificiale andrà ad auto-impostarli fino al raggiungimento di un risultato di uscita che noi gli abbiamo chiesto di ottenere in fase di addestramento. Ora, immaginiamo un software in grado di distinguere un volto da un non volto. Stabiliamo in fase di addestramento che in uscita avremo un valore pari ad “1” se si tratta di un volto o pari a “0” se non si tratta di un volto. Durante l’immissione degli esempi di volto il nostro software/AI sa che le fotografie mostrategli (per lui stringhe di bit ogni volta diversi) devono dare un risultato “1”, indi andrà a modificare i pesi e le soglie dei neuroni in modo tale che il risultato sia “1”. Ora pensiamo che, come il “Teorema della convergenza” dimostra, una volta ripetuto questa operazione un numero finito di volte (si parla comunque di un numero dell’ordine di 50, 100 mila esempi [5]) il nostro software/AI avrà individuato le peculiarità che contraddistinguono un volto umano da qualsiasi altra cosa, e di conseguenza sarà potenzialmente in grado di riconoscerlo distinguendolo dal resto.
Note 3) È essenziale sottolineare che la fase di apprendimento non è solo caratterizzata dall’inserimento di esempi ma anche da non esempi. Tornando al caso del volto umano, la fase di apprendimento sarà costituita da volti (esempi) e non volti (non esempi). In questa tesina cenno solo alla prima delle due fasi (inserimento esempi) perchè essenzialmente facenti parte della stessa operazione (apprendimento) e perché semplicemente uguali e contrarie. [back] 4) L’esempio da me riportato si rifà ad un tipo di neurone chiamato “neurone binario a soglia”, utilizzato per lo più in ambito accademico. Tale neurone si distingue per il risultato in uscita che può assumere solo due valori: 0 o 1. Esistono anche ricerche su un altro tipo di neurone, quello definito “neurone sigmoidale”, in grado di restituire in uscita un valore analogico. [back] 5) Il numero degli esempi da inserire (compresi naturalmente i non esempi) dipende dal numero dei neuroni costituenti la rete e dalla complessità dell’esempio. [back]
| |||||||||||||
| | ||||||||||||||