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.

Principal Component Analysis (PCA)

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

Dettagli

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina

Sistemi di supporto alle decisioni Ing. Valerio Lacagnina Cosa è il DSS L elevato sviluppo dei personal computer, delle reti di calcolatori, dei sistemi database di grandi dimensioni, e la forte espansione di modelli basati sui calcolatori rappresentano gli sviluppi

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

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

Funzione reale di variabile reale

Funzione reale di variabile reale Funzione reale di variabile reale Siano A e B due sottoinsiemi non vuoti di. Si chiama funzione reale di variabile reale, di A in B, una qualsiasi legge che faccia corrispondere, a ogni elemento A x A

Dettagli

Calc è il programma per la gestione di fogli di calcolo della suite OpenOffice.org.

Calc è il programma per la gestione di fogli di calcolo della suite OpenOffice.org. Calc è il programma per la gestione di fogli di calcolo della suite OpenOffice.org. Nuovo documento Anteprima di stampa Annulla Galleria Apri Controllo ortografico Ripristina Sorgente dati Salva Controllo

Dettagli

METODI ITERATIVI PER SISTEMI LINEARI

METODI ITERATIVI PER SISTEMI LINEARI METODI ITERATIVI PER SISTEMI LINEARI LUCIA GASTALDI 1. Metodi iterativi classici Sia A R n n una matrice non singolare e sia b R n. Consideriamo il sistema (1) Ax = b. Un metodo iterativo per la soluzione

Dettagli

Principal Component Analysis

Principal Component Analysis Principal Component Analysis Alessandro Rezzani Abstract L articolo descrive una delle tecniche di riduzione della dimensionalità del data set: il metodo dell analisi delle componenti principali (Principal

Dettagli

Flusso a costo minimo e simplesso su reti

Flusso a costo minimo e simplesso su reti Flusso a costo minimo e simplesso su reti La particolare struttura di alcuni problemi di PL può essere talvolta utilizzata per la progettazione di tecniche risolutive molto più efficienti dell algoritmo

Dettagli

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA in termini generali: Dati in input un insieme S di elementi (numeri, caratteri, stringhe, ) e un elemento

Dettagli

I.Stat Guida utente Versione 1.7 Dicembre 2010

I.Stat Guida utente Versione 1.7 Dicembre 2010 I.Stat Guida utente Versione 1.7 Dicembre 2010 1 Sommario INTRODUZIONE 3 I concetti principali di I.Stat 4 Organizzazione dei dati 4 Ricerca 5 GUIDA UTENTE 6 Per iniziare 6 Selezione della lingua 7 Individuazione

Dettagli

PANDORA Sistema di Telecontrollo per Ascensori PANDORA is powered by

PANDORA Sistema di Telecontrollo per Ascensori PANDORA is powered by PANDORA Sistema di Telecontrollo per Ascensori l'espressione v a s o d i P a n d o r a viene usata metaforicamente per alludere all'improvvisa scoperta di un problema o una serie di problemi che per molto

Dettagli

Elementi di Statistica

Elementi di Statistica Elementi di Statistica Contenuti Contenuti di Statistica nel corso di Data Base Elementi di statistica descrittiva: media, moda, mediana, indici di dispersione Introduzione alle variabili casuali e alle

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

MODULO 3 LEZIONE 23 FORMAZIONE DEL MOVIMENTO (SECONDA PARTE)

MODULO 3 LEZIONE 23 FORMAZIONE DEL MOVIMENTO (SECONDA PARTE) MODULO 3 LEZIONE 23 FORMAZIONE DEL MOVIMENTO (SECONDA PARTE) Contenuti Michelene Chi Livello ottimale di sviluppo L. S. Vygotskij Jerome Bruner Human Information Processing Teorie della Mente Contrapposizione

Dettagli

Rapida Introduzione all uso del Matlab Ottobre 2002

Rapida Introduzione all uso del Matlab Ottobre 2002 Rapida Introduzione all uso del Matlab Ottobre 2002 Tutti i tipi di dato utilizzati dal Matlab sono in forma di array. I vettori sono array monodimensionali, e così possono essere viste le serie temporali,

Dettagli

Gli uni e gli altri. Strategie in contesti di massa

Gli uni e gli altri. Strategie in contesti di massa Gli uni e gli altri. Strategie in contesti di massa Alessio Porretta Universita di Roma Tor Vergata Gli elementi tipici di un gioco: -un numero di agenti (o giocatori): 1,..., N -Un insieme di strategie

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

EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE

EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE 1. EQUAZIONI Definizione: un equazione è un uguaglianza tra due espressioni letterali (cioè in cui compaiono numeri, lettere

Dettagli

Algoritmo euclideo, massimo comun divisore ed equazioni diofantee

Algoritmo euclideo, massimo comun divisore ed equazioni diofantee Algoritmo euclideo, massimo comun divisore ed equazioni diofantee Se a e b sono numeri interi, si dice che a divide b, in simboli: a b, se e solo se esiste c Z tale che b = ac. Si può subito notare che:

Dettagli

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 1.1 Che cos è un algoritmo CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 Gli algoritmi sono metodi per la soluzione di problemi. Possiamo caratterizzare un problema mediante i dati di cui si dispone all inizio

Dettagli

Da una a più variabili: derivate

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

Dettagli

Appunti sulle disequazioni

Appunti sulle disequazioni Premessa Istituto d Istruzione Superiore A. Tilgher Ercolano (Na) Appunti sulle disequazioni Questa breve trattazione non vuole costituire una guida completa ed esauriente sull argomento, ma vuole fornire

Dettagli

Data warehouse.stat Guida utente

Data warehouse.stat Guida utente Data warehouse.stat Guida utente Versione 3.0 Giugno 2013 1 Sommario INTRODUZIONE 3 I concetti principali 4 Organizzazione dei dati 4 Ricerca 5 Il browser 5 GUIDA UTENTE 6 Per iniziare 6 Selezione della

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello del sistema 4 2.1 Requisiti hardware........................ 4 2.2 Requisiti software.........................

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

Introduzione alla Teoria degli Errori

Introduzione alla Teoria degli Errori Introduzione alla Teoria degli Errori 1 Gli errori di misura sono inevitabili Una misura non ha significato se non viene accompagnata da una ragionevole stima dell errore ( Una scienza si dice esatta non

Dettagli

SCHEDA DI PROGRAMMAZIONE DELLE ATTIVITA EDUCATIVE DIDATTICHE. Disciplina: Matematica Classe: 5A sia A.S. 2014/15 Docente: Rosito Franco

SCHEDA DI PROGRAMMAZIONE DELLE ATTIVITA EDUCATIVE DIDATTICHE. Disciplina: Matematica Classe: 5A sia A.S. 2014/15 Docente: Rosito Franco Disciplina: Matematica Classe: 5A sia A.S. 2014/15 Docente: Rosito Franco ANALISI DI SITUAZIONE - LIVELLO COGNITIVO La classe ha dimostrato fin dal primo momento grande attenzione e interesse verso gli

Dettagli

razionali Figura 1. Rappresentazione degli insiemi numerici Numeri reali algebrici trascendenti frazionari decimali finiti

razionali Figura 1. Rappresentazione degli insiemi numerici Numeri reali algebrici trascendenti frazionari decimali finiti 4. Insiemi numerici 4.1 Insiemi numerici Insieme dei numeri naturali = {0,1,,3,,} Insieme dei numeri interi relativi = {..., 3,, 1,0, + 1, +, + 3, } Insieme dei numeri razionali n 1 1 1 1 = : n, m \{0}

Dettagli

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera L. De Giovanni AVVERTENZA: le note presentate di seguito non hanno alcuna pretesa di completezza, né hanno lo scopo di sostituirsi

Dettagli

ALGEBRA: LEZIONI DAL 13 OTTOBRE AL 3 NOVEMBRE

ALGEBRA: LEZIONI DAL 13 OTTOBRE AL 3 NOVEMBRE ALGEBRA: LEZIONI DAL 13 OTTOBRE AL 3 NOVEMBRE 1 DIPENDENZA E INDIPENDENZA LINEARE Se ho alcuni vettori v 1, v 2,, v n in uno spazio vettoriale V, il sottospazio 1 W = v 1,, v n di V da loro generato è

Dettagli

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO... Modulo A Programmiamo in Pascal Unità didattiche 1. Installiamo il Dev-Pascal 2. Il programma e le variabili 3. Input dei dati 4. Utilizziamo gli operatori matematici e commentiamo il codice COSA IMPAREREMO...

Dettagli

(accuratezza) ovvero (esattezza)

(accuratezza) ovvero (esattezza) Capitolo n 2 2.1 - Misure ed errori In un analisi chimica si misurano dei valori chimico-fisici di svariate grandezze; tuttavia ogni misura comporta sempre una incertezza, dovuta alla presenza non eliminabile

Dettagli

Mario Polito IARE: Press - ROMA

Mario Polito IARE: Press - ROMA Mario Polito info@mariopolito.it www.mariopolito.it IMPARARE A STUD IARE: LE TECNICHE DI STUDIO Come sottolineare, prendere appunti, creare schemi e mappe, archiviare Pubblicato dagli Editori Riuniti University

Dettagli

MEGA Process. Manuale introduttivo

MEGA Process. Manuale introduttivo MEGA Process Manuale introduttivo MEGA 2009 SP4 1ª edizione (giugno 2010) Le informazioni contenute nel presente documento possono essere modificate senza preavviso e non costituiscono in alcun modo un

Dettagli

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dal Problema all'algoritmo

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dal Problema all'algoritmo stituto Tecnico Statale Commerciale Dante Alighieri Cerignola (FG) Dispense di nformatica Anno Scolastico 2008/2009 Classe 3APS Dal Problema all'algoritmo Pr.: 001 Ver.:1.0 Autore: prof. Michele Salvemini

Dettagli

EQUAZIONI non LINEARI

EQUAZIONI non LINEARI EQUAZIONI non LINEARI Francesca Pelosi Dipartimento di Matematica, Università di Roma Tor Vergata CALCOLO NUMERICO e PROGRAMMAZIONE http://www.mat.uniroma2.it/ pelosi/ EQUAZIONI non LINEARI p.1/44 EQUAZIONI

Dettagli

Text mining ed analisi di dati codificati in linguaggio naturale. Analisi esplorative di dati testualilezione

Text mining ed analisi di dati codificati in linguaggio naturale. Analisi esplorative di dati testualilezione Text mining ed analisi di dati codificati in linguaggio naturale Analisi esplorative di dati testualilezione 2 Le principali tecniche di analisi testuale Facendo riferimento alle tecniche di data mining,

Dettagli

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1

Cross Software ltd Malta Pro.Sy.T Srl. Il gestionale come l'avete sempre sognato... Pag. 1 Il gestionale come l'avete sempre sognato... Pag. 1 Le funzionalità di X-Cross La sofisticata tecnologia di CrossModel, oltre a permettere di lavorare in Internet come nel proprio ufficio e ad avere una

Dettagli

Matematica B - a.a 2006/07 p. 1

Matematica B - a.a 2006/07 p. 1 Matematica B - a.a 2006/07 p. 1 Definizione 1. Un sistema lineare di m equazioni in n incognite, in forma normale, è del tipo a 11 x 1 + + a 1n x n = b 1 a 21 x 1 + + a 2n x n = b 2 (1) = a m1 x 1 + +

Dettagli

I Valori del Manifesto Agile sono direttamente applicabili a Scrum:!

I Valori del Manifesto Agile sono direttamente applicabili a Scrum:! Scrum descrizione I Principi di Scrum I Valori dal Manifesto Agile Scrum è il framework Agile più noto. E la sorgente di molte delle idee che si trovano oggi nei Principi e nei Valori del Manifesto Agile,

Dettagli

Attenzione e Funzioni Esecutive Definizione Psicologica, Basi Neurali, Valutazione neuropsicologica

Attenzione e Funzioni Esecutive Definizione Psicologica, Basi Neurali, Valutazione neuropsicologica Attenzione e Funzioni Esecutive Definizione Psicologica, Basi Neurali, Valutazione neuropsicologica Cosimo Urgesi Università di Udine e IRCCS E. Medea L attenzione Sottende un ampia classe di processi

Dettagli

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo. DALLE PESATE ALL ARITMETICA FINITA IN BASE 2 Si è trovato, partendo da un problema concreto, che con la base 2, utilizzando alcune potenze della base, operando con solo addizioni, posso ottenere tutti

Dettagli

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione. Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale

Dettagli

Legge del Raffreddamento di Newton

Legge del Raffreddamento di Newton Legge del Raffreddamento di Newton www.lepla.eu Obiettivo L'obiettivo di questo esperimento è studiare l'andamento temporale della temperatura di un oggetto che si raffredda e trovare un modello matematico

Dettagli

DAL PROBLEMA AL PROGRAMMA

DAL PROBLEMA AL PROGRAMMA 1. I PROBLEMI E LA LORO SOLUZIONE DAL PROBLEMA AL PROGRAMMA L'uomo, per affrontare gli innumerevoli problemi postigli dallo sviluppo della civiltà, si è avvalso della scienza e della tecnica, i cui destini

Dettagli

GARANZIA LEGALE DEL VENDITORE

GARANZIA LEGALE DEL VENDITORE GARANZIA LEGALE DEL VENDITORE Tutti i prodotti che compri da Apple, anche quelli non a marchio Apple, sono coperti dalla garanzia legale di due anni del venditore prevista dal Codice del Consumo (Decreto

Dettagli

METODO DEI MINIMI QUADRATI. Quest articolo discende soprattutto dai lavori di Deming, Press et al. (Numerical Recipes) e Jefferys.

METODO DEI MINIMI QUADRATI. Quest articolo discende soprattutto dai lavori di Deming, Press et al. (Numerical Recipes) e Jefferys. METODO DEI MINIMI QUADRATI GIUSEPPE GIUDICE Sommario Il metodo dei minimi quadrati è trattato in tutti i testi di statistica e di elaborazione dei dati sperimentali, ma non sempre col rigore necessario

Dettagli

SCUOLA PRIMARIA DI MONTE VIDON COMBATTE CLASSE V INS. VIRGILI MARIA LETIZIA

SCUOLA PRIMARIA DI MONTE VIDON COMBATTE CLASSE V INS. VIRGILI MARIA LETIZIA SCUOLA PRIMARIA DI MONTE VIDON COMBATTE CLASSE V INS. VIRGILI MARIA LETIZIA Regoli di Nepero Moltiplicazioni In tabella Moltiplicazione a gelosia Moltiplicazioni Con i numeri arabi Regoli di Genaille Moltiplicazione

Dettagli

Trattamento aria Regolatore di pressione proporzionale. Serie 1700

Trattamento aria Regolatore di pressione proporzionale. Serie 1700 Trattamento aria Serie 7 Serie 7 Trattamento aria Trattamento aria Serie 7 Serie 7 Trattamento aria +24VDC VDC OUTPUT MICROPROCESS. E P IN EXH OUT Trattamento aria Serie 7 Serie 7 Trattamento aria 7 Trattamento

Dettagli

MATRICI E DETERMINANTI

MATRICI E DETERMINANTI MATRICI E DETERMINANTI 1. MATRICI Si ha la seguente Definizione 1: Un insieme di numeri, reali o complessi, ordinati secondo righe e colonne è detto matrice di ordine m x n, ove m è il numero delle righe

Dettagli

Introduzione ad Access

Introduzione ad Access Introduzione ad Access Luca Bortolussi Dipartimento di Matematica e Informatica Università degli studi di Trieste Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale

Dettagli

Studente: SANTORO MC. Matricola : 528

Studente: SANTORO MC. Matricola : 528 CORSO di LAUREA in INFORMATICA Corso di CALCOLO NUMERICO a.a. 2004-05 Studente: SANTORO MC. Matricola : 528 PROGETTO PER L ESAME 1. Sviluppare una versione dell algoritmo di Gauss per sistemi con matrice

Dettagli

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione

Processi (di sviluppo del) software. Fase di Analisi dei Requisiti. Esempi di Feature e Requisiti. Progettazione ed implementazione Processi (di sviluppo del) software Fase di Analisi dei Requisiti Un processo software descrive le attività (o task) necessarie allo sviluppo di un prodotto software e come queste attività sono collegate

Dettagli

IFRS 2 Pagamenti basati su azioni

IFRS 2 Pagamenti basati su azioni Pagamenti basati su azioni International Financial Reporting Standard 2 Pagamenti basati su azioni FINALITÀ 1 Il presente IRFS ha lo scopo di definire la rappresentazione in bilancio di una entità che

Dettagli

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme 1. L insieme R. Per lo svolgimento del corso risulta particolarmente utile considerare l insieme R = R {, + }, detto anche retta reale estesa, che si ottiene aggiungendo all insieme dei numeri reali R

Dettagli

1. Intorni di un punto. Punti di accumulazione.

1. Intorni di un punto. Punti di accumulazione. 1. Intorni di un punto. Punti di accumulazione. 1.1. Intorni circolari. Assumiamo come distanza di due numeri reali x e y il numero non negativo x y (che, come sappiamo, esprime la distanza tra i punti

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

Cicli in Visual Basic for Application. For contatore = inizio To fine istruzioni Next contatore

Cicli in Visual Basic for Application. For contatore = inizio To fine istruzioni Next contatore Cicli in Visual Basic for Application Le strutture del programma che ripetono l'esecuzione di una o più istruzioni sono chiamate Cicli. Alcune strutture per i cicli sono costruite in modo da venire eseguite

Dettagli

Funzioni di più variabili. Ottimizzazione libera e vincolata

Funzioni di più variabili. Ottimizzazione libera e vincolata libera e vincolata Generalità. Limiti e continuità per funzioni di 2 o Piano tangente. Derivate successive Formula di Taylor libera vincolata Lo ordinario è in corrispondenza biunivoca con i vettori di

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari

Dettagli

HORIZON SQL CONFIGURAZIONE DI RETE

HORIZON SQL CONFIGURAZIONE DI RETE 1-1/9 HORIZON SQL CONFIGURAZIONE DI RETE 1 CARATTERISTICHE DI UN DATABASE SQL...1-2 Considerazioni generali... 1-2 Concetto di Server... 1-2 Concetto di Client... 1-2 Concetto di database SQL... 1-2 Vantaggi...

Dettagli

Esercizi per il corso di Algoritmi e Strutture Dati

Esercizi per il corso di Algoritmi e Strutture Dati 1 Esercizi per il corso di Algoritmi e Strutture Dati Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, né in C++, etc. ). Di tutti gli algoritmi

Dettagli

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN)

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) System Overview di Mattia Bargellini 1 CAPITOLO 1 1.1 Introduzione Il seguente progetto intende estendere

Dettagli

Capitolo 9: PROPAGAZIONE DEGLI ERRORI

Capitolo 9: PROPAGAZIONE DEGLI ERRORI Capitolo 9: PROPAGAZIOE DEGLI ERRORI 9.1 Propagazione degli errori massimi ella maggior parte dei casi le grandezze fisiche vengono misurate per via indiretta. Il valore della grandezza viene cioè dedotto

Dettagli

TEORIA DELL UTILITÀ E DECISION PROCESS

TEORIA DELL UTILITÀ E DECISION PROCESS TEORIA DELL UTILITÀ E DECISION PROCESS 1 UTILITÀ Classicamente sinonimo di Desiderabilità Fisher (1930):... uno degli elementi che contribuiscono ad identificare la natura economica di un bene e sorge

Dettagli

Corso SOL Gestione catalogo libro moderno 21-22 settembre 2009

Corso SOL Gestione catalogo libro moderno 21-22 settembre 2009 Corso SOL Gestione catalogo libro moderno 21-22 settembre 2009 Introduzione generale Autenticazione dell operatore https://sebina1.unife.it/sebinatest Al primo accesso ai servizi di Back Office, utilizzando

Dettagli

Compito di SISTEMI E MODELLI. 19 Febbraio 2015

Compito di SISTEMI E MODELLI. 19 Febbraio 2015 Compito di SISTEMI E MODELLI 9 Febbraio 5 Non é ammessa la consultazione di libri o quaderni. Le risposte vanno giustificate. Saranno rilevanti per la valutazione anche l ordine e la chiarezza di esposizione.

Dettagli

di4g: Uno strumento di clustering per l analisi integrata di dati geologici

di4g: Uno strumento di clustering per l analisi integrata di dati geologici di4g: Uno strumento di clustering per l analisi integrata di dati geologici Alice Piva 1, Giacomo Gamberoni 1, Denis Ferraretti 1, Evelina Lamma 2 1 intelliware snc, via J.F.Kennedy 15, 44122 Ferrara,

Dettagli

Rappresentazione dei numeri in un calcolatore

Rappresentazione dei numeri in un calcolatore Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri in un calcolatore Lezione 2 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rappresentazione dei numeri

Dettagli

Minimizzazione di Reti Logiche Combinatorie Multi-livello

Minimizzazione di Reti Logiche Combinatorie Multi-livello Minimizzazione di Reti Logiche Combinatorie Multi-livello Maurizio Palesi Maurizio Palesi 1 Introduzione Obiettivo della sintesi logica: ottimizzazione delle cifre di merito area e prestazioni Prestazioni:

Dettagli

Percorsi di matematica per il ripasso e il recupero

Percorsi di matematica per il ripasso e il recupero Giacomo Pagina Giovanna Patri Percorsi di matematica per il ripasso e il recupero 1 per la Scuola secondaria di secondo grado UNITÀ CMPIONE Edizioni del Quadrifoglio à t i n U 1 Insiemi La teoria degli

Dettagli

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table Universita' di Ferrara Dipartimento di Matematica e Informatica Algoritmi e Strutture Dati Rappresentazione concreta di insiemi e Hash table Copyright 2006-2015 by Claudio Salati. Lez. 9a 1 Rappresentazione

Dettagli

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12 A / A / Seconda Prova di Ricerca Operativa Cognome Nome Numero Matricola Nota: LA RISOLUZIONE CORRETTA DEGLI ESERCIZI CONTRADDISTINTI DA UN ASTERISCO È CONDIZIONE NECESSARIA PER IL RAGGIUNGIMENTO DELLA

Dettagli

Quando troncare uno sviluppo in serie di Taylor

Quando troncare uno sviluppo in serie di Taylor Quando troncare uno sviluppo in serie di Taylor Marco Robutti October 13, 2014 Lo sviluppo in serie di Taylor di una funzione è uno strumento matematico davvero molto utile, e viene spesso utilizzato in

Dettagli

Moto sul piano inclinato (senza attrito)

Moto sul piano inclinato (senza attrito) Moto sul piano inclinato (senza attrito) Per studiare il moto di un oggetto (assimilabile a punto materiale) lungo un piano inclinato bisogna innanzitutto analizzare le forze che agiscono sull oggetto

Dettagli

Il Business Process Management: nuova via verso la competitività aziendale

Il Business Process Management: nuova via verso la competitività aziendale Il Business Process Management: nuova via verso la competitività Renata Bortolin Che cosa significa Business Process Management? In che cosa si distingue dal Business Process Reingeneering? Cosa ha a che

Dettagli

White Paper. Operational DashBoard. per una Business Intelligence. in real-time

White Paper. Operational DashBoard. per una Business Intelligence. in real-time White Paper Operational DashBoard per una Business Intelligence in real-time Settembre 2011 www.axiante.com A Paper Published by Axiante CAMBIARE LE TRADIZIONI C'è stato un tempo in cui la Business Intelligence

Dettagli

Nella prima lezione... Che cos è il Digitale. Prima parte: Che cos è il Digitale. Che cos è il Digitale. Che cos è il Digitale

Nella prima lezione... Che cos è il Digitale. Prima parte: Che cos è il Digitale. Che cos è il Digitale. Che cos è il Digitale !"$#%!" #% Nella prima lezione... Definizione di Informatica Cosa è una soluzione algoritmica Esempi di algoritmi cicalese@dia.unisa.it 2 Prima parte: Società dell informazione Ma cosa vuol dire società

Dettagli

Accuratezza di uno strumento

Accuratezza di uno strumento Accuratezza di uno strumento Come abbiamo già accennato la volta scora, il risultato della misurazione di una grandezza fisica, qualsiasi sia lo strumento utilizzato, non è mai un valore numerico X univocamente

Dettagli

Guida rapida all uso di ECM Titanium

Guida rapida all uso di ECM Titanium Guida rapida all uso di ECM Titanium Introduzione Questa guida contiene una spiegazione semplificata del funzionamento del software per Chiputilizzare al meglio il Tuning ECM Titanium ed include tutte

Dettagli

GUIDA RAPIDA emagister-agora Edizione BASIC

GUIDA RAPIDA emagister-agora Edizione BASIC GUIDA RAPIDA emagister-agora Edizione BASIC Introduzione a emagister-agora Interfaccia di emagister-agora Configurazione dell offerta didattica Richieste d informazioni Gestione delle richieste d informazioni

Dettagli

Teoria dei giochi Gioco Interdipendenza strategica

Teoria dei giochi Gioco Interdipendenza strategica Teoria dei giochi Gioco Interdipendenza strategica soggetti decisionali autonomi con obiettivi (almeno parzialmente) contrapposti guadagno di ognuno dipende dalle scelte sue e degli altri Giocatori razionali

Dettagli

ED. Equazioni cardinali della dinamica

ED. Equazioni cardinali della dinamica ED. Equazioni cardinali della dinamica Dinamica dei sistemi La dinamica dei sistemi di punti materiali si può trattare, rispetto ad un osservatore inerziale, scrivendo l equazione fondamentale della dinamica

Dettagli

RELAZIONE TRA DUE VARIABILI QUANTITATIVE

RELAZIONE TRA DUE VARIABILI QUANTITATIVE RELAZIONE TRA DUE VARIABILI QUANTITATIVE Quando si considerano due o più caratteri (variabili) si possono esaminare anche il tipo e l'intensità delle relazioni che sussistono tra loro. Nel caso in cui

Dettagli

Il mondo in cui viviamo

Il mondo in cui viviamo Il mondo in cui viviamo Il modo in cui lo vediamo/ conosciamo Dalle esperienze alle idee Dalle idee alla comunicazione delle idee Quando sono curioso di una cosa, matematica o no, io le faccio delle domande.

Dettagli

Parte 3. Rango e teorema di Rouché-Capelli

Parte 3. Rango e teorema di Rouché-Capelli Parte 3. Rango e teorema di Rouché-Capelli A. Savo Appunti del Corso di Geometria 203-4 Indice delle sezioni Rango di una matrice, 2 Teorema degli orlati, 3 3 Calcolo con l algoritmo di Gauss, 6 4 Matrici

Dettagli

FUNZIONI AVANZATE DI EXCEL

FUNZIONI AVANZATE DI EXCEL FUNZIONI AVANZATE DI EXCEL Inserire una funzione dalla barra dei menu Clicca sulla scheda "Formule" e clicca su "Fx" (Inserisci Funzione). Dalla finestra di dialogo "Inserisci Funzione" clicca sulla categoria

Dettagli

Rational Unified Process Introduzione

Rational Unified Process Introduzione Rational Unified Process Introduzione G.Raiss - A.Apolloni - 4 maggio 2001 1 Cosa è E un processo di sviluppo definito da Booch, Rumbaugh, Jacobson (autori dell Unified Modeling Language). Il RUP è un

Dettagli

ALGEBRA I: CARDINALITÀ DI INSIEMI

ALGEBRA I: CARDINALITÀ DI INSIEMI ALGEBRA I: CARDINALITÀ DI INSIEMI 1. CONFRONTO DI CARDINALITÀ E chiaro a tutti che esistono insiemi finiti cioè con un numero finito di elementi) ed insiemi infiniti. E anche chiaro che ogni insieme infinito

Dettagli

WINDOWS - Comandi rapidi da tastiera più utilizzati.

WINDOWS - Comandi rapidi da tastiera più utilizzati. WINDOWS - Comandi rapidi da tastiera più utilizzati. La prima colonna indica il tasto da premere singolarmente e poi rilasciare. La seconda e terza colonna rappresenta la combinazione dei i tasti da premere

Dettagli

La distribuzione Normale. La distribuzione Normale

La distribuzione Normale. La distribuzione Normale La Distribuzione Normale o Gaussiana è la distribuzione più importante ed utilizzata in tutta la statistica La curva delle frequenze della distribuzione Normale ha una forma caratteristica, simile ad una

Dettagli

Metodi numerici per la risoluzione di equazioni. Equazioni differenziali ordinarie

Metodi numerici per la risoluzione di equazioni. Equazioni differenziali ordinarie Metodi numerici per la risoluzione di equazioni differenziali ordinarie Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ Lezione 5-31 ottobre 2005 Outline 1 Il problema di Cauchy Il problema

Dettagli

Analisi statistica di dati biomedici Analysis of biologicalsignals

Analisi statistica di dati biomedici Analysis of biologicalsignals Analisi statistica di dati biomedici Analysis of biologicalsignals II Parte Verifica delle ipotesi (a) Agostino Accardo (accardo@units.it) Master in Ingegneria Clinica LM in Neuroscienze 2013-2014 e segg.

Dettagli

Così come le macchine meccaniche trasformano

Così come le macchine meccaniche trasformano DENTRO LA SCATOLA Rubrica a cura di Fabio A. Schreiber Il Consiglio Scientifico della rivista ha pensato di attuare un iniziativa culturalmente utile presentando in ogni numero di Mondo Digitale un argomento

Dettagli

MATEMATICA. { 2 x =12 y 3 y +8 x =0, si pone il problema di trovare, se esistono, un numero x ed un numero y che risolvano entrambe le equazioni.

MATEMATICA. { 2 x =12 y 3 y +8 x =0, si pone il problema di trovare, se esistono, un numero x ed un numero y che risolvano entrambe le equazioni. MATEMATICA. Sistemi lineari in due equazioni due incognite. Date due equazioni lineari nelle due incognite x, y come ad esempio { 2 x =12 y 3 y +8 x =0, si pone il problema di trovare, se esistono, un

Dettagli

Applicazioni dell'analisi in più variabili a problemi di economia

Applicazioni dell'analisi in più variabili a problemi di economia Applicazioni dell'analisi in più variabili a problemi di economia La diversità tra gli agenti economici è alla base della nascita dell attività economica e, in generale, lo scambio di beni e servizi ha

Dettagli

Il concetto di valore medio in generale

Il concetto di valore medio in generale Il concetto di valore medio in generale Nella statistica descrittiva si distinguono solitamente due tipi di medie: - le medie analitiche, che soddisfano ad una condizione di invarianza e si calcolano tenendo

Dettagli

2 Formulazione dello shortest path come problema di flusso

2 Formulazione dello shortest path come problema di flusso Strumenti della Teoria dei Giochi per l Informatica A.A. 2009/10 Lecture 20: 28 Maggio 2010 Cycle Monotonicity Docente: Vincenzo Auletta Note redatte da: Annibale Panichella Abstract In questa lezione

Dettagli

IDENTIFICAZIONE dei MODELLI e ANALISI dei DATI. Lezione 40: Filtro di Kalman - introduzione. Struttura ricorsiva della soluzione.

IDENTIFICAZIONE dei MODELLI e ANALISI dei DATI. Lezione 40: Filtro di Kalman - introduzione. Struttura ricorsiva della soluzione. IDENTIFICAZIONE dei MODELLI e ANALISI dei DATI Lezione 40: Filtro di Kalman - introduzione Cenni storici Filtro di Kalman e filtro di Wiener Formulazione del problema Struttura ricorsiva della soluzione

Dettagli