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
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
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
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
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
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
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
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
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
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)
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
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
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)
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
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”
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
Applicazioni esistenti Reti
         Neurali
 Compressione dei dati

 Riconoscimento segnali Sonar

 Riconoscimento di caratteri

 Sistemi di guida automatica

 Analisi finanziarie

 Medicina
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
FINE

Tesi di Laurea di
Giuseppe Agabiti    S

Reti Neurali

  • 1.
    UNIVERSITÀ DEGLI STUDIDI 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 CervelloUmano  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 CervelloUmano 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 Ilcervello è 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 unnodo  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 unaRete 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  IlPercettrone 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 diHopfield  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  Unadefinizione 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  EsperienzaE • 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 Limitidelle 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
  • 19.
    FINE Tesi di Laureadi Giuseppe Agabiti S