Newsgroup: it.comp.ia
Titolo: [OT]? CNN vs. IA

Ciao a tutti,
 mi chiedevo e vi chiedo: ci può essere un legame tra le Cellular Neural
Network e l'Intelligenza Artificiale? Studio da un po' le CNN ma hanno
applicazioni senza apprendimento quindi penserei a: no! D'altra parte le
simulazione del sistema nervoso vanno forse verso questo paradigma.
Aspetto pareri e quant'altro.
Ciao
Adriano Basile
e-mail: 
adrian...@hotmail.com
web page: 
http://digilander.iol.it/adrianobasile/

 Network e l'Intelligenza Artificiale? Studio da un po' le CNN ma hanno
Cosa sono le CNN?
Conosco le ANNs (Artificial Neural Networks), che differenza c'č, se c'č?
--
Alessandro Monti

Conosco le ANNs (Artificial Neural Networks), che differenza c'è, se c'è?
Allora, le CNN non sono molto legate alle normali reti neurali al di là del
nome. Sperando di riuscire a scrivere in modo chiaro e comprensibile ti darò
una breve descrizione delle CNN.
Il nucleo centrale delle reti neurali cellulari e la cella di Chua, dal nome
di chi nel 1988 introdusse appunto tali strutture. Egli, credo, non capì
subito le potenzialità di tali celle visto che nei suoi primi articoli (vedi
IEEE transactions vol.35 del 1988) era molto vago e introdusse
prevalentemente una sola applicazione: l'image processing.
Senza divagare la cella di Chua è regolata da alcuni costrutti matematici
che hanno l'importante caratteristica di poter essere facilmente
implementabile in modo fisico (con qualche amplificatore operazionale,
resistenze ed un condensatore). Essa ha una variabile di stato interna, che
chiamiamo X, ed un'uscita Y dipendente da essa mediante una funzione lineare
a tratti:
Y=1/2 * (abs(x +1) - abs(x-1)) dove con abs ho indicato il valore assoluto.
E' più o meno una sigmoide neurale (non ripasso le reti neurali da un paio
d'anni, quindi spero di non errare, dicendo ciò). Resta da chiarire come è
regolato lo stato interno! Prima di farlo introduco la struttura delle CNN:
essa è molto semplicemente una matrice di celle di Chua, tale matrice
inizialmente da Chua detta solo bidimensionale ora si studia tridimensionale
anche se l'implementazione classica è ancora bidimensionale (chiariro dopo
perchè). Quindi lo stato interno X dipende in modo diretto dalle celle
circostanti, se pensiamo di discretizzare il tempo per necessità di
scrittura avremo:
X(t+1) = g(X(t)) + I(t) + SUM( A(Yk(t),PA(j)) ) + SUM( B(Uk(t),PB(j)) )
non spaventarti è molto più semplice di quello che appare, ho indicato con
"t" l'istante attuale, con "t+1" l'istante successivo. La  funzione g(X(t))
indica la dipendenza dallo stato attuale, l'implementazione di Chua che
ormai tutti seguono è in forma normalizzata g(X(t)) = - X(t). I(t) invece è
il bias un parametro interno alla cella che solitamente è costante e
preimpostato in funzione dell'utilizzo delle CNN.
SUM indica una sommatoria (non sapevo come altro indicarla), quindi ho la
sommatoria delle uscite (Y) delle celle circostanti pesata dalla matrice PA
e la sommatoria degli ingressi (U) pesata dalla matrice PB. Tali matrici
sono dette Template.
Capisco che sembra complesso ma se fai mente locale sulle normali reti
neurali ho qualcosa di molto simile, lì avevamo una serie di strati
consecutivi, il primo con gli ingressi, quelli interni e quello finale
d'uscita. Ogni cella dipendeva dalle uscite delle celle dello strato
precedente con dei pesi relativi ad ogni uscita, come qua solo che le celle
sono disposte a matrice e quindi le uscite da considerare sono attorno alla
cella. Ed in più ogni cella ha un'ingresso (costante o variabile) che porta
la propria influenza.
Si può realizzare il tutto in un chip, Chua ha fatto proprio questo nel
1996, in un processore delle dimensioni di un 486 ha messo 33 x 33 celle
elementari. Il grandioso vantaggio rispetto alle normali reti neurali sta
proprio nell'hardware, infatti tale struttura ha una potenza di calcolo
impressionante, immagina di dare ad ogni cella un pixel di un'immagine da
elaborare, visto che la struttura a matrice è totalmente parallela e (cosa
non detta) continua (io ho discretizzato per semplicità e perchè i
simulatori funzionano così), posso applicare un filtro all'immagine e avere
il risultato in qualche microsecondo.
Chiarisco meglio il concetto, per come è realizzata la struttura io posso
pensare di mettere insieme quanti voglio chip di Chua, aumentando di
conseguenza le dimensioni dell'immagine da elaborare ed applicare un
qualsiasi filtro (come in PhotoShop) in pochi microsecondi (per il
parallelismo ho l'indipendenza dalle dimensioni) senza un PC. Pensa ad un
sistema di visione di un robot e capiraì l'enorme potenzialità delle CNN.
Qui ho fatto l'esempio dell'image processing ma sono in studio numerose
altre applicazioni, io mi sto specializzanto in autowaves e pattern di
turing. E soprattutto strutture tridimensionali, visto che se in simulazione
riuscirò ad ottenere buoni risultati si pensa di realizzare matrici di Chip
3D.
Spero di averti incuriosito al punto da chiedermi altre informazioni. :-)
Puoi trovare qualcosa di più anche sul mio sito, in calce. Anche se è ancora
incompleto ed ho poco tempo per far migrare su di esso il materiale sulle
CNN.
Alla prossima.


 Spero di averti incuriosito al punto da chiedermi altre informazioni. :-)
In effetti si, ma non nel breve periodo. Sto ancora impazzendo con le mie
ANN per la tesi, ma l'argomento sembra interessante. Avevo pensato, dopo la
laurea, alla possibilità di trovare una "nicchia" in cui poter continuare a
lavorare su questo tipo di "strumenti", per cui una conoscenza più vasta
possibile mi sembra auspicabile.
Grazie per la spiegazione dettagliata.
A questo punto, tornando alla tua domanda iniziale, propenderei per un...
NI!
Ovvero, per quel poco che ne sappiamo ancora sull'intelligenza, tutto è
possibile. C'è da contare anche che un modello di questo tipo per spiegare
l'intelligenza è spesso avversato per motivi religiosi e emotivi, poichè
ovviamente escluderebbe molte delle assunzioni generalmente accettate
(esistenza dell'anima, in qualsiasi forma la si intenda, prima di tutto). In
fondo, ammettere che la nostra tanto vantata intelligenza sia il frutto di
qualche connessione messa a casaccio (o quasi) tra cellule assolutamente
banali, sembra offendere il nostro orgoglio...
C'è però da considerare che quando si parla di "intelligenza artificiale"
bisognerebbe capire quanto "artificiale" la si vuole. Nel caso che sto
sviluppando, sembrerebbe che pochi neuroni (una decina, suppergiù) riescono
a fare il lavoro di un esperto!!!
E' vero che l'esperto riesce a fare innumerevoli altre cose in più che un
solo compito semplice, che la rete neurale deve apprendere vedendo migliaia
di volte gli esempi proposti mentre all'esperto ne bastano poche unità o
decine, ma il confronto è ugualmente sorprendente...
--
Alessandro Monti


Anch'io sono in tesi e proprio sulle CNN, conosco poco le ANN, se hai 5
minuti dimmi qualcosa in + e soprattutto le differenze con le NN?
Tornando alle CNN, ho dimenticato di dirti che qui un gruppo di ricerca che
lavora in parallelo a me, ha costruito uno scarafaggio. Ossia un robot a 6
zampe pilotato da 12 celle CNN.
La cosa stupefacente è che le 12 celle riproducono il sistema nervoso (o
meglio la parte di sistema nervoso che si occupa della locomozione) dello
scarafaggio reale. Senza l'ausilio di CPU, PLC e altre logiche programmate
esso trova l'andatura  e deviando le connessioni si ottengono le diverse
andature:
doppio tripode o triplo bipede, vai a sx e vai a dx. Tutto hardware senza
PC, senza telecomando, solo pochi componenti e la parte meccanica.
Questo per motivare la mia idea di legame tra CNN e IA: se oggi si simulano
i sistemi nervosi ed io con una CNN 3D sto cercando di simulare al PC la
propagazione delle cellule tumorali nel nostro corpo, un domani magari
risusciremo ad avere simil-neuroni, sia per l'apprendimento con le NN che
per la parte decisionale CNN.
Chi vivrà vedrà!


 minuti dimmi qualcosa in + e soprattutto le differenze con le NN?
Facile: nessuna. ANN = Artificial Neral Networks.
E' solo un po' più preciso che NN, dove si potrebbe pensare anche al sistema
nervoso "biologico".
In genere, comunque, si indicano con ANN le reti neurali a strati, senza
salti e con apprendimento tramite back-propagation. La funzione dei neuroni
può essere lineare, sigmoidale o dotata di centro.
In realtà, con ANN si potrebbero indicare *tutte* le NN, ma normalmente per
i tipi derivati molto diversi, si usa la sigla più specifica, come fai tu
dicendo CNN.
Ciao
--
Alessandro Monti

 3D.
Che cosa e' il pattern di Turing?
Per i possibili legami tra CNN e IA dovresti provare ad implementare una
regola Hebbiana che ti modifichi l'hardware delle CNN, ma a questo punto
saresti costretto a simulare le CNN su un calcolatore (un po' come si fa con
le DBN e altri tipi di ANN), oppure trovare il modo,sicuramente dispendioso
in termini di hardware, di implementare CNN e regola hebbiana in hardware
attraverso FPGA o PLA, cosi salversti l'aspetto parallelo del calcolo.
Buon lavoro.

Buon lavoro.
Qui invece la domanda la faccio io: cos'è la regola Hebbiana?
Come dicevo ad Alessandro le CNN hardware esistono, io personalmente ho
partecipato allo sviluppo di 12 celle diversamente posizionabili, Chua che è
colui che le ha introdotto nel 1989, ha sviluppato un chip con 33x33 celle,
il prezzo è esorbitante essendo un prototipo (1 mld) con tecnologia 0.25.
Noi preferiamo ancora usare i simulatori cosa in cui mi sto specializzando
anche se più lenti, ma + versatili. La potenza delle CNN hardware sta oltre
nel parallelismo anche nella loro analogicità, e nel basso connessionismo
rispetto alle NN classiche.