Intelligenza Artificiale Soft Computing: Reti Neurali Generalità
Neurone Artificiale Costituito da due stadi in cascata: sommatore lineare (produce il cosiddetto net input) net = S j w j i j w j è il peso associato all input j funzione di attivazione f non lineare a soglia o = f (net)
Neurone Artificiale Funzioni di attivazione (funzione gradino o sue approssimazioni): o = 1 se (x - q) > 0 0 se (x - q) < 0 o = +1 se (x - q) > 0-1 se (x - q) < 0 o = 1 / (1 + e -(x -q) ) o = tanh (x - q) Gradino Gradino bipolare Sigmoide (approssimazioni continue) Tangente iperbolica q è una costante (bias) col ruolo di soglia (sposta la f lungo l asse delle ascisse). Equivale al peso associato a un input costante=1.
Rete Neurale Artificiale Architettura a più strati: strato di ingresso IN OUT strato/i nascosto/i (non accessibile/i direttamente dall esterno) strato di uscita
Reti Neurali Artificiali Ad ogni connessione è associato un peso, utilizzato nel sommatore che costituisce il primo stadio del neurone che riceve dati attraverso la connessione. Il comportamento di una rete neurale è quindi determinato: dal numero dei neuroni dalla topologia, cioè dalla disposizione dei neuroni nello spazio dai valori dei pesi associati alle connessioni
Reti Neurali Artificiali: classificazione Sulla base dell organizzazione delle connessioni Reti singolo strato: le unità di ingresso sono connesse direttamente a quelle di uscita. Reti multistrato: organizzate in gruppi topologicamente equivalenti (strati), in funzione della distanza dall uscita Reti totalmente connesse: ogni neurone della rete è connesso con ogni altro. Se due strati sono totalmente connessi, ogni neurone dell uno è connesso ad ogni neurone dell altro. Reti parzialmente connesse: ogni neurone è connesso ad un particolare sottoinsieme di neuroni.
Reti Neurali Artificiali: classificazione Sulla base del flusso dei segnali Reti feedforward: connessioni possibili solo in avanti (l uscita prodotta da un neurone è trasmessa solo a neuroni che si trovano più vicini allo strato di uscita) Reti ricorrenti: connessioni possibili anche all indietro (un neurone può ricevere in ingresso segnali provenienti anche da neuroni che si trovano più vicini allo strato di uscita)
Reti Neurali Artificiali: computabilità Teorema di Kolmogorov: Qualsiasi funzione continua y=f(x):r n ->R m può essere computata da una opportuna rete ricorrente a 3 strati avente n unità nello strato di ingresso, 2n+1 nello strato nascosto ed m nello strato di uscita e totalmente connessa fra gli strati Problemi : Dimostra la sola esistenza della soluzione Le unità considerate nel teorema hanno caratteristiche diverse dai neuroni artificiali utilizzati nelle reti neurali Altri teoremi di esistenza (reti neurali multistrato) Una rete neurale con uno strato nascosto avente un numero sufficiente di unità può approssimare qualsiasi funzione continua (convessa); con due strati qualunque funzione continua
Problemi risolubili con diverse configurazioni
Reti Neurali Artificiali Proprietà: Capacità di apprendere da esempi Capacità di generalizzare (risposte simili in corrispondenza di esempi simili a quelli su cui sono state addestrate) Capacità di astrarre (risposte corrette in corrispondenza di esempi diversi da quelli su cui sono state addestrate) Insensibilità al rumore (capacità di generalizzare anche in presenza di dati alterati o incerti) Decadimento graduale delle prestazioni (il comportamento si altera gradualmente se si eliminano connessioni o si alterano i pesi)
Apprendimento (training) L apprendimento (da esempi) da parte di una rete neurale si configura come un processo iterativo di ottimizzazione: i pesi della rete vengono modificati sulla base delle prestazioni della rete su un insieme di esempi si minimizza una funzione obiettivo che rappresenta di quanto il comportamento della rete si discosta da quello desiderato L insieme degli esempi su cui la rete viene addestrata è detto training set Le prestazioni della rete devono essere verificate su un insieme di dati (test set) che non appartengono al training set
Apprendimento (training) Con supervisione: esempi divisi in due componenti pattern di ingresso teaching input, che specifica l output che si desidera ottenere in corrispondenza di tale pattern I pesi sono adattati in modo da minimizzare le differenze fra il comportamento della rete e quello desiderato. Senza supervisione: esempi costituiti da soli dati di ingresso. pesi adattati in modo tale che la rete si auto-organizzi in modo da riflettere alcune caratteristiche e regolarità del training set si parla anche di regularity discovery o feature detection
Apprendimento (training)
Intelligenza Artificiale Soft Computing: Reti Neurali Regole di Apprendimento
Apprendimento con supervisione: Legge di Hebb Prima proposta di modello di apprendimento Modello di tipo correlazionale nato per giustificare l apprendimento nelle reti di neuroni biologiche se due unità sono attive nello stesso istante il peso della relativa connessione deve essere incrementato
Apprendimento con supervisione: Legge di Hebb Dw ij = e o i o j Problemi: e = Learning Rate - non sempre conduce a risultati corretti - continuando a mostrare gli stessi esempi i pesi crescono indefinitamente (non è plausibile biologicamente e porta a fenomeni di saturazione)
Apprendimento con supervisione: Legge di Hebb Data una rete singolo strato con attivazioni lineari e ingressi reali la legge di Hebb funziona solo se i vettori di ingresso formano un insieme ortogonale. Se lo spazio di ingresso ha dimensione N, si possono apprendere al massimo N associazioni esatte In ogni caso la legge è importante in quanto: troviamo traccia dei suoi principi anche in regole di apprendimento più potenti utile termine di paragone per studiare le regole di apprendimento
Apprendimento con supervisione: Percettrone Prima realizzazione di rete neurale artificiale (Rosenblatt, fine anni 50) Studiato inizialmente per problemi di riconoscimento di forme da stimoli di tipo visivo Strato di ingresso (rétina) cui sono collegate unità che realizzano una funzione f binaria dell ingresso (stimolo visivo), collegate ad un neurone con attivazione a soglia. f n f 1 f 2 w 2 w 1 w n S q o
Apprendimento con supervisione: Percettrone Per il percettrone esiste una legge di apprendimento: Ripeti: 1. presenta un pattern in ingresso e calcola l uscita 2. se il pattern è stato classificato in modo corretto, ripeti 1. con un nuovo pattern, altrimenti - se l uscita è alta e il teaching input è 0, decrementa di uno i pesi delle linee per cui i i =1 e incrementa la soglia di uno - se l uscita è bassa e il teaching input è 1 fa l inverso (incrementa i pesi e decrementa la soglia) finché i pesi non convergono.
Apprendimento con supervisione: Percettrone Formalmente: o p = 1 se net = S i w i i pi > q 0 altrimenti D p w i = (t p - o p ) i pi D p q = (o p - t p ) calcolo dell uscita variazione dei pesi In base al teorema di Rosenblatt converge alla soluzione in un numero finito di passi, se la soluzione esiste Purtroppo, non sempre esiste (es. XOR, se le uscite della funzione non sono linearmente separabili)
Apprendimento con supervisione: Discesa lungo il gradiente Si inizializzano i pesi Ad ogni iterazione, per ogni esempio nel training set: 1. si calcola l uscita prodotta dalla attuale configurazione della rete 2. si calcola l errore rispetto ai teaching input 3. si modificano i pesi spostandoli in direzione opposta al gradiente della funzione errore calcolato rispetto ai pesi fino al raggiungimento di un limite inferiore prestabilito per l errore o di un certo numero prestabilito di iterazioni