giovedì, gennaio 10, 2008

Welcome to Dublin Luca

Eccomi sbarcato a tempo pieno a Dublin, capitale dell'Irlanda. Finalmente riesco a scrivere dal mio nuovo imac super potentissimo. Ho un nuovo conto corrente presso la bank of Ireland, ho un nuovo ufficio, dei nuovi colleghi fra cui il mitico Giangus, un francese ed un Giordano. Ovviamente da buoni italiani siamo arrivati per primi e ci siamo presi le scrivanie migliori davanti alla finestra.

Oggi, dopo tre giorni estenuanti di ricerca abbiamo trovato una casa, proprio in centro, in Temple bar, a un tiro di schioppo dal Trinity College. La casa praticamente domina il famoso quartiere pieno di pub: se abbiamo bisogno di una guinness non ci resta che scendere le scale, anche in ciabatte, e chiaccherare con qualche irlandese.

Adesso l'obiettivo e' un altro: SOPHIE in 6 months. SOPHIE e' il nome del progetto, un progetto di intelligenza artificiale, Computational Trust: a Reasoning Engine for Implicit Web Ranking using Users Activity. Con il grande Pierpaolo, ormai noto volto al Dipartimento di Informatica del TCD, insieme a Stephen, vedremo di riuscire ad avere un prototipo funzionante di Sophie in 6 mesi, per poi iniziare l'evaluation

Welcome to Dublin Luca

Etichette: , , , , ,

domenica, gennaio 29, 2006

Il connessionismo di Turing

L’interesse di Turing sulla possibilità che le macchine possano pensare e il suo sogno di modellare la mente umana con una macchina, risalgono all’uscita del suo scritto sull’intelligenza meccanica del 1948. Turing non aveva un grande interesse nel pubblicizzare la sua idea, quindi il paper non venne pubblicato fino al 1968, 14 anni dopo la sua morte, nel giornale Machinery Intelligence. E' sorprendente che il suo principale alla NPL, il signor Charles Darwin, nipote del più conosciuto naturalista inglese, abbandonò il manoscritto del 1948 ritenendolo un saggio di uno scolaro.

Dal punto di vista della ricerca sulle reti neurali, il connessionismo è un movimento delle scienze cognitive che si prefigge di illustrare le abilità intellettuali umane usando le reti neurali artificiali. Il connessionismo nell’intelligenza artificiale propone un nuovo modello per la costruzione e programmazione di hardware e software ispirati al cervello umano, denominato “Parallel Distributed Processing (PDP)” che elabora le informazioni dei vari sensi in maniera parallela, evitando il “Von Neumann - Bottleneck” dei modelli contemporanei, dove tutte le informazioni devono passare serialmente per la CPU.

Turing denomina la sua rete con il termine “macchine non organizzate” e non c’è dubbio che egli fosse ispirato al sistema nervoso umano quando le concepì. Questi modelli sono stati costruiti in un modo casuale e sono organizzati da un agente esterno, un “insegnante”. Inizialmente le macchine sono completamente non organizzate, comparabili al cervello di un bambino, ma a seguito di un appropriata interferenza, ossia una precisa educazione, esse potranno essere organizzate per produrre il risultato prefissato. Non sarebbe leale aspettarsi che una macchina uscita fresca dalla fabbrica sia completa come un laureato. Egli ha avuto contatti con altri esseri umani per venti e più anni, e questi stimoli hanno continuamente modellato il suo comportamento lungo tutta la vita.

`E possibile affermare che nella misura in cui una persona è una
macchina, lo è solo come strumento soggetto a moltissime interferenze.

La corteccia cerebrale di un neonato può essere vista come una macchina non organizzata, che può essere organizzata con un opportuno addestranento tramite l’interferenza. L’educazione di un bambino dipende in larga misura da un sistema di premi e punizioni e questo suggerisce che dovrebbe essere possibile realizzare
l’organizzazione con solo due stimoli di interferenza, uno per “piacere” o “premio” e uno per “dolore” o “punizione”.

Alcune critiche affermano che è impossibile realizzare una macchina veramente intelligente, infatti né l’intelligenza artificiale né la vita artificiale hanno prodotto qualcosa che può essere confusa con un organismo vivente per più di un
istante. Qualcosa deve essere sbagliato. Rodney Brooks propose quattro possibilità:
1. si stanno prendendo i parametri sbagliati;
2. si stanno costruendo modelli che sono sotto una certa soglia di complessità;
3. forse si sta ancora aspettando la potenza dei computer;
4. si sta dimenticando qualcosa di fondamentale e inimmaginabile nei nostri modelli biologici.

Gli psicologi, i filosofi, gli informatici, i linguisti offrono vari aspetti e metodologie per lo studio dell’intelligenza, ma sopra tutti esiste la relazione fra la mente ed il cervello che rappresenta, attualmente, la più importante domanda della scienza della vita.

[1] Longo Luca - Università degli Studi dell'Insubria - Il connessionismo di Turing
[2] Longo Luca - Università degli Studi dell'Insubria - Presentazione

Etichette: , ,

domenica, gennaio 15, 2006

Algoritmi genetici

Gli Algoritmi Genetici appartengono ad una particolare classe di algoritmi utilizzati in diversi campi, tra cui l’intelligenza artificiale. Rappresentano un metodo euristico di ricerca e ottimizzazione, ispirato al principio della selezione naturale di Charles Darwin che regola l’evoluzione biologica.

La simulazione dell’evoluzione biologica ha permesso lo sviluppo della computazione evolutiva e gli Algoritmi Genetici rappresentano l’esempio più importante. I ricercatori impegnati in questo campo sono convinti che i meccanismi dell’evoluzione siano adatti per affrontare alcuni dei più difficili problemi computazionali in diversi settori, poichè, per risolverli, è necessario ricercare la soluzione tra un numero enorme di possibili alternative.

Osservando in maniera macroscopica, le regole dell’evoluzione sono notevolmente semplici: le specie si evolvono per mezzo della variazione casuale, ossia attraverso le mutazioni, le ricombinazioni e altri operatori, seguita dalla selezione naturale che favorisce la sopravvivenza e la riproduzione degli esemplari più adatti, trasmettendo alle generazioni future il loro materiale genetico.

I principali pregi degli Algoritmi Genetici sono dunque rappresentati da:
1) la possibilità di risolvere problemi complessi senza conoscere il preciso metodo di risoluzione;
2) la capacità di auto-modificazione in base al cambiamento del problema;
3) la capacità di simulare alcuni fenomeni tramite l’organizzazione ispirata a quella selezione naturale.

Gli Algoritmi Genetici offrono una notevole trasparenza nel modo di elaborare i dati permettendo di generalizzare tecniche e metodologie in contesti decisamente diversi. Essi, generalmente, si presentano come l’unica strada praticabile per individuare una o più soluzioni delle quali si conosca l’esistenza ma non la procedura algoritmica per individuarle. Attualmente però, non è chiaro se il successo degli Algoritmi Genetici derivi dalle loro prestazioni o dalla loro natura cosi suggestiva ed esteticamente piacevole. Rimane ancora molto lavoro da svolgere per indentificare le condizioni in cuilavorano al meglio

Riferimenti bibliografici
[1] Duda, Hart, Stork, 2001
[2] J. Holland Adaptation in Natural and Artificial Systems, 1995, Addison-Wesley
[3] A. H. Wright, Genetic Algorithms for Real Parameter Optimization, 1992.
[4] J.R. Koza, Genetic Programming: On the Programming of Computers byMeans of Natural Selection, MIT Press, Cambridge, MA, 1992.
[5] Floreano, Manuale sulle reti neurali
[6] S. Russel, P. Norvig, Intelligenza Artificiale. Un Approccio Moderno. Vol.1, Seconda Edizione, 2005.27

Longo Luca - Algoritmi Genetici - Università degli Studi dell'Insubria - Computer Science

Etichette: , ,

domenica, gennaio 08, 2006

20qNet & Neural Networks

20Q.net è un gioco, ma è soprattutto un esperimento con un'Intelligenza Artificiale. Pensato un 'qualcosa', 20Q.net (ndA Twenty Questions) proverà ad indovinare l'oggetto che avete in mente con non più di 20 domande!

20Q.net è un gioco contro un'Intelligenza Artificiale che progredisce in scala, nel senso che man mano che si gioca, vi si inseriscono nuove informazioni che vanno a perfezionarlo. Tutto quel che 20Q.net conosce, e tutte le domande che pone, si può dire che provengano dai giochi effettuati in dieci anni di sperimentazione. Il programma è molto semplice ma il relativo comportamento è complesso.

Alla base del sistema vi è una grande, e sempre crescente, quantità di dati, ma, da un'altra prospettiva, ogni domanda può essere considerata un input di una rete neurale, mentre gli oggetti rappresentano gli output della rete.

Questa gioco in un Intelligenza Artificiale è il lavoro dello sviluppatore Robin Burgener di Ottawa. Burgener ha iniziato a sviluppare il software nel 1988 per soddisfare la sua curiosità riguardante i sistemi di autoapprendimento progressivo. La logica del programma sembra ragionevolmente semplice. Si parte con la costruzione di un albero. Se il programma fallisce, pone una domanda per differenziare l'ultimo oggetto dal nuovo oggetto. Ma, se un giocatore risponde ad una domanda da una differente prospettiva, il gioco sarà destinato a fallire; l'input del giocatore è conforme alla natura umana e non può essere 100 per cento coerente. (...per fortuna!)

In parole povere, il programma determina gli oggetti più probabili ed allora pone le domande che potrebbero eliminare la maggior parte di oggetti. Per limitare la confusione le risposte nel database hanno un peso riguardante le probabilità di successo, e in genere sono risposte sconosciute.

Provatelo: 20Qnet e ditemi se c'è qualche parola che non ha indovinato.

Etichette: ,

mercoledì, dicembre 07, 2005

The tenth objection


Obiezione OLL [1]

L’unico modo per superare il test di Turing [2] consiste nel coinvolgere, nel gioco dell’imitazione, parti con uguale livello di intelligenza: la macchina deve almeno uguagliare l’intelligenza dell’uomo coinvolto nel test.



Coinvolgendo nel gioco dell’imitazione solo due macchine o un bambino ed una macchina, il test sarebbe positivo. Facendo giocare un adulto contro una macchina con minore livello di intelligenza, il test fallirebbe poichè esisterebbero sempre delle domande alle quali la macchina non produrrebbe delle risposte sensate. Supponendo che si possa trasferire tutta l’intelligenza della specie umana ad un calcolatore e che questo giochi contro tutto il mondo si otterrebbe una parità d’intelligenza, dunque nessuno si renderebbe conto dell’inferiorita dell’altra parte e di conseguenza si otterrebbe un dialogo per più di cinque minuti. Se la macchina superasse l’intelligenza umana, ciò dipenderebbe dagli stessi umani, dunque l’unica obiezione plausibile a questo articolo prende il nome di ”Stupidita umana”. Ma poiche l’uomo non vuolee ssere stupido, allora le macchine non possono pensare.

Confronto con le obiezioni di A. M. Turing

L’obiezione formulata non è riconducibile alle seguenti:
• teologica
• matematica
• la coscienza
• argomento fondato sulla continuità del sistema nervoso
• percezione extrasensoriale

L’obiezione OLL confrontata con "Argomenti fondati su incapacita varie", non si pone di giudicare cosa le macchine siano o saranno in grado di fare, ma pone come unica soglia il livello d’intelligenza di una macchina. L’obiezione di Lady Lovelace afferma che la macchina è in grado di fare qualsiasi cosa gli ordiniamo di fare mentre in OLL viene supposto il contrario, purche rispetti l’equazione OLL. In base all’obiezione "argomento del comportamento senza regole rigide" in cui si afferma che il cervello non può essere un repertorio di risposte, OLL suppone invece, che la macchina potrebbe apparire come un contenitore di responsi umani. Penrose, nell’obiezione dello struzzo, suppone che le macchine potranno superare gli uomini, ma non spiega in che modo. In OLL, invece, si suppone che un eventuale sopravvento delle macchine deriverebbe dalla stupidita umana e dato che la macchina è una creazione dell’uomo, a questa affermazione non si puo porre nessuna obiezione.

[1] Longo Luca - Università degli Studi dell'Insubria - Computer Science
[2] COMPUTING MACHINERY AND INTELLIGENCE by A.M.Turing Traduzione in italiano

Etichette: , , ,

sabato, novembre 19, 2005

What computers still can't do? [1]


A critical of artificial reason.

Sono tante le cose che i computer non sono ancora in grado di fare. Ad esempio non possono fare la pizza. Vi immaginate una macchina che sforna pizza di ogni genere semplicemente compilando il seguente codice:


void main(){
char[50] pizzaName;
scanf("%s", pizzaName);
printf("Ritira la tua %s dal cassetto cdrom", pizzaName);
printf("Press any key to exit");
}

Non sarebbe bello? Comunque a parte gli scherzi anche il signor Dreyfus si è dovuto ricredete scrivendo il suo secondo libro dal titolo "What computer Still can't do?"
Naturalmente l'Intelligenza Artificiale è un campo in continuo cambiamento, quindi è lecito porsi delle domande e dopo qualche anno autosmentirsi.

Cosa secondo voi i computer non sono ancora in grado di fare? Io ho qualche idea, ma mi piacerebbe sentire le vostre. Thanks

[1] What Computers Still Can't Do: A Critique of Artificial Reason. by Hubert L. Dreyfus

Etichette: , , ,

lunedì, novembre 14, 2005

What computer can't do? [1]


Domanda interessante.

Le risposte non sono certamente ovvie e la domanda che in primo luogo mi salta in mente è:

Possono le macchine pensare?

Naturalmente si entra nel campo dell'intelligenza artificiale, ma mi piacerebbe conoscere possibili risposte al quesito, al di fuori del contesto A.I.


[1] Dreyfus, H.: What Computers Can't Do. Harper and Row, New York, 1972.
[2] COMPUTING MACHINERY AND INTELLIGENCE by A.M.Turing Traduzione in italiano

Etichette: ,