Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

24
Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni

Transcript of Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Page 1: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Apprendimento Automatico

Calcolo Evoluzionistico

Stefano Cagnoni

Page 2: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

In ogni popolazione si verificano delle mutazioni.

Le mutazioni possono generare individui che meglio si adattano all’ambiente.

Questi sopravviveranno più a lungo (selezione naturale) generando più figli (riproduzione).

I figli preservano in parte i caratteri genetici dei genitori (cromosomi, composti da geni) e, in parte, mescolandoli (crossover), creano nuovi tipi.

Evoluzione

Page 3: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Si ha una maggiore probabilità che le generazioni

successive presentino i caratteri degli individui più

“adatti” (cioè con fitness più elevata) all’ambiente in cui

vivono (evoluzione).

Il codice genetico di un individuo è detto genotipo. La

manifestazione dei caratteri codificati in tale codice è

detta fenotipo.

Evoluzione

Page 4: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Nelle scienze:

• Verifica tramite simulazioni di ipotesi in biologia, sociologia, religione ecc.

Per l'ingegneria:

• Ottimizzazione di funzioni• Ottimizzazione combinatoria• Apprendimento automatico• Soluzione di problemi

Calcolo Evoluzionistico

Page 5: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Corrispondenze natura-calcolo

Individuo Soluzione di un problema Popolazione Insieme di soluzioni

Fitness Qualità di una soluzione

Cromosoma * Rappresentazione di una soluzione

Gene * Componente di una

rappresentazione Crossover Mutazione Operatori per la ricerca di

soluzioni

Selezione Naturale Riutilizzo di buone soluzioni

Evoluzione Ricerca di buone soluzioni

*solo per gli algoritmi genetici

Page 6: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Componenti di un algoritmo evoluzionistico

1. Rappresentazione (codifica)

2. Funzione di valutazione (fitness function)

3. Popolazione

4. Meccanismo di selezione (dei genitori)

5. Operatori di modifica/ricombinazione

6. Meccanismo di selezione dei sopravviventi (sostituzione)

7. Strategia di inizializzazione

8. Condizione di arresto

Page 7: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Generico algoritmo evoluzionistico

1. Inizializza una popolazione

2. Valuta la fitness della popolazione

3. Ripeti:

a. seleziona un sottoinsieme della

popolazione in base alla fitness

b. a partire dagli individui selezionati, genera

una nuova popolazione mediante gli operatori

di modifica/ricombinazione

c. Valuta la fitness della nuova popolazione

fino al soddisfacimento di un criterio di arresto

Page 8: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Algoritmi genetici

Negli algoritmi genetici si ottengono nuove soluzioni operando su una loro codifica: in termini genetici, si opera (come del resto accade anche in natura) sul solo genotipo.

E’ quindi necessaria una decodifica da genotipo a fenotipo.

I cromosomi sono stringhe di simboli (es. 0 o 1).

Gli individui possono essere qualunque cosa possa essere rappresentata con una stringa di simboli.

I fenotipi possono essere, ad esempio, vettori di parametri, liste di possibili scelte, connessioni fra neuroni in una rete neurale ecc.

Page 9: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Semplice algoritmo genetico

1. Genera una popolazione casuale di cromosomi.

2. Decodifica ogni cromosoma per ottenere un individuo.

3. Valuta la fitness di ciascun individuo.

4. Genera una nuova popolazione, in parte clonando (copiando), in parte ricombinando e in parte mutando i cromosomi degli individui con fitness più elevata.

5. Ripeti 2,3,4 fino ad una condizione di stop.

Page 10: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Rappresentazione

Numeri

Interi (da 0 a 2n-1, da K a K+2n-1, da 0 a M con M2n-1)

Reali

Elementi appartenenti ad insiemi limitati

Vettori di parametri o numeri

Page 11: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Rappresentazione

Rappresentazioni simili devono rappresentare cose simili

Codifica di Gray

Rappresentazioni di interi consecutivi differiscono per un bit Gray Bin Gray Bin

0 000 000 4 110 1001 001 001 5 111 1012 011 010 6 101 1103 010 011 7 100 111

L’inversione di un bit produce piccoli cambiamenti

Se però il cambiamento è grande è maggiore che con una normale codifica binaria

Page 12: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Fitness Function

Ipotesi fondamentale

1. Esiste una misura Q della bontà di una soluzione.

2. Q è sempre positiva

3. Deve essere massimizzata

4. La Q di un individuo è la sua fitness

Page 13: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Popolazione

Una popolazione è un multiset (insieme in cui è accettabile la presenza di più copie di uno stesso elemento) di soluzioni

E’ caratterizzata o dalla sola dimensione (numero di individui) o, eventualmente, anche da una struttura di tipo spaziale in cui ogni individuo ha un insieme di vicini in un suo intorno.

Quasi sempre la dimensione della popolazione resta costante nelle diverse generazioni.

Si definisce diversità di una popolazione il numero di individui diversi presente al suo interno.

Page 14: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Selezione

E’ la strategia che determina come gli individui (in realtà il loro genotipo, rappresentato dai cromosomi) devono essere selezionati per la riproduzione.

Per simulare la selezione naturale, agli individui con fitness più elevata viene attribuita una più alta probabilità di essere selezionati.

Vi sono diverse strategie per la selezione (alcune non plausibili biologicamente).

Di solito in un algoritmo genetico:

a. Un gruppo di soluzioni è selezionato per l’accoppiamento (mating pool)

b. Coppie di individui sono estratti a caso dal mating pool e vengono accoppiati (riproduzione sessuata)

Page 15: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Selezione

Selezione proporzionale alla fitness (fitness-proportionate selection)

E’ il metodo di selezione più comune.

Ad ogni individuo è assegnata una probabilità di essere selezionato proporzionale alla propria fitness

pi = fi/kfk

NB E’ propriamente una probabilità poiché ipi = 1

Page 16: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Selezione

Implementazione (selezione proporzionale alla fitness)

Supponiamo di avere 4 individui con fitness

f1=f2=10 f3=15 f4=25

Allora si avrà (probabilità di selezione):

p1=p2=1/6 p3=1/4 p4=5/12

Page 17: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Selezione

Implementazione (selezione proporzionale alla fitness)

1. Metodo della roulette

Ogni posizione della freccia corrisponde ad un certo numero. Si estrae un numero casuale e si seleziona l'individuo puntato dalla freccia.

Page 18: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Selezione

Implementazione (selezione proporzionale alla fitness)

2. Vettore di dimensione N (N = minimo comune denominatore)

112233344444 0 N-1

Si estrae un numero a caso (da 0 a N-1) e si seleziona l’individuo corrispondente al valore nella posizione estratta.

3. Numero reale compreso fra 0 e jfj

Si ‘accodano’ le fitness e si estrae un numero a caso r compreso in tale intervallo e si seleziona l’individuo i tale che

j=1,i-1 fj r < j=1,i fj

Page 19: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Selezione

Problemi

Convergenza prematura

Se un individuo i ha fitness molto maggiore della media della popolazione ma molto minore della massima fitness possibile, tenderà a essere sempre selezionato e quindi a generare una popolazione “mediocre”.

Stagnazione

Dopo un certo numero di generazioni, tutti gli individui hanno una buona fitness e quindi tendono ad avere la stessa probabilità di essere selezionati.

Page 20: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Selezione

Selezione per rango (rank selection)

Si ordinano gli individui per fitness (in modo decrescente). Si fissa una distribuzione di probabilità decrescente con la posizione occupata, indipendente dai valori di fitness.

Vantaggi• Non si ha convergenza prematura: nessun individuo ha

probabilità molto maggiore degli altri di essere selezionato• Non c’è stagnazione: la distribuzione probabilità non varia.

SvantaggiComputazionalmente pesante.

Nota: non è biologicamente plausibile.

Page 21: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Selezione

Selezione tramite torneo

(tournament selection)

Per ogni individuo da selezionare, si seleziona a caso un

gruppo di individui e si inserisce il migliore nella generazione

successiva (torneo).

Vantaggi

Come selezione per rango, ma non c’è necessità di

ordinamento.

Page 22: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Selezione

Selezione elitista

Almeno una copia dell’individuo migliore viene mantenuta nella generazione successiva.

VantaggiNon si perdono soluzioni buone nei processi “casuali” di selezione.

SvantaggiSi possono raggiungere massimi locali se i caratteri di tale individuo diventano “dominanti”.

Page 23: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Selezione dei ‘sopravviventi’ (sostituzione)

Se è la dimensione della popolazione e il numero di figli che abbiamo generato, da genitori e figli bisogna selezionare gli individui che costituiranno la popolazione nella generazione successiva.

Se si parla di algoritmo generazionale, sesi parla di algoritmo steady state.

Si possono utilizzare strategie di selezione basate sulla fitness o indipendenti da essa.

Strategie basate sull’età

Indipendentemente dalla fitness, ogni individuo sopravvive per un numero prefissato di generazioni. Di implementazione banale se (la generazione t+1 è integralmente composta dai figli della generazione t). Se è bene tenere conto della fitness (con una sostituzione casuale la probabilità di perdere l’individuo migliore è molto elevata).

Page 24: Apprendimento Automatico Calcolo Evoluzionistico Stefano Cagnoni.

Selezione dei ‘sopravviventi’ (sostituzione)

Strategie basate sulla fitness

Si possono utilizzare le stesse strategie viste per la definizione del mating pool (proporzionale alla fitness, basata sull’ordine, basata su torneo).

E’ possibile anche introdurre il fattore età, imponendo ad esempio (se ) che tutti i figli passino alla generazione successiva, per poi usare la fitness per selezionare i restanti –genitori.

La strategia replace worst sostituisce i peggiori individui.

Le strategie elitiste impongono di mantenere l’individuo con la fitness più elevata nella popolazione.