SOFTCOMPUTING
SOFTCOMPUTING
• Definizione:
– Insieme di tecniche computazionali
tolleranti all’imprecisione, all’incertezza,
all’approssimazione
– In contrapposizione allo hard computing,
che raggiunge risultati precisi a partire da
dati precisi
SOFTCOMPUTING
– I principali costituenti:
• Fuzzy systems
• Neural networks
• Algoritmi evolutivi
• Machine learning
• Probabilistic Reasoning
• Integrazione sinergica fra queste
tecniche
FUZZY SYSTEMS
– La Fuzzy logic è stata introdotta da L.
Zadeh negli anni 60 per trattare
l’incertezza nel linguaggio naturale
– La “fuzzificazione” è il metodo per
generalizzare qualsiasi teoria da una forma
precisa e discreta ad una imprecisa e
continua.
FUZZY SYSTEMS
– Un sottoinsieme fuzzy F di un insieme S si
può definire come un insieme di coppie
ordinate, ciascuna con il primo elemento
preso da S, e il secondo preso
dall’intervallo {0,1}.
– Il valore 0 rappresenta la non
appartenneza, il valore 1 l’appartenenza
completa, I valori intermedi rappresentano
il “grado di appartenenza”.
FUZZY SYSTEMS
– La mappa che viene descritta fra gli
elementi di S e quelli di {0,1} è una
funzione detta “funzione di appartenenza”
del sottoinsieme fuzzy F.
– Il grado in cui la proposizione “x è in F” è
vera è determinato dalla coppia ordinata il
cui primo elemento è x. Il “grado di verità”
della proposizione è il secondo elemento
della coppia.
FUZZY SYSTEMS
• Esempio:
– Sia S l’insieme delle persone.
– Definiamo un sottoinsieme fuzzy OLD che
risponde alla domanda: “ In quale grado la
persona x è VECCHIA ?”
old(x) = { 0
age(x) - 18/42
1
if age(x)> 18
if 18<=age(x)<=60
if age(x) > 60 }
FUZZY SYSTEMS
–Si possono anche interpretare
proposizioni come
–X è giovane AND Y è VECCHIO OR
(NOT Z è MEDIO)
secondo il criterio:
–truth (not x) = 1.0 - truth (x)
–truth ( x AND y) = minimum (truth (x),
truth(y))
–truth x OR y = maximum
(truth(x),truth(y))
FUZZY SYSTEMS
–Se si pongono in queste definizioni I
valori 0 ed 1 si ottengono le tavole di
verità della logica booleana
convenzionale.
1
0
18
60
ALGORITMI EVOLUTIVI
.
– Comprendono varie tecniche che simulano
l’evoluzione di strutture di individui attraverso
selezione, mutazione, riproduzione.
–Esistono una popolazione di strutture ed altri
operatori di ricerca (o operatori genetici) .
–Gli algoritmi genetici sono solo una delle
possibili forme di algoritmo evolutivo.
ALGORITMI GENETICI
–Si tratta di una tecnica di ricerca
iterativa alla ricerca di massimi locali
–Può offrire significativi vantaggi
rispetto ad altre tecniche (euristica,
progrtammazione lineare, depth-first,
ecc.)
ALGORITMI GENETICI
–Le componenti di un GA sono:
–Una condizione goal
–Un gruppo di strutture candidate
–Una funzione di valutazione di quanto
nbene I candidati soddisfino il goal
–Una funzione di riproduzione.
ALGORITMI GENETICI
–Il loop è il seguente:
»valuta I candidati correnti
»sviluppa nuovi candidati via
riproduzione con una modifica che
sostituiscono I peggiori candidati
del ciclo precedente
»cicla fino a soddisfare il goal.
ALGORITMI GENETICI
–Algoritmo genetico è un modello di
apprendimento derivato dalla
metafora del processo evolutivo
naturale.
–Si parte da una popolazione di
individui (come I cromosomi)
rappresentati da stringhe.
ALGORITMI GENETICI
–In natura il genoma viene riprodotto
nelle discendenze attraverso
riproduzione.
–A livello molecolare una coppia di
cromosomi scambia delle sequenze
secondo l’operazione di
ricombinazione chiamata
CROSSOVER
–Il crossover viene valutato attraverso
una funzione di FITNESS.
ALGORITMI GENETICI
–Un altra importante funzione è la
MUTAZIONE, che introduce elementi
di diversificazione per migliorare la
selezione.
–L’utilità della mutazione è tuttavia
dibattuta.
–Un GA usa processi stocastici, ma
perviene a risultati non-random.
ALGORITMI GENETICI
–Ogni GA è basato su un ciclo che
valuta la fitness degli individui nella
popolazione.
–Gli individui peggiori vengono scartati
–Ogni iterazione crea una diversa
GENERAZIONE
ALGORITMI GENETICI
.
Applicazione tipica dei GA è
l’ottimizzazione multidimensionale, in
cui le stringhe dei cromosomi
possono essere usate per codificare I
valori dei differenti parametri da
ottimizzare.
MACHINE LEARNING
Cognitive sciences
Computer Science
MACHINE LEARNING
Pattern Recognition
Statistics
MACHINE LEARNING
–Metodi computazionali per automatizzare
l’acquisizione di conoscenza dall’esperienza
–Gli input sono esempi
–Il problema viene ridotto ad una
classificazione
–Sono spesso interattivi per l’interazione con
esperti
MACHINE LEARNING
–Esempi:
–Classificazione/predizione in:
»diagnosi
»visione
»linguaggio
»controllo
MACHINE LEARNING
–Fornisce metodi per:
»acquisizione di concetti
»clustering
»predizione
»scoperta di regolarità nei dati e quindi di
conoscenza su:
»equazioni
»relazioni
»analisi
»intuizioni
MACHINE LEARNING
–Metodi:
–Decision trees
–Rule induction
–reti bayesiane
–case-based reasoning
–inductive logic programming
–….
MACHINE LEARNING
–DECISION TREES:
–Separa I dati ricorsivamente in
sottopopolazioni
–Predice attraversando l’albero con criteri di
pruning
–Gli alberi possono essere monotetici ( 1
attributo per nodo) o politetici (più attributi per
nodo)
MACHINE LEARNING
–RULE INDUCTION:
–Induce regole direttamente dai dati
–Ogni regola copre un sottoinsieme dell’input
–Una regola è una disgiunzione di condizioni
congiunte
–Il training induce iterativamente regole
secondo una ricerca divide et impera da
generale a specifico
MACHINE LEARNING
–INDUCTIVE LOGIC PROGRAMMING:
–Rappresentazione formale in logica del
primo ordine di ipotesi e regole
–Molti approcci
–Vengono dati vincoli alla ricerca riducendo lo
spazio delle ipotesi o delle variabili
MACHINE LEARNING
–RETI BAYESIANE
–Reti probabilistiche tramite le quali si
rappresenta il problema in esame
–Si attribuiscono valori probabilistici ai nodi e
si scandisce l’albero attraverso metodi
matematici
MACHINE LEARNING
–CASE-BASED REASONING:
INPUT
PROBLEMA Cerca casi
Cerca soluzioni
OUTPUT
CASE BASE
inserisce
Scarica

Softcomputing