Dispensa Intelligenza Artificiale

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Dispensa Intelligenza Artificiale"

Transcript

1 Dispensa Intelligenza Artificiale

2 Introduzione L'intelligenza artificiale (IA) ha l'obiettivo di comprendere, ma soprattutto costruire, entità intelligenti. Ma che cos'è l'ia? Non esiste una definizione univoca di IA ma, piuttosto, si tende a connotarla come una disciplina per la generazione di sistemi capaci di pensare oppure agire come esseri umani oppure razionalmente. Avere come riferimento la razionalità e non gli esseri umani porta un sistema a fare sempre la cosa giusta. Questo non significa che gli esseri umani siano irrazionali ma che, non essendo perfetti, commettono errori. Analizziamo i quattro approcci. Nel 1950 Alan Turing ideò un test, che prende il nome di Test di Turing, per verificare se un sistema agisce umanamente. Questo test consiste nella sottimissione di domande in forma scritta, da parte di un esaminatore umano, al sistema intelligente e a un essere umano. Il sistema supera il test se l'esaminatore non è in grado di distinguere le risposte che provengono dall'essere umano da quelle provenienti dal sistema intelligente. Per poter superare tale test, il sistema deve: interpretare il linguaggio naturale per poter comunicare con l'esaminatore; avere una base di conoscenza rappresentata in qualche modo; essere in grado di ragionare in automatico, per rispondere alle domande in base alla conoscenza di cui dispone e per trarre nuove conclusioni; essere capace di apprendere per adattarsi a nuove circostanze. Il test di Turing presenta dei problemi legati alla sua riproducibilità, oltre al fatto che non specifica un modo per costruire un sistema che agisce umanamente. Per poter realizzare sistemi capaci di pensare come gli esseri umani è necessario disporre di un modello del pensiero umano sia dal punto di vista fisiologico che psicologico. Elaborare teorie sul funzionamento della mente umana è l'obiettivo delle scienze cognitive. Le teorie attualmente disponibili non ci consentono di spiegare o di produrre un sistema che si avvicini al livello di intelligenza umana. Altro discorso invece è il pensare razionalmente. Come è possibile ottenere un pensiero sempre corretto? Aristotele rispose a questa domanda con un insieme di sillogismi, ragionamenti di tipo deduttivo, i quali, a partire da alcune premesse iniziali, consentivano, in via di principio, di generare meccanicamente le conclusioni. Lo studio di queste leggi del pensiero ha dato vita alla disciplina della logica, i cui studiosi hanno elaborato un linguaggio per esprimere proposizioni riguardanti tutti gli aspetti del mondo e le relazioni tra di essi. Implementare un sistema che pensa razionalmente utilizzando questo linguaggio logico ha due grossi problemi non è facile esprimere una conoscenza con il formalismo richiesto dal linguaggio logico; si è notato che le risorse computazionali disponibili possono rivelarsi insufficienti se al sistema non vengono fornite delle linee guida sui ragionamenti da compiere per prima. Pensare razionalmente è un punto di partenza per agire razionalmente. Cosa significa agire razionalmente? Significare fare sempre la cosa giusta, ossia intraprendere l'azione che consente di ottenere il miglior risultato in base alla conoscenza posseduta. Pertanto, pensare razionalmente, e quindi dedurre che una certa azione porterà al raggiungimento del miglior risultato, è la base, anche se incompleta, per agire razionalmente. Infatti, esistono situazioni in cui non è possibile arrivare, tramite deduzioni, a capire che c'è la necessità di fare qualcosa, anche se qualcosa in realtà va fatto. E ancora, esistono situazioni in cui l'agire razionalmente non richiede l'inferenza logica: le azioni di riflesso come, ad esempio, ritirare la mano da una stufa rovente, portano a vantaggi maggiori rispetto ad un lento ragionamento logico. In generale, un'entità che percepisce e agisce di conseguenza viene detta agente. Un agente che agisce razionalmente è detto agente razionale. In linea di principio, un agente è una funzione, definita sul dominio delle percezioni,e avente come immagine un insieme di azioni.

3 Occorre mettere in evidenza due punti fondamentali. Prima di tutto, non esistono agenti razionali che ottengono le prestazioni migliori in tutti i possibili scenari. In secondo luogo, il livello di razionalità che è possibile ottenere con un agente, dipende dalle risorse computazionali disponibili. Spesso, i limiti computazionali(troppo tempo per giungere alla soluzione) rendono irragiungibile la razionalità perfetta e, per questo, occorre progettare agenti che riescano ad ottenere le migliori prestazioni con le risorse a disposizione. Storia dell'ia La storia dell'ia è stata segnata da cicli in cui al successo ha fatto seguito un eccessivo ottimismo, seguito da cadute d'entusiasmo e tagli di fondi. Il primo lavoro appartenente all'ia fu Boolean circuital model of brain di McCullock e Pitts nel 1943, nel quale è presentato un modello del cervello costituito da neuroni artificiali caratterizzati dallo stato acceso o spento, e la cui accensione dipende dagli stimoli provenienti dai neuroni adiacenti. Pertanto, lo stato di neurone poteva essere concepito come una generica proposizione logica costruita con gli stimoli provenienti dai neuroni adiacenti. Suggerirono inoltre che reti neurali strutturate in un certo modo fossero in grado di apprendere. Già nel 1949 Donald Hebb formulò una regola di aggiornamento per la modifica dei pesi delle connessioni tra I neuroni, che prende il nome di apprendimento hebbiano. Un'altra pietra miliare nella storia dell'ia è l'articolo di Turing del 1950, Computing Machinery and Intelligence, in cui viene introdotto il test di Turing, l'apprendimento automatico e quello per rinforzo, oltre che gli algoritmi genetici. Nel 1956 ci fu la vera e propria nascita dell'ia. Infatti, nell'estate di quell'anno si tenne un workshop a Dartmouth in cui parteciparono i protagonisti principali della disciplina e venne adottato il termine, coniato da John McCharty, intelligenza artificiale. Il periodo che va dal 1952 al 1969, viene spesso definito come quello del Guarda Mamma, senza mani, per fare riferimento alle attenzioni richiamate dagli studiosi sulla disciplina dell'ia come conseguenza dei primi progressi che venivano fatti in quegli anni. In questo periodo, ad esempio, vennero sviluppati da Newell e Simon i programmi Logic Theorist (LT), il primo programma capace di ragionare, e il General Problem Solver (GPS), un programma progettato per imitare i procedimenti umani di risoluzione dei problemi. Arthur Samuel, invece, scrisse una serie di programmi per il gioco della dama; il software imparò a giocare meglio del suo creatore, dimostrando come un programma possa fare cose in più rispetto a quelle che gli vengono dette. Oggi nella dama, al più, l'uomo riesce ad ottenere dei pareggi. John McCarthy definì il linguaggio di alto livello Lisp, il linguaggio di programmazione di alto livello più importante per l'ia. Tra il 1966 e il 1973 i progressi dell'ia e quindi l'interesse verso questa disciplina scemarono in seguito ad alcuni insuccessi. Ad esempio, il CNR statunitense cercò di accelerare la traduzione degli articoli scientifici dal russo all'inglese, in seguito al lancio dello Sputnik nel Le difficoltà incontrate nella traduzione (celebre è l'errata traduzione di lo spirito è forte ma la carne è debole in la vodka è buona ma la bistecca è marcia ) portarono alla cancellazione dei finanziamenti per i progetti di traduzione automatica. Quando nel 1969 Minsky e Papert nel libro Percettroni mostrarono che un percettrone non era in grado di apprendere la funzione logica XOR, il finanziamento alla ricerca sulle reti neurali si ridusse fin quasi a zero. Nel primo decennio di vita dell'ia si pensava di realizzare sistemi dotati di meccanismi di risoluzione generici, capaci di risolvere una grande varietà di problemi senza una conoscenza particolare su uno specifico dominio. Questo approccio viene riferito come metodo debole perchè, sebbene sia pensato per risolvere problemi appartenenti a diversi campi della conoscenza, non riesce a scalare quando occorre risolvere problemi molto grandi o difficili. Ai metodi deboli vengono quindi contrapposti i metodi forti, che prevedono di fornire al sistema una vasta conoscenza su un certo dominio, in modo da specializzarlo nella risoluzione di specifici problemi. Una delle prime applicazioni di questo approccio fu il programma DENDRAL, che riusciva a risolvere un problema di ricostruzione

4 molecolare. Il successo di questo sistema esperto (che possiede una conoscenza vasta su un dominio ristretto della conoscenza) suscitò un certo interesse. In particolare si capì l'importanza della conoscenza del dominio e della separazione tra la conoscenza e il ragionamento. Ciò portò allo sviluppo di diversi linguaggi per la rappresentazione della conoscenza e il ragionamento. In Europa divenne famoso il linguaggio Prolog, mentre negli Stati Uniti prese piede la famiglia di linguaggi PLANNER. Negli anni '80 l'industria dei sistemi esperti conobbe un boom, passando dai pochi milioni di dollari l'anno del 1980 ai miliardi di dollari nel Infatti, in questi anni vennero sviluppati diversi sistemi esperti di notevole successo. Il primo fu R1, un sistema per la configurazione di computer: dato l'ordine di un client, determinava le modifiche necessarie da apportare all'ordine per ragioni di funzionalità del sistema. Il sistema PROSPECTOR invece, esperto in prospezioni geologiche, riuscì a localizzare un giacimento di molibdeno, cercato dai geologi per 20 anni. Alla fine degli anni '80 una serie di eventi portarono al cosiddetto Inverno dell'ia. Infatti, i computer desktop sviluppati da Apple e IBM divennero più potenti e meno costosi delle Lisp machines, computer ottimizzati per lavorare con il linguaggio Lisp. Potendo utilizzare sui computer desktop il tool CLIPS, il mercato delle Lisp machines crollò, demolendo un'industria da miliardi di dollari. Inoltre i sistemi esperti cominciarono a mostrare i loro limiti. Infatti, la loro manutenzione era molto costosa, erano difficili da aggiornare e non potevano apprendere. Infine, influì il fallimento del progetto giapponese Quinta Generazione, il quale aveva lo scopo di costruire computer intelligenti usando Prolog e per il quale erano stati stanziati 850 milioni di dollari. Con la decaduta dei sistemi esperti si è avuto un rinnovato interesse verso le reti neurali. A differenza di quanto accadeva nei primi anni però, alla fine degli anni '80 l'ia è stata approcciata come scienza a tutti gli effetti, applicando il metodo scientifico nelle sperimentazioni e nel confronto tra approcci alternativi. Un contributo rilevante nella rinascita delle reti neurali è stato dato dall'introduzione della probabilità. Con può fare oggi l'ia? Le attività in cui è coinvolta l'ia copre molti campi. I sistemi intelligenti sono utilizzati nell'ambito dei giochi (scacchi), del controllo automatico (guida di una macchina), della diagnosi medica, della robotica (operazioni chirurghiche).

5 Agenti intelligenti Un agente è un'entità che può essere vista come un sistema che percepisce l'ambiente in cui è calato mediante dei sensori e agisce su di esso mediante attuatori. Una percezione è l'input presentato all'agente in un certo istante, mentre la sequenza percettiva è l'intera sequenza di percezioni che è stata fornita all'agente dai sensori. La scelta dell'azione da intraprendere in un istante può dipendere da una percezione oppure dalla sequenza percettiva. Il comportamento di un agente è dato dalla funzione agente, la quale fornisce una corrispondenza tra una qualsiasi sequenza percettiva e una specifica azione. La funzione agente è quindi una descrizione matematica del comportamento dell'agente, che può essere espressa in forma tabellare. L'implementazione di questa funzione è il programma agente, che sarà in esecuzione sull'architettura dell'agente. Un esempio di agente è quello dell'aspirapolvere. Esso è calato in un ambiente costituito da due posizioni, dette riquadri A e B. L'agente percepisce in quale riquadro si trova e se è presente dello sporco. Le azioni possibili sono muoversi a destra o a sinistra, aspirare o non fare nulla. A questo punto, qual è la funzione che rende un agente buono o cattivo? In linea generale, un agente è razionale se fa la cosa giusta. L'azione giusta è quella che consente all'agente di ottenere il massimo grado di successo. Quindi, in qualche modo, occorre valutare la prestazione dell'agente. Una misura di prestazione è il criterio in base al quale viene valutato il successo del comportamento dell'agente. Quando si pone un agente in un ambiente, esso eseguirà certe azioni in base alle percezioni ricevute. Questa sequenza di azioni porterà l'ambiente ad attraversare una sequenza di stati: se tale sequenza è desiderabile, allora l'agente ha avuto successo. Nel caso dell'aspirapolvere, potremmo definire come misura di prestazione la quantità di sporco aspirato in un certo intervallo, oppure il numero di riquadri puliti in un intervallo temporale. In generale, è meglio definire la misura di prestazione in base all'effetto che si desidera sull'ambiente piuttosto che su come si voglia che agisca l'agente. Per ogni possibile sequenza percettiva, un agente razionale sceglie l'azione che massimizza il valore atteso della misura di prestazione, in base alle informazioni fornite dalla sequenza percettiva e da ogni ulteriore conoscenza. La razionalità dell'agente non implica l'onniscienza. Infatti le percezioni fornite dai sensori sono limitate e non possono fornire tutte le informazioni che possono essere rilevanti per la scelta dell'azione da intraprendere (attraversare i Campi Elisi). Di conseguenza l'agente non potrà essere nemmeno chiaroveggente, in quanto non potrà sapere quale azione si rivelerà a posteriori essere quella migliore. Pertanto, essere razionale non coincide con l'ottenere un risultato sicuramente fruttuoso. Ciò che invece l'agente razionale può fare è intraprendere azioni mirate ad acquisire nuove percezioni (guardare a destra e a sinistra prima di attraversare), detto anche information gathering. Una forma di information gathering è l'esplorazione, il cui obiettivo è quello di ottenere informazioni di un ambiente inizialmente sconosciuto. Per poter essere razionale, l'agente deve essere capace di imparare dalle sue percezioni. L'agente infatti deve poter modificare e aumentare la conoscenza fornitagli inizialmente, man mano che accumula esperienza. Questo gli consente di migliorare nelle sue

6 scelte, adattarsi ad ambienti in evoluzione e diventare autonomo, ossia avere un comportamento determinato dalla sua esperienza. Per progettare un agente razionale occorre specificare l'ambiente operativo, ossia l'insieme di misura di prestazione, ambiente, sensori e attuatori. In maniera equivalente si parla di fornire la descrizione PEAS (Performance, Environment, Actuators, Sensors). Gli ambienti operativi possono essere distinti in base a diverse proprietà: Completamente/Parzialmente osservabile: se i sensori danno accesso allo stato completo dell'ambiente in ogni momento, l'ambiente operativo è completamente osservabile; in altre parole i sensori devono misurare tutti gli aspetti rilevanti per la scelta dell'azione, dove la rilevanza dipende dalla misura di prestazione. L'agente non deve mantenere traccia dello stato del mondo in cui si trova. In caso contrario l'ambiente è parzialmente osservabile. Deterministico/Stocastico: se lo stato successivo dell'ambiente è completamente determinato dallo stato corrente e dall'azione eseguita dall'agente, allora si può dire che l'ambiente è deterministico; in caso contrario si dice che è stocastico. Se l'ambiente è deterministico in tutti gli aspetti tranne che per le azioni di altri agenti, allora si dice strategico. Episodico/Sequenziale: in un ambiente episodico il tempo è diviso in unità detti episodi, in cui l'agente percepisce l'ambiente ed esegue una singola azione: la scelta dell'azione dipende solo dall'episodio corrente. Le attività di classificazione sono spesso episodiche. In un ambiente sequenziale invece ogni scelta può influenzare quelle successive (scacchi). Statico/Dinamico: se l'ambiente può cambiare mentre un agente sta pensando, allora tale ambiente è dinamico (guidare); in caso contrario è statico (cruciverba). La differenza sta nel fatto che negli ambienti statici l'agente non deve continuare ad osservare il mondo mentre decide l'azione né deve preoccuparsi dello scorrere del tempo. Se invece dell'ambiente è la misura della prestazione che cambia al passare del tempo, l'ambiente è detto semidinamico (scacchi con orologio). Discreto/Continuo: la distinzione tra discreto e continuo dipende se applicato al concetto di stato dell'ambiente, alla percezione del tempo, alle percezioni in generale o alle azioni. Nel gioco degli scacchi l'ambiente è discreto mentre la guida di un taxi ha un ambiente continuo. Agente Singolo/Multiagente: se nell'ambiente agisce un agente esso sarà ad agente singolo; in caso contrario sarà multiagente. Se nell'ambiente esistono più agenti, questi avranno una certa interazione. Si parla di ambiente multiagente competitivo quando ogni agente cerca di massimizzare la propria misura di prestazione, contribuendo alla minimizzazione della misura di prestazione degli altri agenti. Invece si parla di ambiente multiagente cooperativo quando gli agenti operano in modo da massimizzare una misura di prestazione comune. Il mondo reale ci pone nelle condizioni più sfavorevoli possibili, ossia l'ambiente operativo è parzialmente osservabile, stocastico, sequenziale, dinamico, continuo e multiagente. Tipi di agente Un programma agente è l'implementazione della funzione agente, e sarà eseguito da un computer dotato di sensori e attuatori. La piattaforma su cui è in esecuzione il programma agente prende il nome di architettura. La coppia architettura e programma agente compongono l'agente. Naturalmente, l'architettura dovrà essere adeguata alle funzioni previste dal programma. È evidente la differenza esistente tra il programma agente, che prende come input solamente la percezione corrente, e la funzione agente, il cui input è costituito dalla sequenza percettiva. Se il programma ha bisogno di conoscere la sequenza percettiva, al suo interno occorrerà un meccanismo per memorizzarla, poiché l'ambiente fornirà solo le singole percezioni.

7 In figura è presente un esempio di programma agente che tiene traccia della sequenza percettiva e poi la usa per selezionare l'azione da intraprendere all'interno di una tabella. Per poter avere un agente razionale utilizzando questo approccio, occorrerebbe costruire una tabella contenente l'azione appropriata per ogni possibile sequenza percettiva. Ciò è nella pratica irrealizzabile per problemi legati alla creazione e alla memorizzazione di una tabella siffatta. Per questo motivo, per la progettazione dei programmi agente sono stati proposti diversi approcci. Il tipo più semplice è l'agente reattivo semplice. Questi agenti scelgono le azioni in base alla percezione corrente, ignorando la sequenza percettiva. In particolare, l'azione viene scelta ricorrendo al modello condizione-azione. La percezione ricevuta dai sensori viene interpretata come una particolare condizione in cui si trova l'ambiente. Quindi viene ricercata, all'interno dell'insieme delle regole condizione-azione, quella corrispondente a tale condizione, e scelta l'azione ad essa associata. Questo tipo di agente lavora bene se l'ambiente è completamente osservabile. Se esiste una minima parte di non-osservabilità, può avere grossi problemi. Ad esempio, supponiamo che l'aspirapolvere non sia dotata del sensore di posizione. Se il riquadro A del pavimento risulta pulito, muoversi verso sinistra sarebbe errato, come lo sarebbe muoversi verso destra se si trovasse nel riquadro B. Dato che anche in seguito ad un movimento errato l'azione scelta dall'agente non cambierebbe, in quanto non cambia la condizione che determina l'azione, l'agente entrerebbe in un ciclo infinito (l'aspirapolvere cerca di

8 passare attraverso il muro). Un modo per evitare cicli infiniti è quello di randomizzare la scelta compiuta dall'agente. Ad esempio, quando l'agente percepisce pulito, potrebbe tirare una moneta per decidere se muoversi verso destra o verso sinistra. Attenzione però all'utilizzo della componente casuale nelle scelte di un agente. In un ambiente multiagente, un comportamento con componenti casuali può essere razionale. Negli ambienti ad agente singolo può essere utilizzata per aiutare l'agente reattivo semplice ad affrontare certe situazioni, ma in genere si ottengono risultati migliori utilizzando un agente deterministico più sofisticato. Per gestire il problema dell'osservabilità parziale, è possibile dotare l'agente di uno stato interno, costruito sulla base della sequenza percettiva, che assieme alla percezione corrente consente di determinare la particolare condizione in cui si trova l'ambiente. Inoltre, poiché ad ogni percezione lo stato interno va aggiornato, l'agente deve avere informazioni su come evolve l'ambiente indipendentemente dalle sue azioni e quali sono gli effetti delle sue azioni sull'ambiente. Pertanto l'agente crea e modifica un proprio modello dell'ambiente. Per questo si parla di agente basato su modello. Una volta determinata la condizione corrente dell'ambiente, la scelta dell'azione avviene come un normale agente reattivo secondo le regole condizione-azione. La parte più importante del programma è la funzione AGGIORNA-STATO, che aggiorna lo stato interno. Il risultato dell'elaborazione dipende non solo dallo stato precedente e dalla percezione corrente, ma anche dall'ultima azione eseguita dall'agente (l'agente deve conoscerne l'effetto) e dall'informazione sull'evoluzione dell'ambiente, utilizzata all'interno della funzione stessa. Conoscere lo stato corrente dell'ambiente non sempre può bastare per scegliere l'azione da intraprendere (dove andare arrivati ad un incrocio?). Spesso è utile fornire all'agente un'informazione esplicita riguardante l'obiettivo da conseguire.

9 Gli agenti che usano questo tipo di informazione sono detti agenti basati su obiettivi e la scelta dell'azione avviene combinando l'obiettivo da raggiungere e i risultati delle possibili azioni che è possibile intraprendere. Determinare la sequenza di azioni che consente di conseguire l'obiettivo prefissato può essere un procedimento complesso, soprattutto quando la sequenza è lunga. Utilizzando l'informazione dell'obiettivo, questo tipo di agente non utilizza più l'insieme delle regole condizioneazione, ma una volta aggiornato lo stato interno così come avveniva per gli agenti reattivi, valuta gli effetti delle possibili azioni che può scegliere e, in base ad un certo algoritmo, seleziona l'azione che meglio gli consente di raggiungere l'obiettivo. Il vantaggio nell'utilizzo di questo tipo di agente è la sua flessibilità ai cambiamenti. Infatti, mentre l'agente basato su obiettivi adatta automaticamente il suo comportamento a nuove condizioni (valuta come cambierà l'ambiente eseguendo un'azione, utilizzando il modello che possiede), negli agenti reattivi occorre riscrivere o aggiungere regole condizione-azione. Spesso esistono molte sequenze di azioni che consentono di conseguire un certo obiettivo. Con gli agenti basati sull'utilità viene introdotto il concetto di utilità, ossia il grado di contentezza dell'agente associato al raggiungimento di un certo stato dell'ambiente. Mediante una funzione di utilità viene assegnato ad ogni stato, o sequenza di stati, un numero reale che quantifica il grado di contentezza ad esso associato. Questo valore viene utilizzato quando ci sono: più obiettivi in conflitto che non possono essere ottenuti insieme (ad esempio, velocità e sicurezza), per selezionare quello da privilegiare; più obiettivi raggiungibili ma nessuno conseguibile con certezza, per confrontare le probabilità di successo e l'importanza degli obiettivi. Per ogni azione che l'agente può intraprendere sarà possibile transitare in uno tra un insieme di possibili stati, ciascuno con una certa probabilità. L'azione che sarà intrapresa sarà quella che massimizza il grado di contentezza, calcolato come media pesata dei valori degli stati possibili per la rispettiva probabilità di transitarvi.

10 La programmazione manuale degli agenti intelligenti è un'operazione computazionalmente impraticabile. Turing propose di costruire macchine capaci di apprendere e quindi di addrestrarle. È questo il metodo oggi più utilizzato. In linea di principio, un agente capace di apprendere può essere diviso in quattro blocchi. I due blocchi fondamentali sono l'elemento di apprendimento, che si occupa del miglioramento interno, e l'elemento esecutivo, che si occupa della scelta delle azioni e che è stato considerato nei precedenti tipi di agente come se costituisse l'intero agente. L'elemento critico è quello che comunica all'elemento di apprendimento come si sta comportando l'agente rispetto a uno standard di prestazione prefissato. Uno standard di prestazione è necessario poiché le percezioni in sé non forniscono alcuna indicazione del successo dell'agente. Il generatore di problemi ha il compito di suggerire all'elemento esecutivo l'esecuzione di azioni esplorative che consentano di scoprire nuove azioni che consentono di ottenere prestazioni migliori rispetto a quelle correntemente disponibili. Il processo di apprendimento è il seguente. L'elemento esecutivo, sulla base di una conoscenza iniziale comincia ad operare sull'ambiente scegliendo alcune azioni. L'elemento critico, utilizzando come riferimento lo standard di prestazione, classifica le percezioni entranti come ricompense o penalità raccolte dall'agente. L'elemento di apprendimento, in base a tali informazioni, decise se e come modificare la conoscenza dell'elemento esecutivo affinchè in futuro si comporti meglio. Inoltre, in base alla conoscenza attualmente disponibile, determina dove è possibile estenderla o migliorarla. Questa informazione è presa dal generatore di problemi, il quale suggerisce all'elemento esecutivo quali azioni esplorative intraprendere. L'esito di queste esplorazioni viene appreso normalmente attraverso i sensori.

11 Una mappa auto-organizzante di Kohonen (Self-Organizing Map SOM) è una rete neurale basata su un apprendimento non supervisionato: essa ha la capacità di interagire con i dati, addestrando se stessa senza che un supervisore fornisca l'uscita desiderata. La rete presenta due strati, dei quali uno è di input e l'altro di output, quest'ultimo comunemente chiamato strato di Kohonen e solitamente avente una struttura a griglia bidimensionale. I neuroni dei due strati sono completamente connessi tra loro, ossia i nodi d'ingresso sono connessi a tutti i neuroni dello strato di Kohonen. Invece, per i neuroni dello strato di Kohonen viene introdotto il concetto di vicinanza: ogni neurone è collegato solo ad un certo numero di altri neuroni e non a tutti i neuroni del medesimo strato. Di solito ogni neurone è collegato a 4 o 8 neuroni nel suo intorno. Il principale utilizzo di tali reti è quello di analisi dei dati al fine di individuare gruppi aventi similitudini o di classificazione, come il riconoscimento di immagini o segnali vocali. Nella pratica le mappe auto-organizzanti di Kohonen vengono utilizzate per rappresentare gli elementi appartenenti ad un certo spazio di input, avente un numero elevato di dimensioni, in uno spazio con un numero minore di dimensioni, di solito 2. Quindi possiamo dire che la SOM svolge il ruolo di clusterizzatore dei dati d ingresso, i quali vengono accomunati spazialmente in base ad una qualche caratteristica. Nelle migliori delle ipotesi, ad ogni neurone della rete corrisponderebbe un cluster e cioè un raggruppamento omogeneo dei dati di input, localizzati in quella zona per un qualche criterio di similarità individuato dalla rete. Di frequente, ad un unico cluster sono associati più neuroni, anche se ciò dipende dalla risoluzione della mappa; infatti, aumentando il numero di nodi, questi saranno in grado di individuare caratteristiche ad un livello di dettaglio più basso. L'obiettivo dell'apprendimento è quello di specializzare parti differenti del reticolo SOM a rispondere a particolari dati d'ingresso. L'apprendimento è di tipo competitivo. Quando viene presentato un campione in ingresso alla rete, viene eseguito un matching tra il vettore d'ingresso e il vettore dei pesi di ciascun neurone. Per stimare la diversità tra i due vettori si ricorre al concetto di distanza, operazione possibile in quanto i due vettori hanno la stessa dimensione. Il neurone con il vettore dei pesi più simile al vettore d'ingresso è detto Best Matching Unit (BMU). I pesi del BMU e dei neuroni vicini a questo nel reticolo SOM vengono avvicinati al vettore d'ingresso. L'intensità dell'avvicinamento decresce nel tempo e in funzione della distanza dei neuroni dal BMU. La formula per l'aggiornamento dei pesi è: Wv(t + 1) = Wv(t) + Θ(v, t)α(t)(x(t) - Wv(t)) dove: v è il neurone di cui si devono modificare i pesi; α(t) è un coefficiente di apprendimento monotono decrescente; Θ(v, t) è la funzione che definisce il vicinato e dipende sia dal tempo che dalla distanza del neurone v da quello BMU La funzione Θ, nella forma semplificata, assegna 1 a tutti i neuroni abbastanza vicini al BMU e 0 a tutti gli altri, ma la scelta più comune è la funzione gaussiana. Indipendentemente dalla forma, la funzione vicinato si riduce nel tempo, ossia gli intorni dei neuroni tendono ad essere via via più ristretti all'aumentare del numero di elementi del TS presentati. Il numero di epoche di addestramento è variabile ma in genere ampio. Quindi, dato che nella fase di addestramento i pesi di tutto il vicinato sono spostati nella stessa direzione, elementi simili tendono ad eccitare neuroni adiacenti. Nel 1988 Kohonen provò ad addestrare una rete a riconoscere i caratteri pronunciati da una persona. Terminata la fase di addestramento, andò ad etichettare i neuroni con i fonemi che ciascuno aveva imparato a riconoscere. Alcuni neuroni però risultavano vincitori per più di un fonema; ad esempio i fonemi occlusivi si dimostrarono difficilmente riconoscibili e quindi più soggetti ad errori di riconoscimento.

12 La teoria della risonanza adattativa (ART Adaptive Resonance Theory) fu proposta come soluzione al cosiddetto dilemma plasticità-stabilià. Il cervello umano è infatti un sistema contemporaneamente plastico e stabile, poiché è capace di apprendere in tempo reale adattando la sua basa di conoscenza in risposta ai cambiamenti ambientali. La ART fu formulata per progettare reti dotate della plasticità necessaria per apprendere nuova conoscenza senza perdere quella già appresa (stabilità). Consideriamo ad esempio il percettrone multilivello. Questa rete non ha memoria e non è possibile effettuare un apprendimento incrementale: se volessimo addestrare la rete su altri dati perderemmo quelli precedenti. Con le reti ART è possibile conservare il vecchio addrestramento e generare altri neuroni dove servono. La rete di Hopfield è una rete ricorrente associativa, avente un certo numero n di neuroni, ognuno dei quali riceve in ingresso l'uscita di tutti gli altri, ossia la rete è completamente connessa. Ogni neurone ignora l'input ricevuto da se stesso e il vettore dei pesi è in realtà una matrice simmetrica, ossia Wi,j = Wj,i. Queste due considerazioni sono imposte dal teorema di Cohen e Grossberg, il quale afferma che le reti ricorrenti sono stabili se la matrice dei pesi è simmetrica rispetto alla diagonale di tutti zero. L uscita del neurone in un certo istante di tempo è detta stato del neurone; l insieme degli stati dei neuroni che compongono la rete definisce lo stato della rete. La funzione di trasferimento è bipolare; in particolare i livelli di uscita possono essere ±1; Ti è la soglia dell'iesimo neurone. Durante la fase di addestramento la rete memorizza un certo numero di stati stabili. Nella fase operativa la rete di Hopfield funziona come una memoria associativa. Alla presentazione di un nuovo stimolo la rete evolverà verso la stato stabile più simile ad esso. La presenza di un processo di evoluzione comporta che l'uscita non sia immediatamente definita, ma occorreranno un certo numero di iterazioni prima di raggiungere lo stato finale. Ad esempio, se l'insieme di addestramento consiste in una serie di fotografie, e il nuovo stimolo è un piccolo pezzo di una di esse, la rete riprodurrà la fotografia da cui è stato preso il frammento. È importante notare che le immagini originali non sono state memorizzate separatamente ma ogni peso è una codifica parziale di tutte le foto. Una rete di Hopfield può memorizzare in modo affidabile fino a 0,138 n esempi di training. Alla rete di Hopfield è associata una funzione di energia, che descrive la dinamica della rete. Questa funzione è monotonicamente decrescente con lo stato della rete, ossia ogni qualvolta un neurone cambia stato l'energia della rete decresce. Tale funzione dipende solo dai parametri interni della rete, ossia pesi e soglie dei neuroni, e viene indicata con H(x). Quindi, a partire da uno stato iniziale, la rete si muove con verso discedente sulla superficie di errore, passando per stati con energia minore sino ad arrivare ad un minimo locale, ossia uno stato stabile, detto anche attrattore. La convergenza di questo procedimento è garantita dal fatto che la variazione di energia è sempre minore o uguale a zero, ossia

13 Sebbene la convergenza della rete sia garantita, lo stesso non si può dire del raggiungimento di uno stato stabile desiderato. Infatti, durante la discesa lungo la superficie della funzione d'energia la rete può convergere verso altri minimi locali. Questo perchè, per ogni stato stabile S memorizzato durante la fase di addestramento, esiste lo stato -S che possiede lo stesso livello energetico. Valutazione delle prestazioni Tutte le reti neurali che abbiamo visto possono essere utilizzate come classificatori. Un aspetto da tenere in conto è che non esiste un classificatore capace di avere le prestazioni migliori in tutti gli scenari operativi e, pertanto, è necessario valutare le prestazioni di ognuno. Come valutare le prestazioni di un classificatore? Dato il dataset, ossia l'insieme dei dati a disposizione, l'errore apparente è l'errore commesso dalla rete nella classificazione dell'intero dataset. Questo tipo di valutazione però non è molto utile, in quanto non consente di valutare la capacità di generalizzazione del classificatore. L'error estimation consente di ottenere risultati più consistenti e prevede invece di partizionare il dataset in tre insiemi: training set, per l'addestramento del classificatore; validation (o training test) set, per evitare l'overtraining; test set, per stimare le prestazioni del classificatore. Esistono diverse tecniche per effettuare il partizionamento. La tecnica hold-out prevede di partizionare il dataset nei sottoinsiemi training e test set, assegnando il 50% dei campioni all'uno e l'altro 50% all'altro. Il problema di questo partizionamento è che all'interno del training set finiscano i campioni appartenenti a certe classi mentre nel test set finiscano i campioni di altre classi. Questo comporterebbe una stima molto alta dell'errore perchè nella fase di test verrebbero presentati campioni che la rete non ha mai visto. Anche effettuando un partizionamento casuale non si è sicuri di ottenere una stima corretta delle prestazioni del classificatore. Un miglioramento si può ottenere effettuando diversi partizionamenti, ad esempio 10, e mediando i risultati ottenuti nei singoli casi. Questa miglioria però non risolve del tutto il problema perchè, ad esempio, alcuni campioni potrebbero non finire mai nel test set, e quindi non sarebbe mai possibile valutare la prestazione del classificatore su tali campioni. Questo problema viene risolto con la tecnica detta K-fold cross validation. Questa tecnica prevede di dividere il dataset in k partizioni di eguale dimensione: k-1 vengono usate per l'addestramento e la k-esima per la fase di test. L'addestramento viene eseguito k volte, scegliendo ogni volta una partizione diversa come test set. I risultati di ogni addestramento vengono quindi mediati. Se k=n, con n numero dei campioni del dataset, si hanno partizioni costituite da un unico campione e la tecnica prende il nome di leave-one-out. Una versione più elaborata e costosa è la leave-v-out, che prevede di effettuare tutti i possibili partizionamenti, con partizioni aventi v campioni. Con questa tecnica, ogni campione viene utilizzato per il testing, a differenza di quanto avveniva con l'hold-out. La tecnica di Bootstrap consiste nel creare, a partire dal dataset, L training set. Ogni training set contiene campioni presi più volte. I rimanenti campioni del data set vengono utilizzati per stimare l'errore su quel training set. L'errore finale stimato sarà la media degli errori commessi sugli L training set. Quando applicare una o l'altra tecnica? È stato dimostrato che la tecnica di hold-out è da preferire quando il dataset è costituito da un numero elevato di campioni. In questo caso infatti, le due partizioni avranno un numero ragionevole di campioni appartenenti a tutte le classi. Le tecniche di cross-validation e bootstrap invece, sono da preferire nei casi in cui il dataset non è molto ampio. Questo non solo perchè tali tecniche danno risultati migliori su dataset siffatti, ma anche perchè la loro applicazione con dataset ampi sarebbe computazionalmente onerosa.

14 Per poter classificare entità come appartenenti ad una o taluna classe, il classificatore utilizza una rappresentazione numerica delle caratteristiche, o feature, dell'entità da classificare. A seconda del valore di una o più feature, l'entità sarà associata ad una specifica classe. Quando il numero d di feature utilizzate cresce si va incontro a due problemi: l'incremento della complessità computazionale e il fenomeno di Hughes. Infatti, all'aumentare del numero di feature si ottiene un aumento del tempo di elaborazione richiesto per determinare l'appartenenza dell'oggetto ad una classe ed un significativo aumento della quantità di memoria necessaria alle computazioni. Inoltre, si potrebbe pensare che aumentando il numero di feature, e quindi fornendo maggiori informazioni al classificatore, la sua attività di classificazione ottenga dei benifici. Invece, fissato il numero di campioni del training set, esiste un certo valore d* tale che, aumentando il numero di feature d, con 1 d d*, migliorano anche le prestazioni (intese come decisioni corrette intraprese) del classificatore, mentre utilizzando valori crescenti di d, con d>d*, le prestazioni peggiorano. Questo è il cosiddetto fenomeno di Hughes. Da cosa dipende? Essenzialmente da un insufficiente numero di campioni rispetto al numero di feature. Infatti, per poter sfruttare il numero crescente di informazioni disponibili, occorre un numero congruo di campioni per l'apprendimento; altrimenti si perde la capacità di generalizzare. Di fatti si nota che aumentando il numero di campioni del training set, il valore di d* cresce. Poiché all'aumentare del numero di feature si presentano questi problemi, è importante avere dei meccanismi che consentano di minimizzare il numero di feature necessarie ad ottenere dei buoni classificatori. Sarà comunque necessario che il classificatore disponga delle informazioni provenienti da un certo numero di feature. Esistono due approcci per la feature reduction, e sono: feature selection: si procede con la selezione di m feature tra le d disponibili, tali che la perdita di informazioni sia minimizzata, usando criteri di ottimizzazione predefiniti; feature extraction: si effettua una trasformazione, spesso lineare, della dimensione dello spazio delle feature in un altro spazio avente una dimensione m<d, definito in maniera tale da minimizzare la perdita di informazione. Cominciamo con la feature selection. Una formulazione rigorosa del problema è la seguente: dato un insieme X={x1, x2,..., xd}, dobbiamo identificare il sottoinsieme S X, costituito da m feature, che massimizza il funzionale J( ), ossia occorre determinare Per poter risolvere questo problema bisogna definire il funzionale J e definire un algoritmo che trovi S*. Il funzionale J( ) deve essere definito in maniera tale che J(S) misuri il grado di bontà del sottoinsieme S nel processo di classificazione, ossia quante decisioni corrette mi consente di intraprendere questo sottoinsieme di feature. In figura è mostrata una forma di J usata nella pratica. Per quanto riguarda l'algoritmo di ricerca occorre fare alcune considerazioni. Il numero di possibili sottoinsiemi di X è legato esponenzialmente al numero di feature. Pertanto il raggiungimento della soluzione ottima richiederebbe l'applicazione di una ricerca esaustiva, che nella pratica è realizzabile solo per piccoli valori di d. Quindi spesso si ricorre al Sequential Forward Selection (SFS). Questo algoritmo prevede i seguenti passi: inizializzare S*= valutare il valore del funzionale J per tutti i sottoinsiemi S* {xi}, con xi S*, e scegliere la

15 feature che massimizza la quantità J(S* {xi}) aggiornare S* = S* {xi} aggiungere iterativamente una feature alla volta, finchè non si raggiunge il valore di feature m desiderato o il valore di J( ) diviene stabile, ossia si raggiunge la saturazione. Questo algoritmo ad ogni passo aggiunge una feature al sottoinsieme finale, in modo che ad ogni passo si aggiunga la feature che massimizza il valore del funzionale J. Questo procedimento consente di ottenere una soluzione sub-ottima in quanto, ad esempio, la coppia di feature scelta alla seconda iterazione può non contenere la feature che da sola è la migliore. I vantaggio principale che si ottiene con questo algoritmo è la riduzione della complessità anche quando si utilizzano centinaia di feature. Il principale svantaggio è l'impossibilità di tornare indietro nel processo di selezione delle feature. L'analisi delle componenti principali, detta anche trasformata di Karhunen-Loeve o trasformata di Hotelling, è una trasformazione lineare da uno spazio ad elevata dimensionalità ad uno a dimensionalità ridotta. Viene applicata quando occorre effettuare una compressione dei dati. Infatti, quando le feature sono correlate tra loro, vengono portate informazioni ridondanti. La trasformata KL consente di decorrelare le informazioni, rappresentando i campioni del dataset in uno spazio con un numero di dimensioni ridotto. Oggi è la tecnica di feature extraction più diffusa ed è utilizzata con successo nei sistemi di riconoscimento facciale. A partire dal vettore x delle n feature x0, x1,..., xn-1, lo scopo è quello di ottenere n feature scorrelate y0, y1,..., yn-1. Calcolato il vettore delle medie μx= [μx0, μx1,..., μxn-1], si determina la matrice di covarianza Σx. Sia ϕk l'autovettore corrispondente all'autovalore k-esimo λk, vale che Poiché la matrice di covarianza è simmetrica, i suoi autovettori sono ortogonali, ossia È possibile quindi costruire la matrice e compattare le equazioni in, dove Λ è una matrice diagonale, i cui elementi diagonali sono gli autovalori della matrice di covarianza. Moltiplicando ambo i membri per si ottiene che la matrice di covarianza può essere diagonalizzata. Pertanto, dato il vettore x, si definisce la trasformata KL come l'equazione in figura, dove l'i-esima componente yi è la proiezione di x su ϕi. Quindi attraverso la trasformata KL il vettore x viene espresso nello spazio ndimensionale individuato dagli n autovettori ϕi. Poiché la matrice di covarianza di y è diagonale, le covarianze σi,j sono nulle e quindi le componenti del vettore d'ingresso vengono decorrelate. Inoltre la varianza di yi (componente principale i-esima) è pari all'autovalore i-esimo della matrice di covarianza di Σx. L'importanza di ogni componente principale può essere calcolata come il rapporto tra la varianza ad essa associata e la somma delle varianze di tutte le componenti principali. Giunti a questo punto è possibile eseguire, opzionalmente, l'operazione di whitening la quale, genera altre n feature z0, z1,..., zn-1 che oltre ad essere incorrelate hanno anche la stessa varianza. Ciò si può ottenere con un'operazione di normalizzazione. A questo punto è possibile selezionare le prime m feature associate ai primi m autovalori, ordinati in senso decrescente. La quantità di informazione persa può essere valutata calcolando il rapporto η. È quindi possibile scegliere un certo numero di feature che consente di perdere al più una certa quantità di informazione. In conclusione,

16 il vantaggio principale del metodo di feature extraction è quello di preservare il massimo contenuto informativo possibile, e presenta un'alta flessibilità. Con i metodi di selection invece, dalle feature iniziali si individua un sottoinsieme di feature, il cui significato fisico viene preservato. Questo può essere importante quando occorre integrare tra loro le informazioni relative alle feature durante il processo di classificazione. Al contrario, il metodo di extraction genera feature virtuali definite come combinazione lineare di quelle originali, prive di ogni significato fisico. KNIME - Konstanz Information Miner Knime è una piattaforma modulare per l'esplorazione dei dati, che consente graficamente di creare data flow(spesso riferiti come pipeline), eseguire analisi, e ispezionare i risultati. Knime è basato su Eclipse, e nella sua versione base comprende numerosi nodi di I/O, di analisi, di data mining (estrazione di informazioni da un insieme di dati). Ogni progetto è chiamato workflow, flusso di dati. Il workbench (banco da lavoro) di Knime è diviso in diverse aree. Quella più importante è il workflow editor che consente di lavorare sui workflow, configurare ed eseguire i nodi, ispezionare i risultati ed esplorare i dati. Su ogni nodo sono disponibili diverse opzioni: Configure: quando un nodo viene inserito nel workflow o viene connesso ad un altro nodo, il suo indicatore di stato (un semaforo) è rosso, il che significa che occorre configurarlo. Execute: il passo successivo è quello di eseguire il nodo, ossia di fargli svolgere il suo lavoro sui dati. Questa è l'opzione da scegliere. All'interno del workflow non è necessario eseguire i nodi singolarmente: se l'ultimo nodo del workflow non è stato già eseguito, basta mandare in esecuzione solo quest'ultimo per scatenare l'esecuzione di tutti gli altri. Open view: ad ogni nodo possono essere associate da 0 a più viste, che compariranno nel menù di contesto del nodo stesso. Open out-port view: se un nodo non ha una vista è possibile comunque visualizzare i risultati delle sue operazioni. Esiste una entry per ogni uscita del nodo. Questo tipo di view però non supportano alcun tipo di interazione. Per averla, occorre collegare l'uscita con un nodo Interactive Table. Reset: il nodo ritorna dallo stato di esecuzione (luce verde) a quello di configurato (luce gialla). Cancel: per terminare l'esecuzione di un nodo. Due nodi possono essere facilmente connessi collegando l'uscita di uno con l'ingresso dell'altro. Non sono consentiti cicli (loop). Esercitazione IRIS-DATA Inserisco nodo File Reader da I/O Read. Configuro. Carico file data.all (che è essenzialmente un CSV Comma Separated Value) dalla cartella IRISDataSet e compare il file nella sezione Preview. In tale sezione, cliccando sull'header della colonna è possibile cambiare le proprietà di quella colonna di dati, ad esempio il tipo. Premendo OK il semaforo diventa giallo. Inserisco nodo Color Manager da Data views Property. Collego ed eseguo. Nel menù di contesto del nodo Color Manager esiste la view Table with colors, ossia un tabella con un colore per ogni classe dei dati. Inserisco nodo Scatter Plot da Data view. Collego uscita Color Manager con Scatter Plot ed eseguo. Compare la vista Scatter Plot, che proietta i punti della tabella su un piano cartesiano. È possibile modificare la feature da utilizzare sugli assi cartesiani per ottenere viste diverse. Da Data Manipulation Row Transform inserisco il nodo Partitioning che prende in ingresso l'uscita di Color Manager. Configuro dando alla prima partizione una dimensione relativa del 50% e selezionando l'opzione Draw randomly. Eseguo ed ottengo le due partizioni da 75 elementi ciascuna. Un'altra view è Pie Chart (a torta). Collego con uscita di Color Manager e configuro con

17 l'opzione Display all rows e Pie column = class. Eseguo e vedo grafico a torta. Da Mining Neural Network MLP inserisco il blocco Learner e Predictor della rete neurale (si parla di Learning e Prediction al posto di Training e Testing). Collego i due porti blu di Learner e Predictor. In ingresso al Learner la prima uscita del Partitioning, mentre al secondo ingresso del Predictor la seconda uscita del Partitioning. Il Learner fornisce un modello della rete addestrata in formato PMML, un wrapper XML. Configuro Learner semplicemente prendendo OK ed eseguo il Predictor. La tabella del Predictor visualizza in che modo è stata effettuata la classificazione. Collego uscita Predictor con nodo Scorer, che si trova in Mining Scoring. Configuro inserendo come prima colonna class e seconda PredClass. Eseguo e verifico accuratezza. Nella Confusion Matrix evidenzio (Hilite) la casella contenente 4, ossia il numero di elementi Irisversicolor scambiati per Iris-viriginica. Tornando allo ScatterPlot di partenza vengono evidenziati sul grafico tali punti. Gli elementi che si trovano sulla diagonale della matrice di confusione sono il numero di elementi correttamente classificati mentre gli altri indicano il numero di elementi erroneamente classificati. Da Weka prelevo AttributeSelectedClassifier che consente di ridurre il numero di feature da utilizzare e fornisce un classificatore di un certo tipo addestrato. Effettuando la configurazione semplicemente premendo OK ed eseguendo è possibile vedere quali feature sono state selezionate e quanti sono gli errori commessi. Questa uscita può essere mandata in ingresso ad un Weka Predictor. Al passo precedente sono state selezionate due feature: petallength e petalwidth. Quindi possiamo inserire il Column Filter da Data Manipulation e porre in ingresso il data set originario. Escludo le feature relative al sepalo e collego l'uscita del Column Filter al Partitioning. Rieseguo lo Scorer. È possibile utilizzare un partizionamento del dataset per mezzo di cross validation inserendo il nodo X-Validation in Meta. All'interno di tale nodo si inserisco i blocchi Learner e Predictor del MLP. L'uscita del nodo X-Validation può essere collegata con un nodo Scorer per valutare i risultati. Alla matrice di confusione possiamo affiancare la matrice dei costi, che consente di assegnare dei valori di costo per la misclassificazione dei pattern. Questi costi sono una sorta di penalità in cui il classificatore incappa, assegnando un campione ad una classe diversa da quella di reale appartenenza. Una penalità negativa è invece una premialità che si intende assegnare per una corretta classificazione. Questi valori non sono delle percentuali ma semplicemente degli indici. Possiamo quindi configurare un classificatore in maniera tale che prenda le sue scelte tenendo conto anche dei costi, quando si trova in una condizione di incertezza. Il blocco Cost calcola il costo di classificazione, ottenuto come rapporto della sommatoria degli elementi della matrice di confusione pesati con i corrispondenti elementi della matrice dei costi, e il numero totale di campioni. Ovviamente quanto più sarà basso il costo tanto più il classificatore avrà lavorato meglio. Per ottimizzare il costo di classificazione, possiamo consentire al classificatore di rigettare il campione, qualora la classificazione non possa essere fatta con grado sufficiente di certezza. Ossia possiamo definire una regione

18 di rigetto, all'interno della quale il classificatore non compie alcuna classificazione ma rigetta il campione. Per definire tale regione si utilizza un valore di soglia θ. Se non esiste un valore di probabilità che un campione appartenga ad una certa classe che supera tale soglia, il campione viene rigettato. Consideriamo l'esempio in figura. Il classificatore presenta due regioni di decisione R1 e R2. Il valore x0 è quello per cui la probabilità che il campione appartenga ad una delle due classi è uguale e ricade nella regione di decisione R1. A partire da tale punto fino a quello di frontiera definiamo la nostra regione di rigetto. Occorre tenere presente che all'interno della regione di decisione ricadranno anche campioni che sarebbero stati etichettati correttamente e che invece verranno rigettati. La regola della minimizzazione del rischio di classificazione (Minimizing Risk Classification Rule MRC Rule) seleziona la classe da assegnare al campione minimizzando il costo di classificazione. Calcolata la matrice dei costi e le probabilità che un campione x appartenga ad una determinata classe, il classificatore sceglie la classe k seguendo la regola in figura. Pertanto viene scelta la classe j che minimizza questa sommmatoria. Consideriamo il caso di un classificatore binario che verifica se un paziente ha il cancro oppure è sano. Supponiamo che p(cancro x) = 0,2 & p(sano x) = 0,8. Assegnata la matrice dei costi in figura, avremo che il campione sarà rigettato. I valori delle varie sommatorie possono essere calcolati effettuano il prodotto righe per colonne tra il vettore delle probabilità condizionate e la matrice dei costi (i valori giusti sono 8cancer 200normal). La regola MRC diventa la famosa regola di Chow, quando i valore dei costi non dipendono dalla particolare classe, ossia i costi di misclassificazione sono uguali, come anche i costi di classificazione e quelli di rigetto, come nell'esempio in figura. In tali casi la regola assegna il campione x alla classe k se altrimenti il campione è rigettato. Se ad esempio il costo d'errore Ce = 10, il costo di rigetto Cr = 1, e il guadagno di classificazione Cc = 0, p(cancro x) = 0,08 & p(sano x) = 0,92, poiché p(sano x) > p(cancro x) e il rapporto dei costi è minore p(sano x), allora il classificatore sceglie la classe sano che coincide con la scelta del MRC. Per prevedere l'opzione rigetto possiamo inserire il nodo Java Snippet, che consente di definire codice JAVA. In ingresso prende l'uscita del predictor. Configuriamo il nodo ponendo, nel Method body, il codice del file JavaSnippet.txt. Modifichiamo il valore di Append Column con Risultato e

19 selezioniamo come tipo di ritorno String. Eseguiamo e notiamo che nella tabella appare anche la nuova opzione Rejected. Potremmo considerare un altro comportamento all'interno dello JavaSnippet, andando a configurare un comportamento a soglia. È possibile applicare il metodo delle componenti principali andando ad utilizzare il nodo PCA della sezione Mining. Ponendo in ingresso il dataset, è possibile configurare il nodo indicando il numero di feature a cui giungere (ad esempio 2). Occorre notare che con questo processo si perde la semantica delle feature perchè quelle estratte non sono altro che una combinazione lineare di quelle di partenza. Ponendo l'uscita del nodo PCA in ingresso ad uno ScatterPlot e rappresentando i campioni nel piano cartesiano individuato dalle due nuove feature notiamo come venga a crearsi una distanza più marcata tra i vari cluster delle classi. Combining Classifier Fino ad ora a partire da un data set abbiamo cercato di selezionare il miglior insieme di feature e il classificatore in grado di fornire le prestazioni migliori. È possibile adottare un altro approccio in cui si ricerca l'insieme dei classificatori migliori e il migliore metodo di combinazione. Effettuando la combinazione dei singoli classificatori in linea teorica è possibile sfruttare le potenzialità di ognuno di essi eliminandone le debolezze. Uno dei problemi fondamentali che si incontra con la combinazione di classificatori è l'esplosione della complessità che tende ad allontanarci dal problema di partenza. Quindi, la combinazione di classificatori non rappresenta una panacea ma una possibilità. Dietterich suggerisce tre tipi di ragioni che dovrebbero spingerci a combinare classificatori piuttosto che utilizzare classificatori singolarmente. La prima ragione è di tipo statistico. Supponiamo di avere un dataset Z e di considerare l'intero spazio dei classificatori. All'interno di questo spazio esisteranno alcuni classificatori che avranno buone prestazioni nella fase di training. Il classificatore D* è quello migliore per il problema (non noto a priori). Statisticamente, esisterà una qualche forma di combinazione dei classificatori che restituirà un classificatore molto più vicino alle prestazioni di D* di un generico classificatore scelto casualmente dallo spazio. La seconda è di tipo computazionale. Gli algoritmi di addestramento consentono di raggiungere una certa configurazione che porta ad un ottimo locale. Supponendo che l'addestramento di ogni classificatore parta da un certo punto dello spazio e termini nelle vicinanze di D*, esisterà qualche forma di aggregazione dei classificatori, il cui risultato sarà un classificatore molto più vicino a D* rispetto ad un singolo classificatore Di. La terza è di tipo rappresentativo. È possibile che lo spazio dei classificatori considerato per il problema non contiene il classificatore ottimo. Ad esempio, abbiamo uno spazio di classificatori lineari per risolvere un problema non lineare. Allora una combinazione di classificatori lineari può consentire di ottenere un classificatore che approssima quello ottimo D*. Nel caso invece, in cui il classificatore D* è contenuto nello spazio, possiamo considerare la questione dell'addestramento; infatti è molto più

20 semplice addestrare un classificatore assemblato ottenuto dalla combinazione di classificatori semplici che addestrare direttamente un classificatore ad elevata complessità. Esistono diversi approcci per assemblare classificatori, come mostrato in figura. L'approccio A consente di utilizzare diversi modi di combinare le decisioni dei classificatori. Quello B prevede di utilizzare diverse tipi di classificatori base. L'approccio C prevede di utilizzare diversi sottoinsiemi di feature per i classificatori. Mentre l'approccio D prevede di utilizzare diversi sottoinsiemi del dataset per ogni classificatore base. Esistono due strategie principali per combinare classificatori: fusione e selezione. Nell'approcio con fusione ogni membro possiede la conoscenza dell'intero spazio delle feature. Nell'approccio con selezione ogni membro conosce bene solo una porzione dello spazio delle feature ed è responsabile degli oggetti di quella parte. Quindi nel primo approccio si utilizza la media dei risultati dei singoli classificatori, oppure la votazione a maggioranza, mentre nel secondo viene utilizzato un unico classificatore per classificare l'input x. Un classificatore a cascata è una versione di classificatore a selezione in cui ad un certo istante è attivo un solo classificatore mentre gli altri sono dormienti. Quando si presente il campione x, il primo classificatore prova a prendere una decisione. Se è certo della sua decisione il campione viene etichettato altrimenti viene passato al classificatore successivo, e così via. L'ottimizzazione della decisione (Decision Optimization) si riferisce ai metodi per scegliere e ottimizzare il combiner per un fissato insieme di classificatori base (approccio A). In contrasto, l'ottimizzazione di copertura (Coverage Optimization) consiste nell'ottimizzazione dei classificatori base per un fissato algoritmo di combinazione (approcci B-C-D). Alcune metodologie di combinazione richiedono una fase di addestramento aggiuntiva a quella dei classificatori base, mentre altre no. Il combinatore a voto di maggioranza non ha bisogno di una fase di addestramento, mentre per il combinatore a media pesata è necessaria. I classificatori addestrabili possono essere divisi in due gruppi, a seconda che siano dipendenti dai dati in maniera implicita o esplicita. Nel primo gruppo rientrano quei combiner (a fusione) il cui addestramento non dipende dall'input x. Mentre nel secondo usano pesi che sono funzioni dell'input x. Questo gruppo comprende i classificatori a selezione. Se è disponibile un ampio dataset, l'addestramento può avvenire in diverse modalità. Infatti è possibile addestrare un singolo classificatore complesso, oppure addestrare i classificatori base su training set non sovrapposti, valutare il classificatore combinato e i classificatori base molto raffinatamente, utilizzando un ampio testing set. Invece avere un dateset ristretto pone diversi problemi. Duin fornisce alcuni suggerimenti in questo caso: se utilizzi un singolo training set per un combiner non addestrabile, allora assicurati di non sovra-addestrare i classificatori base. se utilizzi un singolo training set per un combiner addestrabile, allora lascia i classificatori base

21 sotto-addestrati e sfrutta il rimanente training set per il combiner. Questo perchè il training set possiede una certa quantità di potenziale d'addestramento che occorre dividere tra i vari componenti. usa training set separati per il combiner e i classificatori base. Questi ultimi possono essere sovra-addestrati sul proprio training set. L'errore commesso verrà corretto con l'addestramento del combiner sul suo training set. Inoltre Duin suggerisce che il secondo training set su cui può essere addestrato l'assemblato può essere parzialmente sovrapposto con il primo training set usato per i classificatori base. La Stacked Generalization è definita come una metodologia generica per migliorare la capacità di generalizzazione del classificatore. Sia Z il nostro data set, da cui estraiamo N punti che etichettiamo come ω1, ω2,..., ωn. Partizioniamo Z in quattro sotto insiemi disgiunti di eguale misura, denotati con A, B, C, D. Supponiamo di avere tre classificatori base D1, D2, D3, e di averli addestrati secondo lo schema della Four-Fold Cross-Validation, come in figura. Il combiner viene addestrato su un dataset di dimensione N, ottenuto nel seguente modo. Per ogni campione ωi contenuto in A, consideriamo le uscite di D1, D2, e D3 addestrati su BCD. In questo modo il sottoinsieme A non è stato visto durante l'addestramento dei classificatori base. Questi tre output formano un campione del training set del combiner. Tutti i punti ωi contenuti in B vengono valutati dai tre classificatori addestrati su ACD e le uscite aggiunte al training set del combiner, e così via. Addestrato il combiner su questo training set, i quattro sottoinsiemi ABCD vengono re-uniti per formare Z, e D1, D2, e D3, vengono riaddestrati sull'intero dataset Z. Macchine a vettori di supporto (SVM) Le reti a un solo strato hanno un algoritmo di apprendimento semplice ed efficiente, ma all'interno dello spazio di input possono tracciare solo confini con forma analitica lineare. Le reti multistrato invece possono rappresentare funzioni generiche non lineari e sono quindi molto più potenti e, al tempo stesso, molto più difficili da addestrare a causa dei molteplici minimi locali e dell'alto numero di dimensioni dello spazio dei pesi, all'interno del quale è rappresentata la superficie d'errore. Le macchine a vettore di supporto, dette anche macchine kernel, prendono il meglio da entrambe: hanno un algoritmo di addestramento efficiente e possono rappresentare funzioni non lineari complesse. Inoltre sono macchine che in modalità operativa, non nell'addestramento, sono veloci. Anch'esse possono essere utilizzate da classificatori; ad esempio, come il percettrone multilivello, possono essere impiegate come approssimatori di funzioni. Negli ultimi 10 anni è il classificatore più utilizzato per la capacità di generalizzazione, dovuta ad una solida base matematica. Consideriamo l campioni etichettati con cui si è costruito il dataset S={(xi,yi)}, con xi Rn, yi {-1,+1}, i = 1,..., l, provenienti da una P(X,Y) fissata ma sconosciuta. Lo scopo principale dell'apprendimento è quello di utilizzare S per costruire una funzione f che, applicata ad valore di x non visto precedentemente, predice il valore corrispondente di y, ossia ypred = f(xnew). Per valutare la qualità della funzione trovata si ricorre ad una funzione di costo L(f(x),y). Ad esempio, questa funzione potrebbe essere la differenza tra i due valori. Scelta una certa funzione f(x), si definisce rischio atteso la quantità R(f) = L(f(x),y) dp(x,y). Lo scopo principale sarebbe quello di minimizzare il rischio atteso, ma ciò non può essere fatto direttamente poiché P(X,Y) è fissata ma non nota. È possibile però definire il rischio empirico, ossia RS(f) = L(f(xi),yi), ossia l'errore commesso sul training set. Vapnik dimostrò che con probabilità 1-η vale la seguente diseguaglianza. Un parametro importante è h, detto dimensione di Vapnik Chervonenkis (VC) della funzione f, il quale stima

22 la capacità di apprendere tramite f un qualunque training set fissato. In generale, h viene associato a classi di funzioni. La quantità al secondo membro della diseguaglianza viene detto rischio garantito, Rgar. Il primo addendo di Rgar è il rischio empirico, mentre il secondo viene detto termine di confidenza. Minimizzando il rischio garantito si potrà dunque minimizzare anche il rischio atteso. Questo è possibile perchè il rischio garantito è indipendente da P(X,Y), ma il termine di confidenza dipende dalla classe di funzioni a cui appartiene f, mentre il rischio empirico dipende dalla particolare forma di f. L'obiettivo della minimizzazione strutturale del rischio (Structural Risk Minimization SRM) è proprio quello di minimizzare il rischio garantito. Definiamo spazio delle ipotesi l'insieme di funzioni aventi la stessa dimensione VC. Consideriamo una serie di spazi delle ipotesi F1, F2,..., Fh,..., tali che F1 F2... Fh... La minimizzazione consiste nel determinare il sottoinsieme di funzioni Fmin che minimizza il rischio garantito, ossia minfh Rgar. Ad esempio, Fh può essere un percettrone multilivello avente h neuroni nello strato hidden. Quindi la tecnica SRM minimizza il rischio garantito. Ciò viene fatto trovando un trade-off tra rischio empirico e complessità del classificatore. Questo comporta la ricerca della macchina con la maggiore capacità di generalizzazione che commette un certo errore sui campioni del training set. Le SVM seguono il principio della minimizzazione strutturale del rischio. Le caratteristiche principali di queste macchine sono la massimizzazione del margine, legata alla capacità di generalizzare della rete, e il trucco del kernel: se in uno spazio ad n dimensioni non posso risolvere il prbolema con un classificatore lineare, allora proietto i dati in uno spazio a n+m dimensioni in cui è possibile risolvere il problema con un classificatore lineare.

23 La ricerca dei parametri ottimali per la funzione kernel può essere un'operazione computazionalmente dispendiosa. Consideriamo di aver scelto il Kernel RBF, la soluzione migliore proposta in letteratura. Occorre definire i parametri C e σ. Per fare ciò di solito si sceglie di ricorrere alla cross-validation per identificare i valori migliori per C e σ, e successivamente effettuare l'addestramento con tali valori su l'intero training-set. In letteratura si propone di usare valori crescenti con legge esponenziale: C = 2 [ ], σ = 2 [ ]. Ovviamente, le SVM di base sono dei classificatori binari ma possono essere usate per classificazioni multiclasse. In tali casi si effettua una decomposizione del problema in più problemi a due classi. Nel caso a tre classi, occorrono 2 SVM: la prima discrimina una classe rispetto alle altre due e la seconda le 2 rimanenti. In generale, per N classi occorrono N-1 SVM. Un altro approccio può essere quello di avere tante SVM quante sono le possibili coppie di classi. Quindi ogni SVM vota per una classe: quella che prende più voti vince. Confrontando i due approcci abbiamo che: il primo è meno efficace ma più semplice da realizzare; il secondo risulta più efficace ma con un costo computazionale superiore. Un esempio di dataset a 3 classi è quello IRIS. La classe Setosa è linearmente separabile dalle altre due, mentre Virginica e Versicolor non lo sono tra loro. In figura sono mostrati i risultati ottenuti, da sinistra verso destra, con un kernel polinomiale di grado 2, di grado 10, e con RBF. Cosa succede se abbassiamo il costo C? Abbiamo una maggiore capacità di generalizzazione, perchè abbiamo diminuito la penalità assegnata al classificatore sugli errori commessi sul training set. Quanto più C sarà basso, tanto più saremo disposti a commettere degli errori.

Neural Network Toolbox

Neural Network Toolbox Neural Network Toolbox In questa sede verrà presentata una trattazione esauriente delle caretteristiche fondamentali del Neuron Network Toolbox presente come pacchetto supplementare al software Matlab

Dettagli

Università di Bergamo Facoltà di Ingegneria. Intelligenza Artificiale. Paolo Salvaneschi A1_1 V1.1. Introduzione

Università di Bergamo Facoltà di Ingegneria. Intelligenza Artificiale. Paolo Salvaneschi A1_1 V1.1. Introduzione Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A1_1 V1.1 Introduzione Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale

Dettagli

Agente Artificiale Intelligente (razionale)

Agente Artificiale Intelligente (razionale) Agente Artificiale Intelligente (razionale) Percezioni attraverso sensori AMBIENTE AGENTE Azioni attraverso attuatori (bracci meccanici, ruote, ecc.) Quando un Agente Artificiale è Razionale? Quando fa

Dettagli

Tecniche di riconoscimento statistico

Tecniche di riconoscimento statistico Tecniche di riconoscimento statistico Applicazioni alla lettura automatica di testi (OCR) Parte 8 Support Vector Machines Ennio Ottaviani On AIR srl ennio.ottaviani@onairweb.com http://www.onairweb.com/corsopr

Dettagli

Regressione non lineare con un modello neurale feedforward

Regressione non lineare con un modello neurale feedforward Reti Neurali Artificiali per lo studio del mercato Università degli studi di Brescia - Dipartimento di metodi quantitativi Marco Sandri (sandri.marco@gmail.com) Regressione non lineare con un modello neurale

Dettagli

CIRCUITI INTELLIGENTI Parte 5: PCA e ICA

CIRCUITI INTELLIGENTI Parte 5: PCA e ICA Ing. Simone SCARDAPANE Circuiti e Algoritmi per l Elaborazione dei Segnali Anno Accademico 2012/2013 Indice della Lezione 1. Analisi delle Componenti Principali 2. Auto-Associatori 3. Analisi delle Componenti

Dettagli

Teoria dei Giochi non Cooperativi

Teoria dei Giochi non Cooperativi Politecnico di Milano Descrizione del gioco Egoismo Razionalità 1 L insieme dei giocatori 2 La situazione iniziale 3 Le sue possibili evoluzioni 4 I suoi esiti finali I Giochi della teoria Perché studiare

Dettagli

Introduzione. è uguale a 0, spostamento di dati da una parte della memoria del calcolatore ad un altra.

Introduzione. è uguale a 0, spostamento di dati da una parte della memoria del calcolatore ad un altra. Appunti di Calcolatori Elettronici Modello di macchina multilivello Introduzione... 1 Linguaggi, livelli e macchine virtuali... 3 La struttura a livelli delle macchine odierne... 4 Evoluzione delle macchine

Dettagli

Breve introduzione al Calcolo Evoluzionistico

Breve introduzione al Calcolo Evoluzionistico Breve introduzione al Calcolo Evoluzionistico Stefano Cagnoni Dipartimento di Ingegneria dell Informazione, Università di Parma cagnoni@ce.unipr.it 1 Introduzione Il mondo fisico ed i fenomeni naturali

Dettagli

Esperienze di Apprendimento Automatico per il corso di Intelligenza Artificiale

Esperienze di Apprendimento Automatico per il corso di Intelligenza Artificiale Esperienze di Apprendimento Automatico per il corso di lippi@dsi.unifi.it Dipartimento Sistemi e Informatica Università di Firenze Dipartimento Ingegneria dell Informazione Università di Siena Introduzione

Dettagli

I Modelli della Ricerca Operativa

I Modelli della Ricerca Operativa Capitolo 1 I Modelli della Ricerca Operativa 1.1 L approccio modellistico Il termine modello è di solito usato per indicare una costruzione artificiale realizzata per evidenziare proprietà specifiche di

Dettagli

PROPRIETÀ DEI CIRCUITI DI RESISTORI

PROPRIETÀ DEI CIRCUITI DI RESISTORI CAPITOLO 5 PROPRIETÀ DEI CIRCUITI DI RESISTORI Nel presente Capitolo, verrà introdotto il concetto di equivalenza tra bipoli statici e verranno enunciati e dimostrati alcuni teoremi (proprietà) generali

Dettagli

Tecniche di DM: Link analysis e Association discovery

Tecniche di DM: Link analysis e Association discovery Tecniche di DM: Link analysis e Association discovery Vincenzo Antonio Manganaro vincenzomang@virgilio.it, www.statistica.too.it Indice 1 Architettura di un generico algoritmo di DM. 2 2 Regole di associazione:

Dettagli

Riconoscimento e recupero dell informazione per bioinformatica

Riconoscimento e recupero dell informazione per bioinformatica Riconoscimento e recupero dell informazione per bioinformatica Reti Neurali Manuele Bicego Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona Sommario Introduzione: approcci

Dettagli

Intelligenza Artificiale (lucidi lezione introduttiva)

Intelligenza Artificiale (lucidi lezione introduttiva) Intelligenza Artificiale (lucidi lezione introduttiva) Prof. Alfonso Gerevini Dipartimento di Elettronica per l Automazione Facoltà di Ingegneria Università degli Studi di Brescia 1 Che cosa è l Intelligenza

Dettagli

Tecniche di DM: Alberi di decisione ed algoritmi di classificazione

Tecniche di DM: Alberi di decisione ed algoritmi di classificazione Tecniche di DM: Alberi di decisione ed algoritmi di classificazione Vincenzo Antonio Manganaro vincenzomang@virgilio.it, www.statistica.too.it Indice 1 Concetti preliminari: struttura del dataset negli

Dettagli

Automi. Sono così esempi di automi una lavatrice, un distributore automatico di bibite, un interruttore, una calcolatrice tascabile,...

Automi. Sono così esempi di automi una lavatrice, un distributore automatico di bibite, un interruttore, una calcolatrice tascabile,... Automi Con il termine automa 1 s intende un qualunque dispositivo o un suo modello, un qualunque oggetto, che esegue da se stesso un particolare compito, sulla base degli stimoli od ordini ricevuti detti

Dettagli

Dott.ssa Lorella Gabriele PhD in Psicologia della Programmazione e Intelligenza Artificiale Dipartimento di Fisica Università della Calabria

Dott.ssa Lorella Gabriele PhD in Psicologia della Programmazione e Intelligenza Artificiale Dipartimento di Fisica Università della Calabria Dott.ssa Lorella Gabriele PhD in Psicologia della Programmazione e Intelligenza Artificiale Dipartimento di Fisica Università della Calabria La robotica è una scienza che si occupa di studiare e sviluppare

Dettagli

Tecniche di riconoscimento statistico

Tecniche di riconoscimento statistico On AIR s.r.l. Tecniche di riconoscimento statistico Applicazioni alla lettura automatica di testi (OCR) Parte 4 Reti neurali per la classificazione Ennio Ottaviani On AIR srl ennio.ottaviani@onairweb.com

Dettagli

LE ASSUNZIONI DELL'ANOVA

LE ASSUNZIONI DELL'ANOVA LE ASSUNZIONI DELL'ANOVA Sono le assunzioni del test t, ma estese a tutti i gruppi: o La variabile deve avere una distribuzione normale in tutte le popolazioni corrispondenti ai gruppi campionati o Le

Dettagli

09 - Funzioni reali di due variabili reali

09 - Funzioni reali di due variabili reali Università degli Studi di Palermo Facoltà di Economia CdS Sviluppo Economico e Cooperazione Internazionale Appunti del corso di Matematica 09 - Funzioni reali di due variabili reali Anno Accademico 2013/2014

Dettagli

Macchine a stati finiti sincrone

Macchine a stati finiti sincrone Macchine a stati finiti sincrone Modulo 6 Università di Cagliari Dipartimento di Ingegneria Elettrica ed Elettronica Laboratorio di Microelettronica e Bioingegneria (EOLAB) Macchine a stati finiti Dall

Dettagli

Introduzione al Pattern Recognition Statistico

Introduzione al Pattern Recognition Statistico Introduzione al Pattern Recognition Statistico Roberto Tagliaferri Dipartimento di Informatica Università di Salerno ( Sa ) 84084 Fisciano e-mail robtag@unisa.it Statistical Pattern Recognition Introduzione

Dettagli

Fogli elettronici, dati e statistiche con LibreOffice 4.1. materiale didattico sul corso Calc avanzato a cura di Sonia Montegiove.

Fogli elettronici, dati e statistiche con LibreOffice 4.1. materiale didattico sul corso Calc avanzato a cura di Sonia Montegiove. Foto di Federica Testani, Flickr Fogli elettronici, dati e statistiche con LibreOffice 4.1 materiale didattico sul corso Calc avanzato a cura di Sonia Montegiove 1 di 24 Gestire i dati con Calc Strutturare

Dettagli

Esercizi di Ricerca Operativa I

Esercizi di Ricerca Operativa I Esercizi di Ricerca Operativa I Dario Bauso, Raffaele Pesenti May 10, 2006 Domande Programmazione lineare intera 1. Gli algoritmi per la programmazione lineare continua possono essere usati per la soluzione

Dettagli

Feature Selection per la Classificazione

Feature Selection per la Classificazione 1 1 Dipartimento di Informatica e Sistemistica Sapienza Università di Roma Corso di Algoritmi di Classificazione e Reti Neurali 20/11/2009, Roma Outline Feature Selection per problemi di Classificazione

Dettagli

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache... Appunti di Calcolatori Elettronici Concetti generali sulla memoria cache Introduzione... 1 Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Dettagli

Agenti intelligenti. Maria Simi a.a. 2014/2015

Agenti intelligenti. Maria Simi a.a. 2014/2015 Agenti intelligenti Maria Simi a.a. 2014/2015 Riassunto Intelligenza come capacità diverse Capacità di simulare il comportamento umano? Capacità di ragionamento logico/matematico? Intelligenza come competenza

Dettagli

Richiami di microeconomia

Richiami di microeconomia Capitolo 5 Richiami di microeconomia 5. Le preferenze e l utilità Nell analisi microeconomica si può decidere di descrivere ogni soggetto attraverso una funzione di utilità oppure attraverso le sue preferenze.

Dettagli

la "macchina" universale di Turing

la macchina universale di Turing la "macchina" universale di Turing Nel 1854, il matematico britannico George Boole (1815-1864), elaborò una matematica algebrica che da lui prese il nome. Nell'algebra booleana le procedure di calcolo

Dettagli

Abbiamo visto due definizioni del valore medio e della deviazione standard di una grandezza casuale, in funzione dalle informazioni disponibili:

Abbiamo visto due definizioni del valore medio e della deviazione standard di una grandezza casuale, in funzione dalle informazioni disponibili: Incertezze di misura Argomenti: classificazione delle incertezze; definizione di incertezza tipo e schemi di calcolo; schemi per il calcolo dell incertezza di grandezze combinate; confronto di misure affette

Dettagli

EMERGENCE OF SELF ORGANIZATION AND SEARCH FOR OPTIMAL ENTERPRISE STRUCTURE: AI EVOLUTIONARY METHODS APPLIED TO AGENT BASED PROCESS SIMULATION

EMERGENCE OF SELF ORGANIZATION AND SEARCH FOR OPTIMAL ENTERPRISE STRUCTURE: AI EVOLUTIONARY METHODS APPLIED TO AGENT BASED PROCESS SIMULATION EMERGENCE OF SELF ORGANIZATION AND SEARCH FOR OPTIMAL ENTERPRISE STRUCTURE: AI EVOLUTIONARY METHODS APPLIED TO AGENT BASED PROCESS SIMULATION remond@di.unito.it Department of Computer Science University

Dettagli

CAPITOLO IX 9. - PROGRAMMAZIONE LINEARE INTERA

CAPITOLO IX 9. - PROGRAMMAZIONE LINEARE INTERA CAPITOLO IX 9. - PROGRAMMAZIONE LINEARE INTERA Molto spesso i risultati che si desidera ottenere come soluzione di un problema di programmazione lineare sono numeri interi, ad es. il numero di vagoni ferroviari

Dettagli

1 Grafico di una funzione reale 1. 2 Funzioni elementari 2 2.1 Funzione potenza... 2 2.2 Funzione esponenziale... 3 2.3 Funzione logaritmica...

1 Grafico di una funzione reale 1. 2 Funzioni elementari 2 2.1 Funzione potenza... 2 2.2 Funzione esponenziale... 3 2.3 Funzione logaritmica... UNIVR Facoltà di Economia Sede di Vicenza Corso di Matematica Funzioni reali di variabile reale Indice Grafico di una funzione reale 2 Funzioni elementari 2 2. Funzione potenza................................................

Dettagli

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini Dipartimento di Ingegneria della Informazione Via Diotisalvi, 2 56122 PISA ALGORITMI GENETICI (GA) Sono usati per risolvere problemi di ricerca

Dettagli

Data mining: classificazione DataBase and Data Mining Group of Politecnico di Torino

Data mining: classificazione DataBase and Data Mining Group of Politecnico di Torino DataBase and Data Mining Group of Database and data mining group, Database and data mining group, DataBase and Data Mining Group of DataBase and Data Mining Group of So dati insieme di classi oggetti etichettati

Dettagli

Cap. 4 Ricostruzione delle tracce con reti neurali

Cap. 4 Ricostruzione delle tracce con reti neurali Cap. 4 Ricostruzione delle tracce con reti neurali 4.1 Introduzione alle Reti Neurali 4.1.1 Neuroni Le reti neurali si ispirano al funzionamento dei neuroni biologici, le cellule alla base dell'elaborazione

Dettagli

SCUOLA PRIMARIA: MATEMATICA

SCUOLA PRIMARIA: MATEMATICA SCUOLA PRIMARIA: MATEMATICA Traguardi per lo sviluppo delle competenze al termine della scuola primaria L'alunno si muove con sicurezza nel calcolo scritto e mentale con i numeri naturali e sa valutare

Dettagli

Decisioni in condizioni di rischio. Roberto Cordone

Decisioni in condizioni di rischio. Roberto Cordone Decisioni in condizioni di rischio Roberto Cordone Decisioni in condizioni di rischio Rispetto ai problemi in condizioni di ignoranza, oltre all insieme Ω dei possibili scenari, è nota una funzione di

Dettagli

4. Matrici e Minimi Quadrati

4. Matrici e Minimi Quadrati & C. Di Natale: Matrici e sistemi di equazioni di lineari Formulazione matriciale del metodo dei minimi quadrati Regressione polinomiale Regressione non lineare Cross-validazione e overfitting Regressione

Dettagli

DIPARTIMENTO DI STUDI UMANISTICI

DIPARTIMENTO DI STUDI UMANISTICI DIPARTIMENTO DI STUDI UMANISTICI Corso di Laurea Interdipartimentale in Scienze della Formazione Primaria( Ind.Primaria) A.A 2013/2014 REPORT SULL ELABORAZIONE DI UN AGENTE ARITIFICIALE TEORIA E METODOLOGIA

Dettagli

Principal Component Analysis (PCA)

Principal Component Analysis (PCA) Principal Component Analysis (PCA) Come evidenziare l informazione contenuta nei dati S. Marsili-Libelli: Calibrazione di Modelli Dinamici pag. Perche PCA? E un semplice metodo non-parametrico per estrarre

Dettagli

CAPITOLO 3 Previsione

CAPITOLO 3 Previsione CAPITOLO 3 Previsione 3.1 La previsione I sistemi evoluti, che apprendono le regole di funzionamento attraverso l interazione con l ambiente, si rivelano una risorsa essenziale nella rappresentazione di

Dettagli

Sistemi Informativi I Lezioni di Ingegneria del Software

Sistemi Informativi I Lezioni di Ingegneria del Software 4 Codifica, Test e Collaudo. Al termine della fase di progettazione, a volte anche in parallelo, si passa alla fase di codifica e successivamente alla fase di test e collaudo. In questa parte viene approfondita

Dettagli

estratto da Competenze assi culturali Raccolta delle rubriche di competenza formulate secondo i livelli EFQ a cura USP Treviso Asse matematico

estratto da Competenze assi culturali Raccolta delle rubriche di competenza formulate secondo i livelli EFQ a cura USP Treviso Asse matematico Competenza matematica n. BIENNIO, BIENNIO Utilizzare le tecniche e le procedure del calcolo aritmetico ed algebrico, rappresentandole anche sotto forma grafica BIENNIO BIENNIO Operare sui dati comprendendone

Dettagli

Rete di Hopfield applicata al problema del TSP

Rete di Hopfield applicata al problema del TSP Rete di Hopfield applicata al problema del TSP 1. Introduzione Nel 1982, il fisico John J. Hopfield pubblicò un articolo fondamentale in cui presentò un modello matematico comunemente noto come rete di

Dettagli

Note del Corso di Modelli Biologici Discreti: Un paio di algoritmi DNA per risolvere SAT

Note del Corso di Modelli Biologici Discreti: Un paio di algoritmi DNA per risolvere SAT Note del Corso di Modelli Biologici Discreti: Un paio di algoritmi DNA per risolvere SAT Giuditta Franco Corso di Laurea in Bioinformatica - AA 2012/2013 Uno dei più grossi risultati nell informatica degli

Dettagli

Metodi basati sugli autovettori per il Web Information Retrieval

Metodi basati sugli autovettori per il Web Information Retrieval Metodi basati sugli autovettori per il Web Information Retrieval HITS, PageRank e il metodo delle potenze LSI e SVD LSI è diventato famoso per la sua abilità nel permettere di manipolare i termini (all

Dettagli

Modelli probabilistici

Modelli probabilistici Modelli probabilistici Davide Cittaro e Marco Stefani Master bioinformatica 2003 Introduzione L obiettivo di presente lavoro è la classificazione di un insieme di proteine, definite da 27 valori numerici,

Dettagli

Algoritmi Euristici. Corso di Laurea in Informatica e Corso di Laurea in Matematica. Roberto Cordone DI - Università degli Studi di Milano

Algoritmi Euristici. Corso di Laurea in Informatica e Corso di Laurea in Matematica. Roberto Cordone DI - Università degli Studi di Milano Algoritmi Euristici Corso di Laurea in Informatica e Corso di Laurea in Matematica Roberto Cordone DI - Università degli Studi di Milano Lezioni: Mercoledì 08.30-10.30 Venerdì 08.30-10.30 Ricevimento:

Dettagli

ANALISI DEI DATI PER IL MARKETING 2014

ANALISI DEI DATI PER IL MARKETING 2014 ANALISI DEI DATI PER IL MARKETING 2014 Marco Riani mriani@unipr.it http://www.riani.it LA CLASSIFICAZIONE CAP IX, pp.367-457 Problema generale della scienza (Linneo, ) Analisi discriminante Cluster Analysis

Dettagli

Introduzione. Modellizzazione: descrizione di un fenomeno fisico (biologico) con linguaggio matematico.

Introduzione. Modellizzazione: descrizione di un fenomeno fisico (biologico) con linguaggio matematico. Introduzione Modellizzazione: descrizione di un fenomeno fisico (biologico) con linguaggio matematico. Alcuni aspetti da tenere presenti: * range di validita del modello; * "profondita " o "risoluzione"

Dettagli

Altri metodi di indicizzazione

Altri metodi di indicizzazione Organizzazione a indici su più livelli Altri metodi di indicizzazione Al crescere della dimensione del file l organizzazione sequenziale a indice diventa inefficiente: in lettura a causa del crescere del

Dettagli

0. Piano cartesiano 1

0. Piano cartesiano 1 0. Piano cartesiano Per piano cartesiano si intende un piano dotato di due assi (che per ragioni pratiche possiamo scegliere ortogonali). Il punto in comune ai due assi è detto origine, e funziona da origine

Dettagli

MICROSOFT EXCEL INTRODUZIONE PRIMI PASSI

MICROSOFT EXCEL INTRODUZIONE PRIMI PASSI MICROSOFT EXCEL INTRODUZIONE Si tratta di un software appartenente alla categoria dei fogli di calcolo: con essi si intendono veri e propri fogli elettronici, ciascuno dei quali è diviso in righe e colonne,

Dettagli

SISTEMI INFORMATIVI AZIENDALI

SISTEMI INFORMATIVI AZIENDALI SISTEMI INFORMATIVI AZIENDALI Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento: Alla fine di ogni lezione Modalità esame: scritto 1 Data Mining. Introduzione La crescente popolarità

Dettagli

Data Mining in SAP. Alessandro Ciaramella

Data Mining in SAP. Alessandro Ciaramella UNIVERSITÀ DI PISA Corsi di Laurea Specialistica in Ingegneria Informatica per la Gestione d Azienda e Ingegneria Informatica Data Mining in SAP A cura di: Alessandro Ciaramella La Business Intelligence

Dettagli

Metodi diretti per la soluzione di sistemi lineari

Metodi diretti per la soluzione di sistemi lineari Metodi diretti per la soluzione di sistemi lineari N Del Buono 1 Introduzione Consideriamo un sistema di n equazioni in n incognite a 11 x 1 + a 12 x 2 + a 13 x 3 + + a 1n x n = b 1, a 21 x 1 + a 22 x

Dettagli

MATEMATICA OBIETTIVI DI APPRENDIMENTO TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE

MATEMATICA OBIETTIVI DI APPRENDIMENTO TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE Il bambino raggruppa e ordina oggetti e materiali secondo criteri diversi. Identifica alcune proprietà dei materiali. Confronta e valuta quantità. Utilizza simboli per registrare materiali e quantità.

Dettagli

Page 1. Evoluzione. Intelligenza Artificiale. Algoritmi Genetici. Evoluzione. Evoluzione: nomenclatura. Corrispondenze natura-calcolo

Page 1. Evoluzione. Intelligenza Artificiale. Algoritmi Genetici. Evoluzione. Evoluzione: nomenclatura. Corrispondenze natura-calcolo Evoluzione In ogni popolazione si verificano delle mutazioni. Intelligenza Artificiale In un ambiente che varia, le mutazioni possono generare individui che meglio si adattano alle nuove condizioni. Questi

Dettagli

Il guadagno informativo negli alberi decisionali: un nuovo approccio

Il guadagno informativo negli alberi decisionali: un nuovo approccio Il guadagno informativo negli alberi decisionali: un nuovo approccio Sommario Descrizione del problema... 2 Il guadagno informativo di Nanni... 3 Il software Weka... 3 Cos è Weka... 3 Il guadagno Informativo

Dettagli

Relazione Pinakes3 Analisi modello di business (BOZZA) di Valeriano Sandrucci 08/09/07

Relazione Pinakes3 Analisi modello di business (BOZZA) di Valeriano Sandrucci 08/09/07 Relazione Pinakes3 Analisi modello di business (BOZZA) di Valeriano Sandrucci 08/09/07 1. Introduzione...3 1.2. Application vs Tool... 3 2. Componenti logiche di un modello... 6 3. Ontologie e Semantic

Dettagli

Design of Experiments

Design of Experiments Design of Experiments Luigi Amedeo Bianchi 1 Introduzione Cominciamo spiegando cosa intendiamo con esperimento, ossia l investigare un processo cambiando i dati in ingresso, osservando i cambiamenti che

Dettagli

Funzioni in due variabili Raccolta di FAQ by Andrea Prevete

Funzioni in due variabili Raccolta di FAQ by Andrea Prevete Funzioni in due variabili Raccolta di FAQ by Andrea Prevete 1) Cosa intendiamo, esattamente, quando parliamo di funzione reale di due variabili reali? Quando esiste una relazione fra tre variabili reali

Dettagli

Selezione avversa, screening e segnalazione

Selezione avversa, screening e segnalazione Selezione avversa, screening e segnalazione Il modello principale agente è uno strumento fondamentale per analizzare le relazioni economiche caratterizzate da problemi di asimmetrie informative un primo

Dettagli

Data Mining. Gabriella Trucco gabriella.trucco@unimi.it

Data Mining. Gabriella Trucco gabriella.trucco@unimi.it Data Mining Gabriella Trucco gabriella.trucco@unimi.it Perché fare data mining La quantità dei dati memorizzata su supporti informatici è in continuo aumento Pagine Web, sistemi di e-commerce Dati relativi

Dettagli

Verifica e Validazione (V & V) Software e difetti. Processo di V & V. Test

Verifica e Validazione (V & V) Software e difetti. Processo di V & V. Test Software e difetti Il software con difetti è un grande problema I difetti nel software sono comuni Come sappiamo che il software ha qualche difetto? Conosciamo tramite qualcosa, che non è il codice, cosa

Dettagli

60 indicazioni nazionali per la scuola dell infanzia e del primo ciclo. matematica

60 indicazioni nazionali per la scuola dell infanzia e del primo ciclo. matematica 60 indicazioni nazionali per la scuola dell infanzia e del primo ciclo matematica Le conoscenze matematiche contribuiscono alla formazione culturale delle persone e delle comunità, sviluppando le capacità

Dettagli

CAPITOLO I. Prof. Ing. Michele Marra - Appunti delle Lezioni di Ricerca Operativa Programmazione Dinamica

CAPITOLO I. Prof. Ing. Michele Marra - Appunti delle Lezioni di Ricerca Operativa Programmazione Dinamica CAPITOLO I. - PROGRAMMAZIONE DINAMICA La programmazione dinamica è una parte della programmazione matematica che si occupa della soluzione di problemi di ottimizzazione di tipo particolare, mediante una

Dettagli

Problemi di Programmazione Lineare Intera

Problemi di Programmazione Lineare Intera Capitolo 4 Problemi di Programmazione Lineare Intera La Programmazione Lineare Intera (PLI) tratta il problema della massimizzazione (minimizzazione) di una funzione di più variabili, soggetta a vincoli

Dettagli

STUDIO DI UNA FUNZIONE

STUDIO DI UNA FUNZIONE STUDIO DI UNA FUNZIONE OBIETTIVO: Data l equazione Y = f(x) di una funzione a variabili reali (X R e Y R), studiare l andamento del suo grafico. PROCEDIMENTO 1. STUDIO DEL DOMINIO (CAMPO DI ESISTENZA)

Dettagli

PROBABILITA, VALORE ATTESO E VARIANZA DELLE QUANTITÁ ALEATORIE E LORO RELAZIONE CON I DATI OSSERVATI

PROBABILITA, VALORE ATTESO E VARIANZA DELLE QUANTITÁ ALEATORIE E LORO RELAZIONE CON I DATI OSSERVATI statistica, Università Cattaneo-Liuc, AA 006-007, lezione del 08.05.07 IDICE (lezione 08.05.07 PROBABILITA, VALORE ATTESO E VARIAZA DELLE QUATITÁ ALEATORIE E LORO RELAZIOE CO I DATI OSSERVATI 3.1 Valore

Dettagli

Ottimizzazione non Vincolata

Ottimizzazione non Vincolata Dipartimento di Informatica e Sitemistica Università di Roma Corso Dottorato Ingegneria dei Sistemi 15/02/2010, Roma Outline Ottimizzazione Non Vincolata Introduzione Ottimizzazione Non Vincolata Algoritmi

Dettagli

9 Metodi diretti per la risoluzione di sistemi lineari: fattorizzazione P A = LU

9 Metodi diretti per la risoluzione di sistemi lineari: fattorizzazione P A = LU 9 Metodi diretti per la risoluzione di sistemi lineari: fattorizzazione P A LU 9.1 Il metodo di Gauss Come si è visto nella sezione 3.3, per la risoluzione di un sistema lineare si può considerare al posto

Dettagli

Reti neurali nel Data Mining, altre tecniche utilizzate nel DM e valutazione dei modelli.

Reti neurali nel Data Mining, altre tecniche utilizzate nel DM e valutazione dei modelli. Reti neurali nel Data Mining, altre tecniche utilizzate nel DM e valutazione dei modelli. Vincenzo Antonio Manganaro vincenzomang@virgilio.it, www.statistica.too.it Indice 1 Utilizzo di reti neurali nel

Dettagli

Laboratorio di Chimica Fisica 04/03/2015. Introduzione all uso di Microcal Origin 6.0 (TM)

Laboratorio di Chimica Fisica 04/03/2015. Introduzione all uso di Microcal Origin 6.0 (TM) Introduzione all uso di Microcal Origin 6.0 (TM) Origin lavora solo in ambiente Windows, ma ci sono degli omologhi per linux e apple. Sui computer del laboratorio è installato windows XP e troverete la

Dettagli

ARCHIVI CLASSICI. Concetti di base

ARCHIVI CLASSICI. Concetti di base ARCHIVI CLASSICI Concetti di base Per svolgere una qualsiasi attività gestionale, amministrativa, o statistica è necessario utilizzare grandi quantità di dati e scegliere per essi una opportuna organizzazione,

Dettagli

Elaborazione delle Immagini Digitali

Elaborazione delle Immagini Digitali Elaborazione delle Immagini Digitali Parte I Prof. Edoardo Ardizzone A.A. 2-22 La trasformata di Hotelling o di Karhunen-Loeve KLT discreta Questa trasformata detta anche analisi delle componenti principali

Dettagli

Metodi iterativi per sistemi lineari

Metodi iterativi per sistemi lineari Metodi iterativi per sistemi lineari Dario A. Bini, Università di Pisa 30 ottobre 2013 Sommario Questo modulo didattico contiene risultati relativi ai metodi iterativi per risolvere sistemi di equazioni

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Lez. 6 di 12 Docente: valter.rolando@med.unipmn.it IL FOGLIO ELETTRONICO (II) Imposta Pagina Stampa Elenchi Ordinamenti e Filtri Subtotali Novara, 8 giugno 2007 1 IMPOSTA PAGINA Parte

Dettagli

MovieShot Motore Di Ricerca Per Film Basato Sul Riconoscimento Della Locandina

MovieShot Motore Di Ricerca Per Film Basato Sul Riconoscimento Della Locandina MovieShot Motore Di Ricerca Per Film Basato Sul Riconoscimento Della Locandina Giorgio Iacoboni Matricola 1099585 Anno Accademico 2010/2011 Outline Introduzione Image Matching Architettura di MovieShot

Dettagli

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini Dipartimento di Ingegneria della Informazione Via Diotisalvi, 2 56122 PISA ALGORITMI GENETICI (GA) Sono usati per risolvere problemi di ricerca

Dettagli

VC-dimension: Esempio

VC-dimension: Esempio VC-dimension: Esempio Quale è la VC-dimension di. y b = 0 f() = 1 f() = 1 iperpiano 20? VC-dimension: Esempio Quale è la VC-dimension di? banale. Vediamo cosa succede con 2 punti: 21 VC-dimension: Esempio

Dettagli

Ricerca informata. Scelta dell euristica

Ricerca informata. Scelta dell euristica Ricerca informata Scelta dell euristica SMA* (Simplified Memory-Bounded A*) SMA* espande sempre la foglia migliore finché la memoria è piena A questo punto deve cancellare un nodo in memoria SMA* cancella

Dettagli

MATEMATICA Competenza chiave europea: COMPETENZA MATEMATICA E COMPETENZE DI BASE IN SCIENZA E TECNOLOGIA Competenza specifica: MATEMATICA

MATEMATICA Competenza chiave europea: COMPETENZA MATEMATICA E COMPETENZE DI BASE IN SCIENZA E TECNOLOGIA Competenza specifica: MATEMATICA MATEMATICA Competenza chiave europea: COMPETENZA MATEMATICA E COMPETENZE DI BASE IN SCIENZA E TECNOLOGIA Competenza specifica: MATEMATICA Le conoscenze matematiche contribuiscono alla formazione culturale

Dettagli

MATEMATICA TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE ALLA FINE DELLA SCUOLA PRIMARIA

MATEMATICA TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE ALLA FINE DELLA SCUOLA PRIMARIA MATEMATICA TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE ALLA FINE DELLA SCUOLA PRIMARIA L alunno si muove con sicurezza nel calcolo scritto e mentale con i numeri naturali e sa valutare l opportunità di

Dettagli

Foglio di calcolo. Numero Valuta Testo Data e Ora Percentuale

Foglio di calcolo. Numero Valuta Testo Data e Ora Percentuale Foglio di calcolo Foglio di calcolo Foglio organizzato in forma matriciale: migliaia di righe e centinaia di colonne In corrispondenza di ciascuna intersezione tra riga e colonna vi è una CELLA Una cella

Dettagli

Dispense del corso di Logica a.a. 2015/16: Problemi di primo livello. V. M. Abrusci

Dispense del corso di Logica a.a. 2015/16: Problemi di primo livello. V. M. Abrusci Dispense del corso di Logica a.a. 2015/16: Problemi di primo livello V. M. Abrusci 12 ottobre 2015 0.1 Problemi logici basilari sulle classi Le classi sono uno dei temi della logica. Esponiamo in questa

Dettagli

Alberi Decisionali di Vito Madaio

Alberi Decisionali di Vito Madaio Tecnica degli Alberi Decisionali Cosa è un albero decisionale Un albero decisionale è la dimostrazione grafica di una scelta effettuata o proposta. Non sempre ciò che istintivamente ci appare più interessante

Dettagli

www.wlascuola.4000.it

www.wlascuola.4000.it 1 Cenni di programmazione Risolvere un problema significa trovare un procedimento che consenta di produrre i risultati, a partire dai dati iniziali, attraverso un processo di elaborazione. La metodologia

Dettagli

Da una a più variabili: derivate

Da una a più variabili: derivate Da una a più variabili: derivate ( ) 5 gennaio 2011 Scopo di questo articolo è di evidenziare le analogie e le differenze, relativamente al calcolo differenziale, fra le funzioni di una variabile reale

Dettagli

DATA MINING PER IL MARKETING

DATA MINING PER IL MARKETING DATA MINING PER IL MARKETING Andrea Cerioli andrea.cerioli@unipr.it Sito web del corso GLI ALBERI DI CLASSIFICAZIONE Algoritmi di classificazione Zani-Cerioli, Cap. XI CHAID: Chi-square Automatic Interaction

Dettagli

PDF created with pdffactory trial version www.pdffactory.com. Il processo di KDD

PDF created with pdffactory trial version www.pdffactory.com. Il processo di KDD Il processo di KDD Introduzione Crescita notevole degli strumenti e delle tecniche per generare e raccogliere dati (introduzione codici a barre, transazioni economiche tramite carta di credito, dati da

Dettagli

Giudizio, decisione e violazione degli assiomi di razionalità

Giudizio, decisione e violazione degli assiomi di razionalità - DPSS - Università degli Studi di Padova http://decision.psy.unipd.it/ Giudizio, decisione e violazione degli assiomi di razionalità Corso di Psicologia del Rischio e della Decisione Facoltà di Scienze

Dettagli

Il risolutore. Docente: M. Sechi - Elementi di informatica e programmazione Università degli studi di Brescia D.I.M.I - A.A.

Il risolutore. Docente: M. Sechi - Elementi di informatica e programmazione Università degli studi di Brescia D.I.M.I - A.A. Università degli Studi di Brescia Elementi di informatica e Dipartimento di Ingegneria Meccanica e Industriale Dipartimento di Ingegneria Meccanica e Industriale Programmazione EXCEL Docente: Marco Sechi

Dettagli

PRIMO ISTITUTO COMPRENSIVO di PALAZZOLO S/O via Zanardelli n.34 Anno scolastico 2014/2015

PRIMO ISTITUTO COMPRENSIVO di PALAZZOLO S/O via Zanardelli n.34 Anno scolastico 2014/2015 PRIMO ISTITUTO COMPRENSIVO di PALAZZOLO S/O via Zanardelli n.34 Anno scolastico 2014/2015 CURRICOLI DISCIPLINARI SCUOLA DELL INFANZIA e PRIMO CICLO di ISTRUZIONE Percorso delle singole discipline sulla

Dettagli

Programma di Matematica

Programma di Matematica Programma di Matematica Modulo 1. Topologia in R 2. Funzioni in R 3. Limite e continuità di una funzione Unità didattiche Struttura algebrica di R Insiemi reali limitati e illimitati Intorno di un punto

Dettagli

Master SIT Settembre 2006. Corso Web & GIS - Master in Sistemi Informativi Territoriali AA 2005/2006. Chiara Renso. ISTI- CNR c.renso@isti.cnr.

Master SIT Settembre 2006. Corso Web & GIS - Master in Sistemi Informativi Territoriali AA 2005/2006. Chiara Renso. ISTI- CNR c.renso@isti.cnr. COSTRUIRE APPLICAZIONI WEB GIS: SERVIZI E STRATEGIE Corso - Master in Sistemi Informativi Territoriali AA 2005/2006 ISTI- CNR c.renso@isti.cnr.it I servizi WebGIS...1 Download di dati...3 Visualizzazione

Dettagli

L informatica nella scuola: mezzo o fine?

L informatica nella scuola: mezzo o fine? L informatica nella scuola: mezzo o fine? Il paradigma della ricerca in didattica; L introduzione del computer nell insegnamento delle matematiche. 1 La comunicazione delle matematiche ed il computer come

Dettagli

Lezione 5 Introduzione a Microsoft Excel Parte Seconda

Lezione 5 Introduzione a Microsoft Excel Parte Seconda Lezione 5 Introduzione a Microsoft Excel Parte Seconda Utilizzo delle funzioni... 1 Utilizzo di intervalli nelle formule... 2 Riferimenti di cella e di intervallo... 5 Indirizzi assoluti, relativi e misti...

Dettagli