Newsgroup: it.comp.ia
Titolo: Programma in grado di capire e imparare

Vorrei scrivere un programma che sia in grado effettivamente di capire
quello che viene detto alla macchina e non solo un "simulatore" per superare
il test di Touring, ossia "far credere" all'interlocutore di conversare con
una persona, anzichè una macchina. Se il programma non è in grado di capire
le cose e di imparare da quello che viene detto, diventa noioso dopo
pochissime battute, finendo immancabilmente con l'interlocutore che prende a
parolacce il computer per illogicità delle risposte... per rendersene conto
basta leggersi i dialoghi dei vari programmi tipo Eloisa, Hal, ecc.
Un programma in grado di capire e imparare è, per intenderci, quello per cui
se io digito:
-la mela è rossa
e dopo (subito dopo o anche giorni dopo) digito:
-di che colore è la mela?
il computer dovrà rispondere con una risposta del tipo:
-la mela è rossa
invece una risposta tipo: -una mela al giorno toglie il medico di torno
oppure: -il mio colore preferito è il verde
a mio parere non sono affatto soddisfacenti e finirebbero con l'annoiare
chiunque dopo pochissime risposte...
Per permettere ciò il programma deve gestire dei file dinamici (da tenere in
memoria durante il funzionamento e da caricare dal disco all'avvio e da
salvare all'uscita) in cui sono memorizzati tutte le attribuzioni, le cose
che il programma ha imparato nella sua "vita", le regole concettuali, le
deduzioni, la sua *memoria* insomma. Questi file diventano ogni giorno più
grandi, ma questo è inevitabile se non si vuole creare un programma statico
e sempre uguale; inoltre la potenza dell'hardware ormai ci consente di
elaborare grandi quantità di informazioni in pochissimo tempo.
In questi file vengono inserite stringhe in un formato simile a questo:
[mela]
(attributi)    dolce, gustosa
(usi)    si mangia, si sbuccia
(categoria)    cibo, frutto
(aspetto)    tonda
(colore)    rossa
Alla frase "la mela è rossa" inserita dall'utente, il programma va
semplicemente ad inserire nel campo (colore) della scheda [mela] l'attributo
corrispondente, in modo che a una richiesta relativa all'oggetto mela sarà
semplice rispondere correttamente. Anche dopo giorni il programma si
ricorderà di quello che gli si va dicendo, dando l'impressione di una reale
evoluzione.
Un programma del genere è anche capace di comprendere i sillogismi, ad
esempio:
Se io scrivo: -il Sole è una stella
e poi scrivo: le stelle sono luminose
la proprietà "luminoso/a/i/e" verrebbe affibbiata automaticamente oltre che
alle stelle anche al Sole, poichè il Sole fa parte della *classe* "stelle",
per cui *eredita* tutte le proprietà generali della classe. La prima frase
infatti non fa altro che includere l'oggetto in questione nella classe
"stelle" mediante un *link* presente nella scheda "Sole" in modo che da
consentire un richiamo alla classe "stelle", in modo da evitare una
duplicazione delle caratteristiche generali comuni a tutte le stelle.
Ovviamente un programma del genere scritto in inglese renderebbe
estremamente più semplice il lavoro, veloci i calcoli e la quantità di
informazioni gestite. Basterebbe infatti inserire un unico termine (bright)
al posto di 4 corrispondenti in italiano: luminoso, luminosa, luminosi,
luminose; oltre al fatto che la grammatica inglese è più semplice di quella
italiana... un solo articolo farebbe per 6 in italiano (the al posto di il,
lo, la, i, gli, le; gli aggettivi farebbero per 4; i nomi per 2, maschile e
femminile; per non parlare dei verbi, basterebbe usare "speak" per indicare
decine di voci corrispondenti in italiano... In definitiva richiederebbe un
computer dieci volte meno potente, con una memoria dieci volte meno
capiente, oltre al fatto che sarebbe dieci volte più semplice da
programmare.
Mentre un file dinamico sarebbe dedicato alla memoria, un altro (fisso)
sarebbe dedicato alle regole logico-grammaticali, i modi di dire, le
espressioni idiomatiche, ecc.
----------------------------------------------------
Chiunque abbia qualche idea o qualche commento o sia interessato a qualcosa
di simile a quello che ho descritto me lo faccia sapere.
Grazie
bli...@i.am

[...]
Oh, quando ce l'hai, me ne mandi una copia? :)
A parte gli scherzi, quello che stai dicendo per l'IA equivale piu' o meno a 
dire "oh salve ragazzi, vorrei costruire un'automobile che vada ad aria" per un 
ingegnere meccanico.. magari possibile, ma decisamente uno dei massimi 
risultati che ci si possa aspettare dal campo. :)
In ogni caso, lavori interessanti (piu' interessanti di Eliza e copie varie) 
nel campo della conversazione ce ne sono. Ti consiglierei di guardare il lavoro 
di Terry Winograd nei '60 e di Shank sull reti semantiche. Sono... istruttivi. 
-- 
God is Real, unless declared Integer.
ObjectZone - 
http://space.tin.it/computer/csadun/

Vorrei scrivere un programma che sia in grado effettivamente di capire


 basta leggersi i dialoghi dei vari programmi tipo Eloisa, Hal, ecc.
Ma che mi risulta non hanno passato il test di Turing, neanche nella
versione "facile" proprio per i motivi che hai citato tu.
I tuoi spunti sono interessanti, anche se non mi sembra che vadano molto
aldilà di quello che fanno i sistemi esperti, almeno in teoria.
Ho invece una domanda da fare: ma se realizzi un programma che passi il test
di Turing nella versione più "hard", e cioè che nelle sue conversazioni sia
indistinguibile da un essere umano, non potresti concludere che esso
"capisce" quello che dici? Almeno quanto capisce un altro essere umano.
Il meccanismo che sta alla base della nostra coscienza (intendendo la
facoltà di capire, ragionare, pensare ecc) è ancora sconosciuto, e pertanto
non credo si possa affermare che un programma sia capace di fare
altrettanto, ma se i risultati fossero indistinguibili, allora forse si
potrebbe comunque affermare di aver creato un'intelligenza artificiale. O
no?
--
Alessandro Monti

 a qualcosa di simile a quello che ho descritto me lo faccia sapere.
E' sicuramente un'idea non nuova, ma comunque e' interessante.
Non ho sottomano dei riferimenti da citarti. Ripeto: qualcuno piu'
addentro all'IA di me te li fara' sicuramente.
Comunque, se porti avanti il tuo progetto ed hai bisogno di un
programmatore, chiedi pure a me.
--
Ciao. Leonardo 
bos...@uno.it
 
http://surf.to/tetractys
--------------------
Ti faccio l'esempio di META-LINGUAGGIO a cui accennavo. Si puo'
utilizzare il PATTERN MATCHING con sostituzione.
E' una tecnica che si trova spesso. E' anche una tecnica di
programmazione utilizzata da "Mathematica".
Partiamo dall'esempio che hai fatto tu, senza far riferimento ad un
linguaggio di programmazione preciso - potrebbe essere PROLOG, ma si
puo' implementare anche in LISP, o, perche' no, anche in C++. Uso le
parentesi quadre per distinguere i termini "normali" da quelli del
"metalinguaggio" ed uso "_" per raggruppare piu' parole in una sola
stringa:
Le mie affermazioni sono:
# a star is bright
# the sun is_a star
e voglio che il computer automaticamente aggiunga nel suo database
l'affermazione
# the sun is bright
Per fare questo si possono definire le regole
1> a [class] is [property_of class]
2> the [object_of_type class] is_a class
3> the (object_of_type class) is_a (property_of class)
Vediamo cosa succede.
Definiamo prima le regole 1, 2 e 3 e poi inseriamo le affermazioni:
# a star is bright
// con il PATTERN-MATCHING ci accorgiamo che vale la regola 1, dato
che coincidono "a" e "is" (non tra parentesi quadre). Quindi "star"
appartiene all'insieme delle "class" e "bright" appartiene alle
"property_of star" ("class" e' stato sostituito con "star" perche' non
e' tra parentesi quadre).
# the sun is_a star
// sappiano gia' che "star" e' una "class", quindi il pattern-matching
ci evidenzia la regola 2 (coincide "the", "is_a" e "star" e' una
class). Di conseguenza "sun" appartiene all'insieme degli
"object_of_type star"
A questo punto il computer conosce la regola 3. Sa che "star" e' una
"class", sa che "sun" e' un "object_of_type star" e cosi' via.
Quindi, senza che nessuno l'abbia detto esplicitamente la regola 3 gli
permette di concludere per sostituzione che
# the sun is bright
Questo semplice meccanismo, apparentemente macchinoso, permette di
definire regole, su cui e' possibile costruire un linguaggio
piu' complesso (eventualmente seguendo le regole della lingua
inglese).
Ciao.

basta leggersi i dialoghi dei vari programmi tipo Eloisa, Hal, ecc.
...intervengo a questo punto per via della citazione di Eloisa®, il
programma di conversazione in linguaggio naturale a cui lavoro da alcuni
anni, e che sta per uscire in una nuova e più potente versione (capace, tra
le altre cose, di imparare).
La proposta/richiesta del Blisset è solo in apparenza interessante. In
realtà si tratta di un deja vu, una faccenda da IA degli anni Cinquanta. Il
Blisset parla delle ben note RETI SEMANTICHE, sulla cui natura ed
implementazione non dico nulla perchè non abbastanza competente. Tuttavia vi
sono ottimi testi anche in italiano (per esempio quelli di Elaine Rich),
anche se il mio spassionato consiglio è quello di... non leggerli.
Ma davvero un programma capace di capire/dire che una mela è rossa è così
eccitante? Non dico "sarebbe" perchè un programma simile è stato scritto
alcuni decenni orsono... solo che ragionava sugli animali e non sulle piante
(qualcuno se ne ricorderà: se <mangia carne> allora <è un carnivoro>, ecc).
Il vizio di fondo è quello di volere programmi capaci di imitare le
prestazioni del cervello umano. Che noia! Non vi sono già abbastanza
cervelli umani in circolazione? La cosa veramente interessante, sulla quale
vale la pena di lavorare e discutere, è esattamente l'opposto: creare una
mente totalmente diversa da quella umana.
Il sogno di una mente CIBERNETICA è oggi accarezzato da decine di
ricercatori. E' quello che stiamo cercando di fare con Eloisa®.
Cibernetica-mente,
                                     Francesco Lentini
                                     Living Machines
http://web.tin.it/eloisa
 - Eloisa® Official Web Site

Bella lettera !
 Secondo me c'è un appunto da fare e cioè che dovrebbero esistere anche le
"Classi di proprietà".
Voglio dire, se dico al programma:
La mela è rossa  
e
La mela è succulenta
Il primo aggettivo (proprietà) è una proprietà di tipo "colore" mentre il
secondo è di tipo diciamo "gusto". Come fa il programma è capire a quale
tipo di proprietà corripondono gli aggettivi dati ? Le frasi dovrebbero
essere:
La mela è di colore rosso
e
La mela è, di gusto, succulenta
Dopo un po' il programma potrebbe associare gli aggettivi alle classi di
aggettivi. ad esempio, dopo che gli ho detto dieci oggetti di colore rosso,
avrà capito che il rosso è un colore e potrò in futuro dirgli:
La tegola è rossa.
Altrimenti, senza questo passo precedente alla frase
La mela è rossa
Il computer dovrebbe chiedere
Cos'è il rosso ?
E noi diciamo
E' un colore.
Così lui mette Rosso=Colore e Mela->Colore->Rosso (il valore del campo
colore della mela è rosso). Così alla domanda
Di che colore è la mela ?
La mela è di colore rosso.
Inoltre le classi di proprierà non dovrebbero essere limitate e previste,
ma dinamiche, ovvero dovrei in ogni momento poter aggiungere una c.d.p.
nuova.
La mela è di colore rosso.
La mela è di gusto buona. (in italiano suona male ma è un metalinguaggio :)
La mela di forma è rotonda.
La mela è di materiale liscio.
ecc.
Così creiamo le c.d.p. colore, gusto, forma, materiale. Così se il
programma viene a conoscenza dell' oggetto arancia, potrebbe, volendo
imparare più cose, chiedere:
Di che colore è l'arancia ?
Di che gusto è l'arancia ?
Di che forma è l'arancia ?
E noi rispondiamo arancione, aspra, rotonda.
A questo punto lui è in grado di dire:
La mela e l'arancia sono uguali per forma.
Ma noi possiamo aggiungere altri c.d.p. che lui poi potrebbe applicare a
tutti o ad alcuni degli oggetti che ha in memoria.
Ovviamente alcune c.d.p. saranno "non applicabili" ad alcuni oggetti. Ad
esempio un microprocessore può avere una proprietà Frequenza, ma una mela
no. Per la mela sarà "non applicabile".
A che frequenza fa la mela ?
La mela non ha la proprietà frequenza. (o, per passare Touring,
"Difficilmente una mela può avere una frequenza, non è mica un
microprocessore !")
Comunque questa è una visione molto semplificata di un sistema di "dialogo
e apprendimento". Guardate ad esempio:
La mela marcia è disgustosa
La mela matura è succulenta
Qui lo stesso oggetto ha una proprietà (il sapore) che può assumere stati
opposti a seconda di un'altra proprietà, la "maturazione". Come gestire la
cosa ? Oppure pensate a:
La mela è rossa.
Una mela è rossa.
La differenza è grande, come gestirla ?
Comunque sia, l'ideale sarebbe non farsi uno schema rigido, ma molto
flessibile, che permetta di aggiungere e togliere non solo valori, ma anche
proprietà, stati, ecc.
Che ne dite ?
Ciao !						{MSX}
-- 
=============================
E-MAIL:   
Lugat...@iol.it
----------------------------------------------------------
ICQ#   48855787
----------------------------------------------------------
http://gpi.eden.it/
=============================

 di Terry Winograd nei '60 e di Shank sull reti semantiche. Sono...
istruttivi.
Li leggerò, grazie.
Ciao


Certo, un programma così sarebbe molto interessante, solo che è estremamente
complesso per delle persone singole. Non so se qualche organizzazione ne
abbia mai creato uno, intendo però uno completo, non con poche decine di
concetti.
Le difficoltà maggiori che vedo sono:
1) il programma dovrebbe avere a disposizione un dizionario completo della
lingua, in cui ad ogni parola è associata una categoria. Cioè, se scrivo "la
mela è rossa", deve capire che la mela è un frutto, e rossa è un attributo
di colore e non ad esempio di forma.
2) molte volte in un contesto non basta riconoscere una parola e capire di
che categoria è per capire il senso della frase, e qui è dove il linguaggio
umano si distanzia di più dagli schemi di un elaboratore.
Per quanto riguarda la memoria del programma, penso che tutti gli oggetti e
le entità che il programma riconosce starebbero bene in una gerarchia, come
gli oggetti di un linguaggio di programmazione. Cioè si parte dal generico
"oggetto", che si divide ad esempio in "vestito", "mezzo di trasporto",
"frutto", ecc. A sua volta "frutto" potrebbe dividersi in "mela", "pera".
In pratica una struttura ad albero dove i nodi intermedi sono categorie di
oggetti, e i nodi terminali sono oggetti veri e propri. Così nella mela non
c'è bisogno di metterci tutte le sue proprietà, molte sono comuni a tutti i
frutti e verrebbero ereditate direttamente dalla categoria "frutto" e dalle
precedenti.
Questo albero non può essere creato tutto tramite apprendimento dall'utente,
ci vorrebbe lo stesso tempo (quasi) per formare un bambino! Invece il
programma dovrebbe avere già una base di conoscenze minima, almeno conoscere
la maggior parte degli oggetti del mondo e delle azioni che una persona può
fare, e questa è un'altra difficoltà insormontabile.
Scusate la lettera lunga, ma è un argomento che mi stuzzica molto.
P.S. anche se un programma così si facesse, superando le mille difficoltà
pratiche, non è detto poi che riesca a dialogare con un minimo di umanità,
gli mancherebbero sempre le motivazioni per il dialogo, sarebbe passivo, e
non capirebbe concetti più umani come i sentimenti,ecc..
Sarebbe bello che un tale programma, analizzando la sua memoria nelle pause
del dialogo, quando trova un concetto che ancora non è sviluppato bene
faccia delle domande spontaneamente per completare le sue informazioni,
almeno simulerebbe della curiosità!
Ciao
Michele

 non solo valori, ma anche proprietà, stati, ecc.
Sono d'accordo. Per questo, come indirizzo generale, consigliavo di
non irrigidirsi sul primo schema proposto (tipo database). Sicuramente
un sistema a regole come quello che ho indicato e' troppo rigido per
il linguaggio naturale. Puo' comunque fornire la logica
dell'applicazione, infatti, mi pare schemi simili siano utilizzati
nel campo della dimostrazione automatica dei teoremi.
D'altra parte, se si prova a costruire un insieme di regole per
insegnare al computer a calcolare le somme di numeri interi (sperando
che non si offenda), ci si accorge che e' possibile, anche con schemi
cosi' semplificati. Ci si rende anche conto di quante conoscenze sono
necessarie e da' anche un'idea del tempo che sarebbe necessario per
insegnare solo conversando tutto quello che sappiamo.
Penso che molti abbiano pensato alla possibilita' di scrivere un
programma di questo tipo. Si potrebbe anche partire da zero (per non
arrivare da nessuna parte), ma sarebbe meglio sapere almeno dove sono
arrivati quelli che ci hanno gia' provato.
Quindi mi chiedo se qualcuno del NG puo' indicare qualche testo
preciso o, ancora meglio, qualche link sull'argomento.


 ricercatori. E' quello che stiamo cercando di fare con...
Seguendo questo NG ho spesso incontrato la pubblicita' del tuo
programma. Ho anche provato una vecchia versione e non manchero' di
provare la nuova. Pero', per evitare un download inutile, vorrei
sapere quali possibilita' di interazione ha.
Ad esempio, cosa ricorda delle conversazioni? C'e' la possibilita' di
insegnargli qualcosa? Ti faccio queste domande perche' in questo
thread si parlava di QUEL tipo di programmi.


Pape' Satan, pape' Satan aleppe, comincio' Blisset con voce chioccia:
B> Vorrei scrivere un programma che sia in grado effettivamente di capire
B> quello che viene detto alla macchina e non solo un "simulatore" per superare
beh, ti accontenti di poco, mi pare :-)
Se riesci a fare una cosa simile ti meriti un premio nobel :-)
B> il test di Touring, ossia "far credere" all'interlocutore di conversare con
Turing, Turing!
B> Alla frase "la mela è rossa" inserita dall'utente, il programma va
B> semplicemente ad inserire nel campo (colore) della scheda [mela] l'attributo
'semplicemente' ???
E come fa a capire il programma che che l'informazione che gli stai
dando e' relativa al colore della mela, e quindi deve mettere questa
informazione nel campo colore?
Serve una conoscenza a priori, ad esempio il programma dovrebbe
sapere che rosso, verde, blu ecc. sono colori, quindi se la parola
'rosso' compare in una frase subito dopo 'mela', probabilmente ci si
sta riferendo al colore della mela.
Ma per rendere la cosa generale, per creare un programma che 'pensa',
come vorresti fare tu, dovresti inserire una base di conoscenze a
priori immensa... mi sembra ingestibile.
B> la proprietà "luminoso/a/i/e" verrebbe affibbiata automaticamente oltre che
B> alle stelle anche al Sole, poichè il Sole fa parte della *classe* "stelle",
questa dell'ereditarieta' invece mi sembra interessante :-)
-- 
ciao,
Claudio

 Ciao.
Ciao

 Ciao ! {MSX}

 potrebbe comunque affermare di aver creato un'intelligenza artificiale. O
no?
Bè, io non credo che sia il cervello a dettarmi le parole che sto scrivendo,
ma il mio spirito, il cervello è solo uno strumento, come un computer. Per
cui suppongo alla fin fine si possa solo simulare qualcosa, ma fare un
programma che sia equivalente a uno spirito penso sia impossibile.
Per quanto evoluto sia questo programma in ogni caso dubito che arrivi a
capire le barzellette...
Ciao

 ricercatori. E' quello che stiamo cercando di fare con Eloisa®.
Secondo me la direzione di Eloisa non è del tutto giusta, andrebbe fatto
qualche passo indietro a livello progettuale, per correggere alcuni limiti.
Curiosità: ho letto che alcuni hanno posto delle domande via internet in
tempo reale.
E' possibile realmente farlo ? Poichè io non ci sono riuscito.
Ciao

io sarei interessatto al tuo progetto, pero' solo se si fa' in italiano!!!
Temo che il primo tentativo sarà in inglese. Mi sono reso conto che farlo in
italiano sarebbe almeno dieci volte più complicato.
Inoltre sarebbe anche un vantaggio per te. Ti spingerebbe a imparare
l'inglese. :-)
ciao
Mad Hatters
Ciao

 Se riesci a fare una cosa simile ti meriti un premio nobel :-)
Beh io direi il Turing Award. E' il corrispettivo del nobel per il campo
dell'informatica, istituito da non molti anni, se non sbaglio (non centra
col test di turing per le IA). Mi prostro a chi riesce a vincerlo ! :)


 Claudio
Ciao

 (qualcuno se ne ricorderà: se <mangia carne> allora <è un carnivoro>,
ecc).
Quello della mela rossa era solo il primo passo ovviamente. Il progetto
finale sarebbe di mettere in condizioni il computer di *riflettere*, di
*elaborare* i dati in memoria in modo da dare delle interpretazioni della
realtà del tutto originali e visti da un'ottica non umana (un pò alla Mr.
Spock ;-)). E' ovvio che fare tutto quell'enorme lavoro di input per poi
avere come output soltanto un "la mela è rossa" non era proprio nei miei
piani... :-)
Ciao

 Michele
Ciao

 ma il mio spirito, il cervello è solo uno strumento, come un computer. Per
Allora la questione diventa filosofica. Trovi molto materiale su "IA: un
approccio moderno", Russel Norvig, UTET.
In pratica se ritieni che a comandare il cervello vi sia qualcosa di più che
un po' di biochimica e di impulsi elettrici, allora non puoi fare altro che
concludere che una vera intelligenza artificiale non potrà mai esistere, ma
solo delle buone simulazioni. In questo caso il discorso si intreccia con la
religione (non per forza il cattolicesimo, siamo intesi, diciamo qualcosa
che sottintenda qualcosa di non materiale e "ultraterreno" per gli esseri
viventi).
Se invece non hai di queste idee, e quindi ritieni che gli esseri umani non
siano fatti d'altro che di atomi, molecole ecc., allora sembra ragionevole
che si possa costruire un cervello artificiale che sia in tutto e per tutto
indistinguibile da una persona "vera".
Il ragionamento è il seguente: se prendi una persona, e riesci a replicare
il suo cervello, atomo per atomo, e impiantarlo su un corpo anch'esso uguale
all'originale, puoi dire che hai creato un'altra persona uguale
all'originale o pensi che solo l'originale abbia quel qualcosa che lo rende
umano (chiamala coscienza, intelligenza, o come vuoi) ?
Personalmente sono per la seconda ipotesi, ma forse c'entra con le mie
(inesistenti) convinzioni religiose.
Nota: questa è una informazione protetta dalla legge sulla privacy, non vi
autorizzo a diffonderla :))
(OT) E poi che noia se dovesse davvero esistere un'anima immortale. E' già
dura questa vita, perchè volerne anche un'altra, e per di più immortale! :))
--
Alessandro Monti

 l'inglese. :-)
Io non credo che sia molto più complicato. E' vero che si moltiplicano i
casi, ma sono in numero piuttosto limitato.
Così come fai riconoscere al programma la terza persona singolare per
mettere la "s" ai verbi, potresti fargli riconoscere anche gli altri casi.
Idem per i singolari/plurali. Per i generi, invece ti do ragione, anche se
comunque anche l'inglese ha qualche differenza, soprattutto nei pronomi.
Sarebbe carino fare qualcosa in italiano, tanto per cambiare.
Se anche poi facesse qualche errore di grammatica, potremmo dire che è una
simulazione di Trapattoni :)
--
Alessandro Monti

priori immensa... mi sembra ingestibile.
Rispondo a questo messaggio perchè il Piciarelli ha centrato l'argomento. Il
problema non è trovare un "algoritmo della mela", ma creare una base di
conoscenza suffiecientemente vasta. La base di conoscenza di un cervello
naturale (uomo, cane, delfino...) è vasta perchè si forma in modo naturale,
appunto, fin dalla nascita. Quella di un cervello artificiale è limitata
perchè si tenta (o si pretende) di formarla in modo artificiale e... tutta
in una volta!
Alla base di conoscenza limitata sono dovuti i limiti attuali di Eloisa®,
programma che chiunque può scaricare dal sito 
http://web.tin.it/eloisa
. Buon
divertimento, purchè sia chiaro che NON si tratta di un clone di "Eliza", ma
di un progetto originale chiamato Personalità Virtuale (maggiori info sempre
nel sito). E' proprio questa la cosa che serve, a mio modesto parere. Una
volta che abbiamo un programma capace di ragionare sulla frutta (sugli
animali, o sui massimi sistemi), che ce ne facciamo? Un programma capace di
ragionare, semplicemente, NON SERVE! E se ciò non è abbastanza evidente, lo
dimosterò nel prossimo messaggio.


> di... non leggerli.
Il libro della Rich e' un classico nei corsi di AI - pero' io l'ho sempre 
trovato un filo noioso. :)


 Alessandro Monti

 Potrebbe essere migliore...
Era una battuta semiseria.
Se c'è un'altra vita ed è migliore, lo vedrò quando sarà ora.
Resto in vita proprio perchè non spero in qualcosa di meglio dopo :)))
Inoltre suicidarsi è faticoso e doloroso.
Ciao
--
Alessandro Monti

 
bli...@i.am
 Ciao a tutti, vedo che l'idea vi ha molto SURRISCALDATO... In effetti
sarebbe una bella cosa avere un programma che fa queste cose.
E in REALTA' esiste giŕed č "Cyc", ma dopo vari MILIONI di dollari e 20
(circa, credo) anni di lavoro e ricerche riesce a capire abbastanza bene
l'inglese (il livello č di leggere i giornali e, tempo dopo, dirti che
tra la Lewinsky e Bill c'č stato un legame di tipo sessuale), ma č
lontano da essere VIVO o anche solo INTELLIGENTE (perň fa molte cose
intelligenti...)
Leggete il sito della CyCorp 
http://www.cyc.com
 (L'attachment č la
cover)
Inoltre esistono molte ONTOLOGIE (per metterla semplice: dizionari molto
strutturati, cioč che collegano il loro elementi con delle relazioni
esplicite), come ad esempio 
WordNet (
http://www.cogsci.princeton.edu/
) per l'inglese (per usarlo
on-line 
http://www.notredame.ac.jp/cgi-bin/wn
)
EuroWordNet (
http://www.let.uva.nl/~ewn/
) per diverse lingue europee
(ita compreso)
Quindi PENSATE che non č una cosa ne banale, ne veloce, ne nuova...
...mi dispiace per eventuali disillusioni :-(
Ciao
Roberto
-------
Collabora alla creazione di un mondo migliore. Se ne sei capace.

Quindi PENSATE che non è una cosa ne banale, ne veloce, ne nuova...


 ...mi dispiace per eventuali disillusioni :-(
Beh, tante cose sono già state tentate, eppure è saltato fuori un nuovo Unix
più bello (e meno costoso) di quelli già esistenti e frutto di anni di
lavoro.
Se uno volesse riprovarci, cosa c'è di male?

 Se uno volesse riprovarci, cosa c'è di male?
NIENTE !!!  Ognuno è padrone della sua vita.
Soprattutto io non ho mai detto di non tentarci, ma mi sembra giusto
AVVISARE che non sarà una scampagnata... poi uno è libero di andare a
scalare il Monte Bianco in costume :-)
Ciao
Roberto
PS Linux è costato MOLTI anni di sviluppo a MOLTE persone determinate ed
ultra-qualificate
...ed è un prodotto BANALISSMO, rispetto all'obiettivo del thread, per
dimensioni (il codice di Linux è molte volte minore della quantità di
dati presente in Cyc) e problemi (Linux non affronta/va problemi
nuovi/irrisolti...), quindi uomo avvisato...
PPS Io ho iniziato ad usare Linux con la versione 0.9??? :-)


 PPS Io ho iniziato ad usare Linux con la versione 0.9??? :-)
Ho capito che tu hai Linux nel cuore, e ci tieni a far sapere che sei stato
uno dei primi ad usarlo, che magari hai contribuito anche tu con la tua
parte di competenze, ma non credi che queste MOLTE persone non si
reputassero così ultra-qualificate, che non pensassero che sarebbe andato
avanti per MOLTI anni, e che magari all'inizio l'avessero preso come una
sorta di "gioco", un sogno che forse non sarebbe mai stato sviluppato al
punto da fare addirittura paura a sistemi più blasonati?
--
Alessandro Monti

 Alessandro Monti
Cordialmente ciao


 CiaoRoberto
-- 



E' la prima volta che scrivo in questo ng. Quindi:
1) Saluti a tutti;
2) Premessa: non mi intendo affatto di IA, non ho mai programmato ne usato
programmi di IA quindi è probabile che dica sciocchezze, ma sono rimasto
colpito dalla discussione e vorrei quindi "contribuire".
Volevo solo esprimere un parere. Mi sembra che, ma probabilmente sbaglio, si
stia mettendo il carro davanti ai buoi. Nel senso che si parla di
intelligenza per superare il "Test di Touring", ovvero per dialogare con un
computer come fosse un essere umano. Ma questa non è che una piccola parte
dell'intelligenza. Mi sembra che, come da molti detto, sia più una
simulazione di comportamenti umani che vera intelligenza. Insomma, un po'
come i videogiochi tipo simulatori di volo dove sembra di volare ma in
effetti non c'entra nulla col volo.
E fin qui dico ovviamente dei deja vu.
Quello che mi preme sottolineare è che, sotto un certo punto di vista, è
molto più "simulatore di volo" un aeroplanino di carta che un potente
simulatore per addestrare piloti. Solo che il secondo dà una sensazione più
realistica.
La stessa sensazione mi danno i prg. di "colloquio". Mi sembra di partire
dalla fine, ovvero voler costruire un castello tutto in una volta senza
gettare delle solide fondamenta su cui poi costruire.
Cosa vuol dire poi attribuire valori a certe caratteristiche (ad esempio
dire che la mela è rossa per poi chiedere al pc di che colore è la mela) se
non cercare di simulare i nostri meccanismi mentali? Che poi sono
legatissimi alla nostra fisicità, in quanto gli attributi degli oggetti sono
importanti in quanto li percepiamo.
Per un elaboratore chiuso in se stesso tali caratteristiche potrebbero non
avere alcun "significato". Per un programma il fatto che "la mela" (che non
può toccare ne assaggiare) sia "rossa" (e non la può vedere) non può a parer
mio aver alcun significato e quindi non può essere una informazione su cui
costruire alcunché di "intelligente". Se non , appunto, "simulare" le nostre
impressioni e sensazioni. Ma in tali simulazioni non ci trovo nulla di
particolarmente intelligente, solo qualcosa di estremamente sofisticato (e
non dico affatto inutile, anzi! solo non mi pare che colga l'essenza
dell'intelligenza).
D'altronde anche per noi uomini è difficile elaborare informazioni che non
derivano da percezioni sensoriali no? Ad esempio, non mi risulta che sia
facile "ragionare" in termini magari di profumo di una mela, mentre il
ragionamento per profumi/odori credo sia molto più familiare ad esempio ad
un cane, che è in grado di elaborare ragionamenti basati su una percezione
che ci è estranea (per esempio marcare il territorio, oppure decidere,
annusando l'aria, se "infatuarsi" di una gentil rappresentante del sesso
opposto piuttosto che prepararsi all'aggressione di un gatto che non è a
portata di vista ma che ... da qualche parte ... c'è! (cose viste dal vivo).
E il fatto che il cane sia in grado di elaborare/decidere quando nella
stessa situazione io nemmeno mi rendo conto del "contesto" non mi fa pensare
che il cane sia particolarmente più intelligente di me. Non troppo,
quantomeno! :) ). Intendo con questo dire che non capisco come possa un
software non dotato di percezione elaborare qualcosa di proprio.
Non potrebbe ad esempio essere più "intelligente" un programma in grado di
valutare le prestazioni del computer sul quale sta girando? Un tale sw
sarebbe (hem.. lo so che esistono e non li reputo affatto intelligenti. Però
mi servono per esprimere il concetto in termini il più semplici possibile)
in grado di esprimere una valutazione, che secondo la nostra misurazione di
intelligenza è probabilmente una cosa sofisticata ed avanzata! Vi immaginate
un programma che dialoga con l'uomo e ad un certo punto si permette di dire:
"Questo interlocutore è stupido" piuttosto che "Questo interlocutore è un
vero genio!" :) ??? Questa sì che sarebbe intelligenza e mi sorprenderebbe
realmente (sempre che la frase non sia lì pronta da essere pescata da un db,
of course!!! :) )!
Ecco, un software in grado di dire ad esempio "il pc su cui sto girando è
discreto" o "WOW! questo è il miglior pc su cui sia mai stato lanciato!"
potrebbe essere più intelligente di un simulatore di conversazione?
Forse si, forse no, o forse il quesito è concettualmente sbagliato in quanto
le due cose non sono direttamente paragonabili.
Quello che mi preme osservare è che forse ci potrebbe essere più
"intelligenza" (termine allucinante da definire...) in un software che
magari sputa fuori "0" e "1" a ripetizione, ma con qualche criterio che
possa essere reputato "intelligente" (e che non solo non passerebbe mai il
test di touring ma nemmeno potrebbe forse affrontarlo) piuttosto che in un
buon "simulatore" che tale test passa, ma che di spirito veramente
intelligente nulla forse ha.
O, in alternativa, potrei essere io che sto cominciando a soffrire di
demenza senile... :P
Ecco, quello che volevo alla fine dire con questo post è che mi sembrerebbe
forse il caso di fare qualche "passo indietro" per cercare di comprendere
meglio cosa si può intendere per "intelligenza" (che sia un concetto
autoricorsivo?) e stabilire una base astratta, magari senza risultati
eclatanti, ma che permetta di dire "accidenti, questo risultato è
intelligente, _non ci avevo pensato_!" pur su cose molto semplici.
Personalmente ritengo che gli strumenti linguistici siano tutti troppo
ambigui e "indefiniti" per permettere di intraprendere progetti che non
siano colossali.
Non sarebbe meglio lavorare per esempio su basi matematiche? Non so se
esistano già lavori del genere ma un sw. che avesse una "base di conoscenze
matematiche" e che riuscisse ad esempio a dimostrare un teorema, anche
semplice, per conto suo, e che incrementasse così facendo le proprie
conoscenze/capacità deduttive, anche in un contesto puramente simbolico
(qual'è la matematica che non mi pare abbia bisogno di definire
caratteristiche di entità astratte. Non ho mai sentito parlare di "colore" o
"profumo" del 5 e non lo riesco a concepire al momento...) sicuramente mi
stupirebbe _molto_ di più di un prg che simula una conversazione.
P.s. Mi sono accorto di aver fatto un post molto lungo. Scusatemi. E tenete
presente che non intendo insultare/offendere/criticare nessuno con questo
intervento, ma solo sentire la vostra opinione su delle mie elucubrazioni.

 intelligente, _non ci avevo pensato_!" pur su cose molto semplici.
Qui sta in effetti il vero problema. In realtà neanche il fatto di
apprendere penso che basti. Ho visto tempo in televisione fa un uomo che per
un grave danno al cervello, non aveva più la possibilità di memorizzare a
lungo termine. Quest'uomo, ogni 2-3 minuti, perdeva totalmente la memoria
degli avvenimenti recenti, non sapendo più dov'era e perchè. Ebbene,
quest'uomo era intelligente, pur non potendo più apprendere! Pensate che non
poteva neanche cambiare casa, perchè altrimenti non sarebbe mai stato capace
di trovare quella nuova, non potendo ricordare di aver traslocato.
Facendogli fare della conversazione, tuttavia, dava risposte "intelligenti",
anche se facendogli domande uguali a distanza di poco tempo, dava risposte
molto simili.
Se si riuscisse almeno ad eguagliare quest'uomo?
--
Alessandro Monti