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.

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

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

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

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

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

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

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

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

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

Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione

Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione 4 LEZIONE: Programmazione su Carta a Quadretti Tempo della lezione: 45-60 Minuti. Tempo di preparazione: 10 Minuti Obiettivo Principale: Aiutare gli studenti a capire cos è la programmazione SOMMARIO:

Dettagli

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

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

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

Prof. Ing. Michele Marra - Appunti delle Lezioni di Ricerca Operativa Sequenze CAPITOLO II

Prof. Ing. Michele Marra - Appunti delle Lezioni di Ricerca Operativa Sequenze CAPITOLO II CAPITOLO II 2. - PROBLEMI DI SEQUENZA I problemi di sequenza si presentano ogni qualvolta vi sono delle attività che richiedono delle risorse limitate ed indivisibili e bisogna definire l'ordine secondo

Dettagli

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi

Software Applicativo. Hardware. Sistema Operativo Software di Base Traduttori e Linguaggi : di base e applicativo L HardWare (monitor, tastiera, circuiti, stampante, ) è il nucleo fondamentale del calcolatore ma da solo non serve a nulla. Bisogna utilizzare il software per poterlo fare funzionare.

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

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

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

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

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

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

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

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

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

SISTEMA DI RAPPRESENTAZIONE BINARIA DEI NUMERI E. Giordani

SISTEMA DI RAPPRESENTAZIONE BINARIA DEI NUMERI E. Giordani SISTEMA DI RAPPRESENTAZIONE BINARIA DEI NUMERI E. Giordani LEMS- Laboratorio Elettronico per la Musica Sperimentale Conservatorio di Musica G. Rossini- Pesaro,QWURGX]LRQH Tutti i FDOFRODWRUL HOHWWURQLFL

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

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

MATEMATICA. Classe I Classe II Classe III Classe IV Classe V Traguardo 1

MATEMATICA. Classe I Classe II Classe III Classe IV Classe V Traguardo 1 MATEMATICA COMPETENZE Dimostra conoscenze matematiche che gli consentono di analizzare dati e fatti della realtà e di verificare l'attendibilità delle analisi quantitative e statistiche proposte da altri.

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

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

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

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

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata Lezione n.6 Unità di controllo microprogrammata 1 Sommario Unità di controllo microprogrammata Ottimizzazione, per ottimizzare lo spazio di memoria occupato Il moltiplicatore binario Esempio di architettura

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

Fondamenti di Automatica

Fondamenti di Automatica Fondamenti di Automatica Funzioni di trasferimento: stabilità, errore a regime e luogo delle radici Dott. Ing. Marcello Bonfè Dipartimento di Ingegneria - Università di Ferrara Tel. +39 0532 974839 E-mail:

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

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

Analisi matriciale delle reti di Petri (P/T) - sifoni e trappole -

Analisi matriciale delle reti di Petri (P/T) - sifoni e trappole - Analisi matriciale delle reti di Petri (P/T) - sifoni e trappole - - richiami preliminari sulle proprietà strutturali - Abbiamo visto che alcune caratteristiche dei sistemi dinamici (DES compresi) non

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

Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri.

Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri. Codici Numerici. Modifica dell'informazione. Rappresentazione dei numeri. A partire da questa lezione, ci occuperemo di come si riescono a codificare con sequenze binarie, quindi con sequenze di 0 e 1,

Dettagli

Elementi di Statistica descrittiva Parte I

Elementi di Statistica descrittiva Parte I Elementi di Statistica descrittiva Parte I Che cos è la statistica Metodo di studio di caratteri variabili, rilevabili su collettività. La statistica si occupa di caratteri (ossia aspetti osservabili)

Dettagli

Clickomania con Blockly

Clickomania con Blockly Clickomania con Blockly Violetta Lonati Sommario Clickomania è un solitario, noto anche come Chain Shot! o Same Game. Il campo di gioco è costituito da una parete inizialmente coperta di mattoni, uno per

Dettagli

SCUOLA PRIMARIA Anno Scolastico 2014/2015 CURRICOLO DI MATEMATICA OBIETTIVI DI APPRENDIMENTO AL TERMINE DELLA CLASSE TERZA DELLA SCUOLA PRIMARIA

SCUOLA PRIMARIA Anno Scolastico 2014/2015 CURRICOLO DI MATEMATICA OBIETTIVI DI APPRENDIMENTO AL TERMINE DELLA CLASSE TERZA DELLA SCUOLA PRIMARIA Ministero dell Istruzione, dell Università e della Ricerca Istituto Comprensivo Statale di Calolziocorte Via F. Nullo,6 23801 CALOLZIOCORTE (LC) e.mail: lcic823002@istruzione.it - Tel: 0341/642405/630636

Dettagli

CAPITOLO 3 FONDAMENTI DI ANALISI DELLA STABILITA' DI SISTEMI NON LINEARI

CAPITOLO 3 FONDAMENTI DI ANALISI DELLA STABILITA' DI SISTEMI NON LINEARI 31 CAPITOLO 3 FONDAMENTI DI ANALISI DELLA STABILITA' DI SISTEMI NON LINEARI INTRODUZIONE L'obbiettivo di questo capitolo è quello di presentare in modo sintetico ma completo, la teoria della stabilità

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

Sommario. 1 Realizzazione del STG. Introduzione. 1 traduzione delle specifiche informali in specifiche formali (STG o

Sommario. 1 Realizzazione del STG. Introduzione. 1 traduzione delle specifiche informali in specifiche formali (STG o Sommario Sintesi di macchine a stati finiti 1 Realizzazione del ST M. avalli 2 utoma minimo di SM completamente specificate 6th June 2007 3 Ottimizzazione di SM non completamente specificate Sommario ()

Dettagli

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 10 Correttezza A. Miola Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Correttezza 1 Contenuti Introduzione alla correttezza

Dettagli

un nastro di carta prolungabile a piacere e suddiviso in celle vuote o contenenti al più un unico carattere;

un nastro di carta prolungabile a piacere e suddiviso in celle vuote o contenenti al più un unico carattere; Algoritmi 3 3.5 Capacità di calcolo Il matematico inglese Alan Turing (1912-1954) descrisse nel 1936 un tipo di automi, oggi detti macchine di Turing, e fornì una della prime definizioni rigorose di esecuzione

Dettagli

Reti sequenziali sincrone

Reti sequenziali sincrone Reti sequenziali sincrone Un approccio strutturato (7.1-7.3, 7.5-7.6) Modelli di reti sincrone Analisi di reti sincrone Descrizioni e sintesi di reti sequenziali sincrone Sintesi con flip-flop D, DE, T

Dettagli

Competenza chiave europea: MATEMATICA. Scuola Primaria. DISCIPLINE DI RIFERIMENTO: MATEMATICA DISCIPLINE CONCORRENTI: tutte

Competenza chiave europea: MATEMATICA. Scuola Primaria. DISCIPLINE DI RIFERIMENTO: MATEMATICA DISCIPLINE CONCORRENTI: tutte Competenza chiave europea: MATEMATICA Scuola Primaria DISCIPLINE DI RIFERIMENTO: MATEMATICA DISCIPLINE CONCORRENTI: tutte TAB. A TRAGUARDI PER LO SVILUPPO DELLE COMPETENZE al termine della Scuola Primaria

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

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

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

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

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA Tutti gli anni, affrontando l argomento della divisibilità, trovavo utile far lavorare gli alunni sul Crivello di Eratostene. Presentavo ai ragazzi una

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

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione in virgola mobile Problemi connessi all utilizzo di un numero di bit limitato Abbiamo visto quali sono i vantaggi dell utilizzo della rappresentazione in complemento alla base: corrispondenza biunivoca fra rappresentazione

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dell informazione negli elaboratori

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dell informazione negli elaboratori Informazione e computer Si può rappresentare l informazione attraverso varie forme: Numeri Testi Suoni Immagini 0001010010100101010 Computer Cerchiamo di capire come tutte queste informazioni possano essere

Dettagli

Scuola Primaria Conta oggetti o eventi, a voce e a mente, in senso progressivo e regressivo e per salti di due, tre ;

Scuola Primaria Conta oggetti o eventi, a voce e a mente, in senso progressivo e regressivo e per salti di due, tre ; Primo anno Secondo anno Terzo anno Primo anno MATEMATICA Scuola dell Infanzia Scuola Primaria Conta oggetti o eventi, a voce e a mente, in senso progressivo e regressivo e per salti di due, tre ; legge

Dettagli

CAPITOLO 1 INTRODUZIONE ALLE RETI COMPLESSE

CAPITOLO 1 INTRODUZIONE ALLE RETI COMPLESSE CAPITOLO 1 INTRODUZIONE ALLE RETI COMPLESSE Negli ultimi anni si è compreso che sistemi anche molto diversi tra loro possono essere efficacemente descritti in termini di cosiddetti "networks" o reti complesse.

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

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

Dettagli

USO DI EXCEL COME DATABASE

USO DI EXCEL COME DATABASE USO DI EXCEL COME DATABASE Le funzionalità di calcolo intrinseche di un foglio di lavoro ne fanno uno strumento eccellente per registrarvi pochi dati essenziali, elaborarli con formule di vario tipo e

Dettagli

Mining Positive and Negative Association Rules:

Mining Positive and Negative Association Rules: Mining Positive and Negative Association Rules: An Approach for Confined Rules Alessandro Boca Alessandro Cislaghi Premesse Le regole di associazione positive considerano solo gli item coinvolti in una

Dettagli

Scaricare la versione 7.1 di TutoreDattilo per tastiera italiana dal sito. http://www.maurorossi.net/pagine/programmi/tutoredattilo.

Scaricare la versione 7.1 di TutoreDattilo per tastiera italiana dal sito. http://www.maurorossi.net/pagine/programmi/tutoredattilo. TUTOREDATTILO 7.1 GUIDA PER L INSEGNANTE Scaricare la versione 7.1 di TutoreDattilo per tastiera italiana dal sito http://www.maurorossi.net/pagine/programmi/tutoredattilo.htm e installarla sui PC utilizzati

Dettagli

SOMMARIO. 13.1 I radicali pag. 3. 13.2 I radicali aritmetici pag. 5. 13.3 Moltiplicazione e divisione fra radicali aritmetici pag.

SOMMARIO. 13.1 I radicali pag. 3. 13.2 I radicali aritmetici pag. 5. 13.3 Moltiplicazione e divisione fra radicali aritmetici pag. SOMMARIO CAPITOLO : I RADICALI. I radicali pag.. I radicali aritmetici pag.. Moltiplicazione e divisione fra radicali aritmetici pag.. Potenza di un radicale aritmetico pag.. Trasporto di un fattore esterno

Dettagli

Parte 2. Determinante e matrice inversa

Parte 2. Determinante e matrice inversa Parte. Determinante e matrice inversa A. Savo Appunti del Corso di Geometria 013-14 Indice delle sezioni 1 Determinante di una matrice, 1 Teorema di Cramer (caso particolare), 3 3 Determinante di una matrice

Dettagli

ESERCIZI DI ALGEBRA LINEARE E GEOMETRIA

ESERCIZI DI ALGEBRA LINEARE E GEOMETRIA ESERCIZI DI ALGEBRA LINEARE E GEOMETRIA Francesco Bottacin Padova, 24 febbraio 2012 Capitolo 1 Algebra Lineare 1.1 Spazi e sottospazi vettoriali Esercizio 1.1. Sia U il sottospazio di R 4 generato dai

Dettagli

Capitolo II Le reti elettriche

Capitolo II Le reti elettriche Capitolo II Le reti elettriche Fino ad ora abbiamo immaginato di disporre di due soli bipoli da collegare attraverso i loro morsetti; supponiamo ora, invece, di disporre di l bipoli e di collegarli tra

Dettagli

Ricerche, ordinamenti e fusioni. 5.1 Introduzione. 5.2 Ricerca completa

Ricerche, ordinamenti e fusioni. 5.1 Introduzione. 5.2 Ricerca completa Ricerche, ordinamenti e fusioni 5.1 Introduzione Questo capitolo ci permette di fare pratica di programmazione utilizzando gli strumenti del linguaggio introdotti finora. A una prima lettura possono essere

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

Introduzione all elaborazione di immagini Part II

Introduzione all elaborazione di immagini Part II Introduzione all elaborazione di immagini Part II Obiettivi delle tecniche di elaborazione di immagini: miglioramento di qualità (image enhancement) ripristino di qualità o restauro (image restoration)

Dettagli

Sintesi di Reti Sequenziali Sincrone

Sintesi di Reti Sequenziali Sincrone LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n 9 Prof. Rosario Cerbone rosario.cerbone@uniparthenope.it a.a. 2007-2008 http://digilander.libero.it/rosario.cerbone Sintesi di Reti Sequenziali Sincrone

Dettagli

I SISTEMI DI NUMERAZIONE

I SISTEMI DI NUMERAZIONE ISTITUTO DI ISTRUZIONE SUPERIORE G. M. ANGIOY CARBONIA I SISTEMI DI NUMERAZIONE Prof. G. Ciaschetti Fin dall antichità, l uomo ha avuto il bisogno di rappresentare le quantità in modo simbolico. Sono nati

Dettagli

1. Calcolare la probabilità che estratte a caso ed assieme tre carte da un mazzo di 40, fra di esse vi sia un solo asso, di qualunque seme.

1. Calcolare la probabilità che estratte a caso ed assieme tre carte da un mazzo di 40, fra di esse vi sia un solo asso, di qualunque seme. Esercizi difficili sul calcolo delle probabilità. Calcolare la probabilità che estratte a caso ed assieme tre carte da un mazzo di, fra di esse vi sia un solo asso, di qualunque seme. Le parole a caso

Dettagli

Lezione 6 Introduzione a Microsoft Excel Parte Terza

Lezione 6 Introduzione a Microsoft Excel Parte Terza Lezione 6 Introduzione a Microsoft Excel Parte Terza I grafici in Excel... 1 Creazione di grafici con i dati di un foglio di lavoro... 1 Ricerca del tipo di grafico più adatto... 3 Modifica del grafico...

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

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

Statistica descrittiva: prime informazioni dai dati sperimentali

Statistica descrittiva: prime informazioni dai dati sperimentali SECONDO APPUNTAMENTO CON LA SPERIMENTAZIONE IN AGRICOLTURA Statistica descrittiva: prime informazioni dai dati sperimentali La statistica descrittiva rappresenta la base di partenza per le applicazioni

Dettagli

Non esiste un investimento perfetto in assoluto, esiste invece un investimento ottimale per ognuno di noi.

Non esiste un investimento perfetto in assoluto, esiste invece un investimento ottimale per ognuno di noi. ANALISI DEGLI INVESTIMENTI Non esiste un investimento perfetto in assoluto, esiste invece un investimento ottimale per ognuno di noi. Come un comodo abito ogni investimento deve essere fatto su misura.

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

Laboratorio di Ricerca Operativa Cad Ingegneria Gestionale (BGER3 - I semestre) a.a. 2012-13 Homework n 33. Docente: Laura Palagi

Laboratorio di Ricerca Operativa Cad Ingegneria Gestionale (BGER3 - I semestre) a.a. 2012-13 Homework n 33. Docente: Laura Palagi Laboratorio di Ricerca Operativa Cad Ingegneria Gestionale (BGER3 - I semestre) a.a. 2012-13 Homework n 33 Docente: Laura Palagi Homework in Ricerca Operativa gruppo n 33 Turni del Personale Martina Conti

Dettagli

Uno standard per il processo KDD

Uno standard per il processo KDD Uno standard per il processo KDD Il modello CRISP-DM (Cross Industry Standard Process for Data Mining) è un prodotto neutrale definito da un consorzio di numerose società per la standardizzazione del processo

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

ShellMemory. Sistema operativo Microsoft Windows 98 o superiore Libreria SAPI e voce sintetica Casse audio

ShellMemory. Sistema operativo Microsoft Windows 98 o superiore Libreria SAPI e voce sintetica Casse audio Progetto Software to Fit - ShellMemory Pagina 1 Manuale d'uso ShellMemory Memory è un gioco didattico realizzato con l'obiettivo di aiutare l'alunno ad esercitare la capacità di memorizzazione o le capacità

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

Note di matematica per microeconomia

Note di matematica per microeconomia Note di matematica per microeconomia Luigi Balletta Funzioni di una variabile (richiami) Una funzione di variabile reale ha come insieme di partenza un sottoinsieme di R e come insieme di arrivo un sottoinsieme

Dettagli

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12};

Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; ESERCIZI 2 LABORATORIO Problema 1 Definire all'interno del codice un vettore di interi di dimensione DIM, es. int array[] = {1, 5, 2, 4, 8, 1, 1, 9, 11, 4, 12}; Chiede all'utente un numero e, tramite ricerca

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

MATEMATICA CLASSE PRIMA

MATEMATICA CLASSE PRIMA CLASSE PRIMA L alunno/a si muove con sicurezza nel calcolo scritto e mentale con i numeri naturali e sa valutare l opportunità di ricorrere a una calcolatrice. Contare oggetti o eventi, a voce e mentalmente,

Dettagli

1. L analisi statistica

1. L analisi statistica 1. L analisi statistica Di cosa parleremo La statistica è una scienza, strumentale ad altre, concernente la determinazione dei metodi scientifici da seguire per raccogliere, elaborare e valutare i dati

Dettagli

risulta (x) = 1 se x < 0.

risulta (x) = 1 se x < 0. Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente

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

SISTEMI DI NUMERAZIONE E CODICI

SISTEMI DI NUMERAZIONE E CODICI SISTEMI DI NUMERAZIONE E CODICI Il Sistema di Numerazione Decimale Il sistema decimale o sistema di numerazione a base dieci usa dieci cifre, dette cifre decimali, da O a 9. Il sistema decimale è un sistema

Dettagli

1. I database. La schermata di avvio di Access

1. I database. La schermata di avvio di Access 7 Microsoft Access 1. I database Con il termine database (o base di dati) si intende una raccolta organizzata di dati, strutturati in maniera tale che, effettuandovi operazioni di vario tipo (inserimento

Dettagli

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. E. Calabrese: Fondamenti di Informatica Problemi-1 Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi. L'informatica

Dettagli

CURRICOLO MATEMATICA ABILITA COMPETENZE

CURRICOLO MATEMATICA ABILITA COMPETENZE CURRICOLO MATEMATICA 1) Operare con i numeri nel calcolo aritmetico e algebrico, scritto e mentale, anche con riferimento a contesti reali. Per riconoscere e risolvere problemi di vario genere, individuando

Dettagli

ARCHIVI E LORO ORGANIZZAZIONI

ARCHIVI E LORO ORGANIZZAZIONI ARCHIVI E LORO ORGANIZZAZIONI Archivio: - insieme di registrazioni (record), ciascuna costituita da un insieme prefissato di informazioni elementari dette attributi (campi) - insieme di informazioni relative

Dettagli

SISTEMA DI CONTROLLO ORIENTAMENTO PANNELLI SOLARI

SISTEMA DI CONTROLLO ORIENTAMENTO PANNELLI SOLARI SISTEMA DI CONTROLLO ORIENTAMENTO PANNELLI SOLARI Lezione 1: User Requirements, Modellizzazione e Identificazione. 1.1 Introduzione: Un cliente ha chiesto la realizzazione di un sistema per l'orientamento

Dettagli