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