Intelligenza artificiale, come funziona?

Intelligenza artificiale, come funziona? (4.50/5) su 2 voti

Dopo aver festeggiato il capodanno, si ha la sensazione di essere un passo più vicini all’intelligenza artificiale. Una notizia flash come “costruito il primo robot in grado di pensare” suonerebbe tutt’altro che improbabile.

Ma cos’è in realtà l’intelligenza artificiale?

Sappiamo in parte come funziona il nostro cervello, attraverso un elevatissimo numero di cellule chiamate neuroni, riesce ad elaborare gli impulsi. Elaborare significa che se riceve vari impulsi dall’occhio, li trasforma in una serie di immagini che per noi può essere il testo che state leggendo.

Ad oggi un computer tramite una webcam riesce a raccogliere un immagine e mostrarla nello schermo. Verrebbe da pensare che si tratta dello stesso procedimento, ma vi sbagliate! Il computer mostra a schermo l’immagine ricevuta dalla webcam, ma in realtà siamo sempre noi a vederla e “decifrarla” con il nostro cervello. Il computer in questo caso fa solo da specchio, sposta l’immagine dal punto in cui la webcam sta osservando al monitor sotto i nostri occhi, ma niente di più. Non c’è niente di intelligente in tutto ciò. Questa è la grossa differenza tra il funzionamento dei computer ed il cervello umano. I computer sono “meccanici” e non intelligenti. Prendiamo per esempio questo sito, o qualsiasi software esistente al mondo. Tutti i software funzionano secondo uno schema preciso, tramite istruzioni chiamate “condizioni”. Le condizioni sono poche e molto semplici, come “Se” “Altrimenti” “Finché” eccetera.  Vi faccio un esempio:

esempio_softwareQuesto banalissimo programma che ho preparato, ad ogni pressione del tasto “Azione” incrementa di uno il valore in “Risultati”. Se vogliamo vederlo in modo semplice, funziona così:

1| RIPETI  all’infinito
2| SE il tasto funzione E’ STATO premuto
3| INCREMENTA Risultati DI 1
4| ALTRIMENTI non agire
5| TORNA AL COMANDO RIPETI

Le parole in neretto sono il “comando” che il computer può ricevere da me, mentre le parti in corsivo sono le cosidette variabili, ciò che può cambiare durante il funzionamento. Il flusso del programma parte dalla prima riga e va verso l’ultima, eseguendo un comando dopo l’altro. Se trova un comando di “ritorno” come nel nostro caso, ecco che riparte dall’inizio. E’ possibile modificare le variabili oppure l’ordine dei comandi. Ad esempio, invece di ripetere all’infinito, potrei decidere di ripetere solo 10 volte, in questo caso dopo 10 click il programma non reagisce più. Oppure, invece di incrementare di 1 potrei incrementare di 2 ad ogni click. In realtà è possibile fare di tutto, ad esempio incrementare quando non sto cliccando e smettere di incrementare quando clicco sul pulsante (basta invertire le righe 3 e 4!). Non esiste solo il comando Incrementa, ma anche il comando dividi, moltiplica, somma sottrai etc. Quindi capite che da qui a scrivere il software di una calcolatrice non serve poi molto lavoro. Ma risparmiamoci questa noia. Ricordatevi che qualsiasi software di qualsiasi dispositivo elettronico al mondo, che sia il termometro nel cruscotto della vostra auto oppure il sistema di controllo della stazione spaziale, utilizzano programmi scritti secondo questa semplicissima logica. L’unica differenza è che si tratta di decine di migliaia di righe di codice.

Quindi è possibile?

Ma allora, è possibile con un linguaggio di programmazione come questo scrivere un programma che possa ragionare in modo intelligente? La risposta in realtà è no. Concettualmente non è affatto possibile, perché come avete visto i software si basano sulle condizioni. Se questo è maggiore di quello fai così, se quest’altro è uguale ad x agisci in un altro modo.

Utilizzando questo concetto bisognerebbe fare una lista praticamente infinita di tutte le cose che possono succedere nel mondo. Per esempio: se la webcam vede cadere una foglia potrebbe essere autunno, ma se la foglia è in un video al computer o in una fotografia non è  autunno perché l’immagine non si riferisce al momento attuale. Bisognerebbe anche inserire una condizione per verificare che la foglia non sia finta, e di conseguenza catalogare tutte le foglie per far si che possa riconoscerne le differenze. Capite che la strada è sbagliata e non ha alcun senso. Ma allora come possiamo ovviare al problema? La soluzione ci sarebbe.

Non fatevi ingannare!

Ci sono computer in grado di battere i campioni di scacchi, ma anche in questo caso non si tratta di vera e propria intelligenza. Viene inserito nel software un algoritmo matematico in grado ci calcolare tutte le mosse che gli scacchi possono fare e tutte le istruzioni che servono per fare la mossa migliore in base alla situazione. Quindi non ha imparato a giocare a scacchi, ne noi glielo abbiamo insegnato: lo fa meccanicamente, come nell’esempio della webcam che mostra un immagine a schermo. Se ci fosse un opzione che il programmatore si è dimenticato di inserire, una particolare mossa e se lo sfidante facesse proprio quella, il computer andrebbe semplicemente in TILT.

Per dimostrare di essere intelligente un computer dovrebbe superare il Test di Turing (vedi questo link a WIKI) un semplice test tramite il quale il computer dialogando con una persona dovrebbe riuscire ad ingannarla e farle credere di essere un uomo. Recentemente è uscito un articolo su Wired con titolo “Un computer ha superato il Test di Touring”. Si tratta di una bufala in quanto travisa la realtà e non fa capire veramente cosa sia successo. Secondo il mio parere al Test di Touring per renderlo attendibile vanno aggiunte alcune condizioni riguardanti il software. Potrei catalogare tutte le possibili frasi, domande e risposte che una persona può fare, e catalogare tutte le risposte domande ed opinioni che un computer può dare. Con questo stratagemma potrei ingannare alcune persone e far credere loro di parlare con un computer. Ma ancora una volta non si tratta di intelligenza, ma semplicemente un meccanismo inefficiente e non “flessibile”. Se faccio una domanda non prevista, il sistema va in blocco. Il software non deve essere scritto in questo modo semplicistico ma deve essere flessibile ed in grado di aggiornarsi, imparare frasi nuove per non farsi raggirare. Dovrebbe ad esempio essere in grado, una volta sentita più volte una nuova frase, di ripeterla nel giusto contesto senza sembrare un pappagallo.

L’auto apprendimento

Si sta tentando di sviluppare software capaci di auto apprendere. L’esperimento principale fu fatto con 2 software i quali dovevano come cani pastore mantenere delle pecore virtuali in un gregge. Gli ingegneri inserirono un software basilare il quale procedendo per migliaia e migliaia di “tentativi virtuali” cercava di trovare il modo più veloce di radunare il gregge. Dopo un numero impensabile di tentativi, il software è riuscito a memorizzare un procedimento ottimale che ha salvato come “esperienza”. La tecnica di eseguire un numero imprecisato di tentativi fino al raggiungimento per vie casuali dell’obbiettivo prefissato si chiama “brute forcing” e solitamente viene impiegato per scoprire le password tentando tutte le combinazioni lettera per lettera. Ma se ci pensate, per imparare la matematica nessuno di noi ha dovuto usare il brute forcing (lo so è un esempio infelice, ma cercate di prenderla seriamente) . Non abbiamo imparato a scrivere con molta difficoltà, sopratutto da piccoli quando il cervello è ancora molto fresco e malleabile. Non riesco ad immaginare un software capace di imparare a scrivere sviluppato con le conoscienze e tecnologie attuali. Nessun computer o software è in grado di avvicinarsi anche lontanamente alle straordinarie capacità del cervello umano. Forse il nostro cervello è in grado di fare un “brute forcing” talmente veloce che non ce ne rendiamo conto. O forse, il nostro DNA contiene anche parte delle esperienze fatte dal genere umano nel corso della storia, come ci sono rimasti i gesti istintivi: quindi potremmo ipotizzare di essere avvantaggiati rispetto al computer perché partiamo con una base già consolidata da migliaia di anni.

Ma queste sono solo supposizioni, perché la realtà dei fatti è proprio questa: abbiamo una tecnologia avanzatissima, che tuttavia ancora impallidisce di fronte alla potenza del nostro cervello.

Comments

comments