Intelligenza Artificiale – I parte –


Costruire un elaboratore in grado di “ragionare” è una delle sfide della moderna società. L’intelligenza artificiale è quella branca della scienza che “tenta” di far assomigliare i computer all’uomo e le reti neurali aiutano gli scienziati in questo difficile compito. In tal senso, il cervello umano rappresenta il miglior esempio di una rete neurale. Esso è composto da bilioni di neuroni, interconnessi tra loro, ed è a questo modello a cui si dovrebbe pensare per sviluppare una macchina in grado di “pensare” simile all’uomo.

Le reti neurali artificiali e le reti biologiche

Un primo concetto molto importante è la distinzione tra reti neurali artificiali e reti neurali biologiche: le prime rappresentano una simulazione al computer delle seconde. In pratica, con le reti neurali artificiali, l’elaboratore cerca di simulare un ragionamento tipico del cervello, la più importante rete neurale biologica.

In questo, e nei prossimi articoli, forse non affronteremo la struttura del cervello, anche se ciò risulterebbe propedeutico per una buona comprensione delle reti neurali artificiali. Quindi, cercheremo di costruire una rete neurale artificiale con l’ausilio di JOONE, un software scritto in linguaggio java in grado di svolgere questo compito.

Quali problemi possono essere risolti da una rete neurale artificiale?

Per quanto riguarda la soluzione dei problemi, le reti neurali artificiali non possono risolverli tutti, e comprendere quali sono quelli più appropriati è uno dei momenti più importanti che i programmatori e gli scienziati devono affrontare. In pratica, quei problemi che adottano un algoritmo ben preciso dei quali si conoscono tutti i passi della soluzione non sono indicati all’utilizzo di una rete neurale artificiale.

Le reti neurali artificiali possono essere adottate per le operazioni di classificazione dei dati in gruppi, di raccolta dei dati e rielaborazione (data mining), di riconoscimento di un “patterns” (immagine, suono o altro dato) o di predizione di risultati futuri sulla base di una serie storica; Comunque, soltanto in questi ambiti possono esprimere il loro potenziale.

In pratica, da cosa sono costituite le reti neurali artificiali?

Le reti neurali artificiali sono composte da algoritmi che hanno l’incarico di simulare un qualsiasi ragionamento più o meno complesso. Così, ha origine l’intelligenza artificiale. Nel 2014, DeepMind una piccola azienda di Londra, durante l’evento Tech 2014, mostra un algoritmo informatico in grado di imparare a giocare a Breakout, un gioco del 1976 creato da Steve Wozniak.

Breakout Atari 1976 Tech 2014 Figura 1.
(Breakout: un algoritmo può imparare a giocare?)

Non contenti, i creativi di DeepMind hanno allenato l’algoritmo in altri 49 giochi, tra i quali i più famosi sono Pinball, Pac-Man, Road Runner e altri ancora.

Recentemente, la ormai nota DeepMind con l’algoritmo AlphaGo ha battuto il campione 9 dan professionistra Lee Sedol. Go, è un gioco di conquista del territorio, assolutamente diverso dagli scacchi e secondo alcuni molto più complesso.

In una fase iniziale sono state “addestrate” due reti neurali “deep neural network” sulla base di 30 milioni di mosse rese disponibili dai Go Server. Successivamente, in una seconda fase, il sistema AlphaGo “impara” da se stesso giocando milioni di partite con l’utilizzo del “reinforcement learning”. L’algoritmo, grazie alle reti neurali (una quindicina di strati per AlphaGo) è riuscito a vincere, e in alcuni casi ha “giocato” in modo semplicemente geniale. In questa partita il sistema “artificiale” ha utilizzato 1202 CPU e 176 GPU.

Aplha Go vs Go Figura 2.
(Esempio di gioco Go)

E per quanto riguarda GNU/Linux, quali sono gli strumenti in gioco per l’uso delle reti neurali?

Molto interessante risulta il progetto GNU Gneural Network di Jean Michel Sellier che permette di programmare la propria rete neurale artificiale e di implementare il codice nei nostri progetti senza grandi difficoltà in accordo con l’ideale del progetto GNU (e della Free Software Fondation). Il codice è interamente in C, non dipende da nessuna libreria esterna, ed è cross platform (funziona su più sistemi operativi). Il programma permette agli utenti di definire la propria rete neurale, ed appartenendo al “free software”, si può agire sul codice sorgente per modificare metodi e routines adattandolo ai propri scopi. Inoltre, si possono utilizzare metodi differenti per “allenare” la rete neurale, tra i quali: algoritmi genetici, tecniche Monte Carlo e altri ancora.

E’ per tutti l’utilizzo della A.I.?

Attualmente, IBM (es. progetto Watson) e Google (es. progetto AlphaGo) mostrano l’utilizzo e la “forza” dell’intelligenza artificiale nei propri software.

Le tecnologie odierne fanno ricorso alle rete neurali per risolvere qualsiasi problema, ma se tale opportunità è nell’uso e nello sviluppo di pochi, a lungo andare potrebbe rappresentare un pericolo come comunicato dal progetto GNU Gneural Network:

Nowadays, companies such as Google and IBM are doing a great service to all of us by showing what can be achieved by using Artificial Intelligence (AI). […] But the fact that only companies and labs have access to this technology can represent a threat. First of all, we cannot know how money driven companies are going to use this novel technology. Second, this monopoly slows down technology adoption.

E’per questo motivo, che tutti noi, dovremmo “usare” nei nostri software l’A.I. e rendere tale conoscenza disponibile a tutti.

Quali sono le preoccupazioni dell’evoluzione dell’intelligenza artificiale?

Secondo Key Kurzweil, futurista, inventore e capo della divisione Engineering di Google, nel 2040-2050 il cervello umano si potrà avvalere dell’intelligenza artificiale in una specie di fusione cibernetica. Una prospettiva evolutiva interessante, ma a quanti piacerà avere un “elaboratore” in testa?

Per Stephen Hawking, noto astrofisico, l’intelligenza artificiale potrebbe rappresentare l’ultima invenzione umana. Dopo, le “macchine” potrebbero costringere l’uomo a vivere in eterna schiavitù o nella peggiore delle ipotesi all’estinzione totale.

The development of full artificial intelligence could spell the end of the human race

Non solo, a breve, grazie ai continui miglioramenti degli algoritmi dell’intelligenza artificiale, i robots riusciranno a sostituire gran parte della manodopera operaia e migliaia di persone perderanno il proprio lavoro. L’impatto sociale sarò devastante e tra vent’anni la metà della popolazione mondiale avrà perso il lavoro. Forse, dovremmo trovare a breve dei modelli evolutivi diversi prima che sia troppo tardi!

Conclusioni

In questo breve articolo abbiamo visto che cosa si intende per rete neurale biologica e artificiale e l’importanza della scelta dei problemi adatti ad una soluzione prettamente artificiale. Nei prossimi, parlerò di computer quantici e cercherò di risolvere dei problemi con l’utilizzo di JOONE.

Se desiderate altri articoli inviate un piccolo contributo in Bitcoin al seguente indirizzo. Un contributo per scrivere di più al fine di migliorare la qualità degli articoli.

Indirizzo BTC: 3EJZiSmqRkoZ48ae2pYbKupMYQqoQvxdxe

Codice QR Bitcoin

L’ultimo aggiornamento è stato possibile grazie ad un contributo in Bitcoin: grazie!

Rating: 2.0. From 1 vote.
Please wait...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

5 × cinque =