954 resultados para intelligenza artificiale semantica problemi matematica NLP linguaggio naturale analisi logica prolog risoluzione modello
Resumo:
Nell'ambito dell'Intelligenza Artificiale uno dei problemi aperti e piu difficile da risolvere e la comprensione del linguaggio naturale. La complessita sintattica e la conoscenza che bisogna avere per comprendere riferimenti, relazioni e concetti impliciti rendono questo problema molto interessante e la sua risoluzione di grande importanza per lo sviluppo di applicazioni che possano interagire in modo diretto con le persone. Questo lavoro di tesi non pretende di studiare e trovare una soluzione completa al suddetto problema, ma si prefigge come obiettivo quello di comprendere e risolvere problemi matematici di tipo logico ed aritmetico scritti in lingua inglese. La difficolta del lavoro si riduce in quanto non si devono considerare gli infiniti ambiti conoscitivi e puo concentrarsi su un'unica interpretazione del testo: quella matematica. Nonostante questa semplificazione il problema da affrontare rimane di grande difficolta poiche e comunque necessario confrontarsi con la complessita del linguaggio naturale. Esempi di problemi matematici che si intende risolvere si possono trovare presso il sito web dell'Universita della Bocconi nella sezione dei Giochi Matematici. Questi problemi richiedono la conoscenza di concetti di logica, insiemistica e di algebra lineare per essere risolti. Il modello matematico che descrive questi problemi non e complesso ed una volta dedotto correttamente e di facile risoluzione tramite un risolutore automatico. La difficolta consiste nel comprendere correttamente il testo ed estrapolarne il giusto modello. Il lavoro che si andra ad esporre nel seguito parte dall'analisi del testo ed arriva fino alla risoluzione del quesito matematico. Si parte quindi da un'analisi del testo con scopo generale seguita da un'analisi semantica volta alla costruzione del modello matematico che andra poi risolto da un risolutore automatico che ne restituira il risultato finale.
Resumo:
Una parte importante della ricerca in Intelligenza Artificiale e guidata dal confronto tra una macchina ed un essere umano nello svolgere un determinato compito. In questa Tesi viene considerata la sfida della risoluzione automatica di giochi matematici. Dopo un'introduzione sulle principali caratteristiche del problema, verranno esaminati i lavori correlati esistenti e i componenti utilizzabili al fine di proporre uno strumento che, a partire da un testo in lingua Italiana, ricavi il modello del quesito in esso descritto.
Resumo:
L'informatica e le sue tecnologie nella società moderna si riassumono spesso in un assioma fuorviante: essa, infatti, è comunemente legata al concetto che ciò che le tecnologie ci offrono può essere accessibile da tutti e sfruttato, all'interno della propria quotidianità, in modi più o meno semplici. Anche se quello appena descritto è un obiettivo fondamentale del mondo high-tech, occorre chiarire subito una questione: l'informatica non è semplicemente tutto ciò che le tecnologie ci offrono, perchè questo pensiero sommario fa presagire ad un'informatica "generalizzante"; l'informatica invece si divide tra molteplici ambiti, toccando diversi mondi inter-disciplinari. L'importanza di queste tecnologie nella società moderna deve spingerci a porre domande, riflessioni sul perchè l'informatica, in tutte le sue sfaccettature, negli ultimi decenni, ha portato una vera e propria rivoluzione nelle nostre vite, nelle nostre abitudini, e non di meno importanza, nel nostro contesto lavorativo e aziendale, e non ha alcuna intenzione (per fortuna) di fermare le proprie possibilità di sviluppo. In questo trattato ci occuperemo di definire una particolare tecnica moderna relativa a una parte di quel mondo complesso che viene definito come "Intelligenza Artificiale". L'intelligenza Artificiale (IA) è una scienza che si è sviluppata proprio con il progresso tecnologico e dei suoi potenti strumenti, che non sono solo informatici, ma soprattutto teorico-matematici (probabilistici) e anche inerenti l'ambito Elettronico-TLC (basti pensare alla Robotica): ecco l'interdisciplinarità. Concetto che è fondamentale per poi affrontare il nocciolo del percorso presentato nel secondo capitolo del documento proposto: i due approcci possibili, semantico e probabilistico, verso l'elaborazione del linguaggio naturale(NLP), branca fondamentale di IA. Per quanto darò un buono spazio nella tesi a come le tecniche di NLP semantiche e statistiche si siano sviluppate nel tempo, verrà prestata attenzione soprattutto ai concetti fondamentali di questi ambiti, perché, come già detto sopra, anche se è fondamentale farsi delle basi e conoscere l'evoluzione di queste tecnologie nel tempo, l'obiettivo è quello a un certo punto di staccarsi e studiare il livello tecnologico moderno inerenti a questo mondo, con uno sguardo anche al domani: in questo caso, la Sentiment Analysis (capitolo 3). Sentiment Analysis (SA) è una tecnica di NLP che si sta definendo proprio ai giorni nostri, tecnica che si è sviluppata soprattutto in relazione all'esplosione del fenomeno Social Network, che viviamo e "tocchiamo" costantemente. L'approfondimento centrale della tesi verterà sulla presentazione di alcuni esempi moderni e modelli di SA che riguardano entrambi gli approcci (statistico e semantico), con particolare attenzione a modelli di SA che sono stati proposti per Twitter in questi ultimi anni, valutando quali sono gli scenari che propone questa tecnica moderna, e a quali conseguenze contestuali (e non) potrebbe portare questa particolare tecnica.
Resumo:
Questa tesi riguarda la progettazione di un motore di ricerca semantico a partire dalla costruzione di un'ontologia pesata di token, possibile grazie ad un'elaborazione del linguaggio naturale dei testi ed all'utilizzo di altri strumenti per la descrizione dell'intorno semantico dei termini.
Analisi e sviluppo di un engine per l'interrogazione di endpoints SPARQL tramite linguaggio naturale
Resumo:
Presentazione e discussione critica del test di Turing e degli aspetti filosofici correlati all'intelligenza artificiale.
Resumo:
L'elaborato affronta la progettazione di un'intelligenza artificiale per giochi strategici real-time in cui viene descritta la suddivisione dei livelli di astrazione e vengono prese in considerazione due architetture specifiche, SORTS ed EISBot, facendo particolare attenzione sulle problematiche riscontrate nell'ambiente di gioco.
Resumo:
Questo elaborato concerne la revisione della letteratura scientifica relativa alla teorizzazione e realizzazione tecnologica del memristor, un nuovo componente elettronico teorizzato nel 1971 e realizzato solo nel 2008 nei laboratori della HP (Hewlett Packard, Palo Alto, California). Dopo una descrizione in termini matematici della teoria fisica alla base del dispositivo e del suo funzionamento, viene descritta la sua realizzazione tecnologica e il corrispettivo modello teorico. Succesivamente il lavoro discute la possibile analogia tra il funzionamento del memristor ed il funzionamento di neuroni e sinapsi biologiche all'interno del Sistema Nervoso Centrale. Infine, vengono descritte le architetture recentemente proposte per l'implementazione di reti neurali artificiali fondate su un sistema computazionale parallelo e realizzate mediante sistemi ibridi transistors/memristors.
Resumo:
La tesi è stata incentrata sul gioco «Indovina chi?» per l’identificazione da parte del robot Nao di un personaggio tramite la sua descrizione. In particolare la descrizione avviene tramite domande e risposte L’obiettivo della tesi è la progettazione di un sistema in grado di capire ed elaborare dei dati comunicati usando un sottoinsieme del linguaggio naturale, estrapolarne le informazioni chiave e ottenere un riscontro con informazioni date in precedenza. Si è quindi programmato il robot Nao in modo che sia in grado di giocare una partita di «Indovina chi?» contro un umano comunicando tramite il linguaggio naturale. Sono state implementate regole di estrazione e categorizzazione per la comprensione del testo utilizzando Cogito, una tecnologia brevettata dall'azienda Expert System. In questo modo il robot è in grado di capire le risposte e rispondere alle domande formulate dall'umano mediante il linguaggio naturale. Per il riconoscimento vocale è stata utilizzata l'API di Google e PyAudio per l'utilizzo del microfono. Il programma è stato implementato in Python e i dati dei personaggi sono memorizzati in un database che viene interrogato e modificato dal robot. L'algoritmo del gioco si basa su calcoli probabilistici di vittoria del robot e sulla scelta delle domande da proporre in base alle risposte precedentemente ricevute dall'umano. Le regole semantiche realizzate danno la possibilità al giocatore di formulare frasi utilizzando il linguaggio naturale, inoltre il robot è in grado di distinguere le informazioni che riguardano il personaggio da indovinare senza farsi ingannare. La percentuale di vittoria del robot ottenuta giocando 20 partite è stata del 50%. Il data base è stato sviluppato in modo da poter realizzare un identikit completo di una persona, oltre a quello dei personaggi del gioco. È quindi possibile ampliare il progetto per altri scopi, oltre a quello del gioco, nel campo dell'identificazione.
Resumo:
Agent-oriented programming (AOP) è un paradigma di programmazione che concepisce un software come insieme di agenti che possiedono caratteristiche di autonomia, proattività e che sono in grado di comunicare con altri agenti. Sebbene sia stato impiegato soprattutto nell'ambito dell'intelligenza artificiale questo tipo di programmazione si rivela utile per lo sviluppo di sistemi distribuiti riuscendo a gestire agilmente problemi di concorrenza. Lo scopo di questa tesi è analizzare le caratteristiche del paradigma e dei software basati su agenti, utilizzando come caso di studio Sarl, un linguaggio general-purpose molto recente. La parte principale del lavoro consiste nella descrizione dei modelli teorici che hanno portato alla nascita della programmazione ad agenti, in particolare del modello BDI, e dei principali framework per lo sviluppo di sistemi multi-agente.
Resumo:
Lo studio dell’intelligenza artificiale si pone come obiettivo la risoluzione di una classe di problemi che richiedono processi cognitivi difficilmente codificabili in un algoritmo per essere risolti. Il riconoscimento visivo di forme e figure, l’interpretazione di suoni, i giochi a conoscenza incompleta, fanno capo alla capacità umana di interpretare input parziali come se fossero completi, e di agire di conseguenza. Nel primo capitolo della presente tesi sarà costruito un semplice formalismo matematico per descrivere l’atto di compiere scelte. Il processo di “apprendimento” verrà descritto in termini della massimizzazione di una funzione di prestazione su di uno spazio di parametri per un ansatz di una funzione da uno spazio vettoriale ad un insieme finito e discreto di scelte, tramite un set di addestramento che descrive degli esempi di scelte corrette da riprodurre. Saranno analizzate, alla luce di questo formalismo, alcune delle più diffuse tecniche di artificial intelligence, e saranno evidenziate alcune problematiche derivanti dall’uso di queste tecniche. Nel secondo capitolo lo stesso formalismo verrà applicato ad una ridefinizione meno intuitiva ma più funzionale di funzione di prestazione che permetterà, per un ansatz lineare, la formulazione esplicita di un set di equazioni nelle componenti del vettore nello spazio dei parametri che individua il massimo assoluto della funzione di prestazione. La soluzione di questo set di equazioni sarà trattata grazie al teorema delle contrazioni. Una naturale generalizzazione polinomiale verrà inoltre mostrata. Nel terzo capitolo verranno studiati più nel dettaglio alcuni esempi a cui quanto ricavato nel secondo capitolo può essere applicato. Verrà introdotto il concetto di grado intrinseco di un problema. Verranno inoltre discusse alcuni accorgimenti prestazionali, quali l’eliminazione degli zeri, la precomputazione analitica, il fingerprinting e il riordino delle componenti per lo sviluppo parziale di prodotti scalari ad alta dimensionalità. Verranno infine introdotti i problemi a scelta unica, ossia quella classe di problemi per cui è possibile disporre di un set di addestramento solo per una scelta. Nel quarto capitolo verrà discusso più in dettaglio un esempio di applicazione nel campo della diagnostica medica per immagini, in particolare verrà trattato il problema della computer aided detection per il rilevamento di microcalcificazioni nelle mammografie.
Resumo:
L’intelligenza artificiale, ovvero lo studio e la progettazione di sistemi intelligenti, mira a riprodurre alcuni aspetti dell’intelligenza umana, come il linguaggio e il ragionamento deduttivo, nei computer. La robotica, invece, cerca spesso di ricreare nei robot comportamenti adattativi, come l’abilità di manipolare oggetti o camminare, mediante l’utilizzo di algoritmi in grado di generare comportamenti desiderati. Una volta realizzato uno di questi algoritmi specificamente per una certa abilità, si auspica che tale algoritmo possa essere riutilizzato per generare comportamenti più complessi fino a che il comportamento adattativo del robot non si mostri ad un osservatore esterno come intelligente; purtroppo questo non risulta sempre possibile e talvolta per generare comportamenti di maggiore complessità è necessario riscrivere totalmente gli algoritmi. Appare quindi evidente come nel campo della robotica l’attenzione sia incentrata sul comportamento, perché le azioni di un robot generano nuove stimolazioni sensoriali, che a loro volta influiscono sulle sue azioni future. Questo tipo di intelligenza artificiale (chiamata propriamente embodied cognition) differisce da quella propriamente detta per il fatto che l’intelligenza non emerge dall’introspezione ma dalle interazioni via via più complesse che la macchina ha con l’ambiente circostante. Gli esseri viventi presenti in natura mostrano, infatti, alcuni fenomeni che non sono programmati a priori nei geni, bensì frutto dell’interazione che l’organismo ha con l’ambiente durante le varie fasi del suo sviluppo. Volendo creare una macchina che sia al contempo autonoma e adattativa, si devono affrontare due problemi: il primo è relativo alla difficoltà della progettazione di macchine autonome, il secondo agli ingenti costi di sviluppo dei robot. Alla fine degli anni ’80 nasce la robotica evolutiva che, traendo ispirazione dall’evoluzione biologica, si basa sull’utilizzo di software in grado di rappresentare popolazioni di robot virtuali e la capacità di farli evolvere all’interno di un simulatore, in grado di rappresentare le interazioni tra mente e corpo del robot e l’ambiente, per poi realizzare fisicamente solo i migliori. Si utilizzano algoritmi evolutivi per generare robot che si adattano, anche dal punto di vista della forma fisica, all’ambiente in cui sono immersi. Nel primo capitolo si tratterà di vita ed evoluzione artificiali, concetti che verranno ripresi nel secondo capitolo, dedicato alle motivazioni che hanno portato alla nascita della robotica evolutiva, agli strumenti dei quali si avvale e al rapporto che ha con la robotica tradizionale e le sue declinazioni. Nel terzo capitolo si presenteranno i tre formalismi mediante i quali si sta cercando di fornire un fondamento teorico a questa disciplina. Infine, nel quarto capitolo saranno mostrati i problemi che ancora oggi non hanno trovato soluzione e le sfide che si devono affrontare trattando di robotica evolutiva.
Resumo:
I sistemi esperti sono programmi che cercano di riprodurre le prestazioni di esperti umani nella risoluzione di problemi specifici. Essi rappresentano il più conosciuto risultato pratico della ricerca in intelligenza artificiale. Ne vengono analizzate la struttura interna, i paragidmi su cui si basano, i componenti che ne fanno parte e i linguaggi di programmazione principali. Viene studiato uno dei primi distemi esperti: il MYCIN. Esso opera nel campo medico ed è stato di notevole importanza e innovazione nei primi anni in cui questi sistemi venivano sviluppati.
Resumo:
La dieta, nell’antica medicina greca, rappresentava il complesso delle norme di vita, come l’alimentazione, l’attività fisica, il riposo, atte a mantenere lo stato di salute di una persona. Al giorno d’oggi le si attribuisce un significato fortemente legato all’alimentazione, puo` riferirsi al complesso di cibi che una persona mangia abitualmente oppure, con un messaggio un po' più moderno, ad una prescrizione di un regime alimentare da parte di un medico. Ogni essere umano mangia almeno tre volte al giorno, ognuno in base al proprio stile di vita, cultura, età, etc. possiede differenti abitudini alimentari che si ripercuotono sul proprio stato di salute. Inconsciamente tutti tengono traccia degli alimenti mangiati nei giorni precedenti, chi più chi meno, cercando di creare quindi una pianificazione di cosa mangiare nei giorni successivi, in modo da variare i pasti o semplicemente perchè si segue un regime alimentare particolare per un certo periodo. Diventa quindi fondamentale tracciare questa pianificazione, in tal modo si puo' tenere sotto controllo la propria alimentazione, che è in stretta relazione con il proprio stato di salute e stress, e si possono applicare una serie di aggiustamenti dove necessario. Questo è quello che cerca di fare il “Menu Planning”, offrire una sorta di guida all’alimentazione, permettendo così di aver sotto controllo tutti gli aspetti legati ad essa. Si pensi, ad esempio, ai prezzi degli alimenti, chiunque vorrebbe minimizzare la spesa, mangiare quello che gli piace senza dover per forza rinunciare a quale piccolo vizio quotidiano. Con le tecniche di “Menu Planning” è possibile avere una visione di insieme della propria alimentazione. La prima formulazione matematica del “Menu Planning” (allora chiamato diet problem) nacque durante gli anni ’40, l’esercito Americano allora impegnano nella Seconda Guerra Mondiale voleva abbassare i costi degli alimenti ai soldati mantenendo però inalterata la loro dieta. George Stingler, economista americano, trovò una soluzione, formulando un problema di ottimizzazione e vincendo il premio Nobel in Economia nel 1982. Questo elaborato tratta dell’automatizzazione di questo problema e di come esso possa essere risolto con un calcolatore, facendo soprattutto riferimento a particolari tecniche di intelligenza artificiale e di rappresentazione della conoscenza, nello specifico il lavoro si è concentrato sulla progettazione e sviluppo di un ES case-based per risolvere il problema del “Menu Planning”. Verranno mostrate varie tecniche per la rappresentazione della conoscenza e come esse possano essere utilizzate per fornire supporto ad un programma per elaboratore, partendo dalla Logica Proposizionale e del Primo Ordine, fino ad arrivare ai linguaggi di Description Logic e Programmazione Logica. Inoltre si illustrerà come è possibile raccogliere una serie di informazioni mediante procedimenti di Knowledge Engineering. A livello concettuale è stata introdotta un’architettura che mette in comunicazione l’ES e un Ontologia di alimenti con l’utilizzo di opportuni framework di sviluppo. L’idea è quella di offrire all’utente la possibilità di vedere la propria pianificazione settimanale di pasti e dare dei suggerimenti su che cibi possa mangiare durante l’arco della giornata. Si mostreranno quindi le potenzialità di tale architettura e come essa, tramite Java, riesca a far interagire ES case-based e Ontologia degli alimenti.