1. Capitolo: Introduzione ai concetti fondamentali delle Reti Neurali



Documenti analoghi
Automazione Industriale (scheduling+mms) scheduling+mms.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Pro e contro delle RNA

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Appunti sulla Macchina di Turing. Macchina di Turing

1. BASI DI DATI: GENERALITÀ

L informatica nella scuola: mezzo o fine?

Indice. pagina 2 di 10

ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo

Tecniche di riconoscimento statistico

4 3 4 = 4 x x x 10 0 aaa

Il Problem-Based Learning dalla pratica alla teoria

Concetti di base di ingegneria del software

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

DIPARTIMENTO DI STUDI UMANISTICI

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

ARCHITETTURA DI RETE FOLEGNANI ANDREA

Algebra Di Boole. Definiamo ora che esiste un segnale avente valore opposto di quello assunto dalla variabile X.

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.

Autismo e teoria della mente

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Capitolo V : Il colore nelle immagini digitali

TECNICHE DI SIMULAZIONE

Dispensa di Informatica I.1

Sistemi Informativi Territoriali. Map Algebra

La norma ISO 9001:08 ha apportato modifiche alla normativa precedente in

Corso di. Dott.ssa Donatella Cocca

SOMMARIO. Sistemi Self-Adaptive Motivazioni Ciclo di vita della cellula Paradigma. Future Work

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

manifatturiera e per i servizi

PROCESSO DI INDICIZZAZIONE SEMANTICA

3. Introduzione all'internetworking

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

MEMORIA. La memoria umana è definita come la capacità di riattivare, in modo parziale o totale, gli avvenimenti del passato;

POLITECNICO DI TORINO

Corso di Informatica

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Strumenti di modellazione. Gabriella Trucco

Progettaz. e sviluppo Data Base

Capitolo 4 - Teoria della manutenzione: la gestione del personale

Fasi di creazione di un programma

Sistemi Web! per il turismo! - lezione 3 -

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Corrispondenze e funzioni

La tecnologia cloud computing a supporto della gestione delle risorse umane

Application note. CalBatt NomoStor per i sistemi di accumulo di energia

Sistema Informativo Geografico:

IL SISTEMA INFORMATIVO

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi

Appunti di Sistemi Elettronici

Linguaggi di programmazione

EMANUELE GAGLIARDINI ABILITA COGNITIVE

La nostra azienda produce stampi per materie plastiche, lavoriamo molto con l'estero, per il settore automobilistico tedesco e per grandi aziende nel

HR - Sicurezza. Parma 17/12/2015

Programmi e Oggetti Software

Archivio WebQuest I Grafi e le Reti

Digital Signal Processing: Introduzione

Gestione dei segnali analogici nei sistemi di automazione industriale con PLC.

TECNOLOGIA - SCUOLA PRIMARIA

Fondamenti di Informatica. Docenti: Prof. Luisa Gargano Prof. Adele Rescigno BENVENUTI!

MANUALE DELLA QUALITÀ Pag. 1 di 6

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Esercizio 1: trading on-line

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1

Stefania Pozio. Le prove INVALSI di matematica: il confronto con le indagini internazionali.

Organizzazione degli archivi

SISTEMI DI NUMERAZIONE E CODICI

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

NUOVI APPROCCI PER UN MANAGER ALLENATORE : IL PROCESSO DI COACHING

COMUNE DI RAVENNA GUIDA ALLA VALUTAZIONE DELLE POSIZIONI (FAMIGLIE, FATTORI, LIVELLI)

La comunicazione e il linguaggio

Il concetto di valore medio in generale

Definire la potenza e ricordare l unità di misura della potenza. Definire l energia e la sua unità di misura. Enunciare il teorema delle forze vive

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente

Nozione di algoritmo. Gabriella Trucco

Lezione 8. La macchina universale

Complementi di Analisi per Informatica *** Capitolo 2. Numeri Complessi. e Circuiti Elettrici. a Corrente Alternata. Sergio Benenti 7 settembre 2013

ALGEBRA DELLE PROPOSIZIONI

Psicometria (8 CFU) Corso di Laurea triennale STANDARDIZZAZIONE

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio

03. Il Modello Gestionale per Processi

MODI, TONALITA E SCALE

Corso di Valutazione Economica dei Progetti e dei Piani. Marta Berni AA

Introduzione alla teoria dei database relazionali. Come progettare un database

Dimensione di uno Spazio vettoriale

Lezione 1 Organizzazione, organi e relazioni

Tecniche di Prototipazione. Introduzione

Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

Introduzione all Information Retrieval

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Matematica generale CTF

Informatica per le discipline umanistiche 2 lezione 14

Informatica per la Storia dell Arte Anno Accademico 2014/2015 Docente: ing. Salvatore Sorce

RICERCA-AZIONE. l insegnamento riflessivo. Caterina Bortolani-2009

( x) ( x) 0. Equazioni irrazionali

Transcript:

1. Capitolo: Introduzione ai concetti fondamentali delle Reti Neurali 1

1.1 Cenni storici Le ricerche sulle reti neurali (Artificial Neural Network, ANN), iniziarono tra la fine del XIX e l'inizio del XX secolo quando i primi studiosi di psicologia tentarono di comprendere le basi biologiche del funzionamento dell'intelletto e tra questi ricordiamo lo psicologo William James [Jam1890] il quale sostenne che le basi della comprensione di relazioni più complesse devono essere ricercate in una serie di associazioni elementari interconnesse tra di loro. Egli propose una prima elementare regola di apprendimento: "...accadimenti ripetuti di un certo avvenimento provocano il potenziamento dei processi mentali ed il grado di tale potenziamento dipende dalla frequenza delle ripetizioni...". [Jam1890] W. James, Psycology (Brief Course), Holt, Rinehart & Winston, New York, N.Y., 1890. 2

Tralasciando questi primi approcci di inizio secolo, si arriva al 1943 quando viene pubblicato il lavoro di McCulloch e Pitts [McCPit43][McCPit47] che per primi studiarono il comportamento di una semplice rete neurale da un punto di vista formale. Nel 1950 Hebb [Hebb49] propose una prima regola di apprendimento di tipo associativo, e sempre in quel periodo furono pubblicati molti lavori riguardo a modelli computazionali in grado di simulare, per quanto possibile, il comportamento dei sistemi biologici. Alla fine degli anni '50 vennero pubblicati tre lavori che gettarono le basi per futuri sviluppi: Il Perceptrone di Rosenblatt [Rosen58], il Pandemonium di Selfridge [Self58] e l'adaline di Widrow [Widrow62]. Il Perceptrone rappresentò un notevole sviluppo rispetto al lavoro di McCulloch, in quanto il comportamento del modello non era prestabilito in partenza ma era un qualcosa che si poteva evolvere determinando i propri parametri in base ad un processo di apprendimento per esempi, ma soprattutto il Perceptrone presentava la capacità di generalizzare i comportamenti appresi ed aveva anche una sorta di rappresentazione interna della conoscenza, caratteristiche assenti nel modello di McCulloch. [McCPit43] W.S. McCulloch e W. Pitts, A logical Calculus of the Ideas Immanent in Nervous Activity, Bull. Math. Biophysics, Vol. 5, 1943, pp. 115-133 [McCPit47] W. Pitts e W. S. McCulloch, How We Know Universals: The Perception of auditory and Visual Form, Bull. Math. Biophysics, Vol. 9, 1947, pp. 127-147 [Hebb49] D. O. Hebb, The Organization of Behavior, Wiley, New York, N.Y., 1949 [Rosen58] F. Rosenblatt, The Perceptron: A Probabilistic Model for Information Storage i the Brain, Psychological Rev., Vol. 65, 1958, pp. 386-408 [Self58] O. G. Selfridge, Pandemonium: A Paradigm for Learning, Mechanization Thought Processes: Proc. Symp. Nat'l Phisycal Lab., HMSO, London, England, Nov. 1958, pp. 513-526 [Widrow62] B. Widrow, Generalization and Information Storage in Networks of ADALINE Neurons, in Self-Organizing Systems, G. T. Yovitts, ed., Spartan Books, New York, N.Y., 1962, pp. 435-461 3

Tuttavia già in una pubblicazione del 1963 di Minsky a Papert [MinPap69] furono evidenti le limitazioni delle idee di Rosenblatt. Nell'Adaline, Widrow ed Hoff svilupparono una prima regola di apprendimento che prevedeva la modificazione dei pesi dei collegamenti tra le unità di calcolo fondamentali, in modo tale da minimizzare l'errore commesso rispetto agli esempi presentati: a differenza del Perceptrone il modello di Widrow continuava ad apprendere anche quando un input veniva classificato correttamente. Numerosi furono i contributi nel corso degli anni, ma quello che dette un nuovo impulso alle applicazioni pratiche di questi modelli fu quello del PDP research group dell'università della California a San Diego che nel 1986 pubblicò tre volumi in cui venivano riportati una serie di esperimenti riguardanti modelli di calcolo paralleli e veniva pubblicato per la prima volta un algoritmo di apprendimento detto Backpropagation. 1.2 La natura dei processi neurali Il compito principale di tutti i sistemi neurali consiste nel controllo centralizzato di varie funzioni biologiche. Alcuni di essi s'occupano del metabolismo, altri del sistema cardiovascolare e così via. Queste funzioni sono comuni in molti animali e sono presenti a vari livelli d'evoluzione e quindi di complessità. Nello sviluppo della teoria dell'informazione odierna sembra che l'obbiettivo principale sia quello di riprodurre artificialmente alcune di esse, come ad esempio la percezione sensibile del mondo esterno, o l'apprendimento tramite l'esperienza. Come esempio di queste applicazioni possiamo ricordare la realizzazione di macchine in grado di "vedere" o "sentire" che sono [MinPap69] M. Minsky e S. Papert, Perceptrons: An Introduction to Computational Geometry, MIT Press, Cambridge, Mass., 1969 4

integrate in robot in cui il coordinamento delle funzioni motorie è affidato a sistemi con struttura neurale. Tuttavia il successo in queste applicazioni sembra molto legato alla capacità di realizzare componenti hardware con processi di calcolo paralleli. A questo punto dell'esposizione è necessario chiarire cosa s'intende per reti neurali (Neural Networks) e computer neurali: " Le reti neurali (Artificial Neural Networks) sono un insieme di unità di calcolo elementari (generalmente adattabili), connesse fra di loro con struttura parallela, organizzate in maniera gerarchica e predisposte per interagire con gli "oggetti" del mondo reale con un comportamento analogo ai sistemi nervosi biologici" L'operazione fondamentale eseguita da queste unità fondamentali è quella della trasformazione analogica di un segnale d'ingresso ricevuto dall'ambiente esterno: nelle reti neurali biologiche i neuroni corrispondono a queste unità. Le connessioni tra le varie cellule del sistema nervoso sono realizzate attraverso rami che si dipartono dal centro del neurone (axoni) e realizzano una serie di connessioni variabili con altre unità, connessioni che vengono indicate con il nome di sinapsi La funzione principale di queste cellule è quella di operare una sorta di filtro adattabile ai segnali che arrivano dalle altre sinapsi. Le complesse operazioni che sono in grado di svolgere tali reti biologiche sono dovute ai numerosi loops di feedback che, insieme alla nonlinearità di risposta delle celle elementari ed all'adattabilità dei parametri interni, possono riprodurre un qualunque processo dinamico. Una delle peculiarità delle reti neurali è la loro dimensione: l'intero sistema nervoso centrale è costituito da un numero di neuroni dell'ordine di 10 11 ed il numero delle loro connessioni è dell'ordine di 10 15. 5

Fig. 1 - Rappresentazione schematica di una cellula del sistema nervoso centrale Nel caso in cui si ipotizzi la capacità di programmare un tale sistema, i possibili interventi si riassumono nei seguenti punti: cambiare la struttura dei collegamenti cambiare "l'intensità" con cui vengono trasmessi i segnali da una cella ad un altra Tuttavia è molto difficile immaginare come una tale procedura possa essere realizzata. Un'altra funzione importante dei sistemi nervosi è quella di definire le azioni che costituiscono il comportamento dell'organismo controllato al variare delle condizioni ambientali che si trova ad affrontare. Il processo con cui vengono definite sembra essere una specie di backpropagation delle informazioni, ovvero un meccanismo per il quale le azioni eseguite sono controllate ed adattate successivamente in base a criteri prestabiliti e non ben identificati, anch'essi modificabili durante l'apprendimento, in modo da ottenere il risultato desiderato. A questo punto si presenta il problema fondamentale nell'implementazione di sistemi che emulano il comportamento biologico: l'addestramento e gli algoritmi con cui gestire le strategie di apprendimento. 6

Per comprendere meglio le potenzialità di questi sistemi è necessario precisare le differenze che intercorrono fra i cosiddetti computer neurali ed i computer digitali. A questo scopo riportiamo due concetti fondamentali: Nei computer neurali non è necessaria alcuna istruzione di programmazione né alcun codice di controllo Essi non implementano alcuna istruzione di tipo ricorsivo e quindi non hanno un funzionamento regolato da algoritmi (se non per quanto riguarda le procedure di apprendimento). 1.3 Applicazioni dei computer neurali 1.3.1 Pattern recognition Il termine pattern recognition fu introdotto all'inizio degli anni '60 ed in origine intendeva il riconoscimento di forme molto semplici, come ad esempio caratteri di scrittura a mano, mappe meteorologiche, spettri vocali, etc. Con il passare del tempo gli obbiettivi sono diventati sempre più ambiziosi, fino ad intendere con il termine tutto ciò che simula i sistemi sensoriali biologici. I primi esperimenti furono chiaramente basati su reti neurali molto semplici: il Perceptrone (Rosenblatt, 1958), Adaline (Widrow & Hoff, 1969) Learning matrix (Steinbuch, 1961) ed altre. Questi approcci furono relativi a problemi elementari, ma fu subito chiaro che sarebbe stato molto difficile raggiungere le prestazioni dei sistemi biologici e se anche si fosse raggiunta una tecnologia adeguata per quanto riguarda strutture di calcolo parallelo, esse non sarebbero state sufficienti a risolvere molti dei problemi fondamentali di questi modelli tra cui ricordiamo quelli più rilevanti: 7

invarianza della percezione rispetto alla traslazione, rotazione, scala, prospettiva, condizioni di illuminazione variabile riferire l'osservazione ai differenti contesti variando soprattutto i livelli di astrazione in modo da distinguere gli eventi in maniera selettiva Inoltre non si può dimenticare che anche i sistemi sensoriali più avanzati non operano in maniera autonoma, ma sono sempre intimamente collegati a processi cognitivi più complessi di cui bisogna tenere conto quando si realizza un'emulazione. Tuttavia sarebbe inutile attendere la soluzione di questi problemi per procedere alla realizzazione di applicazioni in campo ingegneristico, dal momento che nelle applicazioni tecniche si possono utilizzare soluzioni ben più semplici di quelle adottate dalla natura allo stesso scopo. Tra le applicazioni fino ad ora realizzate ed in corso di sviluppo ricordiamo: analisi medica di immagini sistemi visivi per robot dispositivi di input per computer riconoscimento di caratteri manoscritti recupero di immagini difettose riconoscimento vocale 1.3.2 Interpretazione di informazioni a carattere stocastico La consapevolezza che la memoria umana funziona seguendo principi associativi è molto antica e può essere attribuita ad alcuni trattati scritti da Aristotele sulla memoria e sulla reminiscenza. 8

Sebbene risulti evidente come la maggior parte degli oggetti del mondo esteriore siano distinti tra di loro, le informazioni ricavate dai sistemi sensoriali sono di tipo fuzzy e solo raramente è possibile esprimerli in termini di caratteristiche che li distinguono con precisione. Chiaramente una descrizione accurata delle differenze tra i vari eventi può essere fatta "a parole" senza difficoltà, ma questo presuppone la presenza di un sistema in grado di pensare e comprendere. L'implementazione di tale capacità di interpretazione per mezzo della logica formale o con tecniche tipiche dell'intelligenza artificiale sembra molto lontana, ma è comunque necessaria per realizzare un vero modello artificiale del comportamento biologico. Qualora fosse disponibile una tale capacità di distinguere le caratteristiche semantiche dei dati a disposizione, il problema è quello di ottenere le informazioni richieste da una tale memoria di dati. A tale scopo sono state proposte soluzioni con tecniche classiche sia software (hash-coding) che hardware (content-addressable-memory CAM) sin dal 1955. Scendendo più nel dettaglio possiamo dire che le informazioni semantiche sono costituite dai dati e dalle loro interconnessioni logiche. La ricerca delle informazioni disponibili in questa memoria può essere immaginata come la ricerca della soluzione di un sistema di equazioni matematiche. Infatti quando poniamo una richiesta (query) è come se scrivessimo una serie di equazioni con variabili incognite: per esempio possiamo specificare una serie di relazioni parziali in cui alcuni membri sono incogniti ed il sistema deve trovare, all'interno della sua memoria, tutte le relazioni che legano tra di loro queste espressioni parziali per giungere alla soluzione del problema. Quanto abbiamo descritto va sotto il nome di data base relazionale ampiamente utilizzato in campo economico. Nelle reti neurali l'approccio è completamente differente. Le richieste vengono imposte alla rete come una serie di condizioni iniziali e la 9

risposta non è altro che lo stato della rete corrispondente a tali condizioni iniziali in modo da soddisfare una sorta di minimo energetico caratteristico della tipologia del sistema. Tuttavia dobbiamo notare che la soluzione raggiunta non rappresenta l'ottimo globale ma un ottimo locale che spesso risulta comunque soddisfacente. 1.3.3 Controllo di Robot Ci sono due categorie fondamentali di robot: a traiettoria programmata ed i cosiddetti robot intelligenti. Questi ultimi devono essere in grado di definire in modo proprio le loro azioni. Tipiche applicazioni di questa categoria di macchine "intelligenti" sono quelle in cui è richiesto di muoversi autonomamente in ambienti sconosciuti senza seguire euristiche programmate in precedenza. 1.3.4 Decision Making Un obbiettivo più complesso rispetto al controllo del movimento di un robot è quello dell'implementazione di un sistema in grado di decidere autonomamente le proprie azioni. Le tecniche tradizionali prevedono che questo processo sia ridotto ad una serie di calcoli combinatoriali tra eventi possibili. Questo non è il modo con cui si formano i processi decisionali della nostra mente: infatti essi seguono un modello combinatoriale solo per quel che riguarda la scelta delle decisioni da scartare, ma quando si arriva a decidere la strategia finale il "presentimento" ed "intuizione" giocano un ruolo predominante. Queste caratteristiche potranno essere implementate solamente utilizzando la logica delle reti neurali dal momento che possono essere acquisite solamente attraverso l'esperienza. 10