1. UNIVERSITÀ DEGLI STUDI DI PERUGIA
FACOLTÀDIECONOMIA
Corso di Laurea in Statistica e Informatica per
la Gestione delle Imprese
Prova Finale
Apprendimento Automatico e Reti
Neurali
Intelligenza Artificiale
Relatore
Prof.ssa Valentina Poggioni
Laureando
Giuseppe Agabiti S
2. Cos’è l’Intelligenza
Artificiale?
L’intelligenza artificiale ha lo scopo di sviluppare
algoritmi che fanno operazioni che apparentemente
richiedono cognizione quando fatte da umani.
Le azioni che un sistema intelligente deve svolgere
sono fondamentalmente tre:
1. Memorizzare la conoscenza
2. Applicare la conoscenza per risolvere problemi
3. Acquisire nuova conoscenza tramite l’esperienza
3. Calcolatore e Cervello Umano
Un chip è più veloce di un singolo neurone del
cervello:
• 1 milione eventi/ms contro 1 evento/ms
Però il cervello è composto da 100 miliardi di
neuroni ognuno dei quali comunica con altri
diecimila neuroni
Il calcolatore è molto rapido e efficiente nel risolvere
compiti in cui l’essere umano è in difficoltà
Però è molto lento e inefficiente nel risolvere
problemi che richiedano intuito o esperienza
4. Calcolatore e Cervello Umano
Esiste un solo elemento di
elaborazione (processore) che fa
tutte le operazioni
Il calcolatore deve essere
programmato per svolgere un
compito
Molti elementi di
elaborazione (neuroni)
lavorano allo stesso problema
Il cervello impara in base
all’esperienza o con l’aiuto di
un insegnante
5. Reti Neurali Biologiche
Il cervello è costituito da
una rete di neuroni
Al singolo
neurone, tramite dendriti e
sinapsi arrivano segnali
elettrici dagli altri neuroni
Se il segnale è al di sopra
di una soglia il neurone
genera un segnale in uscita
lungo l’assone
6. Reti Neurali Artificiali
Le reti neurali artificiali sono sistemi di elaborazione
ispirati al sistema nervoso degli esseri viventi
I neuroni che compongono una rete neurale artificiale
vengono raccolti in strati:
1. Strati di ingresso, contenenti solo i
Strato Strato Strato di
neuroni che ricevono direttamente segnali di Ingresso Nascosto Uscita
provenienti dall’esterno della rete
2. Strati di uscita, contenenti solo i neuroni
che hanno un canale di uscita verso
l’esterno
3. Strati nascosti, che non sono né d’ingresso
né d’uscita. I neuroni che compongono
questi strati sono detti unità nascoste
7. Struttura di un nodo
La rete neurale artificiale è costituita da semplici unità che simulano i
neuroni (nodi)
Il singolo nodo riceve i
segnali dai suoi collegamenti
in ingresso e calcola un
nuovo livello d’attivazione
che invia lungo tutti i suoi
collegamenti in uscita
Il calcolo del valore di attivazione ai è composto da due componenti:
1 Componente lineare (funzione di ingresso), calcola la somma pesata dei
valori d'ingresso del nodo
2 Componente non lineare g(funzione di attivazione), trasforma la somma
pesata nel valore finale ai
8. Funzioni di Attivazione “g”
La funzione a gradino ha
una soglia t che individua
l’ingresso pesato minimo che
permetta al neurone di inviare
l’impulso
Nella funzione di segno, invece di
avere una soglia t, si considera
per ciascun nodo un ingresso
aggiuntivo, la cui attivazione è
fissata a -1; il peso extra
associato ricopre il ruolo della
soglia t, in questo modo tutte le
unità possono avere una soglia
fissata a 0
9. Architettura di una Rete Neurale
La connessione e la distribuzione dei nodi dipende dal
tipo di Architettura di rete neurale a cui appartengono
Le Architetture possono essere ragruppate in due classi:
• Rete alimentata in avanti (feed-forward): I
collegamenti sono in un’unica direzione e non ci
sono cicli
Il modello più famoso è il Percettrone
• Reti ricorrenti con reazione (feed-back):
L’attivazione può essere ripassata all’indietro
Uno dei modelli più noti sono le Reti di Hopfield
10. Il Percettrone
Il Percettrone sta alla base delle reti neurali; nasce da
un’idea di Rosenblatt (1962) e con esso si cerca di simulare
il funzionamento di un singolo neurone; viene utilizzato
come sinonimo di rete alimentata in avanti ad uno strato
(nessuna unità nascosta)
Nel caso più basilare ha solo 2 input e un output:
• Ognuno degli input, x1 e x2 ha un peso corrispondente, quindi
l’output del percettrone sarà una funzione semplicemente data
dalla somma ponderata degli input:
y = f(x1*w1+x2*w2)
11. Le Reti di Hopfield
Secondo questo modello ogni nodo può comunicare con
tutti o almeno con una grande maggioranza degli altri
neuroni non solo nello strato immediatamente
successivo, ma potenzialmente in qualunque strato
Tutte le unità sono sia
d’ingresso che d’uscita
La funzione di attivazione
è la funzione segno e i livelli
di attivazione possono
essere solo ±1
12. L’Addestramento delle Reti
I computer tradizionali non
imparano dai propri sbagli
Il cervello umano si
La maggior parte delle reti
neurali anche, attraverso
l’aggiornamento dei pesi
Una rete neurale addestrata è
quindi una rete in cui i pesi delle
connessioni sono stati fissati
13. Apprendimento Automatico
Una definizione di tale concetto è stata formulata da
Mitchell nel 1997:
• “Un programma apprende dall’esperienza (E) rispetto ad
una classe di problemi (T) e alla misura di performance
(P), se la sua performance sui problemi in (T), così come
misurata da (P), migliora con le esperienze in (E)”
Esempio: Gioco degli Scacchi
Paradigmi di Apprendimento Automatico:
• Apprendimento non supervisionato (unsupervisedlearning)
• Apprendimento supervisionato (supervisedlearning)
• Apprendimento con rinforzo (reinforcementlearning)
14. Apprendimento non Supervisionato
Esperienza E
• È costituita da una serie di esempi raccolti di cui non
sappiamo quasi nulla
Problema T
• Individuare qualcosa d’interessante
Performance P
• Dipende da quanto è interessante quello che è stato
trovato
Esempio: Motori di ricerca
15. Apprendimento Supervisionato
Esperienza E
• Una serie di esempi che sono stati elaborati da un esperto,
il supervisore
• L’esperto o supervisore classifica gli esempi individuando un
particolare fenomeno interessante
Problema T
• Estrarre dagli esempi una descrizione compatta del fenomeno
descritto
• La descrizione può essere successivamente sfruttata per fare delle
previsioni sul fenomeno
Performance P
• Dipende da quanto accurata è la previsione su esempi non considerati
dal supervisore
Esempio: Cartelle Cliniche “Pazienti affetti da Patologia”
16. Apprendimento per Rinforzo
Il sistema agisce direttamente sul problema “per tentativi”
Un istruttore “premia” o “punisce” il sistema attraverso un segnale
numerico di rinforzo a seconda del comportamento istantaneo del
sistema
Esperienza E
• Le esperienze che il sistema colleziona
Problema T
• È quello di ottenere quanto più rinforzo possibile
Performance P
• Dipende dalla quantità di rinforzo ottenuta
Esempio: Agente per il trading on-line
17. Applicazioni esistenti Reti
Neurali
Compressione dei dati
Riconoscimento segnali Sonar
Riconoscimento di caratteri
Sistemi di guida automatica
Analisi finanziarie
Medicina
18. Vantaggi e Limiti delle Reti
Neurali
Vantaggi:
• Le reti neurali sono in grado di risolvere problemi
estremamente complessi per algoritmi tradizionali
• Sono in grado di imparare
• Lavorano in tempo reale
• Ottengono risultati anche in presenza di dati complicati e
imprecisi
Limiti:
• Sono “scatole nere”, i problemi vengono risolti, non capiti
• È necessario disporre di un ampio numero di esempi per
addestrarle